Commit 666b67b1 by Georg-Johann Lay Committed by Georg-Johann Lay

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
parent faf81b1a
2011-12-15 Georg-Johann Lay <avr@gjlay.de>
* 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.
2011-12-15 Andreas Tobler <andreast@fgznet.ch>
* config/i386/freebsd.h (TARGET_ASM_FILE_END): Define.
......@@ -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);
......
......@@ -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. */
......
......@@ -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); \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment