(init_emit): Set REGNO_POINTER_FLAG for HARD_FRAME_POINTER_REGNUM.
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 22 Nov 1994 11:28:38 +0000 (06:28 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 22 Nov 1994 11:28:38 +0000 (06:28 -0500)
(ptr_mode): Add definition.
(init_emit_once): Initialize ptr_mode.

From-SVN: r8548

gcc/emit-rtl.c

index cfd0d249f0a375b4995f6bee6107e4d3c1db0db9..270d8d4088be8cd15f8a47e0f2e17b77490bf8d9 100644 (file)
@@ -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);