Fix join common branch sequence
This commit is contained in:
parent
57537cd43a
commit
d5026ed9b0
|
@ -31,6 +31,8 @@ void dispmode80col(void);
|
||||||
#define PETSCII_CLEAR 0x94
|
#define PETSCII_CLEAR 0x94
|
||||||
#define PETSCII_DEL 0x14
|
#define PETSCII_DEL 0x14
|
||||||
#define PETSCII_INSERT 0x94
|
#define PETSCII_INSERT 0x94
|
||||||
|
#define PETSCII_STOP 0x0c
|
||||||
|
#define PETSCII_RETURN 0x0d
|
||||||
|
|
||||||
#define PETSCII_F1 0x85
|
#define PETSCII_F1 0x85
|
||||||
#define PETSCII_F2 0x89
|
#define PETSCII_F2 0x89
|
||||||
|
|
|
@ -22178,10 +22178,12 @@ bool NativeCodeBasicBlock::JoinCommonBranchCodeSequences(void)
|
||||||
if (j < mFalseJump->mIns.Size())
|
if (j < mFalseJump->mIns.Size())
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 0;
|
||||||
while (i + n < mTrueJump->mIns.Size() && j + n < mFalseJump->mIns.Size() && ((mTrueJump->mIns[i + n].mLive & LIVE_CPU_REG) || (mFalseJump->mIns[j + n].mLive & LIVE_CPU_REG)))
|
while (i + n < mTrueJump->mIns.Size() && j + n < mFalseJump->mIns.Size() &&
|
||||||
|
mTrueJump->mIns[i + n].IsSame(mFalseJump->mIns[j + n]) &&
|
||||||
|
((mTrueJump->mIns[i + n].mLive & LIVE_CPU_REG) || (mFalseJump->mIns[j + n].mLive & LIVE_CPU_REG)))
|
||||||
n++;
|
n++;
|
||||||
|
|
||||||
if (i + n < mTrueJump->mIns.Size() && j + n < mFalseJump->mIns.Size())
|
if (i + n < mTrueJump->mIns.Size() && j + n < mFalseJump->mIns.Size() && mTrueJump->mIns[i + n].IsSame(mFalseJump->mIns[j + n]))
|
||||||
{
|
{
|
||||||
if (mTrueJump->MayBeMovedBeforeBlock(i, i + n + 1) && mFalseJump->MayBeMovedBeforeBlock(j, j + n + 1))
|
if (mTrueJump->MayBeMovedBeforeBlock(i, i + n + 1) && mFalseJump->MayBeMovedBeforeBlock(j, j + n + 1))
|
||||||
{
|
{
|
||||||
|
@ -43191,7 +43193,7 @@ void NativeCodeProcedure::Compile(InterCodeProcedure* proc)
|
||||||
{
|
{
|
||||||
mInterProc = proc;
|
mInterProc = proc;
|
||||||
|
|
||||||
CheckFunc = !strcmp(mInterProc->mIdent->mString, "dungeon_init");
|
CheckFunc = !strcmp(mInterProc->mIdent->mString, "format_expression");
|
||||||
|
|
||||||
int nblocks = proc->mBlocks.Size();
|
int nblocks = proc->mBlocks.Size();
|
||||||
tblocks = new NativeCodeBasicBlock * [nblocks];
|
tblocks = new NativeCodeBasicBlock * [nblocks];
|
||||||
|
|
Loading…
Reference in New Issue