X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86-64%2Fdebug.lisp;h=ef6e0e29cbe190048e787f438548ffd796d1c62a;hb=b2ed34b667665e52609cf431c00179b136be450d;hp=ca3481e43b6078d21cddacdff9e9543e78488515;hpb=0d871fd7a98fc4af92a8b942a1154761466ad8c9;p=sbcl.git diff --git a/src/compiler/x86-64/debug.lisp b/src/compiler/x86-64/debug.lisp index ca3481e..ef6e0e2 100644 --- a/src/compiler/x86-64/debug.lisp +++ b/src/compiler/x86-64/debug.lisp @@ -43,7 +43,8 @@ (move temp offset) (inst neg temp) (inst mov result - (make-ea :qword :base sap :disp (- n-word-bytes) :index temp)))) + (make-ea :qword :base sap :disp (frame-byte-offset 0) :index temp + :scale (ash 1 (- word-shift n-fixnum-tag-bits)))))) (define-vop (read-control-stack-c) (:translate stack-ref) @@ -55,7 +56,7 @@ (:result-types *) (:generator 5 (inst mov result (make-ea :qword :base sap - :disp (- (* (1+ index) n-word-bytes)))))) + :disp (frame-byte-offset index))))) (define-vop (write-control-stack) (:translate %set-stack-ref) @@ -71,7 +72,9 @@ (move temp offset) (inst neg temp) (inst mov - (make-ea :qword :base sap :disp (- n-word-bytes) :index temp) value) + (make-ea :qword :base sap :disp (frame-byte-offset 0) :index temp + :scale (ash 1 (- word-shift n-fixnum-tag-bits))) + value) (move result value))) (define-vop (write-control-stack-c) @@ -84,8 +87,7 @@ (:results (result :scs (descriptor-reg))) (:result-types *) (:generator 5 - (inst mov (make-ea :qword :base sap - :disp (- (* (1+ index) n-word-bytes))) + (inst mov (make-ea :qword :base sap :disp (frame-byte-offset index)) value) (move result value))) @@ -120,9 +122,9 @@ (:translate sb!di::fun-code-header) (:variant fun-pointer-lowtag)) -(define-vop (make-lisp-obj) +(define-vop (%make-lisp-obj) (:policy :fast-safe) - (:translate sb!di::make-lisp-obj) + (:translate %make-lisp-obj) (:args (value :scs (unsigned-reg unsigned-stack) :target result)) (:arg-types unsigned-num) (:results (result :scs (descriptor-reg)