1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-29 12:29:11 +00:00

Fixed a bug

git-svn-id: svn://svn.cc65.org/cc65/trunk@2688 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-11-27 20:43:37 +00:00
parent 20582afca5
commit 614d23b53a

View File

@ -7,7 +7,7 @@
/* */ /* */
/* */ /* */
/* (C) 2001-2003 Ullrich von Bassewitz */ /* (C) 2001-2003 Ullrich von Bassewitz */
/* Römerstrasse 52 */ /* Römerstraße 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
/* */ /* */
@ -1322,13 +1322,25 @@ unsigned OptPrecalc (CodeSeg* S)
switch (E->OPC) { switch (E->OPC) {
case OP65_LDA: case OP65_LDA:
case OP65_LDX: if (E->AM != AM65_IMM && RegValIsKnown (Out->RegA)) {
case OP65_LDY: /* Result of load is known */
if (E->AM == AM65_IMM) { Arg = MakeHexArg (Out->RegA);
/* If we do already have an immediate load, bail out */
break;
} }
/* FALLTHROUGH */ break;
case OP65_LDX:
if (E->AM != AM65_IMM && RegValIsKnown (Out->RegX)) {
/* Result of load is known */
Arg = MakeHexArg (Out->RegX);
}
break;
case OP65_LDY:
if (E->AM != AM65_IMM && RegValIsKnown (Out->RegY)) {
/* Result of load is known */
Arg = MakeHexArg (Out->RegY);
}
break;
case OP65_ADC: case OP65_ADC:
case OP65_ASL: case OP65_ASL:
@ -1336,7 +1348,7 @@ unsigned OptPrecalc (CodeSeg* S)
case OP65_LSR: case OP65_LSR:
case OP65_SBC: case OP65_SBC:
if (RegValIsKnown (Out->RegA)) { if (RegValIsKnown (Out->RegA)) {
/* Accu AND zp with known contents */ /* Accu op zp with known contents */
Arg = MakeHexArg (Out->RegA); Arg = MakeHexArg (Out->RegA);
} }
break; break;