mirror of
https://github.com/FunKey-Project/picodrive-irixxxx.git
synced 2026-02-16 22:38:31 +01:00
workaround idledet breaking op test
This commit is contained in:
parent
c6e1e9779a
commit
2b15cea82e
@ -18574,6 +18574,10 @@ RET(8)
|
||||
// ILLEGAL
|
||||
OPCODE(0x4AFC)
|
||||
{
|
||||
#ifdef PICODRIVE_HACK
|
||||
extern void SekFinishIdleDet(void);
|
||||
SekFinishIdleDet();
|
||||
#endif
|
||||
SET_PC(execute_exception(M68K_ILLEGAL_INSTRUCTION_EX, GET_PC-2, GET_SR));
|
||||
RET(0)
|
||||
}
|
||||
|
||||
@ -60,6 +60,8 @@ static int SekUnrecognizedOpcode()
|
||||
PicoCpuCM68k.state_flags |= 1;
|
||||
return 1;
|
||||
}
|
||||
// happened once - may happen again
|
||||
SekFinishIdleDet();
|
||||
#ifdef EMU_M68K // debugging cyclone
|
||||
{
|
||||
extern int have_illegal;
|
||||
@ -421,6 +423,8 @@ int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx)
|
||||
|
||||
void SekFinishIdleDet(void)
|
||||
{
|
||||
if (idledet_count < 0)
|
||||
return;
|
||||
#ifdef EMU_C68K
|
||||
CycloneFinishIdle();
|
||||
#endif
|
||||
@ -439,6 +443,7 @@ void SekFinishIdleDet(void)
|
||||
else
|
||||
elprintf(EL_STATUS|EL_IDLE, "idle: don't know how to restore %04x", *op);
|
||||
}
|
||||
idledet_count = -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user