From d451248437560e88eb893f9e1c4fbab61b125350 Mon Sep 17 00:00:00 2001 From: uz Date: Mon, 14 Sep 2009 19:54:50 +0000 Subject: [PATCH] Fixed another problem with OptJumpTarget1, that was mostly prevented from being triggered by other optimizations, which removed or changed the trigger code. git-svn-id: svn://svn.cc65.org/cc65/trunk@4170 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/cc65/coptind.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/cc65/coptind.c b/src/cc65/coptind.c index 32537b92a..edbb32e76 100644 --- a/src/cc65/coptind.c +++ b/src/cc65/coptind.c @@ -580,6 +580,13 @@ unsigned OptJumpTarget1 (CodeSeg* S) goto NextEntry; } + /* The entry preceeding the branch target may not be the branch + * insn. + */ + if (T1 == E2) { + goto NextEntry; + } + /* Get the entry preceeding the jump */ E1 = CS_GetEntry (S, I); @@ -594,6 +601,7 @@ unsigned OptJumpTarget1 (CodeSeg* S) * not already have one. */ TL1 = CS_GenLabel (S, T1); + printf ("Generated label %s\n", TL1->Name); /* Change the jump target to point to this new label */ CS_MoveLabelRef (S, E2, TL1); -- 2.39.5