Patchwork [M32R] Hookize GO_IF_MODE_DEPENDENT_ADDRESS

login
register
mail settings
Submitter Anatoly Sokolov
Date Sept. 8, 2010, 7:09 p.m.
Message ID <919738353.20100908230930@post.ru>
Download mbox | patch
Permalink /patch/64197/
State New
Headers show

Comments

Anatoly Sokolov - Sept. 8, 2010, 7:09 p.m.
Hi.

  This patch removes obsolete GO_IF_MODE_DEPENDENT_ADDRESS macro from the
M32R back end in the GCC and introduces equivalent
TARGET_MODE_DEPENDENT_ADDRESS_P target hook.


  Regression tested on m32r-unknown-elf.

  OK to install?


        * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
        (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
        * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.

Anatoly.
Richard Henderson - Sept. 8, 2010, 8:30 p.m.
On 09/08/2010 12:09 PM, Anatoly Sokolov wrote:
>         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
>         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
>         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.

Ok.


r~
Nick Clifton - Sept. 9, 2010, 8:59 a.m.
Hi Anatoly,

>          * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
>          (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
>          * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.

Approved - please apply.

Cheers
   Nick

Patch

Index: gcc/config/m32r/m32r.c
===================================================================
--- gcc/config/m32r/m32r.c      (revision 164002)
+++ gcc/config/m32r/m32r.c      (working copy)
@@ -67,6 +67,7 @@ 
 static void  block_move_call (rtx, rtx, rtx);
 static int   m32r_is_insn (rtx);
 static rtx   m32r_legitimize_address (rtx, rtx, enum machine_mode);
+static bool  m32r_mode_dependent_address_p (const_rtx);
 static tree  m32r_handle_model_attribute (tree *, tree, tree, int, bool *);
 static void  m32r_print_operand (FILE *, rtx, int);
 static void  m32r_print_operand_address (FILE *, rtx);
@@ -117,6 +118,8 @@ 
 
 #undef TARGET_LEGITIMIZE_ADDRESS
 #define TARGET_LEGITIMIZE_ADDRESS m32r_legitimize_address
+#undef TARGET_MODE_DEPENDENT_ADDRESS_P
+#define TARGET_MODE_DEPENDENT_ADDRESS_P m32r_mode_dependent_address_p
 
 #undef  TARGET_ASM_ALIGNED_HI_OP
 #define TARGET_ASM_ALIGNED_HI_OP "\t.hword\t"
@@ -2043,6 +2046,17 @@ 
   else
     return x;
 }
+
+/* Worker function for TARGET_MODE_DEPENDENT_ADDRESS_P.  */
+
+static bool
+m32r_mode_dependent_address_p (const_rtx addr)
+{
+  if (GET_CODE (addr) == LO_SUM)
+    return true;
+
+  return false;
+}
 
 /* Nested function support.  */
 
Index: gcc/config/m32r/m32r.h
===================================================================
--- gcc/config/m32r/m32r.h      (revision 164002)
+++ gcc/config/m32r/m32r.h      (working copy)
@@ -1048,16 +1048,6 @@ 
        goto ADDR;                                              \
     }                                                          \
   while (0)
-
-/* Go to LABEL if ADDR (a legitimate address expression)
-   has an effect that depends on the machine mode it is used for.  */
-#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL)              \
-  do                                                           \
-    {                                                          \
-      if (GET_CODE (ADDR) == LO_SUM)                           \
-       goto LABEL;                                             \
-    }                                                          \
-  while (0)
 
 /* Condition code usage.  */