`(inst ldl ,reg
(+ (static-symbol-offset ',symbol)
(ash symbol-value-slot word-shift)
- (- other-pointer-type))
+ (- other-pointer-lowtag))
null-tn))
(defmacro store-symbol-value (reg symbol)
`(inst stl ,reg
(+ (static-symbol-offset ',symbol)
(ash symbol-value-slot word-shift)
- (- other-pointer-type))
+ (- other-pointer-lowtag))
null-tn))
(defmacro load-type (target source &optional (offset 0))
(defmacro lisp-jump (function lip)
"Jump to the lisp function FUNCTION. LIP is an interior-reg temporary."
`(progn
- (inst lda ,lip (- (ash sb!vm:function-code-offset sb!vm:word-shift)
- sb!vm:function-pointer-type)
+ (inst lda ,lip (- (ash sb!vm:simple-fun-code-offset sb!vm:word-shift)
+ sb!vm:fun-pointer-lowtag)
,function)
(move ,function code-tn)
(inst jsr zero-tn ,lip 1)))
"Return to RETURN-PC. LIP is an interior-reg temporary."
`(progn
(inst lda ,lip
- (- (* (1+ ,offset) word-bytes) other-pointer-type)
+ (- (* (1+ ,offset) word-bytes) other-pointer-lowtag)
,return-pc)
,@(when frob-code
`((move ,return-pc code-tn)))
"Emit a return-pc header word. LABEL is the label to use for this
return-pc."
`(progn
- (align lowtag-bits)
+ (align n-lowtag-bits)
(emit-label ,label)
(inst lra-header-word)))
\f
;;;; storage allocation
-;;; Do stuff to allocate an other-pointer object of fixed Size with a
-;;; single word header having the specified Type-Code. The result is
-;;; placed in Result-TN, Flag-Tn must be wired to NL3-OFFSET, and
+;;; Do stuff to allocate an other-pointer object of fixed SIZE with a
+;;; single word header having the specified WIDETAG value. The result is
+;;; placed in RESULT-TN, Flag-Tn must be wired to NL3-OFFSET, and
;;; Temp-TN is a non- descriptor temp (which may be randomly used by
;;; the body.) The body is placed inside the PSEUDO-ATOMIC, and
;;; presumably initializes the object.
-(defmacro with-fixed-allocation ((result-tn temp-tn type-code size)
+(defmacro with-fixed-allocation ((result-tn temp-tn widetagsize)
&body body)
`(pseudo-atomic (:extra (pad-data-block ,size))
- (inst bis alloc-tn other-pointer-type ,result-tn)
- (inst li (logior (ash (1- ,size) type-bits) ,type-code) ,temp-tn)
- (storew ,temp-tn ,result-tn 0 other-pointer-type)
+ (inst bis alloc-tn other-pointer-lowtag ,result-tn)
+ (inst li (logior (ash (1- ,size) n-widetag-bits) ,widetag) ,temp-tn)
+ (storew ,temp-tn ,result-tn 0 other-pointer-lowtag)
,@body))
-
-
\f
-;;;; Error Code
-
+;;;; error code
(defvar *adjustable-vectors* nil)