diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-05 07:01:00 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-05 07:01:00 +0000 |
commit | f5ce8a6d0b4c7c9eff54499f98e74413fa28038b (patch) | |
tree | 3808c07fac746d06695c717362ecbee1319dc5a9 /gcc/final.c | |
parent | 4f3b25bd1bc9c5b87f408bda0eafc6f45455ac10 (diff) | |
download | gcc-f5ce8a6d0b4c7c9eff54499f98e74413fa28038b.tar.gz |
* final.c (shorten_branches): Correctly compute length of
asms without operands.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31230 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/final.c b/gcc/final.c index 8f49e0909b9..1c648da34a4 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1,5 +1,5 @@ /* Convert RTL to assembler code and output it, for GNU compiler. - Copyright (C) 1987, 88, 89, 92-98, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 89, 92-99, 2000 Free Software Foundation, Inc. This file is part of GNU CC. @@ -1282,7 +1282,7 @@ shorten_branches (first) * GET_MODE_SIZE (GET_MODE (body))); /* Alignment is handled by ADDR_VEC_ALIGN. */ } - else if (asm_noperands (body) >= 0) + else if (GET_CODE (body) == ASM_INPUT || asm_noperands (body) >= 0) insn_lengths[uid] = asm_insn_count (body) * insn_default_length (insn); else if (GET_CODE (body) == SEQUENCE) { @@ -1302,7 +1302,8 @@ shorten_branches (first) int inner_uid = INSN_UID (inner_insn); int inner_length; - if (asm_noperands (PATTERN (XVECEXP (body, 0, i))) >= 0) + if (GET_CODE (body) == ASM_INPUT + || asm_noperands (PATTERN (XVECEXP (body, 0, i))) >= 0) inner_length = (asm_insn_count (PATTERN (inner_insn)) * insn_default_length (inner_insn)); else |