Mercurial > repos > blastem
diff z80_to_x86.c @ 282:7b8a49220e3b
Remove deferred address entries from abandoned translations inside z80_retrans_inst
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 04 May 2013 14:36:50 -0700 |
parents | 6be6056735a9 |
children | 61f5d88ea01a |
line wrap: on
line diff
--- a/z80_to_x86.c Fri May 03 21:22:36 2013 -0700 +++ b/z80_to_x86.c Sat May 04 14:36:50 2013 -0700 @@ -1567,10 +1567,12 @@ opts->code_end = dst_end = dst + size; opts->cur_code = dst; } + deferred_addr * orig_deferred = opts->deferred; uint8_t * native_end = translate_z80inst(&instbuf, dst, context, address); if ((native_end - dst) <= orig_size) { uint8_t * native_next = z80_get_native_address(context, address + after-inst); if (native_next && ((native_next == orig_start + orig_size) || (orig_size - (native_end - dst)) > 5)) { + remove_deferred_until(&opts->deferred, orig_deferred); native_end = translate_z80inst(&instbuf, orig_start, context, address); if (native_next == orig_start + orig_size && (native_next-native_end) < 2) { while (native_end < orig_start + orig_size) {