Mercurial > repos > blastem
comparison backend_x86.c @ 590:ea80559c67cb
WIP effort to update z80 core for code gen changes
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 14 Dec 2014 16:45:23 -0800 |
parents | 2dde38c1744f |
children | 5ef3fe516da9 |
comparison
equal
deleted
inserted
replaced
589:2dde38c1744f | 590:ea80559c67cb |
---|---|
26 jcc(code, CC_NC, jmp_off+1); | 26 jcc(code, CC_NC, jmp_off+1); |
27 call(code, opts->handle_cycle_limit); | 27 call(code, opts->handle_cycle_limit); |
28 *jmp_off = code->cur - (jmp_off+1); | 28 *jmp_off = code->cur - (jmp_off+1); |
29 } | 29 } |
30 | 30 |
31 code_ptr gen_mem_fun(cpu_options * opts, memmap_chunk * memmap, uint32_t num_chunks, ftype fun_type) | 31 code_ptr gen_mem_fun(cpu_options * opts, memmap_chunk * memmap, uint32_t num_chunks, ftype fun_type, code_ptr *after_inc) |
32 { | 32 { |
33 code_info *code = &opts->code; | 33 code_info *code = &opts->code; |
34 code_ptr start = code->cur; | 34 code_ptr start = code->cur; |
35 check_cycles(opts); | 35 check_cycles(opts); |
36 cycles(opts, opts->bus_cycles); | 36 cycles(opts, opts->bus_cycles); |
37 if (after_inc) { | |
38 *after_inc = code->cur; | |
39 } | |
37 if (opts->address_size == SZ_D && opts->address_mask < 0xFFFFFFFF) { | 40 if (opts->address_size == SZ_D && opts->address_mask < 0xFFFFFFFF) { |
38 and_ir(code, opts->address_mask, opts->scratch1, SZ_D); | 41 and_ir(code, opts->address_mask, opts->scratch1, SZ_D); |
39 } | 42 } |
40 code_ptr lb_jcc = NULL, ub_jcc = NULL; | 43 code_ptr lb_jcc = NULL, ub_jcc = NULL; |
41 uint8_t is_write = fun_type == WRITE_16 || fun_type == WRITE_8; | 44 uint8_t is_write = fun_type == WRITE_16 || fun_type == WRITE_8; |