From f9f3567eebce4882495fc53254eab4ccf4870f36 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Tue, 25 Sep 2007 20:03:07 -0400 Subject: [PATCH] re PR target/33551 (ICE: RTL check: expected elt 0 type 'i' or 'n', have 'w' (rtx const_int) in m32c_immd_dbl_mov, at config/m32c/m32c.c:3010) PR target/33551 * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of XINT. From-SVN: r128773 --- gcc/ChangeLog | 6 ++++++ gcc/config/m32c/m32c.c | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7fe7828..604f0d4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-09-25 DJ Delorie + + PR target/33551 + * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of + XINT. + 2007-09-25 Michael Meissner PR c/33524 diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c index 74de416..cd559e4 100644 --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -2993,7 +2993,7 @@ m32c_immd_dbl_mov (rtx * operands, && GET_CODE (XEXP (XEXP (XEXP (operands[0], 0), 0), 0)) == SYMBOL_REF && MEM_SCALAR_P (operands[0]) && !MEM_IN_STRUCT_P (operands[0]) - && !(XINT (XEXP (XEXP (XEXP (operands[0], 0), 0), 1), 0) %4) + && !(INTVAL (XEXP (XEXP (XEXP (operands[0], 0), 0), 1)) %4) && GET_CODE (XEXP (operands[2], 0)) == CONST && GET_CODE (XEXP (XEXP (operands[2], 0), 0)) == PLUS && GET_CODE (XEXP (XEXP (XEXP (operands[2], 0), 0), 0)) == SYMBOL_REF @@ -3007,7 +3007,7 @@ m32c_immd_dbl_mov (rtx * operands, && GET_CODE (XEXP (XEXP (operands[0], 0), 1)) == CONST_INT && MEM_SCALAR_P (operands[0]) && !MEM_IN_STRUCT_P (operands[0]) - && !(XINT (XEXP (XEXP (operands[0], 0), 1), 0) %4) + && !(INTVAL (XEXP (XEXP (operands[0], 0), 1)) %4) && REGNO (XEXP (XEXP (operands[2], 0), 0)) == FB_REGNO && GET_CODE (XEXP (XEXP (operands[2], 0), 1)) == CONST_INT && MEM_SCALAR_P (operands[2]) @@ -3036,8 +3036,8 @@ m32c_immd_dbl_mov (rtx * operands, okflag = 0; break; case 3: - offset1 = XINT (XEXP (XEXP (operands[0], 0), 1), 0); - offset2 = XINT (XEXP (XEXP (operands[2], 0), 1), 0); + offset1 = INTVAL (XEXP (XEXP (operands[0], 0), 1)); + offset2 = INTVAL (XEXP (XEXP (operands[2], 0), 1)); offsetsign = offset1 >> ((sizeof (offset1) * 8) -1); if (((offset2-offset1) == 2) && offsetsign != 0) okflag = 1; @@ -3053,7 +3053,7 @@ m32c_immd_dbl_mov (rtx * operands, HOST_WIDE_INT val; operands[4] = gen_rtx_MEM (SImode, XEXP (operands[0], 0)); - val = (XINT (operands[3], 0) << 16) + (XINT (operands[1], 0) & 0xFFFF); + val = (INTVAL (operands[3]) << 16) + (INTVAL (operands[1]) & 0xFFFF); operands[5] = gen_rtx_CONST_INT (VOIDmode, val); return true; -- 2.7.4