diff mbox

[i386] : Two cleanups

Message ID CAFULd4b4+rkwBGfEstk2f7RZBg+K4i97_Wori3tTdJ87NrAaQQ@mail.gmail.com
State New
Headers show

Commit Message

Uros Bizjak July 25, 2017, 2:49 p.m. UTC
2017-07-25  Uros Bizjak  <ubizjak@gmail.com>

    * config/i386/i386.c (ix86_decompose_address): Do not check for
    register RTX when looking at index_reg or base_reg.
    * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline.

Uros.
diff mbox

Patch

Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c	(revision 250499)
+++ config/i386/i386.c	(working copy)
@@ -16187,9 +16187,9 @@  ix86_decompose_address (rtx addr, struct ix86_addr
 
   /* Allow arg pointer and stack pointer as index if there is not scaling.  */
   if (base_reg && index_reg && scale == 1
-      && (index_reg == arg_pointer_rtx
-	  || index_reg == frame_pointer_rtx
-	  || (REG_P (index_reg) && REGNO (index_reg) == STACK_POINTER_REGNUM)))
+      && (REGNO (index_reg) == ARG_POINTER_REGNUM
+	  || REGNO (index_reg) == FRAME_POINTER_REGNUM
+	  || REGNO (index_reg) == SP_REG))
     {
       std::swap (base, index);
       std::swap (base_reg, index_reg);
@@ -16197,14 +16197,11 @@  ix86_decompose_address (rtx addr, struct ix86_addr
 
   /* Special case: %ebp cannot be encoded as a base without a displacement.
      Similarly %r13.  */
-  if (!disp
-      && base_reg
-      && (base_reg == hard_frame_pointer_rtx
-	  || base_reg == frame_pointer_rtx
-	  || base_reg == arg_pointer_rtx
-	  || (REG_P (base_reg)
-	      && (REGNO (base_reg) == HARD_FRAME_POINTER_REGNUM
-		  || REGNO (base_reg) == R13_REG))))
+  if (!disp && base_reg
+      && (REGNO (base_reg) == ARG_POINTER_REGNUM
+	  || REGNO (base_reg) == FRAME_POINTER_REGNUM
+	  || REGNO (base_reg) == BP_REG
+	  || REGNO (base_reg) == R13_REG))
     disp = const0_rtx;
 
   /* Special case: on K6, [%esi] makes the instruction vector decoded.
@@ -16213,7 +16210,7 @@  ix86_decompose_address (rtx addr, struct ix86_addr
      to test cfun for being non-NULL. */
   if (TARGET_K6 && cfun && optimize_function_for_speed_p (cfun)
       && base_reg && !index_reg && !disp
-      && REG_P (base_reg) && REGNO (base_reg) == SI_REG)
+      && REGNO (base_reg) == SI_REG)
     disp = const0_rtx;
 
   /* Special case: encode reg+reg instead of reg*2.  */
Index: config/i386/i386.h
===================================================================
--- config/i386/i386.h	(revision 250499)
+++ config/i386/i386.h	(working copy)
@@ -2165,7 +2165,7 @@  extern int const svr4_dbx_register_map[FIRST_PSEUD
 
 /* Before the prologue, RA is at 0(%esp).  */
 #define INCOMING_RETURN_ADDR_RTX \
-  gen_rtx_MEM (Pmode, gen_rtx_REG (Pmode, STACK_POINTER_REGNUM))
+  gen_rtx_MEM (Pmode, stack_pointer_rtx)
 
 /* After the prologue, RA is at -4(AP) in the current frame.  */
 #define RETURN_ADDR_RTX(COUNT, FRAME)					\