diff --git a/compiler/rt/insts.lisp b/compiler/rt/insts.lisp
index 3b98222d4ce15108b48eaacbf0cefd12cd621df7..510ba7b470c3ea45ebb12bacbe4609f8bbe40592 100644
--- a/compiler/rt/insts.lisp
+++ b/compiler/rt/insts.lisp
@@ -262,6 +262,10 @@
      (r2 :argument register)
      (r3 :same-as r2)
      (i :argument (signed-byte 16)))
+  (d (op :constant #xC8)
+     (r2 :argument register)
+     (r3 :argument (integer 0 0))
+     (i :argument (signed-byte 16)))
   (d (op :constant #xC8)
      (r2 :argument register)
      (r3 :argument address-register)
@@ -557,7 +561,7 @@
     ((unsigned-byte 4)
      (inst lis reg value))
     ((signed-byte 16)
-     (inst cal reg value))
+     (inst cal reg 0 value))
     ((unsigned-byte 16)
      (inst cal16 reg value))
     ((or (signed-byte 32) (unsigned-byte 32))
@@ -578,7 +582,7 @@
     ((unsigned-byte 4)
      (inst lis reg value))
     ((signed-byte 16)
-     (inst cal reg value))
+     (inst cal reg 0 value))
     ((unsigned-byte 16)
      (inst cal16 reg value))
     ((or (signed-byte 32) (unsigned-byte 32))