Index: /trunk/source/compiler/ARM/arm-vinsns.lisp
===================================================================
--- /trunk/source/compiler/ARM/arm-vinsns.lisp	(revision 14897)
+++ /trunk/source/compiler/ARM/arm-vinsns.lisp	(revision 14898)
@@ -1971,4 +1971,48 @@
   (b label))
 
+(define-arm-vinsn (cjmp :branch) (((reg :lisp))
+                                  ((reg :lisp)
+                                   (minval :s32const)
+                                   (maxval :u32const)
+                                   (default :label))
+                                  ((temp :s32)))
+  (tst reg (:$ arm::fixnummask))
+  (bne default)
+  ((:not (:pred zerop minval))
+   ((:pred arm::encode-arm-immediate minval)
+    (sub reg reg (:$ minval)))
+   ((:not (:pred arm::encode-arm-immediate minval))
+    ((:pred arm::encode-arm-immediate (:apply - minval))
+     (add reg reg (:$ (:apply - minval))))
+    ((:not (:pred arm::encode-arm-immediate (:apply - minval)))
+     ((:and (:pred >=  minval 0)
+            (:pred < minval #x10000))
+      (movw temp (:$ minval)))
+     ((:not (:and
+             (:pred >=  minval 0)
+             (:pred < minval #x10000)))
+      (movw temp (:$ (:apply logand #xffff minval)))
+      (movt temp (:$ (:apply ldb (byte 16 16) minval))))
+     (sub reg reg temp))))
+  ((:pred arm::encode-arm-immediate maxval)
+   (cmp reg (:$ maxval)))
+  ((:not (:pred arm::encode-arm-immediate maxval))
+   ((:pred arm::encode-arm-immediate (:apply lognot maxval))
+    (cmn reg (:$ (:apply lognot maxval))))
+   ((:not (:pred arm::encode-arm-immediate (:apply lognot maxval)))
+    ((:pred (< maxval #x10000))
+     (movw temp (:$ maxval)))
+    ((:not (:pred (< maxval #x10000)))
+     (movw temp (:$ (:apply logand #xffff maxval)))
+     (movt temp (:$ (:apply ldb (byte 16 16) maxval))))
+    (cmp reg temp)))
+  (bhi default)
+  (add arm::lr arm::pc reg)
+  (bx lr))
+            
+
+
+     
+                                   
 
 (define-arm-vinsn (cbranch-true :branch) (()
