comparison m68k_internal.h @ 1329:85a90964b557

Fix interaction between 68K debugger and instruction retranslation due to self modifying code or bank switching
author Michael Pavone <pavone@retrodev.com>
date Mon, 24 Apr 2017 20:49:31 -0700
parents c5821f9de325
children df6af7187b36
comparison
equal deleted inserted replaced
1328:70faad89d491 1329:85a90964b557
33 void nop_fill_or_jmp_next(code_info *code, code_ptr old_end, code_ptr next_inst); 33 void nop_fill_or_jmp_next(code_info *code, code_ptr old_end, code_ptr next_inst);
34 void check_user_mode_swap_ssp_usp(m68k_options *opts); 34 void check_user_mode_swap_ssp_usp(m68k_options *opts);
35 void m68k_set_last_prefetch(m68k_options *opts, uint32_t address); 35 void m68k_set_last_prefetch(m68k_options *opts, uint32_t address);
36 void translate_m68k_odd(m68k_options *opts, m68kinst *inst); 36 void translate_m68k_odd(m68k_options *opts, m68kinst *inst);
37 void m68k_trap_if_not_supervisor(m68k_options *opts, m68kinst *inst); 37 void m68k_trap_if_not_supervisor(m68k_options *opts, m68kinst *inst);
38 void m68k_breakpoint_patch(m68k_context *context, uint32_t address, m68k_debug_handler bp_handler, code_ptr native_addr);
38 39
39 //functions implemented in m68k_core.c 40 //functions implemented in m68k_core.c
40 int8_t native_reg(m68k_op_info * op, m68k_options * opts); 41 int8_t native_reg(m68k_op_info * op, m68k_options * opts);
41 size_t dreg_offset(uint8_t reg); 42 size_t dreg_offset(uint8_t reg);
42 size_t areg_offset(uint8_t reg); 43 size_t areg_offset(uint8_t reg);
49 void swap_ssp_usp(m68k_options * opts); 50 void swap_ssp_usp(m68k_options * opts);
50 code_ptr get_native_address(m68k_options *opts, uint32_t address); 51 code_ptr get_native_address(m68k_options *opts, uint32_t address);
51 uint8_t m68k_is_terminal(m68kinst * inst); 52 uint8_t m68k_is_terminal(m68kinst * inst);
52 code_ptr get_native_address_trans(m68k_context * context, uint32_t address); 53 code_ptr get_native_address_trans(m68k_context * context, uint32_t address);
53 void * m68k_retranslate_inst(uint32_t address, m68k_context * context); 54 void * m68k_retranslate_inst(uint32_t address, m68k_context * context);
55 m68k_context *m68k_bp_dispatcher(m68k_context *context, uint32_t address);
54 56
55 //individual instructions 57 //individual instructions
56 void translate_m68k_bcc(m68k_options * opts, m68kinst * inst); 58 void translate_m68k_bcc(m68k_options * opts, m68kinst * inst);
57 void translate_m68k_scc(m68k_options * opts, m68kinst * inst); 59 void translate_m68k_scc(m68k_options * opts, m68kinst * inst);
58 void translate_m68k_dbcc(m68k_options * opts, m68kinst * inst); 60 void translate_m68k_dbcc(m68k_options * opts, m68kinst * inst);