Make NON_SAVING_SETJMP usable again.

* final.c (final_start_function): Delete code for NON_SAVING_SETJMP.
	* reload1.c (reload): Re-add it here.

From-SVN: r74052
This commit is contained in:
James E Wilson 2003-11-30 06:32:57 +00:00 committed by Jim Wilson
parent 1ff8f81ab3
commit 5583e33da8
3 changed files with 16 additions and 13 deletions

View File

@ -1,3 +1,8 @@
2003-11-29 James E Wilson <wilson@specifixinc.com>
* final.c (final_start_function): Delete code for NON_SAVING_SETJMP.
* reload1.c (reload): Re-add it here.
2003-11-30 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Don't

View File

@ -1336,19 +1336,6 @@ final_start_function (rtx first ATTRIBUTE_UNUSED, FILE *file,
this_is_asm_operands = 0;
#ifdef NON_SAVING_SETJMP
/* A function that calls setjmp should save and restore all the
call-saved registers on a system where longjmp clobbers them. */
if (NON_SAVING_SETJMP && current_function_calls_setjmp)
{
int i;
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (!call_used_regs[i])
regs_ever_live[i] = 1;
}
#endif
last_filename = locator_file (prologue_locator);
last_linenum = locator_line (prologue_locator);

View File

@ -673,6 +673,17 @@ reload (rtx first, int global)
if (! call_used_regs[i] && ! fixed_regs[i] && ! LOCAL_REGNO (i))
regs_ever_live[i] = 1;
#ifdef NON_SAVING_SETJMP
/* A function that calls setjmp should save and restore all the
call-saved registers on a system where longjmp clobbers them. */
if (NON_SAVING_SETJMP && current_function_calls_setjmp)
{
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (! call_used_regs[i])
regs_ever_live[i] = 1;
}
#endif
/* Find all the pseudo registers that didn't get hard regs
but do have known equivalent constants or memory slots.
These include parameters (known equivalent to parameter slots)