diff --git a/benchmarks/BUGS b/benchmarks/BUGS index f264169..2818eb5 100644 --- a/benchmarks/BUGS +++ b/benchmarks/BUGS @@ -3,7 +3,6 @@ * ray needs many fl procedures * quicksort needs bignum modulo. * scheme needs complex? and other stuff. -* simplex needs flpositive? * slatex needs string-ci=? * compiler needs string-downcase diff --git a/src/ikarus.boot b/src/ikarus.boot index 4fd9111..0d955b5 100644 Binary files a/src/ikarus.boot and b/src/ikarus.boot differ diff --git a/src/ikarus.intel-assembler.ss b/src/ikarus.intel-assembler.ss index a9a6e60..1e51a49 100644 --- a/src/ikarus.intel-assembler.ss +++ b/src/ikarus.intel-assembler.ss @@ -355,6 +355,8 @@ (CODE c (ModRM 2 /d a0 (IMM32 a1 ac)))] [(and (reg? a0) (reg? a1)) (CODE c (ModRM 1 /d '/4 (SIB 0 a0 a1 (IMM8 0 ac))))] + [(and (imm? a0) (imm? a1)) + (CODE c (ModRM 0 /d '/5 (IMM32*2 a0 a1 ac)))] [else (error 'CODE/digit "unhandled ~s ~s" a0 a1)])))] [else (error 'CODE/digit "unhandled ~s" dst)]))) diff --git a/src/ikarus.numerics.ss b/src/ikarus.numerics.ss index 03b7c50..fa140d5 100644 --- a/src/ikarus.numerics.ss +++ b/src/ikarus.numerics.ss @@ -1328,7 +1328,7 @@ (f (fl/ ac (car rest)) (cdr rest))))] [(x) (if (flonum? x) - (fl/ 1.0 x) + ($fl/ 1.0 x) (error 'fl/ "~s is not a flonum" x))])) (flcmp flfl= flfx= fxfl= flbn= bnfl= $fl=)