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