Commit d398d903 by Gunther Nikl Committed by Nathan Froyd

rs6000.c (print_operand): Also use print_operand_address and puts to output the operand for CONST.

	* config/rs6000/rs6000.c (print_operand) <'K'>: Also use
	print_operand_address and puts to output the operand for CONST.

From-SVN: r160945
parent 654bbfea
2010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
* config/rs6000/rs6000.c (print_operand) <'K'>: Also use
print_operand_address and puts to output the operand for CONST.
2010-06-17 Jakub Jelinek <jakub@redhat.com>
PR debug/44572
......
......@@ -14885,27 +14885,16 @@ print_operand (FILE *file, rtx x, int code)
/* X must be a symbolic constant on ELF. Write an
expression suitable for an 'addi' that adds in the low 16
bits of the MEM. */
if (GET_CODE (x) != CONST)
{
print_operand_address (file, x);
fputs ("@l", file);
}
else
if (GET_CODE (x) == CONST)
{
if (GET_CODE (XEXP (x, 0)) != PLUS
|| (GET_CODE (XEXP (XEXP (x, 0), 0)) != SYMBOL_REF
&& GET_CODE (XEXP (XEXP (x, 0), 0)) != LABEL_REF)
|| GET_CODE (XEXP (XEXP (x, 0), 1)) != CONST_INT)
output_operand_lossage ("invalid %%K value");
print_operand_address (file, XEXP (XEXP (x, 0), 0));
fputs ("@l", file);
/* For GNU as, there must be a non-alphanumeric character
between 'l' and the number. The '-' is added by
print_operand() already. */
if (INTVAL (XEXP (XEXP (x, 0), 1)) >= 0)
fputs ("+", file);
print_operand (file, XEXP (XEXP (x, 0), 1), 0);
}
print_operand_address (file, x);
fputs ("@l", file);
return;
/* %l is output_asm_label. */
......
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