Index: /branches/arm/level-0/ARM/arm-bignum.lisp
===================================================================
--- /branches/arm/level-0/ARM/arm-bignum.lisp	(revision 13943)
+++ /branches/arm/level-0/ARM/arm-bignum.lisp	(revision 13944)
@@ -180,12 +180,14 @@
   (ldrne imm2 (:@ b imm2))
   (ldr temp0 (:@ vsp (:$ borrow)))
+  
   (unbox-fixnum imm0 temp0)
-  (subs imm0 imm0 (:$ -1))
+  (subs imm0 imm0 (:$ 1))
   (ldr temp0 (:@ vsp (:$ r)))
   (ldr temp1 (:@ vsp (:$ k)))
   (add vsp vsp (:$ 16))  
-  (sbcs imm0 imm2 imm1)
+  (sbcs imm0 imm1 imm2)
   (add imm1 temp1 (:$ arm::misc-data-offset))
   (str imm0 (:@ temp0 imm1))
+  (mov imm0 (:$ 0))
   (adc imm0 imm0 (:$ 0))
   (box-fixnum arg_z imm0)
@@ -306,16 +308,14 @@
         (b imm1)
         (temp imm0)
-        (c imm2)
-        (rzero temp2))
-    (mov rzero (:$ 0))
+        (c imm2))
     (ldr temp0 (:@ vsp (:$ a-h)))
     (ldr temp1 (:@ vsp (:$ a-l)))
     (compose-digit b b-h b-l)
     (unbox-fixnum c borrow-in)
-    (mov temp (:$ -1))
-    (adds temp c temp)
+    (adds temp c (:$ -1))
     (compose-digit a temp0 temp1)
-    (rsbs a b a)
-    (adc c rzero rzero)
+    (sbcs a a b)
+    (mov c (:$ 0))
+    (adc c c c)
     (box-fixnum c c)
     (digit-h temp0 a)
@@ -877,6 +877,6 @@
     (mov save-rcontext rcontext)
     (ldr y1 (:@ vsp (:$ guess-h)))
-    (ldr y2 (:@ vsp (:$ guess-l)))
-    (compose-digit guess y1 y2)
+    (ldr m (:@ vsp (:$ guess-l)))
+    (compose-digit guess y1 m)
     (mov tem (:lsl yidx (:$ arm::fixnumshift)))
     (add tem tem (:$ (ash arm::misc-data-offset arm::fixnumshift)))
