Make all unknown opcodes behave consistently.

Consistently fall back to the interpreter for unknown instructions, and
make sure GetOpInfo() always returns a non-null pointer.
This commit is contained in:
magumagu committed 2015-02-11 22:18:33 -08:00
1 parent e640ef9d7b
commit 985087c7e2
15 files changed
+33 -63

No files matched your search

@@ -305,12 +305,6 @@ void JitIL::WriteCallInterpreter(UGeckoInstruction inst)
}
}
void JitIL::unknown_instruction(UGeckoInstruction inst)
{
// CCPU::Break();
PanicAlert("unknown_instruction %08x - Fix me ;)", inst.hex);
}
void JitIL::FallBackToInterpreter(UGeckoInstruction _inst)
{
ibuild.EmitFallBackToInterpreter(
-1
View File
@@ -99,7 +99,6 @@ public:
void WriteCode(u32 exitAddress);
// OPCODES
void unknown_instruction(UGeckoInstruction _inst) override;
void FallBackToInterpreter(UGeckoInstruction _inst) override;
void DoNothing(UGeckoInstruction _inst) override;
void HLEFunction(UGeckoInstruction _inst) override;
@@ -403,15 +403,15 @@ void InitTables()
//clear
for (auto& tpl : dynaOpTable59)
{
tpl = &JitIL::unknown_instruction;
tpl = &JitIL::FallBackToInterpreter;
}
for (int i = 0; i < 1024; i++)
{
dynaOpTable4 [i] = &JitIL::unknown_instruction;
dynaOpTable19[i] = &JitIL::unknown_instruction;
dynaOpTable31[i] = &JitIL::unknown_instruction;
dynaOpTable63[i] = &JitIL::unknown_instruction;
dynaOpTable4 [i] = &JitIL::FallBackToInterpreter;
dynaOpTable19[i] = &JitIL::FallBackToInterpreter;
dynaOpTable31[i] = &JitIL::FallBackToInterpreter;
dynaOpTable63[i] = &JitIL::FallBackToInterpreter;
}
for (auto& tpl : primarytable)