0.9.13.47: Thread safety miscellania
[sbcl.git] / src / compiler / x86 / insts.lisp
index f58b42a..e823a2a 100644 (file)
 ;;; Two byte instruction with an immediate byte argument.
 ;;;
 (sb!disassem:define-instruction-format (word-imm 24
-                                                 :default-printer '(:name :tab code))
-    (op :field (byte 16 0))
+                                     :default-printer '(:name :tab code))
+  (op :field (byte 16 0))
   (code :field (byte 8 16)))
 
 \f
        (stack
         ;; Convert stack tns into an index off of EBP.
         (let ((disp (- (* (1+ (tn-offset thing)) n-word-bytes))))
-          (cond ((< -128 disp 127)
+          (cond ((<= -128 disp 127)
                  (emit-mod-reg-r/m-byte segment #b01 reg #b101)
                  (emit-byte segment disp))
                 (t
     ;; Lisp (with (DESCRIBE 'BYTE-IMM-CODE)) than to definitively deduce
     ;; from first principles whether it's defined in some way that genesis
     ;; can't grok.
-    (case (byte-imm-code chunk dstate)
+    (case #-darwin (byte-imm-code chunk dstate)
+          #+darwin (word-imm-code chunk dstate)
       (#.error-trap
        (nt "error trap")
        (sb!disassem:handle-break-args #'snarf-error-junk stream dstate))