Fix make-array transforms.
[sbcl.git] / src / code / sc-offset.lisp
index 001367c..29c8636 100644 (file)
 ;;;; We represent the place where some value is stored with a SC-OFFSET,
 ;;;; which is the SC number and offset encoded as an integer.
 
-(defconstant-eqx sc-offset-scn-byte (byte 5 0) #'equalp)
-(defconstant-eqx sc-offset-offset-byte (byte 22 5) #'equalp)
+;;;; FIXME: this layout is hardcoded in some .S files,
+;;;; undefined_tramp in at least mips/ppc/sparc-assem.S uses it.
+;;;; Ideally, it shouldn't be hardcoded.
+(defconstant-eqx sc-offset-scn-byte (byte 6 0) #'equalp)
+(defconstant-eqx sc-offset-offset-byte (byte 21 6) #'equalp)
 (def!type sc-offset () '(unsigned-byte 27))
 
 (defmacro make-sc-offset (scn offset)
   `(dpb ,scn sc-offset-scn-byte
-       (dpb ,offset sc-offset-offset-byte 0)))
+        (dpb ,offset sc-offset-offset-byte 0)))
 
 (defmacro sc-offset-scn (sco) `(ldb sc-offset-scn-byte ,sco))
 (defmacro sc-offset-offset (sco) `(ldb sc-offset-offset-byte ,sco))