comparison runtime.S @ 86:3d3966c254b2

RTE doesn't crash the emulator anymore
author Mike Pavone <pavone@retrodev.com>
date Wed, 26 Dec 2012 18:20:23 -0800
parents 1db2a0b655d1
children 60b5c9e2f4e0
comparison
equal deleted inserted replaced
85:1db2a0b655d1 86:3d3966c254b2
266 jmp vdp_psg_w 266 jmp vdp_psg_w
267 267
268 .global m68k_write_long_lowfirst 268 .global m68k_write_long_lowfirst
269 m68k_write_long_lowfirst: 269 m68k_write_long_lowfirst:
270 push %rdi 270 push %rdi
271 push %rcx
271 add $2, %edi 272 add $2, %edi
272 call m68k_write_word 273 call m68k_write_word
274 pop %rcx
275 pop %rdi
273 shr $16, %ecx 276 shr $16, %ecx
274 pop %rdi
275 jmp m68k_write_word 277 jmp m68k_write_word
276 278
277 .global m68k_write_long_highfirst 279 .global m68k_write_long_highfirst
278 m68k_write_long_highfirst: 280 m68k_write_long_highfirst:
279 push %rdi 281 push %rdi
389 call exit 391 call exit
390 392
391 dyn_addr_msg: 393 dyn_addr_msg:
392 .asciz "Program needs dynamically calculated native address\n" 394 .asciz "Program needs dynamically calculated native address\n"
393 395
394 .global m68k_native_addr 396 .global m68k_native_addr_and_sync
395 m68k_native_addr: 397 m68k_native_addr_and_sync:
396 call m68k_save_context 398 call m68k_save_context
397 push %rcx 399 push %rcx
398 mov %rsi, %rdi 400 mov %rsi, %rdi
399 call sync_components 401 call sync_components
400 pop %rsi 402 pop %rsi
404 mov %rax, %rcx 406 mov %rax, %rcx
405 pop %rsi 407 pop %rsi
406 call m68k_load_context 408 call m68k_load_context
407 ret 409 ret
408 410
409 .global m68k_native_addr_and_sync 411 .global m68k_native_addr
410 m68k_native_addr_and_sync: 412 m68k_native_addr:
411 call m68k_save_context 413 call m68k_save_context
412 push %rsi 414 push %rsi
413 mov 144(%rsi), %rdi 415 mov 144(%rsi), %rdi
414 mov %ecx, %esi 416 mov %ecx, %esi
415 call get_native_address 417 call get_native_address