+Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com)
+
+ * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
+ just like we would the virtual incoming args register when
+ integrating.
+
Sun Aug 29 23:17:54 1999 David Edelsohn <edelsohn@gnu.org>
* rs6000.h (ASM_FILE_START): Specify complete filename, including
Small hard registers are returned as-is. Pseudo-registers
go through their `reg_map'. */
regno = REGNO (orig);
- if (regno <= LAST_VIRTUAL_REGISTER)
+ if (regno <= LAST_VIRTUAL_REGISTER
+ || (map->integrating
+ && DECL_SAVED_INSNS (map->fndecl)->internal_arg_pointer == orig))
{
/* Some hard registers are also mapped,
but others are not translated. */
emit_insn_after (seq, map->insns_at_start);
return temp;
}
- else if (regno == VIRTUAL_INCOMING_ARGS_REGNUM)
+ else if (regno == VIRTUAL_INCOMING_ARGS_REGNUM
+ || (map->integrating
+ && (DECL_SAVED_INSNS (map->fndecl)->internal_arg_pointer
+ == orig)))
{
/* Do the same for a block to contain any arguments referenced
in memory. */