0.7.13.6
[sbcl.git] / src / compiler / x86 / insts.lisp
index 12cc5bf..b221393 100644 (file)
@@ -19,6 +19,8 @@
 (setf sb!disassem:*disassem-inst-alignment-bytes* 1)
 
 (deftype reg () '(unsigned-byte 3))
+
+(def!constant +default-operand-size+ :dword)
 \f
 (eval-when (#-sb-xc :compile-toplevel :load-toplevel :execute)
 
 \f
 ;;;; utilities
 
-(defconstant +operand-size-prefix-byte+ #b01100110)
-
-(defconstant +default-operand-size+ :dword)
+(def!constant +operand-size-prefix-byte+ #b01100110)
 
 (defun maybe-emit-operand-size-prefix (segment size)
   (unless (or (eq size :byte) (eq size +default-operand-size+))
      ((integerp src)
       (cond ((and (not (eq size :byte)) (<= -128 src 127))
             (emit-byte segment #b10000011)
-            (emit-ea segment dst opcode)
+            (emit-ea segment dst opcode allow-constants)
             (emit-byte segment src))
            ((accumulator-p dst)
             (emit-byte segment
             (emit-sized-immediate segment size src))
            (t
             (emit-byte segment (if (eq size :byte) #b10000000 #b10000001))
-            (emit-ea segment dst opcode)
+            (emit-ea segment dst opcode allow-constants)
             (emit-sized-immediate segment size src))))
      ((register-p src)
       (emit-byte segment
                     (lengths))
             (lengths 1)                ; the length byte
             (let* ((index 0)
-                   (error-number (sb!c::read-var-integer vector index)))
+                   (error-number (sb!c:read-var-integer vector index)))
               (lengths index)
               (loop
                 (when (>= index length)
                   (return))
                 (let ((old-index index))
-                  (sc-offsets (sb!c::read-var-integer vector index))
+                  (sc-offsets (sb!c:read-var-integer vector index))
                   (lengths (- index old-index))))
               (values error-number
                       (1+ length)