Index: /branches/ia32/level-0/X86/X8632/x8632-bignum.lisp
===================================================================
--- /branches/ia32/level-0/X86/X8632/x8632-bignum.lisp	(revision 7903)
+++ /branches/ia32/level-0/X86/X8632/x8632-bignum.lisp	(revision 7904)
@@ -34,7 +34,7 @@
 (defx8632lapfunction %digit-zerop ((x arg_z))
   (svref x 0 imm0)
-  (xorl (% arg_z) (% arg_z))
+  (movl ($ x8632::nil-value) (% arg_z))
   (testl (% imm0) (% imm0))
-  (cmovnz ($ x8632::nil-value) (% arg_z))
+  (cmovel (% imm0) (% arg_z))
   (single-value-return))
 
@@ -76,7 +76,7 @@
 
 (defx8632lapfunction %digit-0-or-plusp ((bignum arg_y) (idx arg_z))
-  (xorl (% imm0) (% imm0))
   (testl (@ x8632::misc-data-offset (% bignum) (% idx)) (% imm0))
-  (cmovbl ($ x8632::nil-value) (% arg_z))
+  (movl ($ x8632::nil-value) (% temp0))
+  (cmovbl (% temp0) (% arg_z))
   (single-value-return))
 
@@ -84,5 +84,6 @@
 (defx8632lapfunction %bignum-oddp ((bignum arg_z))
   (testb ($ 1) (@ x8632::misc-data-offset (% bignum)))
-  (cmovzl ($ x8632::nil-value) (% arg_z))
+  (movl ($ x8632::nil-value) (% temp0))
+  (cmovel (% temp0) (% arg_z))
   (single-value-return))
 
@@ -91,5 +92,6 @@
   (movl (@ (- 4 x8632::misc-data-offset) (% bignum)) (% imm0))
   (testl ($ #x8000000) (% imm0))
-  (cmovnzl ($ x8632::nil-value) (% arg_z))
+  (movl ($ x8632::nil-value) (% temp0))
+  (cmovnel (% temp0) (% arg_z))
   (single-value-return))
 
@@ -101,7 +103,8 @@
 (defx8632lapfunction bignum-minusp ((bignum arg_z))
   (vector-length bignum imm0)
-  (movl (@ (- 4 x8632::misc-data-offset) (% bignum) (% imm0)))
+  (movl (@ (- 4 x8632::misc-data-offset) (% bignum) (% imm0)) (% imm0))
   (testl ($ #x8000000) (% imm0))
-  (cmovzl ($ x8632::nil-value) (% arg_z))
+  (movl ($ x8632::nil-value) (% temp0))
+  (cmovel (% temp0) (% arg_z))
   (single-value-return))
 
@@ -132,8 +135,9 @@
   @add
   (adc (% temp0) (% imm0))
-  (cmovcl ($ fixnumone) (% arg_z))
   (movl (@ r (% esp)) (% temp0))
   (movl (@ k (% esp)) (% temp1))
   (movl (% imm0) (@ x8632::misc-data-offset (% temp0) (% temp1)))
+  (adc ($ 0) (% imm0))			;propagate carry flag
+  (box-fixnum imm0 arg_z)
   (mark-as-node temp0)
   (single-value-return 7))
@@ -164,8 +168,9 @@
   @sub
   (sbb (% imm0) (% temp0))
-  (cmovcl ($ fixnumone) (% arg_z))
   (movl (@ r (% esp)) (% temp0))
   (movl (@ k (% esp)) (% temp1))
   (movl (% imm0) (@ x8632::misc-data-offset (% temp0) (% temp1)))
+  (adc ($ 0) (% imm0))			;propagate carry flag
+  (box-fixnum imm0 arg_z)
   (mark-as-node temp0)
   (single-value-return 7))
