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:
Graham Stott 2001-08-08 08:22:05 +00:00 committed by Graham Stott
parent 5f9689e59f
commit 674fc07da0
2 changed files with 25 additions and 1 deletions

View File

@ -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.

View File

@ -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;