+#!+sb-thread
+(defknown current-thread-offset-sap ((unsigned-byte 32))
+ 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 fs-segment-prefix)
+ (inst mov sap (make-ea :dword :disp 0 :index n :scale 4))))
+