Fix broken volatile check in (),y
This commit is contained in:
parent
aed086bdb9
commit
7d6f637948
|
@ -1984,6 +1984,7 @@ void ValueSet::UpdateValue(InterInstruction * ins, const GrowingInstructionPtrAr
|
||||||
ins->mSrc[0] = ins->mSrc[1];
|
ins->mSrc[0] = ins->mSrc[1];
|
||||||
ins->mSrc[1].mTemp = -1;
|
ins->mSrc[1].mTemp = -1;
|
||||||
ins->mSrc[1].mType = IT_NONE;
|
ins->mSrc[1].mType = IT_NONE;
|
||||||
|
ins->mNumOperands = 1;
|
||||||
|
|
||||||
UpdateValue(ins, tvalue, aliasedLocals, aliasedParams, staticVars);
|
UpdateValue(ins, tvalue, aliasedLocals, aliasedParams, staticVars);
|
||||||
|
|
||||||
|
@ -2024,6 +2025,7 @@ void ValueSet::UpdateValue(InterInstruction * ins, const GrowingInstructionPtrAr
|
||||||
ins->mOperator = IA_NEG;
|
ins->mOperator = IA_NEG;
|
||||||
ins->mSrc[1].mTemp = -1;
|
ins->mSrc[1].mTemp = -1;
|
||||||
ins->mSrc[1].mType = IT_NONE;
|
ins->mSrc[1].mType = IT_NONE;
|
||||||
|
ins->mNumOperands = 1;
|
||||||
|
|
||||||
UpdateValue(ins, tvalue, aliasedLocals, aliasedParams, staticVars);
|
UpdateValue(ins, tvalue, aliasedLocals, aliasedParams, staticVars);
|
||||||
|
|
||||||
|
@ -2034,6 +2036,7 @@ void ValueSet::UpdateValue(InterInstruction * ins, const GrowingInstructionPtrAr
|
||||||
ins->mCode = IC_UNARY_OPERATOR;
|
ins->mCode = IC_UNARY_OPERATOR;
|
||||||
ins->mOperator = IA_NEG;
|
ins->mOperator = IA_NEG;
|
||||||
ins->mSrc[1].mTemp = -1;
|
ins->mSrc[1].mTemp = -1;
|
||||||
|
ins->mNumOperands = 1;
|
||||||
|
|
||||||
UpdateValue(ins, tvalue, aliasedLocals, aliasedParams, staticVars);
|
UpdateValue(ins, tvalue, aliasedLocals, aliasedParams, staticVars);
|
||||||
|
|
||||||
|
|
|
@ -3701,8 +3701,6 @@ bool NativeCodeInstruction::ValueForwarding(NativeRegisterDataSet& data, AsmInsT
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (mMode == ASMIM_INDIRECT_Y)
|
else if (mMode == ASMIM_INDIRECT_Y)
|
||||||
{
|
|
||||||
if (!(mFlags & NCIF_VOLATILE))
|
|
||||||
{
|
{
|
||||||
if (data.mRegs[mAddress].mMode == NRDM_ZERO_PAGE && data.mRegs[mAddress + 1].mMode == NRDM_ZERO_PAGE && data.mRegs[mAddress].mValue + 1 == data.mRegs[mAddress + 1].mValue)
|
if (data.mRegs[mAddress].mMode == NRDM_ZERO_PAGE && data.mRegs[mAddress + 1].mMode == NRDM_ZERO_PAGE && data.mRegs[mAddress].mValue + 1 == data.mRegs[mAddress + 1].mValue)
|
||||||
{
|
{
|
||||||
|
@ -3762,7 +3760,6 @@ bool NativeCodeInstruction::ValueForwarding(NativeRegisterDataSet& data, AsmInsT
|
||||||
else
|
else
|
||||||
data.mRegs[CPU_REG_A].Reset();
|
data.mRegs[CPU_REG_A].Reset();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (ChangesAddress())
|
if (ChangesAddress())
|
||||||
data.ResetIndirect(mAddress);
|
data.ResetIndirect(mAddress);
|
||||||
|
@ -37341,7 +37338,7 @@ void NativeCodeProcedure::RebuildEntry(void)
|
||||||
|
|
||||||
void NativeCodeProcedure::Optimize(void)
|
void NativeCodeProcedure::Optimize(void)
|
||||||
{
|
{
|
||||||
CheckFunc = !strcmp(mInterProc->mIdent->mString, "mmc3_bank_prg");
|
CheckFunc = !strcmp(mInterProc->mIdent->mString, "diggers_list");
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
int step = 0;
|
int step = 0;
|
||||||
|
|
Loading…
Reference in New Issue