X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Falpha%2Fsystem.lisp;h=a57b8b23b3546ab4cd8f6d3cc8aa7d5326f25345;hb=b63c4fb9b98fa8188e17ba926e150ba417a74635;hp=f6d33053c4218eedb21b4e655dace4fe93234c94;hpb=29a9ccc860532b32c566aec095f570e999a9c52c;p=sbcl.git diff --git a/src/compiler/alpha/system.lisp b/src/compiler/alpha/system.lisp index f6d3305..a57b8b2 100644 --- a/src/compiler/alpha/system.lisp +++ b/src/compiler/alpha/system.lisp @@ -41,7 +41,7 @@ (inst blbs object done) ;; Pick off fixnums. - (inst and object 3 result) + (inst and object fixnum-tag-mask result) (inst beq result done) ;; Must be an other immediate. @@ -151,8 +151,8 @@ (inst sll val n-widetag-bits temp) (inst bis temp (tn-value type) res)) (t - (inst sra type 2 temp) - (inst sll val (- n-widetag-bits 2) res) + (inst sra type n-fixnum-tag-bits temp) + (inst sll val (- n-widetag-bits n-fixnum-tag-bits) res) (inst bis res temp res))))) @@ -215,10 +215,10 @@ ;;;; other random VOPs. -(defknown sb!unix::do-pending-interrupt () (values)) -(define-vop (sb!unix::do-pending-interrupt) +(defknown sb!unix::receive-pending-interrupt () (values)) +(define-vop (sb!unix::receive-pending-interrupt) (:policy :fast-safe) - (:translate sb!unix::do-pending-interrupt) + (:translate sb!unix::receive-pending-interrupt) (:generator 1 (inst gentrap pending-interrupt-trap))) @@ -226,6 +226,10 @@ (define-vop (halt) (:generator 1 (inst gentrap halt-trap))) + +(define-vop (istream-memory-barrier) + (:generator 1 + (inst imb))) ;;;; dynamic vop count collection support