From: Jeff Law Date: Sun, 18 Jan 1998 00:01:22 +0000 (-0700) Subject: emit_rtl.c (init_emit_once): Ensure that potential aliasing between frame_pointer_rtx... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ffc3503d9f3b98e5a5ab72132389282e3f040de5;p=gcc.git emit_rtl.c (init_emit_once): Ensure that potential aliasing between frame_pointer_rtx... * emit_rtl.c (init_emit_once): Ensure that potential aliasing between frame_pointer_rtx, hard_frame_pointer_rtx, and arg_pointer_rtx is respected in initialization. (init_emit_once): Use gen_rtx_raw_REG() to create return_address_pointer_rtx. * rtl.h: Fix typo. From-SVN: r17409 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 23687cac06c..aa1866529bb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -48,6 +48,12 @@ Sat Jan 17 22:35:39 1998 Mumit Khan 1998-01-17 Lee Iverson + * emit_rtl.c (init_emit_once): Ensure that potential aliasing + between frame_pointer_rtx, hard_frame_pointer_rtx, and + arg_pointer_rtx is respected in initialization. + (init_emit_once): Use gen_rtx_raw_REG() to create + return_address_pointer_rtx. + * reorg.c: #include "expr.h" for rtx prototypes. * Makefile.in (reorg.o): Depend on expr.h @@ -62,6 +68,8 @@ Sat Jan 17 21:24:16 1998 David T. McWherter Sat Jan 17 21:16:19 1998 Jeffrey A Law (law@cygnus.com) + * rtl.h: Fix typos. + * acconfig.h (NEED_DECLARATION_ATOL): New declaration to check for. * rtl.c (atol): Only provide the declaration if NEED_DECLARATION_ATOL. diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index ef85c41cfd7..ad661245641 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3425,10 +3425,14 @@ init_emit_once (line_numbers) PUT_MODE (stack_pointer_rtx, Pmode); REGNO (frame_pointer_rtx) = FRAME_POINTER_REGNUM; PUT_MODE (frame_pointer_rtx, Pmode); +#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM REGNO (hard_frame_pointer_rtx) = HARD_FRAME_POINTER_REGNUM; PUT_MODE (hard_frame_pointer_rtx, Pmode); +#endif +#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM && HARD_FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM REGNO (arg_pointer_rtx) = ARG_POINTER_REGNUM; PUT_MODE (arg_pointer_rtx, Pmode); +#endif REGNO (virtual_incoming_args_rtx) = VIRTUAL_INCOMING_ARGS_REGNUM; PUT_MODE (virtual_incoming_args_rtx, Pmode); @@ -3440,8 +3444,8 @@ init_emit_once (line_numbers) PUT_MODE (virtual_outgoing_args_rtx, Pmode); #ifdef RETURN_ADDRESS_POINTER_REGNUM - return_address_pointer_rtx = gen_rtx_REG (Pmode, - RETURN_ADDRESS_POINTER_REGNUM); + return_address_pointer_rtx + = gen_rtx_raw_REG (Pmode, RETURN_ADDRESS_POINTER_REGNUM); #endif #ifdef STRUCT_VALUE diff --git a/gcc/rtl.h b/gcc/rtl.h index 992b75b15ad..834ce8cdfb2 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -970,7 +970,7 @@ extern rtx gen_rtx_REG PROTO((enum machine_mode, int)); #if FRAME_POINTER_REGNUM == ARG_POINTER_REGNUM #define arg_pointer_rtx (&global_rtl.frame_pointer_val) #else -#if HARD_POINTER_REGNUM == ARG_POINTER_REGNUM +#if HARD_FRAME_POINTER_REGNUM == ARG_POINTER_REGNUM #define arg_pointer_rtx (&global_rtl.hard_frame_pointer_val) #else #define arg_pointer_rtx (&global_rtl.arg_pointer_val)