(define-vop (alloc-number-stack-space)
(:info amount)
(:results (result :scs (sap-reg any-reg)))
+ (:result-types system-area-pointer)
(:generator 0
(aver (location= result esp-tn))
(unless (zerop amount)
(:info amount)
#!+sb-thread (:temporary (:sc unsigned-reg) temp)
(:results (result :scs (sap-reg any-reg)))
+ (:result-types system-area-pointer)
#!+sb-thread
(:generator 0
(aver (not (location= result esp-tn)))
(let ((delta (logandc2 (+ amount 3) 3)))
(inst mov temp
(make-ea-for-symbol-tls-index *alien-stack*))
- (inst fs-segment-prefix)
- (inst sub (make-ea :dword :base temp) delta)))
+ (inst sub (make-ea :dword :base temp) delta :fs)))
(load-tl-symbol-value result *alien-stack*))
#!-sb-thread
(:generator 0
(let ((delta (logandc2 (+ amount 3) 3)))
(inst mov temp
(make-ea-for-symbol-tls-index *alien-stack*))
- (inst fs-segment-prefix)
- (inst add (make-ea :dword :base temp) delta))))
+ (inst add (make-ea :dword :base temp) delta :fs))))
#!-sb-thread
(:generator 0
(unless (zerop amount)
;;; that GC won't move them while foreign functions go to work.
(define-vop (touch-object)
(:translate touch-object)
- (:args (object :scs (descriptor-reg)))
+ (:args (object))
(:ignore object)
(:policy :fast-safe)
(:arg-types t)