Mercurial > repos > blastem
diff runtime.S @ 343:467bfa17004a
Mostly working runtime generation of memory map read/write functions
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 18 May 2013 11:44:42 -0700 |
parents | 146c87616b05 |
children | b46771135442 |
line wrap: on
line diff
--- a/runtime.S Thu May 16 09:37:53 2013 -0700 +++ b/runtime.S Sat May 18 11:44:42 2013 -0700 @@ -5,12 +5,16 @@ cmp 84(%rsi), %eax jb skip_sync do_sync: + push %rcx + push %rdi call m68k_save_context mov %rsi, %rdi xor %esi, %esi call sync_components mov %rax, %rsi call m68k_load_context + pop %rdi + pop %rcx skip_sync: ret @@ -271,10 +275,11 @@ do_vdp_port_read: mov %ecx, %edi call m68k_save_context + push %rsi call vdp_port_read - mov %rax, %rsi + pop %rsi + mov %ax, %cx call m68k_load_context - mov 136(%rsi), %cx ret do_io_write: @@ -289,10 +294,11 @@ mov %ecx, %edi and $0x1FFFF, %edi call m68k_save_context + push %rsi call io_read - mov %rax, %rsi + pop %rsi + mov %al, %cl call m68k_load_context - mov 136(%rsi), %cl ret do_io_write_w: @@ -307,10 +313,11 @@ mov %ecx, %edi and $0x1FFFF, %edi call m68k_save_context + push %rsi call io_read_w - mov %rax, %rsi + pop %rsi + mov %ax, %cx call m68k_load_context - mov 136(%rsi), %cx ret bad_access_msg: @@ -479,8 +486,7 @@ add $4, %eax ret do_limit: - push %rcx - push %rdi + call handle_cycle_limit pop %rdi pop %rcx