X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fsap.lisp;h=4ff8c12f56f0a64e895ea651f9aefa5d7350fa09;hb=1540c1c1d517c58fa9a41629beb65cdce7dfafb6;hp=f248b3ad9347000238421219f5bd1fdb17d59703;hpb=7d10bcf57926aa6709eeb2e09ca447af9e96f141;p=sbcl.git diff --git a/src/compiler/x86/sap.lisp b/src/compiler/x86/sap.lisp index f248b3a..4ff8c12 100644 --- a/src/compiler/x86/sap.lisp +++ b/src/compiler/x86/sap.lisp @@ -225,7 +225,9 @@ (def-system-ref-and-set sb!c::signed-sap-ref-32-with-offset sb!c::%set-signed-sap-ref-32-with-offset signed-reg signed-num :dword t) (def-system-ref-and-set sb!c::sap-ref-sap-with-offset sb!c::%set-sap-ref-sap-with-offset - sap-reg system-area-pointer :dword)) + sap-reg system-area-pointer :dword) + (def-system-ref-and-set sb!c::sap-ref-lispobj-with-offset sb!c::%set-sap-ref-lispobj-with-offset + descriptor-reg * :dword)) ;;;; SAP-REF-DOUBLE @@ -469,23 +471,3 @@ (inst add sap (- (* vector-data-offset n-word-bytes) other-pointer-lowtag)))) - -;;; Transforms for 64-bit SAP accessors. - -(deftransform sap-ref-64 ((sap offset) (* *)) - '(logior (sap-ref-32 sap offset) - (ash (sap-ref-32 sap (+ offset 4)) 32))) - -(deftransform signed-sap-ref-64 ((sap offset) (* *)) - '(logior (sap-ref-32 sap offset) - (ash (signed-sap-ref-32 sap (+ offset 4)) 32))) - -(deftransform %set-sap-ref-64 ((sap offset value) (* * *)) - '(progn - (%set-sap-ref-32 sap offset (logand value #xffffffff)) - (%set-sap-ref-32 sap (+ offset 4) (ash value -32)))) - -(deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *)) - '(progn - (%set-sap-ref-32 sap offset (logand value #xffffffff)) - (%set-signed-sap-ref-32 sap (+ offset 4) (ash value -32))))