From: uz Date: Sat, 15 Aug 2009 16:45:02 +0000 (+0000) Subject: Fixed wrong insertion order that caused problems with labels. X-Git-Tag: V2.13.0rc1~234 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=14b00447a8d6fad7552a201d4703d98890004f3e;p=cc65 Fixed wrong insertion order that caused problems with labels. git-svn-id: svn://svn.cc65.org/cc65/trunk@4021 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/cc65/coptind.c b/src/cc65/coptind.c index 2ca307e37..5172ba470 100644 --- a/src/cc65/coptind.c +++ b/src/cc65/coptind.c @@ -38,10 +38,10 @@ /* cc65 */ #include "codeent.h" +#include "coptind.h" #include "codeinfo.h" #include "codeopt.h" #include "error.h" -#include "coptind.h" @@ -640,7 +640,7 @@ unsigned OptJumpTarget2 (CodeSeg* S) /* Jump target insn, old and new */ CodeEntry* T; CodeEntry* N; - + /* New jump label */ CodeLabel* L; @@ -1437,11 +1437,11 @@ unsigned OptTransfers3 (CodeSeg* S) /* If we have a replacement store, change the code */ if (X) { - /* Insert before the xfer insn */ - CS_InsertEntry (S, X, Xfer); + /* Insert after the xfer insn */ + CS_InsertEntry (S, X, Xfer+1); /* Remove the xfer instead */ - CS_DelEntry (S, Xfer+1); + CS_DelEntry (S, Xfer); /* Remove the final store */ CS_DelEntry (S, Store); @@ -1595,11 +1595,11 @@ unsigned OptTransfers4 (CodeSeg* S) /* If we have a replacement load, change the code */ if (X) { - /* Insert before the xfer insn */ - CS_InsertEntry (S, X, Xfer); + /* Insert after the xfer insn */ + CS_InsertEntry (S, X, Xfer+1); /* Remove the xfer instead */ - CS_DelEntry (S, Xfer+1); + CS_DelEntry (S, Xfer); /* Remove the initial load */ CS_DelEntry (S, Load); @@ -1703,12 +1703,12 @@ unsigned OptPushPop (CodeSeg* S) !RegAUsed (S, I+1) && !MemAccess (S, Push+1, Pop-1, E->Arg)) { - /* Insert a STA before the PHA */ + /* Insert a STA after the PHA */ X = NewCodeEntry (E->OPC, E->AM, E->Arg, E->JumpTo, E->LI); - CS_InsertEntry (S, X, Push); + CS_InsertEntry (S, X, Push+1); /* Remove the PHA instead */ - CS_DelEntry (S, Push+1); + CS_DelEntry (S, Push); /* Remove the PLA/STA sequence */ CS_DelEntries (S, Pop, 2);