]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/commitdiff
Fix x86 code generation for floating-point return instructions.
authorRhys Weatherley <rweather@southern-storm.com.au>
Mon, 30 Aug 2004 02:01:22 +0000 (02:01 +0000)
committerRhys Weatherley <rweather@southern-storm.com.au>
Mon, 30 Aug 2004 02:01:22 +0000 (02:01 +0000)
ChangeLog
jit/jit-rules-x86.sel

index e9477b1ee960063600849f3886b39d1ce571ef43..3ee816201bf50bf8621fadebe7246b43f7b4fd41 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,9 @@
 
+2004-08-30  Rhys Weatherley  <rweather@southern-storm.com.au>
+
+       * jit-rules-x86.sel: fix x86 code generation for floating-point
+       return instructions.
+
 2004-08-16  Rhys Weatherley  <rweather@southern-storm.com.au>
 
        * jit/jit-cpuid-x86.c (cpuid_query): use %ebx in a way that doesn't
index 734cf211cae7a64783b49e791ce8bad46379da26..2ff235ac6fabaec50cad0b534b15bf93b95e4aff 100644 (file)
@@ -1689,18 +1689,21 @@ JIT_OP_RETURN_LONG: unary_branch
                inst = jump_to_epilog(gen, inst, block);
        }
 
-JIT_OP_RETURN_FLOAT32: unary_branch, stack, only
+JIT_OP_RETURN_FLOAT32: unary_note, stack, only
        [freg] -> {
+               _jit_regs_free_reg(gen, reg, 1);
                inst = jump_to_epilog(gen, inst, block);
        }
 
-JIT_OP_RETURN_FLOAT64: unary_branch, stack, only
+JIT_OP_RETURN_FLOAT64: unary_note, stack, only
        [freg] -> {
+               _jit_regs_free_reg(gen, reg, 1);
                inst = jump_to_epilog(gen, inst, block);
        }
 
-JIT_OP_RETURN_NFLOAT: unary_branch, stack, only
+JIT_OP_RETURN_NFLOAT: unary_note, stack, only
        [freg] -> {
+               _jit_regs_free_reg(gen, reg, 1);
                inst = jump_to_epilog(gen, inst, block);
        }