Mercurial > repos > blastem
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); |