X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fsystem.lisp;h=c00907e5dc5a255ed0342d6be69dd3fa6351ddcc;hb=9510443d0bd00fcbd0213e07a5340e66d9ce7301;hp=ca691a8fbcab44320ae15b42b7dbd95cda2e5d4f;hpb=f866d5d986cc920a8823549df5045b8182e7d92d;p=sbcl.git diff --git a/src/compiler/x86/system.lisp b/src/compiler/x86/system.lisp index ca691a8..c00907e 100644 --- a/src/compiler/x86/system.lisp +++ b/src/compiler/x86/system.lisp @@ -267,8 +267,7 @@ (: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)))) + (inst mov sap (make-ea :dword :disp 0 :index n :scale 4) :fs))) (define-vop (halt) (:generator 1 @@ -330,14 +329,12 @@ (:result-types unsigned-num unsigned-num) (:generator 5 (inst xor eax eax) + ;; Intel docs seem quite consistent on only using CPUID before RDTSC, + ;; not both before and after. Go figure. (inst cpuid) (inst rdtsc) - (inst push edx) - (inst push eax) - (inst xor eax eax) - (inst cpuid) - (inst pop lo) - (inst pop hi))) + (move lo eax) + (move hi edx))) (defmacro with-cycle-counter (&body body) "Returns the primary value of BODY as the primary value, and the