re PR c/13133 (Extraneous register-saves triggered by setjmp())
PR c/13133 * reload1.c (reload): Delete special handling for setjmp. From-SVN: r73791
This commit is contained in:
parent
0eadf440e4
commit
c862d589d2
|
@ -1,3 +1,8 @@
|
|||
2003-11-20 James E Wilson <wilson@specifixinc.com>
|
||||
|
||||
PR c/13133
|
||||
* reload1.c (reload): Delete special handling for setjmp.
|
||||
|
||||
2003-11-21 Andreas Tobler <a.tobler@schweiz.ch>
|
||||
|
||||
* mklibgcc.in: Evaluate shlib_slibdir_qual during link
|
||||
|
|
|
@ -698,9 +698,7 @@ reload (rtx first, int global)
|
|||
/* Look for REG_EQUIV notes; record what each pseudo is equivalent to.
|
||||
Also find all paradoxical subregs and find largest such for each pseudo.
|
||||
On machines with small register classes, record hard registers that
|
||||
are used for user variables. These can never be used for spills.
|
||||
Also look for a "constant" REG_SETJMP. This means that all
|
||||
caller-saved registers must be marked live. */
|
||||
are used for user variables. These can never be used for spills. */
|
||||
|
||||
num_eliminable_invariants = 0;
|
||||
for (insn = first; insn; insn = NEXT_INSN (insn))
|
||||
|
@ -714,12 +712,6 @@ reload (rtx first, int global)
|
|||
&& GET_MODE (insn) != VOIDmode)
|
||||
PUT_MODE (insn, VOIDmode);
|
||||
|
||||
if (GET_CODE (insn) == CALL_INSN
|
||||
&& find_reg_note (insn, REG_SETJMP, NULL))
|
||||
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
|
||||
if (! call_used_regs[i])
|
||||
regs_ever_live[i] = 1;
|
||||
|
||||
if (set != 0 && GET_CODE (SET_DEST (set)) == REG)
|
||||
{
|
||||
rtx note = find_reg_note (insn, REG_EQUIV, NULL_RTX);
|
||||
|
|
Loading…
Reference in New Issue