comparison zruntime.S @ 252:63b9a500a00b

Implement retranslating code when written to. Possibly broken, need to fix some other bugs before a proper test.
author Mike Pavone <pavone@retrodev.com>
date Mon, 29 Apr 2013 21:46:48 -0700
parents d94e6cd5a8a5
children 3b34deba4ca0
comparison
equal deleted inserted replaced
251:4a7ac10ac2d9 252:63b9a500a00b
97 /* TODO: YM-2612, PSG/VDP */ 97 /* TODO: YM-2612, PSG/VDP */
98 ret 98 ret
99 z80_write_ram: 99 z80_write_ram:
100 and $0x1FFF, %r13 100 and $0x1FFF, %r13
101 mov %r14b, (%r11, %r13) 101 mov %r14b, (%r11, %r13)
102 mov %r13d, %r14d
103 shr $7, %r14d
104 bt %r14d, 152(%rsi)
105 jnc not_code
106 call z80_save_context
107 mov %r13d, %edi
108 call z80_handle_code_write
109 mov %rax, %rsi
110 not_code:
102 ret 111 ret
103 z80_write_bank: 112 z80_write_bank:
104 and $0x7FFF, %r13 113 and $0x7FFF, %r13
105 cmp $0, %r12 114 cmp $0, %r12
106 je slow_bank_write 115 je slow_bank_write
165 add $1, %r13w 174 add $1, %r13w
166 shr $8, %r14w 175 shr $8, %r14w
167 call z_inccycles 176 call z_inccycles
168 call z80_write_byte_noinc 177 call z80_write_byte_noinc
169 ret 178 ret
179
180 .global z80_retrans_stub
181 z80_retrans_stub:
182 call z80_save_context
183 mov %r13d, %edi
184 push %rsi
185 call z80_retranslate_inst
186 pop %rsi
187 mov %rax, %r13
188 call z80_load_context
189 jmp *%r13
170 190
171 .global z80_native_addr 191 .global z80_native_addr
172 z80_native_addr: 192 z80_native_addr:
173 call z80_save_context 193 call z80_save_context
174 push %rsi 194 push %rsi