mirror of
https://github.com/cc65/cc65.git
synced 2024-11-19 06:31:31 +00:00
ldaxysp doesn't return flags any more.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3728 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
c156b20738
commit
1ac3cbe420
@ -62,8 +62,7 @@ unsigned OptStore1 (CodeSeg* S)
|
|||||||
* ldy #n+1
|
* ldy #n+1
|
||||||
* jsr ldaxysp
|
* jsr ldaxysp
|
||||||
*
|
*
|
||||||
* and remove the useless load, provided that the next insn doesn't use flags
|
* and remove the useless load.
|
||||||
* from the load.
|
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
unsigned Changes = 0;
|
unsigned Changes = 0;
|
||||||
@ -72,7 +71,7 @@ unsigned OptStore1 (CodeSeg* S)
|
|||||||
unsigned I = 0;
|
unsigned I = 0;
|
||||||
while (I < CS_GetEntryCount (S)) {
|
while (I < CS_GetEntryCount (S)) {
|
||||||
|
|
||||||
CodeEntry* L[5];
|
CodeEntry* L[4];
|
||||||
|
|
||||||
/* Get next entry */
|
/* Get next entry */
|
||||||
L[0] = CS_GetEntry (S, I);
|
L[0] = CS_GetEntry (S, I);
|
||||||
@ -82,12 +81,11 @@ unsigned OptStore1 (CodeSeg* S)
|
|||||||
CE_IsConstImm (L[0]) &&
|
CE_IsConstImm (L[0]) &&
|
||||||
L[0]->Num < 0xFF &&
|
L[0]->Num < 0xFF &&
|
||||||
!CS_RangeHasLabel (S, I+1, 3) &&
|
!CS_RangeHasLabel (S, I+1, 3) &&
|
||||||
CS_GetEntries (S, L+1, I+1, 4) &&
|
CS_GetEntries (S, L+1, I+1, 3) &&
|
||||||
CE_IsCallTo (L[1], "staxysp") &&
|
CE_IsCallTo (L[1], "staxysp") &&
|
||||||
L[2]->OPC == OP65_LDY &&
|
L[2]->OPC == OP65_LDY &&
|
||||||
CE_IsKnownImm (L[2], L[0]->Num + 1) &&
|
CE_IsKnownImm (L[2], L[0]->Num + 1) &&
|
||||||
CE_IsCallTo (L[3], "ldaxysp") &&
|
CE_IsCallTo (L[3], "ldaxysp")) {
|
||||||
!CE_UseLoadFlags (L[4])) {
|
|
||||||
|
|
||||||
/* Register has already the correct value, remove the loads */
|
/* Register has already the correct value, remove the loads */
|
||||||
CS_DelEntries (S, I+2, 2);
|
CS_DelEntries (S, I+2, 2);
|
||||||
|
Loading…
Reference in New Issue
Block a user