aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-11-22 06:28:38 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-11-22 06:28:38 -0500
commit15c9248c3890d5736161907f3b7976c21352ae1a (patch)
treebe3c2bccd89ad1ea376d8e9b61ba003a1c331f2c /gcc
parent6c164c81ed0b1ca990ecd890eae839b06083dbca (diff)
downloadgcc-15c9248c3890d5736161907f3b7976c21352ae1a.zip
gcc-15c9248c3890d5736161907f3b7976c21352ae1a.tar.gz
gcc-15c9248c3890d5736161907f3b7976c21352ae1a.tar.bz2
(init_emit): Set REGNO_POINTER_FLAG for HARD_FRAME_POINTER_REGNUM.
(ptr_mode): Add definition. (init_emit_once): Initialize ptr_mode. From-SVN: r8548
Diffstat (limited to 'gcc')
-rw-r--r--gcc/emit-rtl.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index cfd0d24..270d8d4 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -72,8 +72,9 @@ char *opcode_name[] =
/* Commonly used modes. */
-enum machine_mode byte_mode; /* Mode whose width is BITS_PER_UNIT */
-enum machine_mode word_mode; /* Mode whose width is BITS_PER_WORD */
+enum machine_mode byte_mode; /* Mode whose width is BITS_PER_UNIT. */
+enum machine_mode word_mode; /* Mode whose width is BITS_PER_WORD. */
+enum machine_mode ptr_mode; /* Mode whose width is POINTER_SIZE. */
/* This is reset to LAST_VIRTUAL_REGISTER + 1 at the start of each function.
After rtl generation, it is 1 plus the largest register number used. */
@@ -3248,6 +3249,7 @@ init_emit ()
all pointers. */
REGNO_POINTER_FLAG (STACK_POINTER_REGNUM) = 1;
REGNO_POINTER_FLAG (FRAME_POINTER_REGNUM) = 1;
+ REGNO_POINTER_FLAG (HARD_FRAME_POINTER_REGNUM) = 1;
REGNO_POINTER_FLAG (ARG_POINTER_REGNUM) = 1;
REGNO_POINTER_FLAG (VIRTUAL_INCOMING_ARGS_REGNUM) = 1;
@@ -3291,6 +3293,8 @@ init_emit_once (line_numbers)
word_mode = mode;
}
+ ptr_mode = mode_for_size (POINTER_SIZE, GET_MODE_CLASS (Pmode), 0);
+
/* Create the unique rtx's for certain rtx codes and operand values. */
pc_rtx = gen_rtx (PC, VOIDmode);