add prefs option to ignore illegal instructions (ignoreillegal)

This commit is contained in:
asvitkine 2009-07-20 18:50:28 +00:00
parent 6db0c7453b
commit 581ff8d86f
2 changed files with 12 additions and 1 deletions

View File

@ -37,6 +37,7 @@
#ifdef SHEEPSHAVER
#include "main.h"
#include "prefs.h"
#endif
#if ENABLE_MON
@ -54,6 +55,14 @@
void powerpc_cpu::execute_illegal(uint32 opcode)
{
fprintf(stderr, "Illegal instruction at %08x, opcode = %08x\n", pc(), opcode);
#ifdef SHEEPSHAVER
if (PrefsFindBool("ignoreillegal")) {
increment_pc(4);
return;
}
#endif
#if ENABLE_MON
disass_ppc(stdout, pc(), opcode);

View File

@ -54,6 +54,7 @@ prefs_desc common_prefs_items[] = {
{"nogui", TYPE_BOOLEAN, false, "disable GUI"},
{"noclipconversion", TYPE_BOOLEAN, false, "don't convert clipboard contents"},
{"ignoresegv", TYPE_BOOLEAN, false, "ignore illegal memory accesses"},
{"ignoreillegal", TYPE_BOOLEAN, false, "ignore illegal instructions"},
{"jit", TYPE_BOOLEAN, false, "enable JIT compiler"},
{"jit68k", TYPE_BOOLEAN, false, "enable 68k DR emulator"},
{"keyboardtype", TYPE_INT32, false, "hardware keyboard type"},
@ -80,6 +81,7 @@ void AddPrefsDefaults(void)
PrefsAddBool("nogui", false);
PrefsAddBool("noclipconversion", false);
PrefsAddBool("ignoresegv", false);
PrefsAddBool("ignoreillegal", false);
#if USE_JIT
// JIT compiler specific options
@ -89,5 +91,5 @@ void AddPrefsDefaults(void)
#endif
PrefsAddBool("jit68k", false);
PrefsAddInt32("keyboardtype", 5);
PrefsAddInt32("keyboardtype", 5);
}