This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [XTENSA] Hookize OUTPUT_ADDR_CONST_EXTRA


This follows your patches for other architectures fairly closely, so approved. Please apply, and thanks.

Sterling

On 01/06/2011 08:49 AM, Anatoly Sokolov wrote:
Hello.

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

Not tested.

OK to install?

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

Index: gcc/config/xtensa/xtensa.c
===================================================================
--- gcc/config/xtensa/xtensa.c  (revision 168543)
+++ gcc/config/xtensa/xtensa.c  (working copy)
@@ -157,6 +157,7 @@
  static rtx xtensa_static_chain (const_tree, bool);
  static void xtensa_asm_trampoline_template (FILE *);
  static void xtensa_trampoline_init (rtx, tree, rtx);
+static bool xtensa_output_addr_const_extra (FILE *, rtx);

  static const int reg_nonleaf_alloc_order[FIRST_PSEUDO_REGISTER] =
    REG_ALLOC_ORDER;
@@ -274,6 +275,9 @@
  #undef TARGET_OPTION_OPTIMIZATION_TABLE
  #define TARGET_OPTION_OPTIMIZATION_TABLE xtensa_option_optimization_table

+#undef TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
+#define TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA xtensa_output_addr_const_extra
+
  struct gcc_target targetm = TARGET_INITIALIZER;

  
@@ -2438,7 +2442,7 @@
  }


-bool +static bool xtensa_output_addr_const_extra (FILE *fp, rtx x) { if (GET_CODE (x) == UNSPEC&& XVECLEN (x, 0) == 1) Index: gcc/config/xtensa/xtensa.h =================================================================== --- gcc/config/xtensa/xtensa.h (revision 168543) +++ gcc/config/xtensa/xtensa.h (working copy) @@ -816,14 +816,6 @@ #define PRINT_OPERAND(FILE, X, CODE) print_operand (FILE, X, CODE) #define PRINT_OPERAND_ADDRESS(FILE, ADDR) print_operand_address (FILE, ADDR)

-/* Recognize machine-specific patterns that may appear within
-   constants.  Used for PIC-specific UNSPECs.  */
-#define OUTPUT_ADDR_CONST_EXTRA(STREAM, X, FAIL)                       \
-  do {                                                                 \
-    if (xtensa_output_addr_const_extra (STREAM, X) == FALSE)           \
-      goto FAIL;                                                       \
-  } while (0)
-
  /* Globalizing directive for a label.  */
  #define GLOBAL_ASM_OP "\t.global\t"

Index: gcc/config/xtensa/xtensa-protos.h
===================================================================
--- gcc/config/xtensa/xtensa-protos.h   (revision 168543)
+++ gcc/config/xtensa/xtensa-protos.h   (working copy)
@@ -62,7 +62,6 @@

  extern void print_operand (FILE *, rtx, int);
  extern void print_operand_address (FILE *, rtx);
-extern bool xtensa_output_addr_const_extra (FILE *, rtx);
  extern void xtensa_output_literal (FILE *, rtx, enum machine_mode, int);
  extern rtx xtensa_return_addr (int, rtx);
  extern enum reg_class xtensa_preferred_reload_class (rtx, enum reg_class, int);


Anatoly.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]