This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Problem compiling libg++ on mips-sgi-irix6
- To: Jim Wilson <wilson at cygnus dot com>, Richard Henderson <rth at cygnus dot com>
- Subject: Re: Problem compiling libg++ on mips-sgi-irix6
- From: Richard Henderson <rth at cygnus dot com>
- Date: Tue, 12 Jan 1999 14:02:20 -0800
- Cc: leei at ai dot sri dot com, egcs-patches at cygnus dot com, law at cygnus dot com
- References: <19990112025231.A12029@dot.cygnus.com> <199901122117.NAA12350@rtl.cygnus.com>
- Reply-To: Richard Henderson <rth at cygnus dot com>
On Tue, Jan 12, 1999 at 01:17:20PM -0800, Jim Wilson wrote:
> In the structure_value_addr case, the caller passes in an address where the
> callee stores the result.
The problem was that this wasn't supposed to be a structure_value_addr
case, and so we aborted.
> In any other case, copying a value into the result before the function
> start is not useful, but this is what your patch does.
Ah, this is all happening before function start? In which case
target should just continue to be the (mem (addressof)) probably.
I.e.
if (GET_CODE (XEXP (loc, 0)) == ADDRESSOF)
{
temp = copy_rtx_and_substitute (loc, map);
subst_constants (&temp, NULL_RTX, map);
apply_change_group ();
-
- if (! ignore)
- {
- if (! target)
- target = gen_reg_rtx (GET_MODE (temp));
- emit_move_insn (temp, target);
- }
+ target = temp;
}
else
r~