summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2011-12-15 19:30:08 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2011-12-15 19:30:08 +0000
commit666b67b1b98d4587c6f687b246109117b1fe5ebc (patch)
tree1cc265052379354348cff421af470f833a61fe88 /gcc/config
parentfaf81b1a183e3a29f6360e52b622fe0d5717b09b (diff)
downloadgcc-666b67b1b98d4587c6f687b246109117b1fe5ebc.tar.gz
avr-protos.h (print_operand): Remove.
* config/avr/avr-protos.h (print_operand): Remove. (print_operand_address): Remove. * config/avr/avr.h (PRINT_OPERAND): Remove. (PRINT_OPERAND_ADDRESS): Remove. (PRINT_OPERAND_PUNCT_VALID_P): Remove. * config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define. (TARGET_PRINT_OPERAND_ADDRESS): New hook define. (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define. (print_operand_address): Rename to... (avr_print_operand_address): ...this and make static. (print_operand): Rename to... (avr_print_operand): ...this and make static. (avr_print_operand_punct_valid_p): New static function. From-SVN: r182386
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/avr/avr-protos.h2
-rw-r--r--gcc/config/avr/avr.c43
-rw-r--r--gcc/config/avr/avr.h6
3 files changed, 31 insertions, 20 deletions
diff --git a/gcc/config/avr/avr-protos.h b/gcc/config/avr/avr-protos.h
index bafd794a302..123045181c9 100644
--- a/gcc/config/avr/avr-protos.h
+++ b/gcc/config/avr/avr-protos.h
@@ -101,8 +101,6 @@ extern const char* output_reload_inhi (rtx*, rtx, int*);
extern const char* output_reload_insisf (rtx*, rtx, int*);
extern const char* avr_out_reload_inpsi (rtx*, rtx, int*);
extern void notice_update_cc (rtx body, rtx insn);
-extern void print_operand (FILE *file, rtx x, int code);
-extern void print_operand_address (FILE *file, rtx addr);
extern int reg_unused_after (rtx insn, rtx reg);
extern int _reg_unused_after (rtx insn, rtx reg);
extern int avr_jump_mode (rtx x, rtx insn);
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 367e76bf3ac..2493638aaec 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -289,6 +289,13 @@ bool avr_need_copy_data_p = false;
#undef TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS
#define TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS avr_addr_space_legitimize_address
+#undef TARGET_PRINT_OPERAND
+#define TARGET_PRINT_OPERAND avr_print_operand
+#undef TARGET_PRINT_OPERAND_ADDRESS
+#define TARGET_PRINT_OPERAND_ADDRESS avr_print_operand_address
+#undef TARGET_PRINT_OPERAND_PUNCT_VALID_P
+#define TARGET_PRINT_OPERAND_PUNCT_VALID_P avr_print_operand_punct_valid_p
+
/* Custom function to replace string prefix.
@@ -1733,10 +1740,12 @@ cond_string (enum rtx_code code)
return "";
}
+
+/* Implement `TARGET_PRINT_OPERAND_ADDRESS'. */
/* Output ADDR to FILE as address. */
-void
-print_operand_address (FILE *file, rtx addr)
+static void
+avr_print_operand_address (FILE *file, rtx addr)
{
switch (GET_CODE (addr))
{
@@ -1791,11 +1800,21 @@ print_operand_address (FILE *file, rtx addr)
}
+/* Implement `TARGET_PRINT_OPERAND_PUNCT_VALID_P'. */
+
+static bool
+avr_print_operand_punct_valid_p (unsigned char code)
+{
+ return code == '~' || code == '!';
+}
+
+
+/* Implement `TARGET_PRINT_OPERAND'. */
/* Output X as assembler operand to file FILE.
For a description of supported %-codes, see top of avr.md. */
-void
-print_operand (FILE *file, rtx x, int code)
+static void
+avr_print_operand (FILE *file, rtx x, int code)
{
int abcd = 0;
@@ -1889,14 +1908,14 @@ print_operand (FILE *file, rtx x, int code)
}
else if (code == 'i')
{
- print_operand (file, addr, 'i');
+ avr_print_operand (file, addr, 'i');
}
else if (code == 'o')
{
if (GET_CODE (addr) != PLUS)
fatal_insn ("bad address, not (reg+disp):", addr);
- print_operand (file, XEXP (addr, 1), 0);
+ avr_print_operand (file, XEXP (addr, 1), 0);
}
else if (code == 'p' || code == 'r')
{
@@ -1904,21 +1923,21 @@ print_operand (FILE *file, rtx x, int code)
fatal_insn ("bad address, not post_inc or pre_dec:", addr);
if (code == 'p')
- print_operand_address (file, XEXP (addr, 0)); /* X, Y, Z */
+ avr_print_operand_address (file, XEXP (addr, 0)); /* X, Y, Z */
else
- print_operand (file, XEXP (addr, 0), 0); /* r26, r28, r30 */
+ avr_print_operand (file, XEXP (addr, 0), 0); /* r26, r28, r30 */
}
else if (GET_CODE (addr) == PLUS)
{
- print_operand_address (file, XEXP (addr,0));
+ avr_print_operand_address (file, XEXP (addr,0));
if (REGNO (XEXP (addr, 0)) == REG_X)
fatal_insn ("internal compiler error. Bad address:"
,addr);
fputc ('+', file);
- print_operand (file, XEXP (addr,1), code);
+ avr_print_operand (file, XEXP (addr,1), code);
}
else
- print_operand_address (file, addr);
+ avr_print_operand_address (file, addr);
}
else if (code == 'i')
{
@@ -1954,7 +1973,7 @@ print_operand (FILE *file, rtx x, int code)
else if (code == 'k')
fputs (cond_string (reverse_condition (GET_CODE (x))), file);
else
- print_operand_address (file, x);
+ avr_print_operand_address (file, x);
}
/* Update the condition code in the INSN. */
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 14effd86a6f..33017ba74bd 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -497,12 +497,6 @@ typedef struct avr_args {
#define FINAL_PRESCAN_INSN(insn, operand, nop) final_prescan_insn (insn, operand,nop)
-#define PRINT_OPERAND(STREAM, X, CODE) print_operand (STREAM, X, CODE)
-
-#define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '~' || (CODE) == '!')
-
-#define PRINT_OPERAND_ADDRESS(STREAM, X) print_operand_address(STREAM, X)
-
#define ASM_OUTPUT_REG_PUSH(STREAM, REGNO) \
{ \
gcc_assert (REGNO < 32); \