From: Taylor R Campbell Date: Fri, 13 Nov 2009 04:04:57 +0000 (-0500) Subject: Use ja/jb, not jg/jl, in floating-point predicates on x86-64. X-Git-Tag: 20100708-Gtk~244 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=103bbbc9ec90b1a20c52947d305c8a29db9132f3;p=mit-scheme.git Use ja/jb, not jg/jl, in floating-point predicates on x86-64. --- diff --git a/src/microcode/cmpauxmd/x86-64.m4 b/src/microcode/cmpauxmd/x86-64.m4 index 7c4f8ac6c..242c57eb6 100644 --- a/src/microcode/cmpauxmd/x86-64.m4 +++ b/src/microcode/cmpauxmd/x86-64.m4 @@ -718,7 +718,7 @@ asm_generic_$1_flo: OP(and,q) TW(rmask,REG(rbx)) movsd TW(QOF(FLONUM_DATA_OFFSET,REG(rdx)),REG(xmm0)) ucomisd TW(QOF(FLONUM_DATA_OFFSET,REG(rbx)),REG(xmm0)) - $3 asm_generic_return_sharp_t + $4 asm_generic_return_sharp_t jmp asm_generic_return_sharp_f asm_generic_$1_fix: @@ -835,11 +835,11 @@ define_binary_operation(subtract,28,sub,subsd) define_binary_operation_with_setup(multiply,29,imul,mulsd, `OP(and,q) TW(rmask,REG(rax))') -# define_binary_predicate(name,index,jcc) +# define_binary_predicate(name,index,fixjcc,flojcc) # define_binary_predicate( $1, $2, $3) -define_binary_predicate(equal,24,je) -define_binary_predicate(greater,25,jg) -define_binary_predicate(less,27,jl) +define_binary_predicate(equal,24,je,je) +define_binary_predicate(greater,25,jg,ja) +define_binary_predicate(less,27,jl,jb) #define_jump_indirection(generic_decrement,22) #define_jump_indirection(generic_divide,23)