1.1 --- a/src/sh4/sh4trans.c Tue Jan 22 10:10:46 2008 +0000
1.2 +++ b/src/sh4/sh4trans.c Tue Jan 29 10:39:56 2008 +0000
1.4 sh4r.slice_cycle = 0;
1.6 if( sh4r.sh4_state != SH4_STATE_RUNNING ) {
1.7 - if( sh4r.event_pending < nanosecs ) {
1.8 - sh4r.sh4_state = SH4_STATE_RUNNING;
1.9 - sh4r.slice_cycle = sh4r.event_pending;
1.11 + sh4_sleep_run_slice(nanosecs);
1.14 switch( setjmp(xlat_jmp_buf) ) {
1.16 case XLAT_EXIT_SYSRESET:
1.19 + case XLAT_EXIT_SLEEP:
1.20 + sh4_sleep_run_slice(nanosecs);
1.24 xlat_running = TRUE;
1.25 @@ -162,6 +162,10 @@
1.30 + // Add end-of-block recovery for post-instruction checks
1.31 + sh4_translate_add_recovery( (pc - start)>>1 );
1.33 int epilogue_size = sh4_translate_end_block_size();
1.34 uint32_t recovery_size = sizeof(struct xlat_recovery_record)*xlat_recovery_posn;
1.35 uint32_t finalsize = xlat_output - xlat_current_block->code + epilogue_size + recovery_size;