comparison zruntime.S @ 562:e13f4fd9cf6d

Ensure proper stack alignment when the Z80 calls into C code. This fixes a crash in optimized builds on OSX
author Mike Pavone <pavone@retrodev.com>
date Mon, 23 Jun 2014 13:12:04 -0400
parents 6b248602ab84
children
comparison
equal deleted inserted replaced
561:666adeba5a61 562:e13f4fd9cf6d
148 jmp z80_read_bank_cont 148 jmp z80_read_bank_cont
149 z80_read_ym2612: 149 z80_read_ym2612:
150 call z80_save_context 150 call z80_save_context
151 mov %r13w, %di 151 mov %r13w, %di
152 push %rsi 152 push %rsi
153 test $8, %rsp
154 jnz 0f
153 call z80_read_ym 155 call z80_read_ym
156 jmp 1f
157 0:
158 sub $8, %rsp
159 call z80_read_ym
160 add $8, %rsp
161 1:
154 pop %rsi 162 pop %rsi
155 mov %al, %r13b 163 mov %al, %r13b
156 call z80_load_context 164 call z80_load_context
157 ret 165 ret
158 166
194 z80_write_ym2612: 202 z80_write_ym2612:
195 and $0x3, %r14w 203 and $0x3, %r14w
196 call z80_save_context 204 call z80_save_context
197 mov %r14w, %di 205 mov %r14w, %di
198 mov %r13b, %dl 206 mov %r13b, %dl
207 test $8, %rsp
208 jnz 0f
199 call z80_write_ym 209 call z80_write_ym
210 jmp 1f
211 0:
212 sub $8, %rsp
213 call z80_write_ym
214 add $8, %rsp
215 1:
200 mov %rax, %rsi 216 mov %rax, %rsi
201 jmp z80_load_context 217 jmp z80_load_context
202 z80_write_bank_reg: 218 z80_write_bank_reg:
203 and $1, %r13w 219 and $1, %r13w
204 shr %r15w 220 shr %r15w
217 z80_write_vdp: 233 z80_write_vdp:
218 and $0xFF, %r14w 234 and $0xFF, %r14w
219 call z80_save_context 235 call z80_save_context
220 mov %r14w, %di 236 mov %r14w, %di
221 mov %r13b, %dl 237 mov %r13b, %dl
238 test $8, %rsp
239 jnz 0f
222 call z80_vdp_port_write 240 call z80_vdp_port_write
241 jmp 1f
242 0:
243 sub $8, %rsp
244 call z80_vdp_port_write
245 add $8, %rsp
246 1:
223 mov %rax, %rsi 247 mov %rax, %rsi
224 jmp z80_load_context 248 jmp z80_load_context
225 249
226 .global z80_read_word 250 .global z80_read_word
227 z80_read_word: 251 z80_read_word: