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.