Commit 1da4c3a7 by Eric Botcazou Committed by Eric Botcazou

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
parent 053e7c38
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> 2005-03-13 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/predicates.md (mem_or_easy_const_operand): Delete. * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
......
...@@ -227,6 +227,9 @@ static int num_gfregs; ...@@ -227,6 +227,9 @@ static int num_gfregs;
/* The alias set for prologue/epilogue register save/restore. */ /* The alias set for prologue/epilogue register save/restore. */
static GTY(()) int sparc_sr_alias_set; 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 /* Save the operands last given to a compare for use when we
generate a scc or bcc insn. */ generate a scc or bcc insn. */
rtx sparc_compare_op0, sparc_compare_op1; rtx sparc_compare_op0, sparc_compare_op1;
...@@ -700,8 +703,9 @@ sparc_override_options (void) ...@@ -700,8 +703,9 @@ sparc_override_options (void)
/* Do various machine dependent initializations. */ /* Do various machine dependent initializations. */
sparc_init_modes (); 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 (); sparc_sr_alias_set = new_alias_set ();
struct_value_alias_set = new_alias_set ();
/* Set up function hooks. */ /* Set up function hooks. */
init_machine_status = sparc_init_machine_status; init_machine_status = sparc_init_machine_status;
...@@ -6086,12 +6090,17 @@ sparc_struct_value_rtx (tree fndecl ATTRIBUTE_UNUSED, int incoming) ...@@ -6086,12 +6090,17 @@ sparc_struct_value_rtx (tree fndecl ATTRIBUTE_UNUSED, int incoming)
return 0; return 0;
else else
{ {
rtx mem;
if (incoming) if (incoming)
return gen_rtx_MEM (Pmode, plus_constant (frame_pointer_rtx, mem = gen_rtx_MEM (Pmode, plus_constant (frame_pointer_rtx,
STRUCT_VALUE_OFFSET)); STRUCT_VALUE_OFFSET));
else else
return gen_rtx_MEM (Pmode, plus_constant (stack_pointer_rtx, mem = gen_rtx_MEM (Pmode, plus_constant (stack_pointer_rtx,
STRUCT_VALUE_OFFSET)); STRUCT_VALUE_OFFSET));
set_mem_alias_set (mem, struct_value_alias_set);
return mem;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment