X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fsystem.lisp;h=429116490b52d7334e54c5428fba21360605f7bb;hb=079ef9dad558ca07cb8178ef428bf738112174fa;hp=803c580dec9610220546aa6705280b733ce5cdc5;hpb=e365f2f7a9c66d307b48fee70778f4eaa84bdcc0;p=sbcl.git diff --git a/src/compiler/x86/system.lisp b/src/compiler/x86/system.lisp index 803c580..4291164 100644 --- a/src/compiler/x86/system.lisp +++ b/src/compiler/x86/system.lisp @@ -274,25 +274,21 @@ (:generator 1 (inst break pending-interrupt-trap))) +#!+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) #!+sb-thread :target #!+sb-thread sap)) - #!-sb-thread (:temporary (:sc unsigned-reg :target sap) temp) + (:args (n :scs (unsigned-reg) :target sap)) (:arg-types unsigned-num) (:policy :fast-safe) - #!+sb-thread (:generator 2 (inst fs-segment-prefix) - (inst mov sap (make-ea :dword :disp 0 :index n :scale 4))) - #!-sb-thread - (:generator 2 - (inst mov temp (make-fixup (extern-alien-name "all_threads") :foreign)) - (inst mov sap (make-ea :dword :base temp :index n :scale 4)))) + (inst mov sap (make-ea :dword :disp 0 :index n :scale 4)))) (define-vop (halt) (:generator 1