Fix propagation of volatile flags
This commit is contained in:
parent
bb00b5af12
commit
e5805716e2
|
@ -163,8 +163,15 @@ __asm getpch
|
||||||
cpx #IOCHM_PETSCII_1
|
cpx #IOCHM_PETSCII_1
|
||||||
bcc w3
|
bcc w3
|
||||||
|
|
||||||
|
cmp #219
|
||||||
|
bcs w3
|
||||||
cmp #65
|
cmp #65
|
||||||
bcc w3
|
bcc w3
|
||||||
|
|
||||||
|
cmp #193
|
||||||
|
bcc w4
|
||||||
|
eor #$a0
|
||||||
|
w4:
|
||||||
cmp #123
|
cmp #123
|
||||||
bcs w3
|
bcs w3
|
||||||
cmp #97
|
cmp #97
|
||||||
|
|
|
@ -158,8 +158,15 @@ __asm getpch
|
||||||
cpx #IOCHM_PETSCII_1
|
cpx #IOCHM_PETSCII_1
|
||||||
bcc w3
|
bcc w3
|
||||||
|
|
||||||
|
cmp #219
|
||||||
|
bcs w3
|
||||||
cmp #65
|
cmp #65
|
||||||
bcc w3
|
bcc w3
|
||||||
|
|
||||||
|
cmp #193
|
||||||
|
bcc w4
|
||||||
|
eor #$a0
|
||||||
|
w4:
|
||||||
cmp #123
|
cmp #123
|
||||||
bcs w3
|
bcs w3
|
||||||
cmp #97
|
cmp #97
|
||||||
|
@ -800,9 +807,6 @@ static const char * scanpat(const char * fmt, char * mask)
|
||||||
|
|
||||||
} while (fc && fc != ']');
|
} while (fc && fc != ']');
|
||||||
|
|
||||||
if (fc == ']')
|
|
||||||
fmt++;
|
|
||||||
|
|
||||||
if (negated)
|
if (negated)
|
||||||
{
|
{
|
||||||
for(char i=4; i<32; i++)
|
for(char i=4; i<32; i++)
|
||||||
|
|
|
@ -33623,7 +33623,7 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(NativeCodeProcedure* proc, int pass
|
||||||
}
|
}
|
||||||
else if (
|
else if (
|
||||||
mIns[i + 0].ChangesAccuAndFlag() &&
|
mIns[i + 0].ChangesAccuAndFlag() &&
|
||||||
mIns[i + 1].mType == ASMIT_STA && mIns[i + 2].mType == ASMIT_LDA &&
|
mIns[i + 1].mType == ASMIT_STA && mIns[i + 2].mType == ASMIT_LDA && !(mIns[i + 2].mFlags & NCIF_VOLATILE) &&
|
||||||
mIns[i + 1].SameEffectiveAddress(mIns[i + 2]))
|
mIns[i + 1].SameEffectiveAddress(mIns[i + 2]))
|
||||||
{
|
{
|
||||||
mIns[i + 0].mLive |= mIns[i + 2].mLive & (LIVE_CPU_REG_A | LIVE_CPU_REG_Z);
|
mIns[i + 0].mLive |= mIns[i + 2].mLive & (LIVE_CPU_REG_A | LIVE_CPU_REG_Z);
|
||||||
|
|
Loading…
Reference in New Issue