Search
lxdream.org :: lxdream/src/sh4/sh4trans.h :: diff
lxdream 0.9.1
released Jun 29
Download Now
filename src/sh4/sh4trans.h
changeset 669:ab344e42bca9
prev617:476a717a54f3
next675:b97020f9af1c
author nkeynes
date Sun May 25 21:01:55 2008 +0000 (15 years ago)
permissions -rw-r--r--
last change Count fpscr ops separately from other LDS/STS instructions
file annotate diff log raw
1.1 --- a/src/sh4/sh4trans.h Tue Jan 29 10:39:56 2008 +0000
1.2 +++ b/src/sh4/sh4trans.h Sun May 25 21:01:55 2008 +0000
1.3 @@ -71,11 +71,22 @@
1.4 gboolean sh4_xlat_is_running();
1.5
1.6 /**
1.7 + * Initialize the translation engine (if required). Note xlat cache
1.8 + * must already be initialized.
1.9 + */
1.10 +void sh4_xlat_init();
1.11 +
1.12 +/**
1.13 * Translate the specified block of code starting from the specified start
1.14 * address until the first branch/jump instruction.
1.15 */
1.16 void *sh4_translate_basic_block( sh4addr_t start );
1.17
1.18 +/**
1.19 + * Add a recovery record for the current code generation position, with the
1.20 + * specified instruction count
1.21 + */
1.22 +void sh4_translate_add_recovery( uint32_t icount );
1.23
1.24 extern uint8_t *xlat_output;
1.25 extern struct xlat_recovery_record xlat_recovery[MAX_RECOVERY_SIZE];
1.26 @@ -90,10 +101,12 @@
1.27 #define TARGET_X86 1
1.28 #define TARGET_X86_64 2
1.29
1.30 +void sh4_translate_init( void );
1.31 void sh4_translate_begin_block( sh4addr_t pc );
1.32 uint32_t sh4_translate_instruction( sh4addr_t pc );
1.33 void sh4_translate_end_block( sh4addr_t pc );
1.34 uint32_t sh4_translate_end_block_size();
1.35 +void sh4_translate_emit_breakpoint( sh4vma_t pc );
1.36
1.37 typedef void (*unwind_thunk_t)(void);
1.38
1.39 @@ -121,6 +134,13 @@
1.40 void sh4_translate_exit( int exit_code );
1.41
1.42 /**
1.43 + * From within the translator, exit the current block at the end of the
1.44 + * current instruction, flush the translation cache (completely) and return
1.45 + * control to sh4_xlat_run_slice.
1.46 + */
1.47 +void sh4_translate_flush_cache( void );
1.48 +
1.49 +/**
1.50 * Support function called from the translator when a breakpoint is hit.
1.51 * Either returns immediately (to skip the breakpoint), or aborts the current
1.52 * cycle and never returns.
.