function.c (expand_function_start): Ensure r_save is in Pmode.

* function.c (expand_function_start): Ensure r_save is in Pmode.
	* calls.c (prepare_call_address): Ensure static_chain_value is
	  in Pmode.
	* builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
          r_save_area are in Pmode.
	* config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
	  fnaddr, and static_chain are in Pmode.

From-SVN: r84584
This commit is contained in:
Steve Ellcey 2004-07-12 22:45:14 +00:00 committed by Steve Ellcey
parent 494d901631
commit 5e89a381f9
5 changed files with 19 additions and 0 deletions

View File

@ -1,3 +1,13 @@
2004-07-12 Steve Ellcey <sje@cup.hp.com>
* function.c (expand_function_start): Ensure r_save is in Pmode.
* calls.c (prepare_call_address): Ensure static_chain_value is
in Pmode.
* builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
r_save_area are in Pmode.
* config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
fnaddr, and static_chain are in Pmode.
2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
PR target/16445

View File

@ -794,7 +794,9 @@ expand_builtin_nonlocal_goto (tree arglist)
t_save_area = TREE_VALUE (arglist);
r_label = expand_expr (t_label, NULL_RTX, VOIDmode, 0);
r_label = convert_memory_address (Pmode, r_label);
r_save_area = expand_expr (t_save_area, NULL_RTX, VOIDmode, 0);
r_save_area = convert_memory_address (Pmode, r_save_area);
r_fp = gen_rtx_MEM (Pmode, r_save_area);
r_sp = gen_rtx_MEM (STACK_SAVEAREA_MODE (SAVE_NONLOCAL),
plus_constant (r_save_area, GET_MODE_SIZE (Pmode)));

View File

@ -183,6 +183,7 @@ prepare_call_address (rtx funexp, rtx static_chain_value,
if (static_chain_value != 0)
{
static_chain_value = convert_memory_address (Pmode, static_chain_value);
emit_move_insn (static_chain_rtx, static_chain_value);
if (REG_P (static_chain_rtx))

View File

@ -3474,6 +3474,11 @@ ia64_initialize_trampoline (rtx addr, rtx fnaddr, rtx static_chain)
}
}
/* Make sure addresses are Pmode even if we are in ILP32 mode. */
addr = convert_memory_address (Pmode, addr);
fnaddr = convert_memory_address (Pmode, fnaddr);
static_chain = convert_memory_address (Pmode, static_chain);
/* Load up our iterator. */
addr_reg = gen_reg_rtx (Pmode);
emit_move_insn (addr_reg, addr);

View File

@ -4190,6 +4190,7 @@ expand_function_start (tree subr)
t_save = build (ARRAY_REF, ptr_type_node, cfun->nonlocal_goto_save_area,
integer_zero_node, NULL_TREE, NULL_TREE);
r_save = expand_expr (t_save, NULL_RTX, VOIDmode, EXPAND_WRITE);
r_save = convert_memory_address (Pmode, r_save);
emit_move_insn (r_save, virtual_stack_vars_rtx);
update_nonlocal_goto_save_area ();