X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86-64%2Fsystem.lisp;h=7cb54a4548664328c7b100a30789e38833a67d1a;hb=78eea0607fb44f620a8192e173f91860d3622967;hp=1edf735b59671384a49035d25354a3a97ae099dd;hpb=a7ec2f1af6881c93585d97fb2fdcdfd98006f217;p=sbcl.git diff --git a/src/compiler/x86-64/system.lisp b/src/compiler/x86-64/system.lisp index 1edf735..7cb54a4 100644 --- a/src/compiler/x86-64/system.lisp +++ b/src/compiler/x86-64/system.lisp @@ -39,14 +39,14 @@ (inst cmp al-tn fun-pointer-lowtag) (inst jmp :e FUNCTION-PTR) - ;; Pick off structures and list pointers. - (inst test al-tn 1) - (inst jmp :ne DONE) - ;; Pick off fixnums. - (inst and al-tn fixnum-tag-mask) + (inst test al-tn fixnum-tag-mask) (inst jmp :e DONE) + ;; Pick off structures and list pointers. + (inst test al-tn 2) + (inst jmp :ne DONE) + ;; must be an other immediate (inst mov rax object) (inst jmp DONE) @@ -394,3 +394,9 @@ number of CPU cycles elapsed as secondary value. EXPERIMENTAL." (:policy :fast-safe) (:translate %data-dependency-barrier) (:generator 3)) + +(define-vop (pause) + (:translate spin-loop-hint) + (:policy :fast-safe) + (:generator 0 + (inst pause)))