Implement striped unions
This commit is contained in:
parent
8ea991db81
commit
06ab48461b
|
@ -239,12 +239,14 @@ int iec_write_bytes(const char * data, int num)
|
||||||
|
|
||||||
int iec_read_bytes(char * data, int num)
|
int iec_read_bytes(char * data, int num)
|
||||||
{
|
{
|
||||||
for(int i=0; i<num; i++)
|
char i = 0;
|
||||||
|
while (i < num)
|
||||||
{
|
{
|
||||||
char ch = iec_read();
|
char ch = iec_read();
|
||||||
|
if (iec_status < IEC_ERROR)
|
||||||
|
data[i++] = ch;
|
||||||
if (iec_status != IEC_OK)
|
if (iec_status != IEC_OK)
|
||||||
return i;
|
return i;
|
||||||
data[i] = ch;
|
|
||||||
}
|
}
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
|
@ -130,7 +130,8 @@ char * strcat(char * dst, const char * src)
|
||||||
|
|
||||||
char * cpycat(char * dst, const char * src)
|
char * cpycat(char * dst, const char * src)
|
||||||
{
|
{
|
||||||
do {} while (*dst++ = *src++);
|
while (*dst = *src++)
|
||||||
|
dst++;
|
||||||
|
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1731,7 +1731,7 @@ Declaration* Declaration::ToStriped(int stripe)
|
||||||
else
|
else
|
||||||
ndec->mBase = mBase;
|
ndec->mBase = mBase;
|
||||||
|
|
||||||
if (mType == DT_TYPE_STRUCT)
|
if (mType == DT_TYPE_STRUCT || mType == DT_TYPE_UNION)
|
||||||
{
|
{
|
||||||
ndec->mScope = new DeclarationScope(nullptr, mScope->mLevel);
|
ndec->mScope = new DeclarationScope(nullptr, mScope->mLevel);
|
||||||
Declaration * p = mParams;
|
Declaration * p = mParams;
|
||||||
|
|
|
@ -6220,8 +6220,9 @@ bool InterCodeBasicBlock::PropagateVariableCopy(const GrowingInstructionPtrArray
|
||||||
ins->mSrc[0].mMemory = ltemps[k]->mSrc[0].mMemory;
|
ins->mSrc[0].mMemory = ltemps[k]->mSrc[0].mMemory;
|
||||||
ins->mSrc[0].mTemp = ltemps[k]->mSrc[0].mTemp;
|
ins->mSrc[0].mTemp = ltemps[k]->mSrc[0].mTemp;
|
||||||
ins->mSrc[0].mVarIndex = ltemps[k]->mSrc[0].mVarIndex;
|
ins->mSrc[0].mVarIndex = ltemps[k]->mSrc[0].mVarIndex;
|
||||||
ins->mSrc[0].mIntConst += ltemps[k]->mSrc[0].mIntConst;
|
ins->mSrc[0].mIntConst = ins->mSrc[0].mIntConst * ltemps[k]->mSrc[0].mStride + ltemps[k]->mSrc[0].mIntConst;
|
||||||
ins->mSrc[0].mLinkerObject = ltemps[k]->mSrc[0].mLinkerObject;
|
ins->mSrc[0].mLinkerObject = ltemps[k]->mSrc[0].mLinkerObject;
|
||||||
|
ins->mSrc[0].mStride = ltemps[k]->mSrc[0].mStride;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10608,6 +10609,7 @@ bool InterCodeBasicBlock::LoadStoreForwarding(const GrowingInstructionPtrArray&
|
||||||
|
|
||||||
int64 offset = ins->mSrc->mIntConst - cins->mSrc[1].mIntConst;
|
int64 offset = ins->mSrc->mIntConst - cins->mSrc[1].mIntConst;
|
||||||
ins->mSrc[0] = cins->mSrc[0];
|
ins->mSrc[0] = cins->mSrc[0];
|
||||||
|
ins->mSrc[0].mOperandSize = InterTypeSize[ins->mDst.mType];
|
||||||
ins->mSrc[0].mIntConst += offset;
|
ins->mSrc[0].mIntConst += offset;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
@ -11318,7 +11320,7 @@ bool InterCodeBasicBlock::MergeCommonPathInstructions(void)
|
||||||
if (tins->mCode != IC_BRANCH && tins->mCode != IC_JUMP && !(nins && nins->mCode == IC_BRANCH && tins->mDst.mTemp == nins->mSrc[0].mTemp))
|
if (tins->mCode != IC_BRANCH && tins->mCode != IC_JUMP && !(nins && nins->mCode == IC_BRANCH && tins->mDst.mTemp == nins->mSrc[0].mTemp))
|
||||||
{
|
{
|
||||||
int fi = 0;
|
int fi = 0;
|
||||||
while (fi < mFalseJump->mInstructions.Size() && !tins->IsEqualSource(mFalseJump->mInstructions[fi]))
|
while (fi < mFalseJump->mInstructions.Size() && !(tins->mCode == mFalseJump->mInstructions[fi]->mCode && tins->mDst.mType == mFalseJump->mInstructions[fi]->mDst.mType && tins->IsEqualSource(mFalseJump->mInstructions[fi])))
|
||||||
fi++;
|
fi++;
|
||||||
|
|
||||||
if (fi < mFalseJump->mInstructions.Size())
|
if (fi < mFalseJump->mInstructions.Size())
|
||||||
|
@ -15810,11 +15812,12 @@ bool InterCodeBasicBlock::PeepholeReplaceOptimization(const GrowingVariableArray
|
||||||
mInstructions[i + 1]->mSrc[0] = io;
|
mInstructions[i + 1]->mSrc[0] = io;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
#if 1
|
||||||
else if (
|
else if (
|
||||||
mInstructions[i + 0]->mCode == IC_BINARY_OPERATOR && mInstructions[i + 0]->mOperator == IA_ADD &&
|
mInstructions[i + 0]->mCode == IC_BINARY_OPERATOR && mInstructions[i + 0]->mOperator == IA_ADD &&
|
||||||
mInstructions[i + 1]->mCode == IC_LEA && mInstructions[i + 1]->mSrc[0].mTemp == mInstructions[i + 0]->mDst.mTemp && mInstructions[i + 1]->mSrc[0].mFinal &&
|
mInstructions[i + 1]->mCode == IC_LEA && mInstructions[i + 1]->mSrc[0].mTemp == mInstructions[i + 0]->mDst.mTemp && mInstructions[i + 1]->mSrc[0].mFinal &&
|
||||||
mInstructions[i + 0]->mSrc[1].IsUByte() && !mInstructions[i + 0]->mSrc[0].IsUByte())
|
mInstructions[i + 0]->mSrc[1].IsUByte() && !mInstructions[i + 0]->mSrc[0].IsUByte() &&
|
||||||
|
mInstructions[i + 0]->mDst.mTemp != mInstructions[i + 0]->mSrc[1].mTemp)
|
||||||
{
|
{
|
||||||
mInstructions[i + 1]->mSrc[0] = mInstructions[i + 0]->mSrc[1];
|
mInstructions[i + 1]->mSrc[0] = mInstructions[i + 0]->mSrc[1];
|
||||||
|
|
||||||
|
@ -15831,7 +15834,8 @@ bool InterCodeBasicBlock::PeepholeReplaceOptimization(const GrowingVariableArray
|
||||||
else if (
|
else if (
|
||||||
mInstructions[i + 0]->mCode == IC_BINARY_OPERATOR && mInstructions[i + 0]->mOperator == IA_ADD &&
|
mInstructions[i + 0]->mCode == IC_BINARY_OPERATOR && mInstructions[i + 0]->mOperator == IA_ADD &&
|
||||||
mInstructions[i + 1]->mCode == IC_LEA && mInstructions[i + 1]->mSrc[0].mTemp == mInstructions[i + 0]->mDst.mTemp && mInstructions[i + 1]->mSrc[0].mFinal &&
|
mInstructions[i + 1]->mCode == IC_LEA && mInstructions[i + 1]->mSrc[0].mTemp == mInstructions[i + 0]->mDst.mTemp && mInstructions[i + 1]->mSrc[0].mFinal &&
|
||||||
mInstructions[i + 0]->mSrc[0].IsUByte() && !mInstructions[i + 0]->mSrc[1].IsUByte())
|
mInstructions[i + 0]->mSrc[0].IsUByte() && !mInstructions[i + 0]->mSrc[1].IsUByte() &&
|
||||||
|
mInstructions[i + 0]->mDst.mTemp != mInstructions[i + 0]->mSrc[0].mTemp)
|
||||||
{
|
{
|
||||||
mInstructions[i + 1]->mSrc[0] = mInstructions[i + 0]->mSrc[0];
|
mInstructions[i + 1]->mSrc[0] = mInstructions[i + 0]->mSrc[0];
|
||||||
|
|
||||||
|
@ -15845,6 +15849,7 @@ bool InterCodeBasicBlock::PeepholeReplaceOptimization(const GrowingVariableArray
|
||||||
mInstructions[i + 1]->mSrc[1].mMemory = IM_INDIRECT;
|
mInstructions[i + 1]->mSrc[1].mMemory = IM_INDIRECT;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#if 1
|
#if 1
|
||||||
else if (
|
else if (
|
||||||
mInstructions[i + 0]->mCode == IC_BINARY_OPERATOR && mInstructions[i + 0]->mOperator == IA_ADD && mInstructions[i + 0]->mSrc[0].mTemp < 0 && mInstructions[i + 0]->mSrc[0].mIntConst >= 0 && mInstructions[i + 0]->mSrc[0].mIntConst <= 16 &&
|
mInstructions[i + 0]->mCode == IC_BINARY_OPERATOR && mInstructions[i + 0]->mOperator == IA_ADD && mInstructions[i + 0]->mSrc[0].mTemp < 0 && mInstructions[i + 0]->mSrc[0].mIntConst >= 0 && mInstructions[i + 0]->mSrc[0].mIntConst <= 16 &&
|
||||||
|
@ -17863,6 +17868,9 @@ void InterCodeProcedure::PeepholeOptimization(void)
|
||||||
|
|
||||||
ResetVisited();
|
ResetVisited();
|
||||||
mEntryBlock->PeepholeOptimization(mModule->mGlobalVars);
|
mEntryBlock->PeepholeOptimization(mModule->mGlobalVars);
|
||||||
|
|
||||||
|
Disassemble("PeepholeOptimization");
|
||||||
|
CheckFinal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -18508,7 +18516,7 @@ void InterCodeProcedure::Close(void)
|
||||||
{
|
{
|
||||||
GrowingTypeArray tstack(IT_NONE);
|
GrowingTypeArray tstack(IT_NONE);
|
||||||
|
|
||||||
CheckFunc = !strcmp(mIdent->mString, "nformi");
|
CheckFunc = !strcmp(mIdent->mString, "main");
|
||||||
CheckCase = false;
|
CheckCase = false;
|
||||||
|
|
||||||
mEntryBlock = mBlocks[0];
|
mEntryBlock = mBlocks[0];
|
||||||
|
|
|
@ -6198,7 +6198,7 @@ bool NativeCodeBasicBlock::LoadLoadOpStoreIndirectValue(InterCodeProcedure* proc
|
||||||
{
|
{
|
||||||
if (rins1->mSrc[0].mMemory == IM_INDIRECT && rins0->mSrc[0].mMemory == IM_INDIRECT && wins->mSrc[1].mMemory == IM_INDIRECT)
|
if (rins1->mSrc[0].mMemory == IM_INDIRECT && rins0->mSrc[0].mMemory == IM_INDIRECT && wins->mSrc[1].mMemory == IM_INDIRECT)
|
||||||
{
|
{
|
||||||
int size = InterTypeSize[wins->mSrc[0].mType];
|
int size = InterTypeSize[oins->mDst.mType];
|
||||||
|
|
||||||
if (!wins->mSrc[0].mFinal)
|
if (!wins->mSrc[0].mFinal)
|
||||||
{
|
{
|
||||||
|
@ -6362,7 +6362,7 @@ bool NativeCodeBasicBlock::LoadUnopStoreIndirectValue(InterCodeProcedure* proc,
|
||||||
|
|
||||||
bool NativeCodeBasicBlock::LoadOpStoreIndirectValue(InterCodeProcedure* proc, const InterInstruction* rins, const InterInstruction* oins, int oindex, const InterInstruction* wins)
|
bool NativeCodeBasicBlock::LoadOpStoreIndirectValue(InterCodeProcedure* proc, const InterInstruction* rins, const InterInstruction* oins, int oindex, const InterInstruction* wins)
|
||||||
{
|
{
|
||||||
int size = InterTypeSize[wins->mSrc[0].mType];
|
int size = InterTypeSize[oins->mDst.mType];
|
||||||
|
|
||||||
AsmInsType at = ASMIT_ADC, an = ASMIT_ADC;
|
AsmInsType at = ASMIT_ADC, an = ASMIT_ADC;
|
||||||
AsmInsMode am = oins->mSrc[oindex].mTemp < 0 ? ASMIM_IMMEDIATE : ASMIM_ZERO_PAGE, ram = ASMIM_INDIRECT_Y, wam = ASMIM_INDIRECT_Y;
|
AsmInsMode am = oins->mSrc[oindex].mTemp < 0 ? ASMIM_IMMEDIATE : ASMIM_ZERO_PAGE, ram = ASMIM_INDIRECT_Y, wam = ASMIM_INDIRECT_Y;
|
||||||
|
@ -42373,7 +42373,7 @@ void NativeCodeProcedure::Compile(InterCodeProcedure* proc)
|
||||||
{
|
{
|
||||||
mInterProc = proc;
|
mInterProc = proc;
|
||||||
|
|
||||||
CheckFunc = !strcmp(mInterProc->mIdent->mString, "particle_move");
|
CheckFunc = !strcmp(mInterProc->mIdent->mString, "main");
|
||||||
|
|
||||||
int nblocks = proc->mBlocks.Size();
|
int nblocks = proc->mBlocks.Size();
|
||||||
tblocks = new NativeCodeBasicBlock * [nblocks];
|
tblocks = new NativeCodeBasicBlock * [nblocks];
|
||||||
|
@ -44030,8 +44030,8 @@ void NativeCodeProcedure::CompileInterBlock(InterCodeProcedure* iproc, InterCode
|
||||||
else if (i + 1 < iblock->mInstructions.Size() &&
|
else if (i + 1 < iblock->mInstructions.Size() &&
|
||||||
InterTypeSize[ins->mDst.mType] >= 2 &&
|
InterTypeSize[ins->mDst.mType] >= 2 &&
|
||||||
iblock->mInstructions[i + 1]->mCode == IC_BINARY_OPERATOR &&
|
iblock->mInstructions[i + 1]->mCode == IC_BINARY_OPERATOR &&
|
||||||
iblock->mInstructions[i + 1]->mSrc[0].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[0].mFinal &&
|
iblock->mInstructions[i + 1]->mSrc[0].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[0].mType == ins->mDst.mType && iblock->mInstructions[i + 1]->mSrc[0].mFinal &&
|
||||||
iblock->mInstructions[i + 1]->mSrc[1].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[1].mFinal)
|
iblock->mInstructions[i + 1]->mSrc[1].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[1].mType == ins->mDst.mType && iblock->mInstructions[i + 1]->mSrc[1].mFinal)
|
||||||
{
|
{
|
||||||
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 1], ins, ins);
|
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 1], ins, ins);
|
||||||
i++;
|
i++;
|
||||||
|
@ -44040,7 +44040,7 @@ void NativeCodeProcedure::CompileInterBlock(InterCodeProcedure* iproc, InterCode
|
||||||
InterTypeSize[ins->mDst.mType] >= 2 &&
|
InterTypeSize[ins->mDst.mType] >= 2 &&
|
||||||
InterTypeSize[ins->mDst.mType] * ins->mSrc[0].mStride <= 256 &&
|
InterTypeSize[ins->mDst.mType] * ins->mSrc[0].mStride <= 256 &&
|
||||||
iblock->mInstructions[i + 1]->mCode == IC_BINARY_OPERATOR &&
|
iblock->mInstructions[i + 1]->mCode == IC_BINARY_OPERATOR &&
|
||||||
iblock->mInstructions[i + 1]->mSrc[0].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[0].mFinal)
|
iblock->mInstructions[i + 1]->mSrc[0].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[0].mType == ins->mDst.mType && iblock->mInstructions[i + 1]->mSrc[0].mFinal)
|
||||||
{
|
{
|
||||||
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 1], nullptr, ins);
|
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 1], nullptr, ins);
|
||||||
i++;
|
i++;
|
||||||
|
@ -44049,7 +44049,7 @@ void NativeCodeProcedure::CompileInterBlock(InterCodeProcedure* iproc, InterCode
|
||||||
InterTypeSize[ins->mDst.mType] >= 2 &&
|
InterTypeSize[ins->mDst.mType] >= 2 &&
|
||||||
InterTypeSize[ins->mDst.mType] * ins->mSrc[0].mStride < 256 &&
|
InterTypeSize[ins->mDst.mType] * ins->mSrc[0].mStride < 256 &&
|
||||||
iblock->mInstructions[i + 1]->mCode == IC_BINARY_OPERATOR &&
|
iblock->mInstructions[i + 1]->mCode == IC_BINARY_OPERATOR &&
|
||||||
iblock->mInstructions[i + 1]->mSrc[1].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[1].mFinal)
|
iblock->mInstructions[i + 1]->mSrc[1].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[1].mType == ins->mDst.mType && iblock->mInstructions[i + 1]->mSrc[1].mFinal)
|
||||||
{
|
{
|
||||||
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 1], ins, nullptr);
|
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 1], ins, nullptr);
|
||||||
i++;
|
i++;
|
||||||
|
@ -44061,8 +44061,8 @@ void NativeCodeProcedure::CompileInterBlock(InterCodeProcedure* iproc, InterCode
|
||||||
InterTypeSize[iblock->mInstructions[i + 1]->mDst.mType] * iblock->mInstructions[i + 1]->mSrc[0].mStride <= 256 &&
|
InterTypeSize[iblock->mInstructions[i + 1]->mDst.mType] * iblock->mInstructions[i + 1]->mSrc[0].mStride <= 256 &&
|
||||||
iblock->mInstructions[i + 1]->mDst.mTemp != ins->mDst.mTemp &&
|
iblock->mInstructions[i + 1]->mDst.mTemp != ins->mDst.mTemp &&
|
||||||
iblock->mInstructions[i + 2]->mCode == IC_BINARY_OPERATOR &&
|
iblock->mInstructions[i + 2]->mCode == IC_BINARY_OPERATOR &&
|
||||||
iblock->mInstructions[i + 2]->mSrc[0].mTemp == iblock->mInstructions[i + 1]->mDst.mTemp && iblock->mInstructions[i + 2]->mSrc[0].mFinal &&
|
iblock->mInstructions[i + 2]->mSrc[0].mTemp == iblock->mInstructions[i + 1]->mDst.mTemp && iblock->mInstructions[i + 2]->mSrc[0].mType == iblock->mInstructions[i + 1]->mDst.mType && iblock->mInstructions[i + 2]->mSrc[0].mFinal &&
|
||||||
iblock->mInstructions[i + 2]->mSrc[1].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 2]->mSrc[1].mFinal)
|
iblock->mInstructions[i + 2]->mSrc[1].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 2]->mSrc[1].mType == ins->mDst.mType && iblock->mInstructions[i + 2]->mSrc[1].mFinal)
|
||||||
{
|
{
|
||||||
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 2], ins, iblock->mInstructions[i + 1]);
|
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 2], ins, iblock->mInstructions[i + 1]);
|
||||||
i += 2;
|
i += 2;
|
||||||
|
@ -44074,8 +44074,8 @@ void NativeCodeProcedure::CompileInterBlock(InterCodeProcedure* iproc, InterCode
|
||||||
InterTypeSize[iblock->mInstructions[i + 1]->mDst.mType] * iblock->mInstructions[i + 1]->mSrc[0].mStride <= 256 &&
|
InterTypeSize[iblock->mInstructions[i + 1]->mDst.mType] * iblock->mInstructions[i + 1]->mSrc[0].mStride <= 256 &&
|
||||||
iblock->mInstructions[i + 1]->mDst.mTemp != ins->mDst.mTemp &&
|
iblock->mInstructions[i + 1]->mDst.mTemp != ins->mDst.mTemp &&
|
||||||
iblock->mInstructions[i + 2]->mCode == IC_BINARY_OPERATOR &&
|
iblock->mInstructions[i + 2]->mCode == IC_BINARY_OPERATOR &&
|
||||||
iblock->mInstructions[i + 2]->mSrc[1].mTemp == iblock->mInstructions[i + 1]->mDst.mTemp && iblock->mInstructions[i + 2]->mSrc[1].mFinal &&
|
iblock->mInstructions[i + 2]->mSrc[1].mTemp == iblock->mInstructions[i + 1]->mDst.mTemp && iblock->mInstructions[i + 2]->mSrc[1].mType == iblock->mInstructions[i + 1]->mDst.mType && iblock->mInstructions[i + 2]->mSrc[1].mFinal &&
|
||||||
iblock->mInstructions[i + 2]->mSrc[0].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 2]->mSrc[0].mFinal)
|
iblock->mInstructions[i + 2]->mSrc[0].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 2]->mSrc[0].mType == ins->mDst.mType && iblock->mInstructions[i + 2]->mSrc[0].mFinal)
|
||||||
{
|
{
|
||||||
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 2], iblock->mInstructions[i + 1], ins);
|
block = block->BinaryOperator(iproc, this, iblock->mInstructions[i + 2], iblock->mInstructions[i + 1], ins);
|
||||||
i += 2;
|
i += 2;
|
||||||
|
@ -44083,7 +44083,7 @@ void NativeCodeProcedure::CompileInterBlock(InterCodeProcedure* iproc, InterCode
|
||||||
else if (i + 1 < iblock->mInstructions.Size() &&
|
else if (i + 1 < iblock->mInstructions.Size() &&
|
||||||
InterTypeSize[ins->mDst.mType] >= 2 &&
|
InterTypeSize[ins->mDst.mType] >= 2 &&
|
||||||
iblock->mInstructions[i + 1]->mCode == IC_LEA &&
|
iblock->mInstructions[i + 1]->mCode == IC_LEA &&
|
||||||
iblock->mInstructions[i + 1]->mSrc[1].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[1].mFinal &&
|
iblock->mInstructions[i + 1]->mSrc[1].mTemp == ins->mDst.mTemp && iblock->mInstructions[i + 1]->mSrc[1].mType == ins->mDst.mType && iblock->mInstructions[i + 1]->mSrc[1].mFinal &&
|
||||||
!(iblock->mInstructions[i + 1]->mSrc[0].IsUByte() &&
|
!(iblock->mInstructions[i + 1]->mSrc[0].IsUByte() &&
|
||||||
iblock->mInstructions[i + 1]->mSrc[0].mTemp >= 0 &&
|
iblock->mInstructions[i + 1]->mSrc[0].mTemp >= 0 &&
|
||||||
i + 2 < iblock->mInstructions.Size() &&
|
i + 2 < iblock->mInstructions.Size() &&
|
||||||
|
|
Loading…
Reference in New Issue