From: Rhys Weatherley Date: Mon, 30 Aug 2004 02:01:22 +0000 (+0000) Subject: Fix x86 code generation for floating-point return instructions. X-Git-Tag: r.0.0.6~43 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=9f4f7825460959fff06927560fa9c9bd962824ba;p=francis%2Flibjit.git Fix x86 code generation for floating-point return instructions. --- diff --git a/ChangeLog b/ChangeLog index e9477b1..3ee8162 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ +2004-08-30 Rhys Weatherley + + * jit-rules-x86.sel: fix x86 code generation for floating-point + return instructions. + 2004-08-16 Rhys Weatherley * jit/jit-cpuid-x86.c (cpuid_query): use %ebx in a way that doesn't diff --git a/jit/jit-rules-x86.sel b/jit/jit-rules-x86.sel index 734cf21..2ff235a 100644 --- a/jit/jit-rules-x86.sel +++ b/jit/jit-rules-x86.sel @@ -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); }