mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-11 10:40:47 +08:00
sparc.c (struct_value_alias_set): New global variable.
* config/sparc/sparc.c (struct_value_alias_set): New global variable. (sparc_override_options): Initialize it. (sparc_struct_value_rtx): Set it on the MEM to be returned. From-SVN: r96395
This commit is contained in:
parent
053e7c38b3
commit
1da4c3a710
@ -1,3 +1,9 @@
|
||||
2005-03-14 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
* config/sparc/sparc.c (struct_value_alias_set): New global variable.
|
||||
(sparc_override_options): Initialize it.
|
||||
(sparc_struct_value_rtx): Set it on the MEM to be returned.
|
||||
|
||||
2005-03-13 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
|
||||
|
@ -227,6 +227,9 @@ static int num_gfregs;
|
||||
/* The alias set for prologue/epilogue register save/restore. */
|
||||
static GTY(()) int sparc_sr_alias_set;
|
||||
|
||||
/* The alias set for the structure return value. */
|
||||
static GTY(()) int struct_value_alias_set;
|
||||
|
||||
/* Save the operands last given to a compare for use when we
|
||||
generate a scc or bcc insn. */
|
||||
rtx sparc_compare_op0, sparc_compare_op1;
|
||||
@ -700,8 +703,9 @@ sparc_override_options (void)
|
||||
/* Do various machine dependent initializations. */
|
||||
sparc_init_modes ();
|
||||
|
||||
/* Acquire a unique set number for our register saves and restores. */
|
||||
/* Acquire unique alias sets for our private stuff. */
|
||||
sparc_sr_alias_set = new_alias_set ();
|
||||
struct_value_alias_set = new_alias_set ();
|
||||
|
||||
/* Set up function hooks. */
|
||||
init_machine_status = sparc_init_machine_status;
|
||||
@ -6086,12 +6090,17 @@ sparc_struct_value_rtx (tree fndecl ATTRIBUTE_UNUSED, int incoming)
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
rtx mem;
|
||||
|
||||
if (incoming)
|
||||
return gen_rtx_MEM (Pmode, plus_constant (frame_pointer_rtx,
|
||||
STRUCT_VALUE_OFFSET));
|
||||
mem = gen_rtx_MEM (Pmode, plus_constant (frame_pointer_rtx,
|
||||
STRUCT_VALUE_OFFSET));
|
||||
else
|
||||
return gen_rtx_MEM (Pmode, plus_constant (stack_pointer_rtx,
|
||||
STRUCT_VALUE_OFFSET));
|
||||
mem = gen_rtx_MEM (Pmode, plus_constant (stack_pointer_rtx,
|
||||
STRUCT_VALUE_OFFSET));
|
||||
|
||||
set_mem_alias_set (mem, struct_value_alias_set);
|
||||
return mem;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user