Index: /trunk/source/compiler/ARM/arm-vinsns.lisp
===================================================================
--- /trunk/source/compiler/ARM/arm-vinsns.lisp	(revision 15119)
+++ /trunk/source/compiler/ARM/arm-vinsns.lisp	(revision 15120)
@@ -377,5 +377,6 @@
      ((temp :u32)))
   (ldr temp (:@ v (:$ (:apply + arm::misc-data-offset (:apply ash (:apply ash idx -5) arm::word-shift)))))
-  (mov temp (:ror temp (:$ (:apply logand #x1f (:apply - (:apply logand idx #x1f) arm::fixnumshift)))))
+  ((:not (:pred = 0 (:apply logand #x1f (:apply - (:apply logand idx #x1f) arm::fixnumshift))))
+   (mov temp (:ror temp (:$ (:apply logand #x1f (:apply - (:apply logand idx #x1f) arm::fixnumshift))))))
   (and dest temp (:$ arm::fixnumone)))
 
@@ -3777,5 +3778,5 @@
      ((code :u32const)))
   (movw dest (:$ (:apply logior (:apply ash (:apply logand code #xff) arm::charcode-shift) arm::subtag-character)))
-  ((:pred > code 256)
+  ((:pred >= code 256)
    (movt dest (:$ (:apply ash code -8)))))
 
