Fix instances of gen_rtx_REG (VOIDmode, ...)
authorRichard Sandiford <richard.sandiford@arm.com>
Tue, 15 Nov 2016 18:30:31 +0000 (18:30 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 15 Nov 2016 18:30:31 +0000 (18:30 +0000)
Several definitions of INCOMING_RETURN_ADDR_RTX used
gen_rtx_REG (VOIDmode, ...), which with later patches
would trip an assert.  This patch converts them to use
Pmode instead.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

* config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use Pmode instead
of VOIDmode.
* config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/iq2000/iq2000.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/m68k/m68k.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/microblaze/microblaze.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/mips/mips.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/nios2/nios2.h (INCOMING_RETURN_ADDR_RTX): Likewise.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242447

gcc/ChangeLog
gcc/config/i386/i386.h
gcc/config/ia64/ia64.h
gcc/config/iq2000/iq2000.h
gcc/config/m68k/m68k.h
gcc/config/microblaze/microblaze.h
gcc/config/mips/mips.h
gcc/config/mn10300/mn10300.h
gcc/config/nios2/nios2.h

index bd61f70413ec9c82d2c6a28b5bba36cb68ce358f..fa71c3b135e452e880a764d72ca495b9c2c5f57a 100644 (file)
@@ -1,3 +1,17 @@
+2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
+           Alan Hayward  <alan.hayward@arm.com>
+           David Sherwood  <david.sherwood@arm.com>
+
+       * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use Pmode instead
+       of VOIDmode.
+       * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Likewise.
+       * config/iq2000/iq2000.h (INCOMING_RETURN_ADDR_RTX): Likewise.
+       * config/m68k/m68k.h (INCOMING_RETURN_ADDR_RTX): Likewise.
+       * config/microblaze/microblaze.h (INCOMING_RETURN_ADDR_RTX): Likewise.
+       * config/mips/mips.h (INCOMING_RETURN_ADDR_RTX): Likewise.
+       * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Likewise.
+       * config/nios2/nios2.h (INCOMING_RETURN_ADDR_RTX): Likewise.
+
 2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
            Alan Hayward  <alan.hayward@arm.com>
            David Sherwood  <david.sherwood@arm.com>
index add7a64778f0b722cf186901f08e4e807cd56b7a..fdaf423513dda5a4455d989263b8db6085039f03 100644 (file)
@@ -2176,7 +2176,7 @@ extern int const x86_64_ms_sysv_extra_clobbered_registers[12];
 
 /* Before the prologue, RA is at 0(%esp).  */
 #define INCOMING_RETURN_ADDR_RTX \
-  gen_rtx_MEM (VOIDmode, gen_rtx_REG (VOIDmode, STACK_POINTER_REGNUM))
+  gen_rtx_MEM (Pmode, gen_rtx_REG (Pmode, STACK_POINTER_REGNUM))
 
 /* After the prologue, RA is at -4(AP) in the current frame.  */
 #define RETURN_ADDR_RTX(COUNT, FRAME)                                  \
index ac0cb864209126c7d34708ccb4d09d398b9d44a1..c79e20b866082c07ed7d96347d042948ebf004d1 100644 (file)
@@ -896,7 +896,7 @@ enum reg_class
    RTL is either a `REG', indicating that the return value is saved in `REG',
    or a `MEM' representing a location in the stack.  This enables DWARF2
    unwind info for C++ EH.  */
-#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (VOIDmode, BR_REG (0))
+#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, BR_REG (0))
 
 /* A C expression whose value is an integer giving the offset, in bytes, from
    the value of the stack pointer register to the top of the stack frame at the
index 3b9dceb69040e77a4303c6ec0bd88502a75ae5b0..e79c9a744f2c2ff3e187361ed946385e96f2a08d 100644 (file)
@@ -258,7 +258,7 @@ enum reg_class
     : (rtx) 0)
 
 /* Before the prologue, RA lives in r31.  */
-#define INCOMING_RETURN_ADDR_RTX  gen_rtx_REG (VOIDmode, GP_REG_FIRST + 31)
+#define INCOMING_RETURN_ADDR_RTX  gen_rtx_REG (Pmode, GP_REG_FIRST + 31)
 
 \f
 /* Register That Address the Stack Frame.  */
index 2aa858fa23b5c37e67c756da5b158634b2b2f816..7b63bd2e77365bd3d620dc2f65364c319f6c842f 100644 (file)
@@ -768,7 +768,7 @@ do { if (cc_prev_status.flags & CC_IN_68881)                        \
 
 /* Before the prologue, RA is at 0(%sp).  */
 #define INCOMING_RETURN_ADDR_RTX \
-  gen_rtx_MEM (VOIDmode, gen_rtx_REG (VOIDmode, STACK_POINTER_REGNUM))
+  gen_rtx_MEM (Pmode, gen_rtx_REG (Pmode, STACK_POINTER_REGNUM))
 
 /* After the prologue, RA is at 4(AP) in the current frame.  */
 #define RETURN_ADDR_RTX(COUNT, FRAME)                                     \
index dbfb6522c7c2d9a176376213c72d7693df55fb18..849fab9353f90b2a41571053ef85bf82a858ef9f 100644 (file)
@@ -182,7 +182,7 @@ extern enum pipeline_type microblaze_pipe;
    NOTE:  GDB has a workaround and expects this incorrect value.
    If this is fixed, a corresponding fix to GDB is needed.  */
 #define INCOMING_RETURN_ADDR_RTX                       \
-  gen_rtx_REG (VOIDmode, GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM)
+  gen_rtx_REG (Pmode, GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM)
 
 /* Use DWARF 2 debugging information by default.  */
 #define DWARF2_DEBUGGING_INFO
index 81862a97f45f5c302e1a511cfd61d63e9629f5c2..12662a7ea396b63b87dcca309650529b9961451d 100644 (file)
@@ -1469,7 +1469,7 @@ FP_ASM_SPEC "\
 #define DWARF_FRAME_RETURN_COLUMN RETURN_ADDR_REGNUM
 
 /* Before the prologue, RA lives in r31.  */
-#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (VOIDmode, RETURN_ADDR_REGNUM)
+#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, RETURN_ADDR_REGNUM)
 
 /* Describe how we implement __builtin_eh_return.  */
 #define EH_RETURN_DATA_REGNO(N) \
index 714c6a0f9007dc4c8729237cdb0b48dcf6fe409b..9fd3d4be38b4912fca8c907c7444db85000b2a5d 100644 (file)
@@ -516,7 +516,7 @@ struct cum_arg
 /* The return address is saved both in the stack and in MDR.  Using
    the stack location is handiest for what unwinding needs.  */
 #define INCOMING_RETURN_ADDR_RTX \
-  gen_rtx_MEM (VOIDmode, gen_rtx_REG (VOIDmode, STACK_POINTER_REGNUM))
+  gen_rtx_MEM (Pmode, gen_rtx_REG (Pmode, STACK_POINTER_REGNUM))
 \f
 /* Maximum number of registers that can appear in a valid memory address.  */
 
index abc676f4249f2c99a6cd49d94228c8bfef0d76be..e539c8f49bc5127fe2374720c65481bb38e2b472 100644 (file)
@@ -265,7 +265,7 @@ enum reg_class
 #define FIRST_PARM_OFFSET(FUNDECL) 0
 
 /* Before the prologue, RA lives in r31.  */
-#define INCOMING_RETURN_ADDR_RTX  gen_rtx_REG (VOIDmode, RA_REGNO)
+#define INCOMING_RETURN_ADDR_RTX  gen_rtx_REG (Pmode, RA_REGNO)
 #define RETURN_ADDR_RTX(C,F) nios2_get_return_address (C)
 
 #define DWARF_FRAME_RETURN_COLUMN RA_REGNO