X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fsystem.lisp;h=96ca14dcf2b0277d658c75a04774693585527662;hb=8c12bc813114d4bbfa9c05e450e013167ad6cca3;hp=f3a65a3e0d8b947a304bf7bba284227bb7282e7e;hpb=2e28fe9a277201b4b96f052794b8eeaaccf9aa95;p=sbcl.git diff --git a/src/compiler/x86/system.lisp b/src/compiler/x86/system.lisp index f3a65a3..96ca14d 100644 --- a/src/compiler/x86/system.lisp +++ b/src/compiler/x86/system.lisp @@ -85,9 +85,7 @@ (:result-types positive-fixnum) (:generator 6 (move eax type) - (inst mov - (make-ea :byte :base function :disp (- fun-pointer-lowtag)) - al-tn) + (storeb al-tn function 0 fun-pointer-lowtag) (move result eax))) (define-vop (get-header-data) @@ -240,10 +238,8 @@ (:temporary (:sc any-reg :from (:argument 0) :to :result) temp) (:results (result :scs (descriptor-reg))) (:generator 3 - (inst lea temp - (make-ea :byte :base new-self - :disp (- (ash simple-fun-code-offset word-shift) - fun-pointer-lowtag))) + (inst lea temp (make-ea-for-object-slot new-self simple-fun-code-offset + fun-pointer-lowtag)) (storew temp function simple-fun-self-slot fun-pointer-lowtag) (move result new-self))) @@ -293,6 +289,4 @@ (:args (count-vector :scs (descriptor-reg))) (:info index) (:generator 0 - (inst inc (make-ea-for-object-slot count-vector - (+ vector-data-offset index) - other-pointer-lowtag)))) + (inst inc (make-ea-for-vector-data count-vector :offset index))))