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