1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-19 06:31:31 +00:00

Fix problem with OptPtrLoad1 - never insert before the deleted code, always

delete after! Otherwise labels will get wrong.


git-svn-id: svn://svn.cc65.org/cc65/trunk@4117 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2009-09-04 20:16:18 +00:00
parent 18d865e609
commit fa2064ae3b

View File

@ -108,7 +108,7 @@ unsigned OptPtrLoad1 (CodeSeg* S)
CodeEntry* P; CodeEntry* P;
/* Track the insertion point */ /* Track the insertion point */
unsigned IP = I; unsigned IP = I+9;
/* sta ptr1 */ /* sta ptr1 */
X = NewCodeEntry (OP65_STA, AM65_ZP, "ptr1", 0, L[2]->LI); X = NewCodeEntry (OP65_STA, AM65_ZP, "ptr1", 0, L[2]->LI);
@ -127,8 +127,9 @@ unsigned OptPtrLoad1 (CodeSeg* S)
} }
CS_InsertEntry (S, X, IP++); CS_InsertEntry (S, X, IP++);
/* clc is now in the right place */ /* clc */
++IP; X = NewCodeEntry (OP65_CLC, AM65_IMP, 0, 0, L[0]->LI);
CS_InsertEntry (S, X, IP++);
/* adc yyy */ /* adc yyy */
X = NewCodeEntry (OP65_ADC, L[4]->AM, L[4]->Arg, 0, L[4]->LI); X = NewCodeEntry (OP65_ADC, L[4]->AM, L[4]->Arg, 0, L[4]->LI);
@ -151,7 +152,7 @@ unsigned OptPtrLoad1 (CodeSeg* S)
CS_InsertEntry (S, X, IP++); CS_InsertEntry (S, X, IP++);
/* Remove the old instructions */ /* Remove the old instructions */
CS_DelEntries (S, IP, 8); CS_DelEntries (S, I, 9);
/* Remember, we had changes */ /* Remember, we had changes */
++Changes; ++Changes;