;; Conditionally insert a conditional trap:
(when step-instrumenting
;; Get the symbol-value of SB!IMPL::*STEPPING*
- (loadw stepping
- null-tn
- (+ symbol-value-slot
- (truncate (static-symbol-offset 'sb!impl::*stepping*)
- n-word-bytes))
- other-pointer-lowtag)
+ #!-sb-thread
+ (load-symbol-value stepping sb!impl::*stepping*)
+ #!+sb-thread
+ (loadw stepping thread-base-tn thread-stepping-slot)
(inst cmpw stepping null-tn)
;; If it's not null, trap.
(inst beq step-done-label)
(:vop-var vop)
(:generator 3
;; Get the symbol-value of SB!IMPL::*STEPPING*
- (loadw stepping
- null-tn
- (+ symbol-value-slot
- (truncate (static-symbol-offset 'sb!impl::*stepping*)
- n-word-bytes))
- other-pointer-lowtag)
+ #!-sb-thread
+ (load-symbol-value stepping sb!impl::*stepping*)
+ #!+sb-thread
+ (loadw stepping thread-base-tn thread-stepping-slot)
(inst cmpw stepping null-tn)
;; If it's not null, trap.
(inst beq DONE)
'(
#!+gencgc *restart-lisp-function*
+ ;; Swiped from x86-64 thread implementation.
+ #!+sb-thread *stop-for-gc-pending*
+ #!+sb-thread *free-tls-index*
+ #!+sb-thread *tls-index-lock*
+
;; CLH: 20060210 Taken from x86-64/parms.lisp per JES' suggestion
;; Needed for callbacks to work across saving cores. see
;; ALIEN-CALLBACK-ASSEMBLER-WRAPPER in c-call.lisp for gory
(:generator 1
(inst unimp pending-interrupt-trap)))
+#!+sb-thread
+(defknown current-thread-offset-sap ((unsigned-byte 64))
+ system-area-pointer (flushable))
+
+#!+sb-thread
+(define-vop (current-thread-offset-sap)
+ (:results (sap :scs (sap-reg)))
+ (:result-types system-area-pointer)
+ (:translate current-thread-offset-sap)
+ (:args (n :scs (unsigned-reg) :target sap))
+ (:arg-types unsigned-num)
+ (:policy :fast-safe)
+ (:generator 2
+ (inst slwi n n word-shift)
+ (inst lwzx sap thread-base-tn n)))
+
(define-vop (halt)
(:generator 1
(inst unimp halt-trap)))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.41.31"
+"1.0.41.32"