diff --git a/src/compiler/x86/sap.lisp b/src/compiler/x86/sap.lisp index a01112e731b0cdeefe4064c12828893f8bd0df4a..bec24be84f75b088a16a0d47a2cf0327bf98c77b 100644 --- a/src/compiler/x86/sap.lisp +++ b/src/compiler/x86/sap.lisp @@ -186,34 +186,24 @@ (:args (sap :scs (sap-reg)) (offset :scs (signed-reg))) (:arg-types system-area-pointer signed-num) - ,@(unless (eq size :dword) - `((:temporary (:sc ,temp-sc :from (:eval 0) :to (:eval 1)) - temp))) (:results (result :scs (,sc))) (:result-types ,type) (:generator 5 - (inst mov ,(if (eq size :dword) 'result 'temp) - (make-ea ,size :base sap :index offset)) - ,@(unless (eq size :dword) - `((inst ,(if signed 'movsx 'movzx) - result temp))))) + (inst ,(if (eq size :dword) 'mov (if signed 'movsx 'movzx)) + result + (make-ea ,size :base sap :index offset)))) (define-vop (,ref-name-c) (:translate ,ref-name) (:policy :fast-safe) (:args (sap :scs (sap-reg))) (:arg-types system-area-pointer (:constant (signed-byte 32))) (:info offset) - ,@(unless (eq size :dword) - `((:temporary (:sc ,temp-sc :from (:eval 0) :to (:eval 1)) - temp))) (:results (result :scs (,sc))) (:result-types ,type) (:generator 4 - (inst mov ,(if (eq size :dword) 'result 'temp) - (make-ea ,size :base sap :disp offset)) - ,@(unless (eq size :dword) - `((inst ,(if signed 'movsx 'movzx) - result temp))))) + (inst ,(if (eq size :dword) 'mov (if signed 'movsx 'movzx)) + result + (make-ea ,size :base sap :disp offset)))) (define-vop (,set-name) (:translate ,set-name) (:policy :fast-safe)