Ping?
http://gcc.gnu.org/ml/gcc/2008-10/msg00491.html
> One thing to do is to call simplify_gen_subreg. I don't know why this
> code still calls gen_rtx_SUBREG. It's pretty old code.
>
> But I don't think that will help. I think this code is simply
> incorrect. It seems to assume that op_mode is at least as large as
> GET_MODE (xop0), probably b
Ian Lance Taylor <[EMAIL PROTECTED]> writes:
> simplify_gen_subreg will only return NULL when the RTL is already
> bogus.
Be that as it may, but it was returning NULL in my case. (I tried
calling simplify_gen_subreg too).
The code in expmed.c seemed to be OK with generating bogus subregs,
assum
DJ Delorie <[EMAIL PROTECTED]> writes:
>> One thing to do is to call simplify_gen_subreg.
>
> As I noted, that may return NULL, which is fatal in the case I'm
> referencing.
You mentioned simplify_subreg. simplify_gen_subreg will only return
NULL when the RTL is already bogus.
>> But I don't t
> One thing to do is to call simplify_gen_subreg.
As I noted, that may return NULL, which is fatal in the case I'm
referencing.
> But I don't think that will help. I think this code is simply
> incorrect. It seems to assume that op_mode is at least as large as
> GET_MODE (xop0), probably becau
DJ Delorie <[EMAIL PROTECTED]> writes:
> In expmed.c I see code like this:
>
> if (REG_P (xop0) && GET_MODE (xop0) != op_mode)
> xop0 = gen_rtx_SUBREG (op_mode, xop0, 0);
>
> However, this is wrong for big-endian targets (h8300-elf in my case)
> because '0' is not the offset of the LSB
In expmed.c I see code like this:
if (REG_P (xop0) && GET_MODE (xop0) != op_mode)
xop0 = gen_rtx_SUBREG (op_mode, xop0, 0);
However, this is wrong for big-endian targets (h8300-elf in my case)
because '0' is not the offset of the LSB of the register when it's a
pseudo and op_mode i