comparison backend.h @ 987:1f09994e92c5

Initial stab at implementing address error exceptions. Need to fill in the value of IR, undefined bits of last stack frame word and properly deal with address errors that occur during exception processing.
author Michael Pavone <pavone@retrodev.com>
date Tue, 26 Apr 2016 23:13:37 -0700
parents 7f96bd1cb1be
children 6b07af1515b5
comparison
equal deleted inserted replaced
986:f680fe746a7d 987:1f09994e92c5
84 code_ptr save_context; 84 code_ptr save_context;
85 code_ptr load_context; 85 code_ptr load_context;
86 code_ptr handle_cycle_limit; 86 code_ptr handle_cycle_limit;
87 code_ptr handle_cycle_limit_int; 87 code_ptr handle_cycle_limit_int;
88 code_ptr handle_code_write; 88 code_ptr handle_code_write;
89 code_ptr handle_align_error_write;
90 code_ptr handle_align_error_read;
89 uint32_t memmap_chunks; 91 uint32_t memmap_chunks;
90 uint32_t address_mask; 92 uint32_t address_mask;
91 uint32_t max_address; 93 uint32_t max_address;
92 uint32_t bus_cycles; 94 uint32_t bus_cycles;
93 uint32_t clock_divider; 95 uint32_t clock_divider;
99 uint8_t context_reg; 101 uint8_t context_reg;
100 uint8_t cycles; 102 uint8_t cycles;
101 uint8_t limit; 103 uint8_t limit;
102 uint8_t scratch1; 104 uint8_t scratch1;
103 uint8_t scratch2; 105 uint8_t scratch2;
106 uint8_t align_error_mask;
104 } cpu_options; 107 } cpu_options;
105 108
106 typedef uint8_t * (*native_addr_func)(void * context, uint32_t address); 109 typedef uint8_t * (*native_addr_func)(void * context, uint32_t address);
107 110
108 deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest); 111 deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);