[ping] Re: simplify_subreg vs gen_rtx_SUBREG vis WORDS_BIG_ENDIAN

2008-11-10 Thread DJ Delorie
Ping? http://gcc.gnu.org/ml/gcc/2008-10/msg00491.html

Re: simplify_subreg vs gen_rtx_SUBREG vis WORDS_BIG_ENDIAN

2008-10-27 Thread DJ Delorie
> 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

Re: simplify_subreg vs gen_rtx_SUBREG vis WORDS_BIG_ENDIAN

2008-10-27 Thread DJ Delorie
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

Re: simplify_subreg vs gen_rtx_SUBREG vis WORDS_BIG_ENDIAN

2008-10-27 Thread Ian Lance Taylor
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

Re: simplify_subreg vs gen_rtx_SUBREG vis WORDS_BIG_ENDIAN

2008-10-27 Thread DJ Delorie
> 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

Re: simplify_subreg vs gen_rtx_SUBREG vis WORDS_BIG_ENDIAN

2008-10-24 Thread Ian Lance Taylor
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

simplify_subreg vs gen_rtx_SUBREG vis WORDS_BIG_ENDIAN

2008-10-24 Thread DJ Delorie
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