X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fshow.lisp;h=04b63e183d3e6bcc8c131a822d573e570594b7d0;hb=9b1fade83db8453b75b8c7380eb12ce41b5b889c;hp=5fb38b9b5976588754c66979a12b6d3f29f652a7;hpb=3d2165e67f9ad1443f6e7d8ad24810000b0436e8;p=sbcl.git diff --git a/src/compiler/x86/show.lisp b/src/compiler/x86/show.lisp index 5fb38b9..04b63e1 100644 --- a/src/compiler/x86/show.lisp +++ b/src/compiler/x86/show.lisp @@ -22,20 +22,26 @@ :from :eval :to (:result 0)) eax) - #!+darwin (:temporary (:sc unsigned-reg - :offset esi-offset) - prev-stack-pointer) + #!+darwin + (:temporary (:sc unsigned-reg + :offset esi-offset) + prev-stack-pointer) (:results (result :scs (descriptor-reg))) (:save-p t) (:generator 100 - ;; the stack should be 16-byte aligned on Darwin - #!-darwin (inst push object) - #!+darwin (progn (inst mov prev-stack-pointer esp-tn) - (inst sub esp-tn n-word-bytes) - (inst and esp-tn -16) - (storew object esp-tn)) + #!-darwin + (inst push object) + #!+darwin + (progn + ;; the stack should be 16-byte aligned on Darwin + (inst mov prev-stack-pointer esp-tn) + (inst sub esp-tn n-word-bytes) + (align-stack-pointer esp-tn) + (storew object esp-tn)) (inst lea eax (make-fixup "debug_print" :foreign)) (inst call (make-fixup "call_into_c" :foreign)) - #!-darwin (inst add esp-tn n-word-bytes) - #!+darwin (inst mov esp-tn prev-stack-pointer) + #!-darwin + (inst add esp-tn n-word-bytes) + #!+darwin + (inst mov esp-tn prev-stack-pointer) (move result eax)))