re PR target/21888 (bootstrap failure with linker relaxation enabled)

PR target/21888
        * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
        until we've passed initial ldgp.

From-SVN: r100596
This commit is contained in:
Richard Henderson 2005-06-04 12:23:53 -07:00 committed by Richard Henderson
parent 833b3afe49
commit 0f1341c792
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2005-06-04 Richard Henderson <rth@redhat.com>
PR target/21888
* config/alpha/alpha.c (alpha_align_insns): Don't insert nops
until we've passed initial ldgp.
2005-06-04 Daniel Berlin <dberlin@dberlin.org>
* cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.

View File

@ -8974,7 +8974,7 @@ alpha_align_insns (unsigned int max_align,
unsigned int align;
/* OFS is the offset of the current insn in the insn group. */
int ofs;
int prev_in_use, in_use, len;
int prev_in_use, in_use, len, ldgp;
rtx i, next;
/* Let shorten branches care for assigning alignments to code labels. */
@ -8992,6 +8992,8 @@ alpha_align_insns (unsigned int max_align,
if (GET_CODE (i) == NOTE)
i = next_nonnote_insn (i);
ldgp = alpha_function_needs_gp ? 8 : 0;
while (i)
{
next = (*next_group) (i, &in_use, &len);
@ -9047,6 +9049,10 @@ alpha_align_insns (unsigned int max_align,
}
}
/* We may not insert padding inside the initial ldgp sequence. */
else if (ldgp > 0)
ldgp -= len;
/* If the group won't fit in the same INT16 as the previous,
we need to add padding to keep the group together. Rather
than simply leaving the insn filling to the assembler, we