final.c (shorten_branches): Update the INSN_ADDRESSES of insns within fixed length SEQUENCE.
* final.c (shorten_branches): Update the INSN_ADDRESSES of insns within fixed length SEQUENCE. From-SVN: r44712
This commit is contained in:
parent
5f9689e59f
commit
674fc07da0
@ -1,3 +1,8 @@
|
||||
2001-08-08 Graham Stott <grahams@redhat.com>
|
||||
|
||||
* final.c (shorten_branches): Update the INSN_ADDRESSES of insns
|
||||
within fixed length SEQUENCE.
|
||||
|
||||
2001-08-08 Graham Stott <grahams@redhat.com>
|
||||
|
||||
* diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
|
||||
|
21
gcc/final.c
21
gcc/final.c
@ -1445,9 +1445,28 @@ shorten_branches (first)
|
||||
|
||||
if (! (varying_length[uid]))
|
||||
{
|
||||
insn_current_address += insn_lengths[uid];
|
||||
if (GET_CODE (insn) == INSN
|
||||
&& GET_CODE (PATTERN (insn)) == SEQUENCE)
|
||||
{
|
||||
int i;
|
||||
|
||||
body = PATTERN (insn);
|
||||
for (i = 0; i < XVECLEN (body, 0); i++)
|
||||
{
|
||||
rtx inner_insn = XVECEXP (body, 0, i);
|
||||
int inner_uid = INSN_UID (inner_insn);
|
||||
|
||||
INSN_ADDRESSES (inner_uid) = insn_current_address;
|
||||
|
||||
insn_current_address += insn_lengths[inner_uid];
|
||||
}
|
||||
}
|
||||
else
|
||||
insn_current_address += insn_lengths[uid];
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) == SEQUENCE)
|
||||
{
|
||||
int i;
|
||||
|
Loading…
Reference in New Issue
Block a user