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> 2011-12-15 Andreas Tobler <andreast@fgznet.ch>
* config/i386/freebsd.h (TARGET_ASM_FILE_END): Define. * config/i386/freebsd.h (TARGET_ASM_FILE_END): Define.
...@@ -101,8 +101,6 @@ extern const char* output_reload_inhi (rtx*, rtx, int*); ...@@ -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* output_reload_insisf (rtx*, rtx, int*);
extern const char* avr_out_reload_inpsi (rtx*, rtx, int*); extern const char* avr_out_reload_inpsi (rtx*, rtx, int*);
extern void notice_update_cc (rtx body, rtx insn); 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 _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); extern int avr_jump_mode (rtx x, rtx insn);
......
...@@ -289,6 +289,13 @@ bool avr_need_copy_data_p = false; ...@@ -289,6 +289,13 @@ bool avr_need_copy_data_p = false;
#undef TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS #undef TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS
#define TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS avr_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. /* Custom function to replace string prefix.
...@@ -1733,10 +1740,12 @@ cond_string (enum rtx_code code) ...@@ -1733,10 +1740,12 @@ cond_string (enum rtx_code code)
return ""; return "";
} }
/* Implement `TARGET_PRINT_OPERAND_ADDRESS'. */
/* Output ADDR to FILE as address. */ /* Output ADDR to FILE as address. */
void static void
print_operand_address (FILE *file, rtx addr) avr_print_operand_address (FILE *file, rtx addr)
{ {
switch (GET_CODE (addr)) switch (GET_CODE (addr))
{ {
...@@ -1791,11 +1800,21 @@ print_operand_address (FILE *file, rtx 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. /* Output X as assembler operand to file FILE.
For a description of supported %-codes, see top of avr.md. */ For a description of supported %-codes, see top of avr.md. */
void static void
print_operand (FILE *file, rtx x, int code) avr_print_operand (FILE *file, rtx x, int code)
{ {
int abcd = 0; int abcd = 0;
...@@ -1889,14 +1908,14 @@ print_operand (FILE *file, rtx x, int code) ...@@ -1889,14 +1908,14 @@ print_operand (FILE *file, rtx x, int code)
} }
else if (code == 'i') else if (code == 'i')
{ {
print_operand (file, addr, 'i'); avr_print_operand (file, addr, 'i');
} }
else if (code == 'o') else if (code == 'o')
{ {
if (GET_CODE (addr) != PLUS) if (GET_CODE (addr) != PLUS)
fatal_insn ("bad address, not (reg+disp):", addr); 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') else if (code == 'p' || code == 'r')
{ {
...@@ -1904,21 +1923,21 @@ print_operand (FILE *file, rtx x, int code) ...@@ -1904,21 +1923,21 @@ print_operand (FILE *file, rtx x, int code)
fatal_insn ("bad address, not post_inc or pre_dec:", addr); fatal_insn ("bad address, not post_inc or pre_dec:", addr);
if (code == 'p') 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 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) 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) if (REGNO (XEXP (addr, 0)) == REG_X)
fatal_insn ("internal compiler error. Bad address:" fatal_insn ("internal compiler error. Bad address:"
,addr); ,addr);
fputc ('+', file); fputc ('+', file);
print_operand (file, XEXP (addr,1), code); avr_print_operand (file, XEXP (addr,1), code);
} }
else else
print_operand_address (file, addr); avr_print_operand_address (file, addr);
} }
else if (code == 'i') else if (code == 'i')
{ {
...@@ -1954,7 +1973,7 @@ print_operand (FILE *file, rtx x, int code) ...@@ -1954,7 +1973,7 @@ print_operand (FILE *file, rtx x, int code)
else if (code == 'k') else if (code == 'k')
fputs (cond_string (reverse_condition (GET_CODE (x))), file); fputs (cond_string (reverse_condition (GET_CODE (x))), file);
else else
print_operand_address (file, x); avr_print_operand_address (file, x);
} }
/* Update the condition code in the INSN. */ /* Update the condition code in the INSN. */
......
...@@ -497,12 +497,6 @@ typedef struct avr_args { ...@@ -497,12 +497,6 @@ typedef struct avr_args {
#define FINAL_PRESCAN_INSN(insn, operand, nop) final_prescan_insn (insn, operand,nop) #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) \ #define ASM_OUTPUT_REG_PUSH(STREAM, REGNO) \
{ \ { \
gcc_assert (REGNO < 32); \ 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