This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ICE building glibc-2.2.5 using m68k-linux gcc-3.1
On Thu, Jul 25, 2002 at 06:04:31PM -0700, Richard Henderson wrote:
> On Thu, Jul 25, 2002 at 03:33:20PM -0400, Peter Barada wrote:
> > (gdb) call debug_rtx(set)
> >
> > (set (strict_low_part (reg:HI 6 %d6))
> > (reg:HI 30))
>
> This is wrong. The argument to STRICT_LOW_PART must always be
> a SUBREG of a REG.
so the responsible pattern seems to be
(define_expand "zero_extendhisi2"
[(set (match_operand:SI 0 "register_operand" "")
(const_int 0))
(set (strict_low_part (match_dup 2))
(match_operand:HI 1 "general_operand" ""))]
""
"
{
operands[1] = make_safe_from (operands[1], operands[0]);
operands[2] = gen_lowpart (HImode, operands[0]);
}")
Funny enough, the m68k version of zero_extendhisi2 insn pattern
is part of the gcc internals docs for 3.x and it is written
differently there, with an (subreg:HI ...) so I am trying this
variant now - anyone remembers when or why it was changed?
Richard