comparison backend.h @ 1465:5d41d0574863

Preserve original address when retranslating instructions instead of switching to the lowest alias
author Michael Pavone <pavone@retrodev.com>
date Wed, 13 Sep 2017 21:06:25 -0700
parents b27d7bf1107e
children ded16f3d7eb4 1f745318f10a
comparison
equal deleted inserted replaced
1464:ffe45c5b8390 1465:5d41d0574863
96 uint32_t memmap_chunks; 96 uint32_t memmap_chunks;
97 uint32_t address_mask; 97 uint32_t address_mask;
98 uint32_t max_address; 98 uint32_t max_address;
99 uint32_t bus_cycles; 99 uint32_t bus_cycles;
100 uint32_t clock_divider; 100 uint32_t clock_divider;
101 uint32_t move_pc_off;
102 uint32_t move_pc_size;
101 int32_t mem_ptr_off; 103 int32_t mem_ptr_off;
102 int32_t ram_flags_off; 104 int32_t ram_flags_off;
103 uint8_t ram_flags_shift; 105 uint8_t ram_flags_shift;
104 uint8_t address_size; 106 uint8_t address_size;
105 uint8_t byte_swap; 107 uint8_t byte_swap;
121 void check_cycles_int(cpu_options *opts, uint32_t address); 123 void check_cycles_int(cpu_options *opts, uint32_t address);
122 void check_cycles(cpu_options * opts); 124 void check_cycles(cpu_options * opts);
123 void check_code_prologue(code_info *code); 125 void check_code_prologue(code_info *code);
124 void log_address(cpu_options *opts, uint32_t address, char * format); 126 void log_address(cpu_options *opts, uint32_t address, char * format);
125 127
128 void retranslate_calc(cpu_options *opts);
129 void patch_for_retranslate(cpu_options *opts, code_ptr native_address, code_ptr handler);
130
126 code_ptr gen_mem_fun(cpu_options * opts, memmap_chunk const * memmap, uint32_t num_chunks, ftype fun_type, code_ptr *after_inc); 131 code_ptr gen_mem_fun(cpu_options * opts, memmap_chunk const * memmap, uint32_t num_chunks, ftype fun_type, code_ptr *after_inc);
127 void * get_native_pointer(uint32_t address, void ** mem_pointers, cpu_options * opts); 132 void * get_native_pointer(uint32_t address, void ** mem_pointers, cpu_options * opts);
128 uint16_t read_word(uint32_t address, void **mem_pointers, cpu_options *opts, void *context); 133 uint16_t read_word(uint32_t address, void **mem_pointers, cpu_options *opts, void *context);
129 memmap_chunk const *find_map_chunk(uint32_t address, cpu_options *opts, uint16_t flags, uint32_t *size_sum); 134 memmap_chunk const *find_map_chunk(uint32_t address, cpu_options *opts, uint16_t flags, uint32_t *size_sum);
130 uint32_t chunk_size(cpu_options *opts, memmap_chunk const *chunk); 135 uint32_t chunk_size(cpu_options *opts, memmap_chunk const *chunk);