Mercurial > repos > blastem
comparison backend.h @ 558:dc9f178085a0
Use a typedef code_ptr in place of uint8_t * in 68K core to better support host instruction sets with different instruction word sizes. Make x86_68k_options contain a cpu_options so that gen_mem_fun can eventually be shared with the Z80 core.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 24 Feb 2014 01:30:16 -0800 |
parents | acec5464fa1e |
children | c8fefa140c80 |
comparison
equal
deleted
inserted
replaced
557:acec5464fa1e | 558:dc9f178085a0 |
---|---|
18 uint8_t base; | 18 uint8_t base; |
19 uint8_t index; | 19 uint8_t index; |
20 uint8_t cycles; | 20 uint8_t cycles; |
21 } x86_ea; | 21 } x86_ea; |
22 | 22 |
23 #if defined(X86_64) || defined(X86_32) | |
24 typedef uint8_t* code_ptr; | |
25 #else | |
26 typedef uint32_t* code_ptr; | |
27 #endif | |
28 | |
23 typedef struct { | 29 typedef struct { |
24 uint8_t *base; | 30 uint8_t *base; |
25 int32_t *offsets; | 31 int32_t *offsets; |
26 } native_map_slot; | 32 } native_map_slot; |
27 | 33 |
28 typedef struct deferred_addr { | 34 typedef struct deferred_addr { |
29 struct deferred_addr *next; | 35 struct deferred_addr *next; |
30 uint8_t *dest; | 36 code_ptr dest; |
31 uint32_t address; | 37 uint32_t address; |
32 } deferred_addr; | 38 } deferred_addr; |
33 | 39 |
34 typedef enum { | 40 typedef enum { |
35 READ_16, | 41 READ_16, |
40 | 46 |
41 typedef struct { | 47 typedef struct { |
42 uint32_t flags; | 48 uint32_t flags; |
43 native_map_slot *native_code_map; | 49 native_map_slot *native_code_map; |
44 deferred_addr *deferred; | 50 deferred_addr *deferred; |
45 uint8_t *cur_code; | 51 code_ptr cur_code; |
46 uint8_t *code_end; | 52 code_ptr code_end; |
47 uint8_t **ram_inst_sizes; | 53 uint8_t **ram_inst_sizes; |
48 FILE *address_log; | 54 code_ptr save_context; |
49 uint8_t *save_context; | 55 code_ptr load_context; |
50 uint8_t *load_context; | 56 code_ptr handle_cycle_limit; |
51 uint8_t *handle_cycle_limit; | 57 code_ptr handle_cycle_limit_int; |
52 uint8_t *handle_cycle_limit_int; | |
53 uint8_t context_reg; | 58 uint8_t context_reg; |
54 uint8_t scratch1; | 59 uint8_t scratch1; |
55 uint8_t scratch2; | 60 uint8_t scratch2; |
56 } cpu_options; | 61 } cpu_options; |
57 | 62 |