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:
parent
833b3afe49
commit
0f1341c792
|
@ -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>
|
2005-06-04 Daniel Berlin <dberlin@dberlin.org>
|
||||||
|
|
||||||
* cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
|
* cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
|
||||||
|
|
|
@ -8974,7 +8974,7 @@ alpha_align_insns (unsigned int max_align,
|
||||||
unsigned int align;
|
unsigned int align;
|
||||||
/* OFS is the offset of the current insn in the insn group. */
|
/* OFS is the offset of the current insn in the insn group. */
|
||||||
int ofs;
|
int ofs;
|
||||||
int prev_in_use, in_use, len;
|
int prev_in_use, in_use, len, ldgp;
|
||||||
rtx i, next;
|
rtx i, next;
|
||||||
|
|
||||||
/* Let shorten branches care for assigning alignments to code labels. */
|
/* 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)
|
if (GET_CODE (i) == NOTE)
|
||||||
i = next_nonnote_insn (i);
|
i = next_nonnote_insn (i);
|
||||||
|
|
||||||
|
ldgp = alpha_function_needs_gp ? 8 : 0;
|
||||||
|
|
||||||
while (i)
|
while (i)
|
||||||
{
|
{
|
||||||
next = (*next_group) (i, &in_use, &len);
|
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,
|
/* If the group won't fit in the same INT16 as the previous,
|
||||||
we need to add padding to keep the group together. Rather
|
we need to add padding to keep the group together. Rather
|
||||||
than simply leaving the insn filling to the assembler, we
|
than simply leaving the insn filling to the assembler, we
|
||||||
|
|
Loading…
Reference in New Issue