--- a/src/sh4/sh4trans.c Tue Sep 04 08:40:23 2007 +0000 +++ b/src/sh4/sh4trans.c Tue Sep 18 09:12:30 2007 +0000 @@ -1,5 +1,5 @@ /** - * $Id: sh4trans.c,v 1.2 2007-09-04 08:40:23 nkeynes Exp $ + * $Id: sh4trans.c,v 1.3 2007-09-18 09:12:30 nkeynes Exp $ * * SH4 translation core module. This part handles the non-target-specific * section of the translation. @@ -48,6 +48,12 @@ } } + if( sh4r.pc > 0xFFFFFF00 ) { + syscall_invoke( sh4r.pc ); + sh4r.in_delay_slot = 0; + sh4r.pc = sh4r.pr; + } + gboolean (*code)() = xlat_get_code(sh4r.pc); if( code == NULL ) { code = sh4_translate_basic_block( sh4r.pc ); @@ -97,6 +103,7 @@ } pc += 2; } + pc+=2; sh4_translate_end_block(pc); xlat_commit_block( xlat_output - block->code, pc-start ); return block->code;