From: Matt Birkholz Date: Fri, 10 Oct 2014 23:39:22 +0000 (-0700) Subject: i386 flonums: Fix substitution of FLDZ,FUCOMP for FTST in 521ffb3. X-Git-Tag: mit-scheme-pucked-9.2.12~398^2~2 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=4ca9dbd244fa3d158a779a6ebf17e73a9b7f7e22;p=mit-scheme.git i386 flonums: Fix substitution of FLDZ,FUCOMP for FTST in 521ffb3. The branch instructions needed to be swapped. This caused compiled generic arithmetic to get e.g. (> x 0.) wrong, causing an overflow in float->integers when compiling runtime/arith.scm for the SVM. --- diff --git a/src/microcode/cmpauxmd/i386.m4 b/src/microcode/cmpauxmd/i386.m4 index ae640bfb9..bf538d6d3 100644 --- a/src/microcode/cmpauxmd/i386.m4 +++ b/src/microcode/cmpauxmd/i386.m4 @@ -1141,8 +1141,8 @@ asm_generic_$1_fail: IF387(`define_unary_operation(decrement,22,sub,fsubr) define_unary_operation(increment,26,add,fadd) -define_unary_predicate(negative,2a,jl,jb) -define_unary_predicate(positive,2c,jg,ja) +define_unary_predicate(negative,2a,jl,ja) +define_unary_predicate(positive,2c,jg,jb) define_unary_predicate(zero,2d,je,je) # define_binary_operation(name,index,fix*fix,flo*flo)