Index: /trunk/source/level-0/ARM/arm-clos.lisp
===================================================================
--- /trunk/source/level-0/ARM/arm-clos.lisp	(revision 14282)
+++ /trunk/source/level-0/ARM/arm-clos.lisp	(revision 14283)
@@ -87,16 +87,15 @@
   (header-length imm1 imm0)
   (cmp arg_x imm1)
+  (movhs arg_x (:$ 0))
   (add imm0 arg_x (:$ arm::misc-data-offset))
-  (bhs @missing)
   (ldr imm1 (:@ temp1 imm0))
-  (cmp imm1 (:$ 0))
-  (add imm1 imm1 (:$ arm::misc-data-offset))
-  (beq @missing)
+  (movs imm1 (:lsl imm1 (:$ arm::fixnumshift)))
+  (add imm1 imm1 (:$ arm::misc-data-offset))
   @have-scaled-table-index
-  (ldr arg_x (:@ nfn 'class))
-  (ldr nfn (:@ nfn '%maybe-std-slot-value-using-class))
-  (ldr arg_z (:@ temp0 imm1))
-  (set-nargs 3)
-  (ldr pc (:@ nfn (:$ arm::function.entrypoint)))
+  (ldrne arg_x (:@ nfn 'class))
+  (ldrne nfn (:@ nfn '%maybe-std-slot-value-using-class))
+  (ldrne arg_z (:@ temp0 imm1))
+  (set-nargs 3)
+  (ldrne pc (:@ nfn (:$ arm::function.entrypoint)))
   @missing                              ; (%slot-id-ref-missing instance id)
   (ldr nfn (:@ nfn '%slot-id-ref-missing))
@@ -139,11 +138,11 @@
   (svref temp0 slot-id.index slot-id)
   (getvheader imm0 temp1)
-  (ldr temp0 (:@ nfn 'table))
   (header-length imm1 imm0)
   (cmp temp0 imm1)
   (add imm0 temp0 (:$ arm::misc-data-offset))
+  (ldr temp0 (:@ nfn 'table))
   (bhs @missing)
   (ldr imm1 (:@ temp1 imm0))
-  (cmp imm1 (:$ 0))
+  (movs imm1 (:lsl imm1 (:$ arm::fixnumshift)))
   (add imm1 imm1 (:$ arm::misc-data-offset))
   (beq @missing)
