Patchwork [S390] Hookize OUTPUT_ADDR_CONST_EXTRA

login
register
mail settings
Submitter Anatoly Sokolov
Date Jan. 7, 2011, 6:34 p.m.
Message ID <1908613364.20110107213404@post.ru>
Download mbox | patch
Permalink /patch/77899/
State New
Headers show

Comments

Anatoly Sokolov - Jan. 7, 2011, 6:34 p.m.
Hello.

  This patch removes obsolete OUTPUT_ADDR_CONST_EXTRA macro from S390 back 
end in the GCC and introduces equivalent TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA 
target hook.

  Not tested.

  OK to install?

        * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
        * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
        * config/s390/s390.c (s390_output_addr_const_extra): Make static.
        (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.



Anatoly.
Andreas Krebbel - Jan. 11, 2011, 4:22 p.m.
On 01/07/2011 07:34 PM, Anatoly Sokolov wrote:
> Hello.
> 
>   This patch removes obsolete OUTPUT_ADDR_CONST_EXTRA macro from S390 back 
> end in the GCC and introduces equivalent TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA 
> target hook.
> 
>   Not tested.
> 
>   OK to install?
> 
>         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
>         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
>         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
>         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
> 

OK.

Bootstrapped and regtested on s390x.

Thanks!

-Andreas-

Patch

Index: gcc/config/s390/s390.c
===================================================================
--- gcc/config/s390/s390.c      (revision 168568)
+++ gcc/config/s390/s390.c      (working copy)
@@ -5056,7 +5056,7 @@ 
    in assembler syntax to stdio stream FILE.  Returns true if the
    constant X could be recognized, false otherwise.  */
 
-bool
+static bool
 s390_output_addr_const_extra (FILE *file, rtx x)
 {
   if (GET_CODE (x) == UNSPEC && XVECLEN (x, 0) == 1)
@@ -10600,6 +10600,9 @@ 
 #undef  TARGET_EXPAND_BUILTIN
 #define TARGET_EXPAND_BUILTIN s390_expand_builtin
 
+#undef TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
+#define TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA s390_output_addr_const_extra
+
 #undef TARGET_ASM_OUTPUT_MI_THUNK
 #define TARGET_ASM_OUTPUT_MI_THUNK s390_output_mi_thunk
 #undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
Index: gcc/config/s390/s390.h
===================================================================
--- gcc/config/s390/s390.h      (revision 168568)
+++ gcc/config/s390/s390.h      (working copy)
@@ -909,13 +909,6 @@ 
 #define PRINT_OPERAND(FILE, X, CODE) print_operand (FILE, X, CODE)
 #define PRINT_OPERAND_ADDRESS(FILE, ADDR) print_operand_address (FILE, ADDR)
 
-/* Output machine-dependent UNSPECs in address constants.  */
-#define OUTPUT_ADDR_CONST_EXTRA(FILE, X, FAIL)         \
-do {                                                   \
-  if (!s390_output_addr_const_extra (FILE, (X)))       \
-    goto FAIL;                                         \
-} while (0);
-
 /* Output an element of a case-vector that is absolute.  */
 #define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE)                           \
 do {                                                                   \
Index: gcc/config/s390/s390-protos.h
===================================================================
--- gcc/config/s390/s390-protos.h       (revision 168568)
+++ gcc/config/s390/s390-protos.h       (working copy)
@@ -99,7 +99,6 @@ 
 extern void s390_narrow_logical_operator (enum rtx_code, rtx *, rtx *);
 extern void s390_split_access_reg (rtx, rtx *, rtx *);
 
-extern bool s390_output_addr_const_extra (FILE*, rtx);
 extern void print_operand_address (FILE *, rtx);
 extern void print_operand (FILE *, rtx, int);
 extern void s390_output_pool_entry (rtx, enum machine_mode, unsigned int);