-(defknown current-thread-offset-sap ((unsigned-byte 32))
- system-area-pointer (flushable))
-
-(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) ))
- (:temporary (:sc unsigned-reg :target sap) temp1)
- (:temporary (:sc unsigned-reg) temp2)
- (:arg-types unsigned-num)
- (:policy :fast-safe)
- (:generator 3
- (inst slwi n temp1 2)
- (inst lr temp2 (make-fixup (extern-alien-name "all_threads") :foreign))
- (inst lwzx sap temp1 temp2)))
-