[STORMY16] Hookize PRINT_OPERAND and TARGET_PRINT_OPERAND_ADDRESS
Anatoly Sokolov
aesok@post.ru
Mon Mar 7 13:41:00 GMT 2011
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.
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);
Anatoly.
More information about the Gcc-patches
mailing list