diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-06-27 15:05:07 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 1996-06-27 15:05:07 +0000 |
commit | 2a9e0d474333053f4f94050312572cea772a8022 (patch) | |
tree | da22cc402e32f580d764602cf0b8d8c08a145e7a /gcc/config/sh/sh.c | |
parent | 1c4be06beb63a544f0a6c3f8773a3f3de659b831 (diff) | |
download | gcc-2a9e0d474333053f4f94050312572cea772a8022.tar.gz |
Don't call ADJUST_INSN_LENGTH on an insn inside a sequence
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12336 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sh/sh.c')
-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 d3f1e0f03ad..7e0d8cc8f96 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) { |