mirror of
https://github.com/cc65/cc65.git
synced 2024-11-19 06:31:31 +00:00
Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@89 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
ea2f5c1309
commit
dff9bae70a
@ -1872,14 +1872,10 @@ static int OptPtrOps1 (Line** Start)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Check if AX is actually used following the code above. If not,
|
/* Check if AX is actually used following the code above. If not,
|
||||||
* we don't need to load A/X from regsave. Since X will never by
|
* we don't need to load A/X from regsave. Since X will never be
|
||||||
* used without A, check just for A.
|
* used without A, check just for A.
|
||||||
*/
|
*/
|
||||||
NeedLoad = 1;
|
NeedLoad = RegAUsed (L3[3]);
|
||||||
if (!RegAUsed (L3[3])) {
|
|
||||||
/* We don't need to load regsave */
|
|
||||||
NeedLoad = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Special code for register variables */
|
/* Special code for register variables */
|
||||||
Done = 0;
|
Done = 0;
|
||||||
@ -2042,8 +2038,8 @@ static int OptPtrOps1 (Line** Start)
|
|||||||
|
|
||||||
/* If we need to load a/x, add the code */
|
/* If we need to load a/x, add the code */
|
||||||
if (NeedLoad) {
|
if (NeedLoad) {
|
||||||
L = NewLineAfter (L, "\ttax");
|
|
||||||
L = NewLineAfter (L, "\tlda\tptr1");
|
L = NewLineAfter (L, "\tlda\tptr1");
|
||||||
|
L = NewLineAfter (L, "\tldx\tptr1+1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2157,11 +2153,7 @@ static int OptPtrOps2 (Line** Start)
|
|||||||
* we don't need to load A/X from regsave. Since X will never by
|
* we don't need to load A/X from regsave. Since X will never by
|
||||||
* used without A, check just for A.
|
* used without A, check just for A.
|
||||||
*/
|
*/
|
||||||
NeedLoad = 1;
|
NeedLoad = RegAUsed (L3[0]);
|
||||||
if (!RegAUsed (L3[0])) {
|
|
||||||
/* We don't need to load regsave */
|
|
||||||
NeedLoad = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Replace the ldy instruction, offset must point to the low byte */
|
/* Replace the ldy instruction, offset must point to the low byte */
|
||||||
sprintf (L->Line+7, "%02X", Offs);
|
sprintf (L->Line+7, "%02X", Offs);
|
||||||
@ -2251,8 +2243,8 @@ static int OptPtrOps2 (Line** Start)
|
|||||||
|
|
||||||
/* If we need to load a/x, add the code */
|
/* If we need to load a/x, add the code */
|
||||||
if (NeedLoad) {
|
if (NeedLoad) {
|
||||||
L = NewLineAfter (L, "\ttax");
|
|
||||||
L = NewLineAfter (L, "\tlda\tptr1");
|
L = NewLineAfter (L, "\tlda\tptr1");
|
||||||
|
L = NewLineAfter (L, "\tldx\tptr1+1");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remove the code that is no longer needed */
|
/* Remove the code that is no longer needed */
|
||||||
|
Loading…
Reference in New Issue
Block a user