From: uz Date: Thu, 27 Aug 2009 16:38:27 +0000 (+0000) Subject: Check for usage of Y instead of reloading it. The latter will destroy the X-Git-Tag: V2.13.0rc1~201 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1b4e2111c3b46a5131fe3b9ee208d82a3970b904;p=cc65 Check for usage of Y instead of reloading it. The latter will destroy the flags from load of A. git-svn-id: svn://svn.cc65.org/cc65/trunk@4055 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/cc65/coptptrload.c b/src/cc65/coptptrload.c index 99118cefc..b8b9f38fc 100644 --- a/src/cc65/coptptrload.c +++ b/src/cc65/coptptrload.c @@ -566,7 +566,6 @@ unsigned OptPtrLoad6 (CodeSeg* S) * tay * ldx #$00 * lda (ptr1),y - * ldy #$00 */ { unsigned Changes = 0; @@ -594,7 +593,8 @@ unsigned OptPtrLoad6 (CodeSeg* S) L[5]->OPC == OP65_LDY && CE_IsKnownImm (L[5], 0) && CE_IsCallTo (L[6], "ldauidx") && - !CS_RangeHasLabel (S, I+1, 6)) { + !CS_RangeHasLabel (S, I+1, 6) && + !RegYUsed (S, I+7)) { CodeEntry* X; const char* Arg; @@ -628,10 +628,6 @@ unsigned OptPtrLoad6 (CodeSeg* S) X = NewCodeEntry (OP65_LDA, AM65_ZP_INDY, "ptr1", 0, L[6]->LI); CS_InsertEntry (S, X, I+13); - /* ldy #$00 (will eventually get removed later) */ - X = NewCodeEntry (OP65_LDY, AM65_IMM, "$00", 0, L[5]->LI); - CS_InsertEntry (S, X, I+14); - /* Remove the old code */ CS_DelEntries (S, I, 7);