Mercurial > repos > blastem
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: |