Commit 9e19a50c by Rask Ingemann Lambertsen Committed by Rask Ingemann Lambertsen

re PR target/32808 (cris: ICE: RTL check: expected elt 0 type 'e' or 'u', have…

re PR target/32808 (cris: ICE: RTL check: expected elt 0 type 'e' or 'u', have 'w' (rtx const_int) in cris_print_index, at config/cris/cris.c:499)

	PR target/32808
	* config/cris/cris.c (cris_print_index): Don't use XEXP before
	checking that the operand is an expression.

From-SVN: r126720
parent b8a10943
2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
PR target/32808
* config/cris/cris.c (cris_print_index): Don't use XEXP before
checking that the operand is an expression.
2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
Danny Smith <dannysmith@users.sourceforge.net>
......
......@@ -496,8 +496,6 @@ cris_operand_lossage (const char *msgid, rtx op)
static void
cris_print_index (rtx index, FILE *file)
{
rtx inner = XEXP (index, 0);
/* Make the index "additive" unless we'll output a negative number, in
which case the sign character is free (as in free beer). */
if (!CONST_INT_P (index) || INTVAL (index) >= 0)
......@@ -514,8 +512,9 @@ cris_print_index (rtx index, FILE *file)
putc (INTVAL (XEXP (index, 1)) == 2 ? 'w' : 'd', file);
}
else if (GET_CODE (index) == SIGN_EXTEND && MEM_P (inner))
else if (GET_CODE (index) == SIGN_EXTEND && MEM_P (XEXP (index, 0)))
{
rtx inner = XEXP (index, 0);
rtx inner_inner = XEXP (inner, 0);
if (GET_CODE (inner_inner) == POST_INC)
......@@ -533,6 +532,7 @@ cris_print_index (rtx index, FILE *file)
}
else if (MEM_P (index))
{
rtx inner = XEXP (index, 0);
if (GET_CODE (inner) == POST_INC)
fprintf (file, "[$%s+].d", reg_names[REGNO (XEXP (inner, 0))]);
else
......
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