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