From afc6898e108fcbf573a93371a2ad99481a0a1867 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Tue, 19 Sep 2000 16:43:36 +0000 Subject: [PATCH] Fix shorten_branches bugs From-SVN: r36538 --- gcc/ChangeLog | 6 ++++-- gcc/final.c | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4000a6c6986..148ec20d2d6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2000-09-19 Bernd Schmidt + * final.c (insn_current_reference_address): Use INSN_SHUID of seq + rather than that of branch. + (shorten_branches): Don't increment insn_current_address twice. + Undo most of the Wed Jan 27 23:39:53 1999 patch: * loop.h (struct induction): Delete members derived, ix and last_use. (struct loop_ivs): Delete members first_increment_giv and @@ -22,8 +26,6 @@ increments. Don't set derived_regs. -2000-09-19 Bernd Schmidt - Fix misapplied earlier patch: * config/sh/sh.md (floatsisf_ie): Reenable. Remove explicit reference to fpul. diff --git a/gcc/final.c b/gcc/final.c index c22df2f4c96..bfd47545d6a 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -932,8 +932,9 @@ insn_current_reference_address (branch) return insn_current_address; dest = JUMP_LABEL (branch); - /* BRANCH has no proper alignment chain set, so use SEQ. */ - if (INSN_SHUID (branch) < INSN_SHUID (dest)) + /* BRANCH has no proper alignment chain set, so use SEQ. + BRANCH also has no INSN_SHUID. */ + if (INSN_SHUID (seq) < INSN_SHUID (dest)) { /* Forward branch. */ return (insn_last_address + insn_lengths[seq_uid] @@ -1241,7 +1242,6 @@ shorten_branches (first) int align = 1 << log; int new_address = (insn_current_address + align - 1) & -align; insn_lengths[uid] = new_address - insn_current_address; - insn_current_address = new_address; } } -- 2.30.2