Hi.
This patch removes obsolete PRINT_OPERAND, PRINT_OPERAND_ADDRESS and
PRINT_OPERAND_PUNCT_VALID_P macros from M32C back end in the GCC and
introduces equivalent TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS and
TARGET_PRINT_OPERAND_PUNCT_VALID_P target hooks.
Regression tested on m32c-unknown-elf.
OK to install?
* config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
* config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
m32c_print_operand, m32c_print_operand_address): Remove.
* config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
Change return type to bool. Change argument type to bool.
(m32c_print_operand, m32c_print_operand_address): Make static.
(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
Index: gcc/config/m32c/m32c.c
===
--- gcc/config/m32c/m32c.c (revision 176672)
+++ gcc/config/m32c/m32c.c (working copy)
@@ -2644,8 +2644,12 @@
fb, sb, a1, a0, r3, r2, r1, r0
};
-/* Implements PRINT_OPERAND. */
-void
+/* Implements TARGET_PRINT_OPERAND. */
+
+#undef TARGET_PRINT_OPERAND
+#define TARGET_PRINT_OPERAND m32c_print_operand
+
+static void
m32c_print_operand (FILE * file, rtx x, int code)
{
int i, j, b;
@@ -2998,18 +3002,28 @@
return;
}
-/* Implements PRINT_OPERAND_PUNCT_VALID_P. See m32c_print_operand
- above for descriptions of what these do. */
-int
-m32c_print_operand_punct_valid_p (int c)
+/* Implements TARGET_PRINT_OPERAND_PUNCT_VALID_P.
+
+ See m32c_print_operand above for descriptions of what these do. */
+
+#undef TARGET_PRINT_OPERAND_PUNCT_VALID_P
+#define TARGET_PRINT_OPERAND_PUNCT_VALID_P m32c_print_operand_punct_valid_p
+
+static bool
+m32c_print_operand_punct_valid_p (unsigned char c)
{
if (c == '' || c == '!')
-return 1;
- return 0;
+return true;
+
+ return false;
}
-/* Implements PRINT_OPERAND_ADDRESS. Nothing unusual here. */
-void
+/* Implements TARGET_PRINT_OPERAND_ADDRESS. Nothing unusual here. */
+
+#undef TARGET_PRINT_OPERAND_ADDRESS
+#define TARGET_PRINT_OPERAND_ADDRESS m32c_print_operand_address
+
+static void
m32c_print_operand_address (FILE * stream, rtx address)
{
if (GET_CODE (address) == MEM)
Index: gcc/config/m32c/m32c.h
===
--- gcc/config/m32c/m32c.h (revision 176672)
+++ gcc/config/m32c/m32c.h (working copy)
@@ -620,10 +620,6 @@
{a0a1, 4}, \
{r0r2r1r3, 0} }
-#define PRINT_OPERAND(S,X,C) m32c_print_operand (S, X, C)
-#define PRINT_OPERAND_PUNCT_VALID_P(C) m32c_print_operand_punct_valid_p (C)
-#define PRINT_OPERAND_ADDRESS(S,X) m32c_print_operand_address (S, X)
-
#undef USER_LABEL_PREFIX
#define USER_LABEL_PREFIX _
Index: gcc/config/m32c/m32c-protos.h
===
--- gcc/config/m32c/m32c-protos.h (revision 176672)
+++ gcc/config/m32c/m32c-protos.h (working copy)
@@ -33,7 +33,6 @@
int m32c_initial_elimination_offset (int, int);
void m32c_output_reg_pop (FILE *, int);
void m32c_output_reg_push (FILE *, int);
-int m32c_print_operand_punct_valid_p (int);
unsigned int m32c_push_rounding (int);
int m32c_reg_class_from_constraint (char, const char *);
void m32c_register_pragmas (void);
@@ -71,8 +70,6 @@
int m32c_preferred_reload_class (rtx, int);
int m32c_prepare_move (rtx *, enum machine_mode);
int m32c_prepare_shift (rtx *, int, int);
-void m32c_print_operand (FILE *, rtx, int);
-void m32c_print_operand_address (FILE *, rtx);
int m32c_reg_ok_for_base_p (rtx, int);
enum reg_class m32c_regno_reg_class (int);
rtx m32c_return_addr_rtx (int);
Anatoly.