This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PPro and egcs
- To: law at cygnus dot com
- Subject: Re: PPro and egcs
- From: hjl at lucon dot org (H.J. Lu)
- Date: Fri, 31 Oct 1997 17:23:06 +1600 (PST)
- Cc: amylaar at cygnus dot co dot uk, egcs at cygnus dot com
Here is a kludge I used. It seems to work ok. But I have another
ppro bug which I repored earlier.
H.J.
----
Fri Oct 31 17:20:53 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
* reload1.c (allocate_reload_reg): Check is the spill register
is already used in INSN.
Index: reload1.c
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/reload1.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 reload1.c
--- reload1.c 1997/08/26 00:20:42 1.1.1.1
+++ reload1.c 1997/10/31 23:21:24
@@ -5086,7 +5090,12 @@
|| (TEST_HARD_REG_BIT (reload_reg_used_at_all,
spill_regs[i])
&& ! TEST_HARD_REG_BIT (reload_reg_used_for_inherit,
- spill_regs[i]))))
+ spill_regs[i])))
+ /* The spill register may be used in INSN as the
+ return value from a previous function call. */
+ && !refers_to_regno_p (spill_regs[i],
+ spill_regs[i] + 1,
+ PATTERN (insn), NULL_PTR))
{
int nr = HARD_REGNO_NREGS (spill_regs[i], reload_mode[r]);
/* Avoid the problem where spilling a GENERAL_OR_FP_REG