diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 1996-06-27 15:05:07 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 1996-06-27 15:05:07 +0000 |
commit | 9c0e838fa0e2cdbe96f40b4d209ed83540040148 (patch) | |
tree | da22cc402e32f580d764602cf0b8d8c08a145e7a | |
parent | 458c16f71e1ba5e22baee6038f0042e97856c419 (diff) | |
download | gcc-9c0e838fa0e2cdbe96f40b4d209ed83540040148.zip gcc-9c0e838fa0e2cdbe96f40b4d209ed83540040148.tar.gz gcc-9c0e838fa0e2cdbe96f40b4d209ed83540040148.tar.bz2 |
Don't call ADJUST_INSN_LENGTH on an insn inside a sequence
From-SVN: r12336
-rw-r--r-- | gcc/config/sh/sh.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index d3f1e0f..7e0d8cc 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -556,10 +556,16 @@ output_branch (logic, insn, operands) int adjusted_length; /* Undo the effects of ADJUST_INSN_LENGTH, so that we get the real - length. */ - adjusted_length = length; - ADJUST_INSN_LENGTH (insn, adjusted_length); - length -= (adjusted_length - length); + length. If NEXT_INSN (PREV_INSN (insn)) != insn, then the insn + is inside a sequence, and ADJUST_INSN_LENGTH was not called on + it. */ + if (PREV_INSN (insn) == NULL + || NEXT_INSN (PREV_INSN (insn)) == insn) + { + adjusted_length = length; + ADJUST_INSN_LENGTH (insn, adjusted_length); + length -= (adjusted_length - length); + } switch (length) { |