Optimize signed int with unsigned char comparison
This commit is contained in:
parent
29bd0c8d2d
commit
c7de44b015
|
@ -60,6 +60,9 @@ rem @echo off
|
||||||
@call :test testint32cmp.c
|
@call :test testint32cmp.c
|
||||||
@if %errorlevel% neq 0 goto :error
|
@if %errorlevel% neq 0 goto :error
|
||||||
|
|
||||||
|
@call :test mixsigncmptest.c
|
||||||
|
@if %errorlevel% neq 0 goto :error
|
||||||
|
|
||||||
@call :test testinterval.c
|
@call :test testinterval.c
|
||||||
@if %errorlevel% neq 0 goto :error
|
@if %errorlevel% neq 0 goto :error
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
unsigned n1, n0;
|
||||||
|
|
||||||
|
n1 = 0; n0 = 0;
|
||||||
|
for(int i=-1000; i<2000; i+=37)
|
||||||
|
{
|
||||||
|
for(char j=0; j<255; j++)
|
||||||
|
{
|
||||||
|
if (i < j)
|
||||||
|
n1++;
|
||||||
|
else
|
||||||
|
n0++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(n1 == 7893 && n0 == 13017);
|
||||||
|
|
||||||
|
n1 = 0; n0 = 0;
|
||||||
|
for(int i=-1000; i<2000; i+=37)
|
||||||
|
{
|
||||||
|
for(char j=0; j<255; j++)
|
||||||
|
{
|
||||||
|
if (i <= j)
|
||||||
|
n1++;
|
||||||
|
else
|
||||||
|
n0++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(n1 == 7899 && n0 == 13011);
|
||||||
|
|
||||||
|
n1 = 0; n0 = 0;
|
||||||
|
for(int i=-1000; i<2000; i+=37)
|
||||||
|
{
|
||||||
|
for(char j=0; j<255; j++)
|
||||||
|
{
|
||||||
|
if (i >= j)
|
||||||
|
n1++;
|
||||||
|
else
|
||||||
|
n0++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(n0 == 7893 && n1 == 13017);
|
||||||
|
|
||||||
|
n1 = 0; n0 = 0;
|
||||||
|
for(int i=-1000; i<2000; i+=37)
|
||||||
|
{
|
||||||
|
for(char j=0; j<255; j++)
|
||||||
|
{
|
||||||
|
if (i > j)
|
||||||
|
n1++;
|
||||||
|
else
|
||||||
|
n0++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(n0 == 7899 && n1 == 13011);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -9694,6 +9694,8 @@ bool NativeCodeBasicBlock::RemoveUnusedResultInstructions(void)
|
||||||
{
|
{
|
||||||
mVisited = true;
|
mVisited = true;
|
||||||
|
|
||||||
|
assert(mIndex == 1000 || mNumEntries == mEntryBlocks.Size());
|
||||||
|
|
||||||
NumberSet requiredRegs(mExitRequiredRegs);
|
NumberSet requiredRegs(mExitRequiredRegs);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -9726,6 +9728,8 @@ bool NativeCodeBasicBlock::RemoveUnusedResultInstructions(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(mIndex == 1000 || mNumEntries == mEntryBlocks.Size());
|
||||||
|
|
||||||
if (mTrueJump)
|
if (mTrueJump)
|
||||||
{
|
{
|
||||||
if (mTrueJump->RemoveUnusedResultInstructions())
|
if (mTrueJump->RemoveUnusedResultInstructions())
|
||||||
|
@ -13421,7 +13425,7 @@ bool NativeCodeBasicBlock::JoinTAXARange(int from, int to)
|
||||||
{
|
{
|
||||||
for (int i = from + 1; i < to; i++)
|
for (int i = from + 1; i < to; i++)
|
||||||
{
|
{
|
||||||
if (mIns[i].mMode == ASMIM_ZERO_PAGE && mIns[i].mAddress == mIns[start].mAddress && mIns[i].ChangesAddress())
|
if (mIns[i].mMode == ASMIM_ZERO_PAGE && mIns[i].mAddress == mIns[start - 1].mAddress && mIns[i].ChangesAddress())
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13453,7 +13457,7 @@ bool NativeCodeBasicBlock::JoinTAXARange(int from, int to)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (to + 1 < mIns.Size() && mIns[to + 1].mType == ASMIT_STA && !(mIns[to + 1].mLive & LIVE_CPU_REG_A))
|
if (to + 1 < mIns.Size() && mIns[to + 1].mType == ASMIT_STA && !(mIns[to + 1].mLive & LIVE_CPU_REG_A))
|
||||||
{
|
{
|
||||||
NativeCodeInstruction ins(mIns[to + 1]);
|
NativeCodeInstruction ins(mIns[to + 1]);
|
||||||
|
@ -15035,6 +15039,8 @@ bool NativeCodeBasicBlock::BitFieldForwarding(const NativeRegisterDataSet& data)
|
||||||
{
|
{
|
||||||
mNDataSet = data;
|
mNDataSet = data;
|
||||||
|
|
||||||
|
assert(mIndex == 1000 || mNumEntries == mEntryBlocks.Size());
|
||||||
|
|
||||||
if (mLoopHead)
|
if (mLoopHead)
|
||||||
{
|
{
|
||||||
mNDataSet.ResetMask();
|
mNDataSet.ResetMask();
|
||||||
|
@ -15072,6 +15078,8 @@ bool NativeCodeBasicBlock::BitFieldForwarding(const NativeRegisterDataSet& data)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(mIndex == 1000 || mNumEntries == mEntryBlocks.Size());
|
||||||
|
|
||||||
if (this->mTrueJump && this->mTrueJump->BitFieldForwarding(mNDataSet))
|
if (this->mTrueJump && this->mTrueJump->BitFieldForwarding(mNDataSet))
|
||||||
changed = true;
|
changed = true;
|
||||||
if (this->mFalseJump && this->mFalseJump->BitFieldForwarding(mFDataSet))
|
if (this->mFalseJump && this->mFalseJump->BitFieldForwarding(mFDataSet))
|
||||||
|
@ -15087,6 +15095,8 @@ bool NativeCodeBasicBlock::ValueForwarding(const NativeRegisterDataSet& data, bo
|
||||||
|
|
||||||
if (!mVisited)
|
if (!mVisited)
|
||||||
{
|
{
|
||||||
|
assert(mIndex == 1000 || mNumEntries == mEntryBlocks.Size());
|
||||||
|
|
||||||
mNDataSet = data;
|
mNDataSet = data;
|
||||||
|
|
||||||
if (mLoopHead)
|
if (mLoopHead)
|
||||||
|
@ -15197,13 +15207,18 @@ bool NativeCodeBasicBlock::ValueForwarding(const NativeRegisterDataSet& data, bo
|
||||||
{
|
{
|
||||||
mBranch = ASMIT_JMP;
|
mBranch = ASMIT_JMP;
|
||||||
mTrueJump->mNumEntries--;
|
mTrueJump->mNumEntries--;
|
||||||
|
mTrueJump->mEntryBlocks.Remove(mTrueJump->mEntryBlocks.IndexOf(this));
|
||||||
if (!mNDataSet.mRegs[CPU_REG_C].mValue)
|
if (!mNDataSet.mRegs[CPU_REG_C].mValue)
|
||||||
mTrueJump = fork->mFalseJump;
|
mTrueJump = fork->mFalseJump;
|
||||||
else
|
else
|
||||||
mTrueJump = fork->mTrueJump;
|
mTrueJump = fork->mTrueJump;
|
||||||
mTrueJump->mNumEntries++;
|
mTrueJump->mNumEntries++;
|
||||||
|
mTrueJump->mEntryBlocks.Push(this);
|
||||||
if (mFalseJump)
|
if (mFalseJump)
|
||||||
|
{
|
||||||
mFalseJump->mNumEntries--;
|
mFalseJump->mNumEntries--;
|
||||||
|
mFalseJump->mEntryBlocks.Remove(mFalseJump->mEntryBlocks.IndexOf(this));
|
||||||
|
}
|
||||||
mFalseJump = nullptr;
|
mFalseJump = nullptr;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
@ -15213,13 +15228,18 @@ bool NativeCodeBasicBlock::ValueForwarding(const NativeRegisterDataSet& data, bo
|
||||||
{
|
{
|
||||||
mBranch = ASMIT_JMP;
|
mBranch = ASMIT_JMP;
|
||||||
mTrueJump->mNumEntries--;
|
mTrueJump->mNumEntries--;
|
||||||
|
mTrueJump->mEntryBlocks.Remove(mTrueJump->mEntryBlocks.IndexOf(this));
|
||||||
if (mNDataSet.mRegs[CPU_REG_C].mValue)
|
if (mNDataSet.mRegs[CPU_REG_C].mValue)
|
||||||
mTrueJump = fork->mFalseJump;
|
mTrueJump = fork->mFalseJump;
|
||||||
else
|
else
|
||||||
mTrueJump = fork->mTrueJump;
|
mTrueJump = fork->mTrueJump;
|
||||||
mTrueJump->mNumEntries++;
|
mTrueJump->mNumEntries++;
|
||||||
|
mTrueJump->mEntryBlocks.Push(this);
|
||||||
if (mFalseJump)
|
if (mFalseJump)
|
||||||
|
{
|
||||||
mFalseJump->mNumEntries--;
|
mFalseJump->mNumEntries--;
|
||||||
|
mFalseJump->mEntryBlocks.Remove(mFalseJump->mEntryBlocks.IndexOf(this));
|
||||||
|
}
|
||||||
mFalseJump = nullptr;
|
mFalseJump = nullptr;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
@ -15229,13 +15249,18 @@ bool NativeCodeBasicBlock::ValueForwarding(const NativeRegisterDataSet& data, bo
|
||||||
{
|
{
|
||||||
mBranch = ASMIT_JMP;
|
mBranch = ASMIT_JMP;
|
||||||
mTrueJump->mNumEntries--;
|
mTrueJump->mNumEntries--;
|
||||||
|
mTrueJump->mEntryBlocks.Remove(mTrueJump->mEntryBlocks.IndexOf(this));
|
||||||
if (!mNDataSet.mRegs[CPU_REG_Z].mValue)
|
if (!mNDataSet.mRegs[CPU_REG_Z].mValue)
|
||||||
mTrueJump = fork->mFalseJump;
|
mTrueJump = fork->mFalseJump;
|
||||||
else
|
else
|
||||||
mTrueJump = fork->mTrueJump;
|
mTrueJump = fork->mTrueJump;
|
||||||
mTrueJump->mNumEntries++;
|
mTrueJump->mNumEntries++;
|
||||||
|
mTrueJump->mEntryBlocks.Push(this);
|
||||||
if (mFalseJump)
|
if (mFalseJump)
|
||||||
|
{
|
||||||
mFalseJump->mNumEntries--;
|
mFalseJump->mNumEntries--;
|
||||||
|
mFalseJump->mEntryBlocks.Remove(mFalseJump->mEntryBlocks.IndexOf(this));
|
||||||
|
}
|
||||||
mFalseJump = nullptr;
|
mFalseJump = nullptr;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
@ -15262,13 +15287,18 @@ bool NativeCodeBasicBlock::ValueForwarding(const NativeRegisterDataSet& data, bo
|
||||||
{
|
{
|
||||||
mBranch = ASMIT_JMP;
|
mBranch = ASMIT_JMP;
|
||||||
mTrueJump->mNumEntries--;
|
mTrueJump->mNumEntries--;
|
||||||
|
mTrueJump->mEntryBlocks.Remove(mTrueJump->mEntryBlocks.IndexOf(this));
|
||||||
if (mNDataSet.mRegs[CPU_REG_Z].mValue)
|
if (mNDataSet.mRegs[CPU_REG_Z].mValue)
|
||||||
mTrueJump = fork->mFalseJump;
|
mTrueJump = fork->mFalseJump;
|
||||||
else
|
else
|
||||||
mTrueJump = fork->mTrueJump;
|
mTrueJump = fork->mTrueJump;
|
||||||
mTrueJump->mNumEntries++;
|
mTrueJump->mNumEntries++;
|
||||||
|
mTrueJump->mEntryBlocks.Push(this);
|
||||||
if (mFalseJump)
|
if (mFalseJump)
|
||||||
|
{
|
||||||
mFalseJump->mNumEntries--;
|
mFalseJump->mNumEntries--;
|
||||||
|
mFalseJump->mEntryBlocks.Remove(mFalseJump->mEntryBlocks.IndexOf(this));
|
||||||
|
}
|
||||||
mFalseJump = nullptr;
|
mFalseJump = nullptr;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
@ -15278,13 +15308,18 @@ bool NativeCodeBasicBlock::ValueForwarding(const NativeRegisterDataSet& data, bo
|
||||||
{
|
{
|
||||||
mBranch = ASMIT_JMP;
|
mBranch = ASMIT_JMP;
|
||||||
mTrueJump->mNumEntries--;
|
mTrueJump->mNumEntries--;
|
||||||
|
mTrueJump->mEntryBlocks.Remove(mTrueJump->mEntryBlocks.IndexOf(this));
|
||||||
if ((mNDataSet.mRegs[CPU_REG_Z].mValue & 0x80))
|
if ((mNDataSet.mRegs[CPU_REG_Z].mValue & 0x80))
|
||||||
mTrueJump = fork->mFalseJump;
|
mTrueJump = fork->mFalseJump;
|
||||||
else
|
else
|
||||||
mTrueJump = fork->mTrueJump;
|
mTrueJump = fork->mTrueJump;
|
||||||
mTrueJump->mNumEntries++;
|
mTrueJump->mNumEntries++;
|
||||||
|
mTrueJump->mEntryBlocks.Push(this);
|
||||||
if (mFalseJump)
|
if (mFalseJump)
|
||||||
|
{
|
||||||
mFalseJump->mNumEntries--;
|
mFalseJump->mNumEntries--;
|
||||||
|
mFalseJump->mEntryBlocks.Remove(mFalseJump->mEntryBlocks.IndexOf(this));
|
||||||
|
}
|
||||||
mFalseJump = nullptr;
|
mFalseJump = nullptr;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
@ -15293,14 +15328,19 @@ bool NativeCodeBasicBlock::ValueForwarding(const NativeRegisterDataSet& data, bo
|
||||||
if (mNDataSet.mRegs[CPU_REG_Z].mMode == NRDM_IMMEDIATE)
|
if (mNDataSet.mRegs[CPU_REG_Z].mMode == NRDM_IMMEDIATE)
|
||||||
{
|
{
|
||||||
mBranch = ASMIT_JMP;
|
mBranch = ASMIT_JMP;
|
||||||
|
mTrueJump->mEntryBlocks.Remove(mTrueJump->mEntryBlocks.IndexOf(this));
|
||||||
mTrueJump->mNumEntries--;
|
mTrueJump->mNumEntries--;
|
||||||
if (!(mNDataSet.mRegs[CPU_REG_Z].mValue & 0x80))
|
if (!(mNDataSet.mRegs[CPU_REG_Z].mValue & 0x80))
|
||||||
mTrueJump = fork->mFalseJump;
|
mTrueJump = fork->mFalseJump;
|
||||||
else
|
else
|
||||||
mTrueJump = fork->mTrueJump;
|
mTrueJump = fork->mTrueJump;
|
||||||
mTrueJump->mNumEntries++;
|
mTrueJump->mNumEntries++;
|
||||||
|
mTrueJump->mEntryBlocks.Push(this);
|
||||||
if (mFalseJump)
|
if (mFalseJump)
|
||||||
|
{
|
||||||
mFalseJump->mNumEntries--;
|
mFalseJump->mNumEntries--;
|
||||||
|
mFalseJump->mEntryBlocks.Remove(mFalseJump->mEntryBlocks.IndexOf(this));
|
||||||
|
}
|
||||||
mFalseJump = nullptr;
|
mFalseJump = nullptr;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
@ -15331,6 +15371,8 @@ bool NativeCodeBasicBlock::ValueForwarding(const NativeRegisterDataSet& data, bo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(mIndex == 1000 || mNumEntries == mEntryBlocks.Size());
|
||||||
|
|
||||||
if (this->mTrueJump && this->mTrueJump->ValueForwarding(mNDataSet, global, final))
|
if (this->mTrueJump && this->mTrueJump->ValueForwarding(mNDataSet, global, final))
|
||||||
changed = true;
|
changed = true;
|
||||||
if (this->mFalseJump && this->mFalseJump->ValueForwarding(mFDataSet, global, final))
|
if (this->mFalseJump && this->mFalseJump->ValueForwarding(mFDataSet, global, final))
|
||||||
|
@ -18101,6 +18143,8 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(NativeCodeProcedure* proc, int pass
|
||||||
assert(mBranch != ASMIT_JMP || mFalseJump == nullptr);
|
assert(mBranch != ASMIT_JMP || mFalseJump == nullptr);
|
||||||
assert(mIns.Size() == 0 || mIns[0].mType != ASMIT_INV);
|
assert(mIns.Size() == 0 || mIns[0].mType != ASMIT_INV);
|
||||||
|
|
||||||
|
assert(mIndex == 1000 || mNumEntries == mEntryBlocks.Size());
|
||||||
|
|
||||||
bool changed = RemoveNops();
|
bool changed = RemoveNops();
|
||||||
|
|
||||||
mVisited = true;
|
mVisited = true;
|
||||||
|
@ -21982,6 +22026,64 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(NativeCodeProcedure* proc, int pass
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if (sz >= 2 &&
|
||||||
|
mIns[sz - 2].mType == ASMIT_EOR && mIns[sz - 2].mMode == ASMIM_IMMEDIATE && mIns[sz - 2].mAddress == 0x80 &&
|
||||||
|
mIns[sz - 1].mType == ASMIT_CMP && mIns[sz - 1].mMode == ASMIM_IMMEDIATE && mIns[sz - 1].mAddress == 0x80 && !(mIns[sz - 1].mLive & LIVE_CPU_REG_A))
|
||||||
|
{
|
||||||
|
if (mBranch == ASMIT_BNE && mTrueJump->mIns.Size() == 0 && mTrueJump->mBranch == ASMIT_BCC)
|
||||||
|
{
|
||||||
|
NativeCodeBasicBlock* tblock = proc->AllocateBlock();
|
||||||
|
|
||||||
|
tblock->mTrueJump = mTrueJump->mTrueJump;
|
||||||
|
tblock->mFalseJump = mTrueJump->mFalseJump;
|
||||||
|
tblock->mBranch = ASMIT_BMI;
|
||||||
|
tblock->mTrueJump->mNumEntries++;
|
||||||
|
tblock->mTrueJump->mEntryBlocks.Push(tblock);
|
||||||
|
tblock->mFalseJump->mNumEntries++;
|
||||||
|
tblock->mFalseJump->mEntryBlocks.Push(tblock);
|
||||||
|
|
||||||
|
mTrueJump->mEntryBlocks.Remove(mTrueJump->mEntryBlocks.IndexOf(this));
|
||||||
|
mTrueJump->mNumEntries--;
|
||||||
|
mTrueJump = tblock;
|
||||||
|
tblock->mNumEntries++;
|
||||||
|
tblock->mEntryBlocks.Push(this);
|
||||||
|
|
||||||
|
mIns[sz - 2].mType = ASMIT_NOP; mIns[sz - 2].mMode = ASMIM_IMPLIED;
|
||||||
|
mIns[sz - 1].mType = ASMIT_ORA; mIns[sz - 1].mAddress = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (sz >= 4 &&
|
||||||
|
mIns[sz - 4].mType == ASMIT_EOR && mIns[sz - 4].mMode == ASMIM_IMMEDIATE && mIns[sz - 4].mAddress == 0x80 &&
|
||||||
|
mIns[sz - 3].mType == ASMIT_STA && mIns[sz - 3].mMode == ASMIM_ZERO_PAGE &&
|
||||||
|
mIns[sz - 2].mType == ASMIT_LDA && mIns[sz - 2].mMode == ASMIM_IMMEDIATE && mIns[sz - 2].mAddress == 0x80 &&
|
||||||
|
mIns[sz - 1].mType == ASMIT_CMP && mIns[sz - 1].mMode == ASMIM_ZERO_PAGE && mIns[sz - 1].mAddress == mIns[sz - 3].mAddress && !(mIns[sz - 1].mLive & (LIVE_CPU_REG_A | LIVE_MEM)))
|
||||||
|
{
|
||||||
|
if (mBranch == ASMIT_BNE && mTrueJump->mIns.Size() == 0 && mTrueJump->mBranch == ASMIT_BCC)
|
||||||
|
{
|
||||||
|
NativeCodeBasicBlock* tblock = proc->AllocateBlock();
|
||||||
|
|
||||||
|
tblock->mTrueJump = mTrueJump->mFalseJump;
|
||||||
|
tblock->mFalseJump = mTrueJump->mTrueJump;
|
||||||
|
tblock->mBranch = ASMIT_BMI;
|
||||||
|
tblock->mTrueJump->mNumEntries++;
|
||||||
|
tblock->mTrueJump->mEntryBlocks.Push(tblock);
|
||||||
|
tblock->mFalseJump->mNumEntries++;
|
||||||
|
tblock->mFalseJump->mEntryBlocks.Push(tblock);
|
||||||
|
|
||||||
|
mTrueJump->mEntryBlocks.Remove(mTrueJump->mEntryBlocks.IndexOf(this));
|
||||||
|
mTrueJump->mNumEntries--;
|
||||||
|
mTrueJump = tblock;
|
||||||
|
tblock->mNumEntries++;
|
||||||
|
tblock->mEntryBlocks.Push(this);
|
||||||
|
|
||||||
|
mIns[sz - 4].mType = ASMIT_NOP; mIns[sz - 4].mMode = ASMIM_IMPLIED;
|
||||||
|
mIns[sz - 3].mType = ASMIT_NOP; mIns[sz - 3].mMode = ASMIM_IMPLIED;
|
||||||
|
mIns[sz - 2].mType = ASMIT_NOP; mIns[sz - 2].mMode = ASMIM_IMPLIED;
|
||||||
|
mIns[sz - 1].mType = ASMIT_ORA; mIns[sz - 1].mMode = ASMIM_IMMEDIATE; mIns[sz - 1].mAddress = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
else if (sz >= 2 &&
|
else if (sz >= 2 &&
|
||||||
mIns[sz - 2].mType == ASMIT_LDA && mIns[sz - 2].mMode == ASMIM_IMMEDIATE && mIns[sz - 2].mAddress == 0 &&
|
mIns[sz - 2].mType == ASMIT_LDA && mIns[sz - 2].mMode == ASMIM_IMMEDIATE && mIns[sz - 2].mAddress == 0 &&
|
||||||
mIns[sz - 1].mType == ASMIT_SBC && mIns[sz - 1].mMode == ASMIM_IMMEDIATE && mIns[sz - 1].mAddress == 0 && !(mIns[sz - 1].mLive & (LIVE_CPU_REG_A | LIVE_CPU_REG_C)))
|
mIns[sz - 1].mType == ASMIT_SBC && mIns[sz - 1].mMode == ASMIM_IMMEDIATE && mIns[sz - 1].mAddress == 0 && !(mIns[sz - 1].mLive & (LIVE_CPU_REG_A | LIVE_CPU_REG_C)))
|
||||||
|
@ -22098,6 +22200,7 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(NativeCodeProcedure* proc, int pass
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
assert(mIndex == 1000 || mNumEntries == mEntryBlocks.Size());
|
||||||
|
|
||||||
if (this->mTrueJump && this->mTrueJump->PeepHoleOptimizer(proc, pass))
|
if (this->mTrueJump && this->mTrueJump->PeepHoleOptimizer(proc, pass))
|
||||||
changed = true;
|
changed = true;
|
||||||
|
@ -22256,6 +22359,22 @@ void NativeCodeBasicBlock::BuildPlacement(GrowingArray<NativeCodeBasicBlock*>& p
|
||||||
mFalseJump->BuildPlacement(placement);
|
mFalseJump->BuildPlacement(placement);
|
||||||
mTrueJump->BuildPlacement(placement);
|
mTrueJump->BuildPlacement(placement);
|
||||||
}
|
}
|
||||||
|
else if (mTrueJump->mIns.Size() == 0 && mTrueJump->mFalseJump == mFalseJump->mFalseJump && mTrueJump->mTrueJump == mFalseJump->mTrueJump)
|
||||||
|
{
|
||||||
|
mTrueJump->mPlaced = true;
|
||||||
|
mTrueJump->mPlace = placement.Size();
|
||||||
|
placement.Push(mTrueJump);
|
||||||
|
|
||||||
|
mFalseJump->BuildPlacement(placement);
|
||||||
|
}
|
||||||
|
else if (mTrueJump->mIns.Size() == 0 && mTrueJump->mFalseJump == mFalseJump->mTrueJump && mTrueJump->mTrueJump == mFalseJump->mFalseJump)
|
||||||
|
{
|
||||||
|
mTrueJump->mPlaced = true;
|
||||||
|
mTrueJump->mPlace = placement.Size();
|
||||||
|
placement.Push(mTrueJump);
|
||||||
|
|
||||||
|
mFalseJump->BuildPlacement(placement);
|
||||||
|
}
|
||||||
else if (
|
else if (
|
||||||
!mTrueJump->mFalseJump && mTrueJump->mTrueJump && mTrueJump->mTrueJump->mPlaced && mTrueJump->mCode.Size() < 120 ||
|
!mTrueJump->mFalseJump && mTrueJump->mTrueJump && mTrueJump->mTrueJump->mPlaced && mTrueJump->mCode.Size() < 120 ||
|
||||||
mTrueJump->mFalseJump && mTrueJump->mTrueJump && mTrueJump->mFalseJump->mPlaced && mTrueJump->mTrueJump->mPlaced && mTrueJump->mCode.Size() < 120)
|
mTrueJump->mFalseJump && mTrueJump->mTrueJump && mTrueJump->mFalseJump->mPlaced && mTrueJump->mTrueJump->mPlaced && mTrueJump->mCode.Size() < 120)
|
||||||
|
|
|
@ -73,7 +73,7 @@ int main2(int argc, const char** argv)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
strcpy(strProductName, "oscar64");
|
strcpy(strProductName, "oscar64");
|
||||||
strcpy(strProductVersion, "1.6.124");
|
strcpy(strProductVersion, "1.6.125");
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
uint32_t length = sizeof(basePath);
|
uint32_t length = sizeof(basePath);
|
||||||
|
|
|
@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,6,124,0
|
FILEVERSION 1,6,125,0
|
||||||
PRODUCTVERSION 1,6,124,0
|
PRODUCTVERSION 1,6,125,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -43,12 +43,12 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "oscar64"
|
VALUE "CompanyName", "oscar64"
|
||||||
VALUE "FileDescription", "oscar64 compiler"
|
VALUE "FileDescription", "oscar64 compiler"
|
||||||
VALUE "FileVersion", "1.6.124.0"
|
VALUE "FileVersion", "1.6.125.0"
|
||||||
VALUE "InternalName", "oscar64.exe"
|
VALUE "InternalName", "oscar64.exe"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2021"
|
VALUE "LegalCopyright", "Copyright (C) 2021"
|
||||||
VALUE "OriginalFilename", "oscar64.exe"
|
VALUE "OriginalFilename", "oscar64.exe"
|
||||||
VALUE "ProductName", "oscar64"
|
VALUE "ProductName", "oscar64"
|
||||||
VALUE "ProductVersion", "1.6.124.0"
|
VALUE "ProductVersion", "1.6.125.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
@ -34,12 +34,6 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_03D7013B0D39A89CEA9D267005ADCE39"
|
|
||||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_04ABABC55200450383686DD782DD1548"
|
"MsmKey" = "8:_04ABABC55200450383686DD782DD1548"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -166,12 +160,6 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_326B44043E3720E0A341FB5627DA8873"
|
|
||||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_3277DE1463544F67B7E7390175F8A9CF"
|
"MsmKey" = "8:_3277DE1463544F67B7E7390175F8A9CF"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -184,12 +172,6 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_36B4A1247BFCE001E1BAE7560E9CFEEA"
|
|
||||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_379EE3C17FEC4C5EA79D07668CD05FC4"
|
"MsmKey" = "8:_379EE3C17FEC4C5EA79D07668CD05FC4"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -262,12 +244,6 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_458189403F0009BC49371204B74F3BD3"
|
|
||||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_47A877D439EE429BAB64C52FEF69EDA4"
|
"MsmKey" = "8:_47A877D439EE429BAB64C52FEF69EDA4"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -394,12 +370,6 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_749A2BA18335F50EB53CCE7029861FBC"
|
|
||||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_749F54DFBD4D404DA9C2E2D5BA7CDDBF"
|
"MsmKey" = "8:_749F54DFBD4D404DA9C2E2D5BA7CDDBF"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -460,12 +430,6 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_8667075410229C38BF63AC1CC776055E"
|
|
||||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_8827B6B07A1C4B32B08DF784E090381D"
|
"MsmKey" = "8:_8827B6B07A1C4B32B08DF784E090381D"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -790,12 +754,6 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_DD5A4DD822437085CD584319732F2D4D"
|
|
||||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_DEADBEA270134B77800770802B21859C"
|
"MsmKey" = "8:_DEADBEA270134B77800770802B21859C"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -856,12 +814,6 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_EA3C0BCB01F2639DFA2E37EC8436E5F6"
|
|
||||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_ED872D39D58443D590B7C80604BC0FF4"
|
"MsmKey" = "8:_ED872D39D58443D590B7C80604BC0FF4"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -892,12 +844,6 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_F20F5618C7576D758C01D89C87469AF8"
|
|
||||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
|
||||||
}
|
|
||||||
"Entry"
|
|
||||||
{
|
|
||||||
"MsmKey" = "8:_F35970F9D8FA46B09F36D7E9DE5532CA"
|
"MsmKey" = "8:_F35970F9D8FA46B09F36D7E9DE5532CA"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -1079,26 +1025,6 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_03D7013B0D39A89CEA9D267005ADCE39"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:VCRUNTIME140.dll"
|
|
||||||
"TargetName" = "8:VCRUNTIME140.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_04ABABC55200450383686DD782DD1548"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_04ABABC55200450383686DD782DD1548"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\samples\\games\\lander.c"
|
"SourcePath" = "8:..\\samples\\games\\lander.c"
|
||||||
|
@ -1519,26 +1445,6 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_326B44043E3720E0A341FB5627DA8873"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:api-ms-win-crt-stdio-l1-1-0.dll"
|
|
||||||
"TargetName" = "8:api-ms-win-crt-stdio-l1-1-0.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3277DE1463544F67B7E7390175F8A9CF"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3277DE1463544F67B7E7390175F8A9CF"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\samples\\rasterirq\\autocrawler.c"
|
"SourcePath" = "8:..\\samples\\rasterirq\\autocrawler.c"
|
||||||
|
@ -1579,26 +1485,6 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_36B4A1247BFCE001E1BAE7560E9CFEEA"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:api-ms-win-crt-math-l1-1-0.dll"
|
|
||||||
"TargetName" = "8:api-ms-win-crt-math-l1-1-0.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_379EE3C17FEC4C5EA79D07668CD05FC4"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_379EE3C17FEC4C5EA79D07668CD05FC4"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\samples\\memmap\\easyflash.c"
|
"SourcePath" = "8:..\\samples\\memmap\\easyflash.c"
|
||||||
|
@ -1839,26 +1725,6 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_458189403F0009BC49371204B74F3BD3"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:api-ms-win-crt-string-l1-1-0.dll"
|
|
||||||
"TargetName" = "8:api-ms-win-crt-string-l1-1-0.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_47A877D439EE429BAB64C52FEF69EDA4"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_47A877D439EE429BAB64C52FEF69EDA4"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\samples\\memmap\\largemem.c"
|
"SourcePath" = "8:..\\samples\\memmap\\largemem.c"
|
||||||
|
@ -2279,26 +2145,6 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_749A2BA18335F50EB53CCE7029861FBC"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:api-ms-win-crt-runtime-l1-1-0.dll"
|
|
||||||
"TargetName" = "8:api-ms-win-crt-runtime-l1-1-0.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_749F54DFBD4D404DA9C2E2D5BA7CDDBF"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_749F54DFBD4D404DA9C2E2D5BA7CDDBF"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\samples\\resources\\breakoutchars.bin"
|
"SourcePath" = "8:..\\samples\\resources\\breakoutchars.bin"
|
||||||
|
@ -2499,26 +2345,6 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8667075410229C38BF63AC1CC776055E"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:api-ms-win-crt-filesystem-l1-1-0.dll"
|
|
||||||
"TargetName" = "8:api-ms-win-crt-filesystem-l1-1-0.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8827B6B07A1C4B32B08DF784E090381D"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8827B6B07A1C4B32B08DF784E090381D"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\samples\\memmap\\tsr.c"
|
"SourcePath" = "8:..\\samples\\memmap\\tsr.c"
|
||||||
|
@ -3599,26 +3425,6 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DD5A4DD822437085CD584319732F2D4D"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:api-ms-win-crt-heap-l1-1-0.dll"
|
|
||||||
"TargetName" = "8:api-ms-win-crt-heap-l1-1-0.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DEADBEA270134B77800770802B21859C"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DEADBEA270134B77800770802B21859C"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\samples\\games\\connectfour.c"
|
"SourcePath" = "8:..\\samples\\games\\connectfour.c"
|
||||||
|
@ -3819,26 +3625,6 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_EA3C0BCB01F2639DFA2E37EC8436E5F6"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:VERSION.dll"
|
|
||||||
"TargetName" = "8:VERSION.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_ED872D39D58443D590B7C80604BC0FF4"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_ED872D39D58443D590B7C80604BC0FF4"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\samples\\kernalio\\fileread.c"
|
"SourcePath" = "8:..\\samples\\kernalio\\fileread.c"
|
||||||
|
@ -3939,26 +3725,6 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F20F5618C7576D758C01D89C87469AF8"
|
|
||||||
{
|
|
||||||
"SourcePath" = "8:api-ms-win-crt-locale-l1-1-0.dll"
|
|
||||||
"TargetName" = "8:api-ms-win-crt-locale-l1-1-0.dll"
|
|
||||||
"Tag" = "8:"
|
|
||||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
|
||||||
"Condition" = "8:"
|
|
||||||
"Transitive" = "11:FALSE"
|
|
||||||
"Vital" = "11:TRUE"
|
|
||||||
"ReadOnly" = "11:FALSE"
|
|
||||||
"Hidden" = "11:FALSE"
|
|
||||||
"System" = "11:FALSE"
|
|
||||||
"Permanent" = "11:FALSE"
|
|
||||||
"SharedLegacy" = "11:FALSE"
|
|
||||||
"PackageAs" = "3:1"
|
|
||||||
"Register" = "3:1"
|
|
||||||
"Exclude" = "11:FALSE"
|
|
||||||
"IsDependency" = "11:TRUE"
|
|
||||||
"IsolateTo" = "8:"
|
|
||||||
}
|
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F35970F9D8FA46B09F36D7E9DE5532CA"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F35970F9D8FA46B09F36D7E9DE5532CA"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\include\\c64\\charwin.h"
|
"SourcePath" = "8:..\\include\\c64\\charwin.h"
|
||||||
|
@ -4335,15 +4101,15 @@
|
||||||
{
|
{
|
||||||
"Name" = "8:Microsoft Visual Studio"
|
"Name" = "8:Microsoft Visual Studio"
|
||||||
"ProductName" = "8:oscar64"
|
"ProductName" = "8:oscar64"
|
||||||
"ProductCode" = "8:{F5C14785-E716-4D8A-8390-DBB8B4DEEA8D}"
|
"ProductCode" = "8:{012BAFFC-85BE-4D95-A9FB-7203B5435FF1}"
|
||||||
"PackageCode" = "8:{86E78AF0-FBD2-4C41-8643-0068DA813076}"
|
"PackageCode" = "8:{ABEDA3FF-5D70-41AE-9FBC-FA8BCE3C85E7}"
|
||||||
"UpgradeCode" = "8:{9AB61EFF-ACAC-4079-9950-8D96615CD4EF}"
|
"UpgradeCode" = "8:{9AB61EFF-ACAC-4079-9950-8D96615CD4EF}"
|
||||||
"AspNetVersion" = "8:2.0.50727.0"
|
"AspNetVersion" = "8:2.0.50727.0"
|
||||||
"RestartWWWService" = "11:FALSE"
|
"RestartWWWService" = "11:FALSE"
|
||||||
"RemovePreviousVersions" = "11:TRUE"
|
"RemovePreviousVersions" = "11:TRUE"
|
||||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||||
"InstallAllUsers" = "11:FALSE"
|
"InstallAllUsers" = "11:FALSE"
|
||||||
"ProductVersion" = "8:1.6.124"
|
"ProductVersion" = "8:1.6.125"
|
||||||
"Manufacturer" = "8:oscar64"
|
"Manufacturer" = "8:oscar64"
|
||||||
"ARPHELPTELEPHONE" = "8:"
|
"ARPHELPTELEPHONE" = "8:"
|
||||||
"ARPHELPLINK" = "8:"
|
"ARPHELPLINK" = "8:"
|
||||||
|
|
Loading…
Reference in New Issue