aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1998-01-17 17:01:22 -0700
committerJeff Law <law@gcc.gnu.org>1998-01-17 17:01:22 -0700
commitffc3503d9f3b98e5a5ab72132389282e3f040de5 (patch)
tree2950d6a5efdf63220fcc170f66901456a73c2987 /gcc
parenta0372c94de45537222a342228a5c22e30fe5c3a6 (diff)
downloadgcc-ffc3503d9f3b98e5a5ab72132389282e3f040de5.zip
gcc-ffc3503d9f3b98e5a5ab72132389282e3f040de5.tar.gz
gcc-ffc3503d9f3b98e5a5ab72132389282e3f040de5.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/emit-rtl.c8
-rw-r--r--gcc/rtl.h2
3 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 23687ca..aa18665 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -48,6 +48,12 @@ Sat Jan 17 22:35:39 1998 Mumit Khan <khan@xraylith.wisc.edu>
1998-01-17 Lee Iverson <leei@Canada.AI.SRI.COM>
+ * 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 <dtm@waterw.com>
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 ef85c41..ad66124 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 992b75b..834ce8c 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)