diff options
author | Mike Pavone <pavone@retrodev.com> | 2014-06-23 13:12:04 -0400 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2014-06-23 13:12:04 -0400 |
commit | 8a7f8bc09c88e9446d475127a82df23a1dcb0c75 (patch) | |
tree | 72f8e44eb911c9a33517ebe28689d93854ea3cd8 | |
parent | f1a97be9f7d1a939b3b1920c1764bf872edef10f (diff) |
Ensure proper stack alignment when the Z80 calls into C code. This fixes a crash in optimized builds on OSX
-rw-r--r-- | zruntime.S | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -150,7 +150,15 @@ z80_read_ym2612: call z80_save_context mov %r13w, %di push %rsi + test $8, %rsp + jnz 0f call z80_read_ym + jmp 1f +0: + sub $8, %rsp + call z80_read_ym + add $8, %rsp +1: pop %rsi mov %al, %r13b call z80_load_context @@ -196,7 +204,15 @@ z80_write_ym2612: call z80_save_context mov %r14w, %di mov %r13b, %dl + test $8, %rsp + jnz 0f + call z80_write_ym + jmp 1f +0: + sub $8, %rsp call z80_write_ym + add $8, %rsp +1: mov %rax, %rsi jmp z80_load_context z80_write_bank_reg: @@ -219,7 +235,15 @@ z80_write_vdp: call z80_save_context mov %r14w, %di mov %r13b, %dl + test $8, %rsp + jnz 0f + call z80_vdp_port_write + jmp 1f +0: + sub $8, %rsp call z80_vdp_port_write + add $8, %rsp +1: mov %rax, %rsi jmp z80_load_context |