Patchwork [STORMY16] Hookize PRINT_OPERAND and TARGET_PRINT_OPERAND_ADDRESS

login
register
mail settings
Submitter Anatoly Sokolov
Date March 7, 2011, 1:42 p.m.
Message ID <2810433787.20110307164204@post.ru>
Download mbox | patch
Permalink /patch/85743/
State New
Headers show

Comments

Anatoly Sokolov - March 7, 2011, 1:42 p.m.
Hi.

  This patch removes obsolete PRINT_OPERAND and PRINT_OPERAND_ADDRESS
macros from the STORMY16 back end in the GCC and introduces equivalent
TARGET_PRINT_OPERAND and TARGET_PRINT_OPERAND_ADDRESS target hooks.

  Regression tested on xstormy16-unknown-elf.

  OK to install?

        * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
        Remove.
        * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
        xstormy16_print_operand_address): Remove.
        * config/stormy16/stormy16.c (xstormy16_print_operand,
        xstormy16_print_operand_address): Make static.
        (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.




Anatoly.
Nick Clifton - March 7, 2011, 5:06 p.m.
Hi Anatoly,

>          * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
>          Remove.
>          * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
>          xstormy16_print_operand_address): Remove.
>          * config/stormy16/stormy16.c (xstormy16_print_operand,
>          xstormy16_print_operand_address): Make static.
>          (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.

Approved - please apply.

Cheers
   Nick

Patch

Index: gcc/config/stormy16/stormy16.c
===================================================================
--- gcc/config/stormy16/stormy16.c      (revision 170660)
+++ gcc/config/stormy16/stormy16.c      (working copy)
@@ -1642,9 +1642,11 @@ 
   assemble_integer (symbol, POINTER_SIZE / BITS_PER_UNIT, POINTER_SIZE, 1);
 }
 
-/* Print a memory address as an operand to reference that memory location.  */
+/* Worker function for TARGET_PRINT_OPERAND_ADDRESS.
 
-void
+   Print a memory address as an operand to reference that memory location.  */
+
+static void
 xstormy16_print_operand_address (FILE *file, rtx address)
 {
   HOST_WIDE_INT offset;
@@ -1692,9 +1694,11 @@ 
   fputc (')', file);
 }
 
-/* Print an operand to an assembler instruction.  */
+/* Worker function for TARGET_PRINT_OPERAND.
 
-void
+   Print an operand to an assembler instruction.  */
+
+static void
 xstormy16_print_operand (FILE *file, rtx x, int code)
 {
   switch (code)
@@ -2608,6 +2612,11 @@ 
 #undef  TARGET_ASM_CAN_OUTPUT_MI_THUNK
 #define TARGET_ASM_CAN_OUTPUT_MI_THUNK default_can_output_mi_thunk_no_vcall
 
+#undef  TARGET_PRINT_OPERAND
+#define TARGET_PRINT_OPERAND xstormy16_print_operand
+#undef  TARGET_PRINT_OPERAND_ADDRESS
+#define TARGET_PRINT_OPERAND_ADDRESS xstormy16_print_operand_address
+
 #undef  TARGET_MEMORY_MOVE_COST
 #define TARGET_MEMORY_MOVE_COST xstormy16_memory_move_cost
 #undef  TARGET_RTX_COSTS
Index: gcc/config/stormy16/stormy16.h
===================================================================
--- gcc/config/stormy16/stormy16.h      (revision 170660)
+++ gcc/config/stormy16/stormy16.h      (working copy)
@@ -440,10 +440,6 @@ 
   { { "r14", 14 },                             \
     { "r15", 15 } }
 
-#define PRINT_OPERAND(STREAM, X, CODE) xstormy16_print_operand (STREAM, X, CODE)
-
-#define PRINT_OPERAND_ADDRESS(STREAM, X) xstormy16_print_operand_address (STREAM, X)
-
 #define REGISTER_PREFIX ""
 #define LOCAL_LABEL_PREFIX "."
 #define USER_LABEL_PREFIX ""
Index: gcc/config/stormy16/stormy16-protos.h
===================================================================
--- gcc/config/stormy16/stormy16-protos.h       (revision 170660)
+++ gcc/config/stormy16/stormy16-protos.h       (working copy)
@@ -44,9 +44,6 @@ 
 extern char *xstormy16_output_cbranch_hi (rtx, const char *, int, rtx);
 extern char *xstormy16_output_cbranch_si (rtx, const char *, int, rtx);
 
-extern void xstormy16_print_operand (FILE *, rtx, int);
-extern void xstormy16_print_operand_address (FILE *, rtx);
-
 extern void xstormy16_expand_casesi (rtx, rtx, rtx, rtx, rtx);
 extern void xstormy16_output_addr_vec (FILE *, rtx, rtx);
 extern void xstormy16_expand_call (rtx, rtx, rtx);