Commit 0ab38418 by Eric Christopher

except.c (expand_builtin_extract_return_address): Handle case where Pmode != ptr_mode.

2002-09-24  Eric Christopher  <echristo@redhat.com>

        * except.c (expand_builtin_extract_return_address): Handle case
	where Pmode != ptr_mode.

From-SVN: r57552
parent 68bb91b1
2002-09-24 Eric Christopher <echristo@redhat.com>
* except.c (expand_builtin_extract_return_address): Handle case
where Pmode != ptr_mode.
2002-09-26 Steve Ellcey <sje@cup.hp.com> 2002-09-26 Steve Ellcey <sje@cup.hp.com>
* config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New * config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New
...@@ -17,7 +22,7 @@ ...@@ -17,7 +22,7 @@
2002-09-26 Ulrich Weigand <uweigand@de.ibm.com> 2002-09-26 Ulrich Weigand <uweigand@de.ibm.com>
* expr.c (expand_expr) [MINUS_EXPR]: Convert A - const to * expr.c (expand_expr) [MINUS_EXPR]: Convert A - const to
A + (-const) on RTX level, even for unsigned types. A + (-const) on RTX level, even for unsigned types.
2002-09-26 Ulrich Weigand <uweigand@de.ibm.com> 2002-09-26 Ulrich Weigand <uweigand@de.ibm.com>
......
...@@ -2993,6 +2993,16 @@ expand_builtin_extract_return_addr (addr_tree) ...@@ -2993,6 +2993,16 @@ expand_builtin_extract_return_addr (addr_tree)
{ {
rtx addr = expand_expr (addr_tree, NULL_RTX, Pmode, 0); rtx addr = expand_expr (addr_tree, NULL_RTX, Pmode, 0);
if (GET_MODE (addr) != Pmode
&& GET_MODE (addr) != VOIDmode)
{
#ifdef POINTERS_EXTEND_UNSIGNED
addr = convert_memory_address (Pmode, addr);
#else
addr = convert_to_mode (Pmode, addr, 0);
#endif
}
/* First mask out any unwanted bits. */ /* First mask out any unwanted bits. */
#ifdef MASK_RETURN_ADDR #ifdef MASK_RETURN_ADDR
expand_and (Pmode, addr, MASK_RETURN_ADDR, addr); expand_and (Pmode, addr, MASK_RETURN_ADDR, addr);
......
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