aboutsummaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-05-31 03:59:30 +0000
committerRichard Stallman <rms@gnu.org>1993-05-31 03:59:30 +0000
commit8fa20c263075d2eb730bea3d0670e9320a12e01f (patch)
tree87509b71fe06ff5255694dfa4ff559d8e80b9d5a /gcc/final.c
parent47f113fe9512ea859fcfad68b56cdbc87149291e (diff)
downloadgcc-8fa20c263075d2eb730bea3d0670e9320a12e01f.zip
gcc-8fa20c263075d2eb730bea3d0670e9320a12e01f.tar.gz
gcc-8fa20c263075d2eb730bea3d0670e9320a12e01f.tar.bz2
(shorten_branches): Conditionalize last change
on SHORTEN_WITH_ADJUST_INSN_LENGTH. (shorten_branches): Call ADJUST_INSN_LENGTH during the shortening phase. From-SVN: r4600
Diffstat (limited to 'gcc/final.c')
-rw-r--r--gcc/final.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 5834010..67a30fa 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -587,6 +587,7 @@ shorten_branches (first)
insn = NEXT_INSN (insn))
{
int new_length;
+ int tmp_length;
uid = INSN_UID (insn);
insn_addresses[uid] = insn_current_address;
@@ -630,6 +631,16 @@ shorten_branches (first)
new_length = insn_current_length (insn);
insn_current_address += new_length;
}
+
+#ifdef SHORTEN_WITH_ADJUST_INSN_LENGTH
+#ifdef ADJUST_INSN_LENGTH
+ /* If needed, do any adjustment. */
+ tmp_length = new_length;
+ ADJUST_INSN_LENGTH (insn, new_length);
+ insn_current_address += (new_length - tmp_length);
+#endif
+#endif
+
if (new_length != insn_lengths[uid])
{
insn_lengths[uid] = new_length;