- (inst lea eax (make-fixup (extern-alien-name "debug_print") :foreign))
- (inst call (make-fixup (extern-alien-name "call_into_c") :foreign))
- (inst add esp-tn word-bytes)
+ #!+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)