Fixes a potential crash on the ARMv7 JIT if someone disables the entire JIT in the debugger.
We can't disable branches in the JITs. Make sure they don't become disabled if someone tries to disable the full JIT.
This commit is contained in:
parent
17f352e2aa
commit
0fbd5248ca
|
@ -20,7 +20,6 @@ using namespace ArmGen;
|
||||||
void JitArm::sc(UGeckoInstruction inst)
|
void JitArm::sc(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
JITDISABLE(bJITBranchOff);
|
|
||||||
|
|
||||||
gpr.Flush();
|
gpr.Flush();
|
||||||
fpr.Flush();
|
fpr.Flush();
|
||||||
|
@ -39,7 +38,6 @@ void JitArm::sc(UGeckoInstruction inst)
|
||||||
void JitArm::rfi(UGeckoInstruction inst)
|
void JitArm::rfi(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
JITDISABLE(bJITBranchOff);
|
|
||||||
|
|
||||||
gpr.Flush();
|
gpr.Flush();
|
||||||
fpr.Flush();
|
fpr.Flush();
|
||||||
|
@ -86,7 +84,6 @@ void JitArm::rfi(UGeckoInstruction inst)
|
||||||
void JitArm::bx(UGeckoInstruction inst)
|
void JitArm::bx(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
JITDISABLE(bJITBranchOff);
|
|
||||||
// We must always process the following sentence
|
// We must always process the following sentence
|
||||||
// even if the blocks are merged by PPCAnalyst::Flatten().
|
// even if the blocks are merged by PPCAnalyst::Flatten().
|
||||||
if (inst.LK)
|
if (inst.LK)
|
||||||
|
@ -133,7 +130,6 @@ void JitArm::bx(UGeckoInstruction inst)
|
||||||
void JitArm::bcx(UGeckoInstruction inst)
|
void JitArm::bcx(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
JITDISABLE(bJITBranchOff);
|
|
||||||
// USES_CR
|
// USES_CR
|
||||||
|
|
||||||
ARMReg rA = gpr.GetReg();
|
ARMReg rA = gpr.GetReg();
|
||||||
|
@ -193,7 +189,6 @@ void JitArm::bcx(UGeckoInstruction inst)
|
||||||
void JitArm::bcctrx(UGeckoInstruction inst)
|
void JitArm::bcctrx(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
JITDISABLE(bJITBranchOff);
|
|
||||||
|
|
||||||
// bcctrx doesn't decrement and/or test CTR
|
// bcctrx doesn't decrement and/or test CTR
|
||||||
_dbg_assert_msg_(POWERPC, inst.BO_2 & BO_DONT_DECREMENT_FLAG, "bcctrx with decrement and test CTR option is invalid!");
|
_dbg_assert_msg_(POWERPC, inst.BO_2 & BO_DONT_DECREMENT_FLAG, "bcctrx with decrement and test CTR option is invalid!");
|
||||||
|
@ -259,7 +254,6 @@ void JitArm::bcctrx(UGeckoInstruction inst)
|
||||||
void JitArm::bclrx(UGeckoInstruction inst)
|
void JitArm::bclrx(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
JITDISABLE(bJITBranchOff);
|
|
||||||
|
|
||||||
ARMReg rA = gpr.GetReg();
|
ARMReg rA = gpr.GetReg();
|
||||||
ARMReg rB = gpr.GetReg();
|
ARMReg rB = gpr.GetReg();
|
||||||
|
|
Loading…
Reference in New Issue