http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58314

--- Comment #10 from Oleg Endo <olegendo at gcc dot gnu.org> ---
(In reply to Oleg Endo from comment #9)
> 
> I'm testing the above patch now.

And there are failures.  Here is one (I think I remember it when working on the
QI/HImode displacement addressing stuff):

FAIL: gcc.dg/torture/vshuf-v16hi.c  -O2  (test for excess errors)
Excess errors:
/usr/local/sh-elf/bin/ld: internal error: merge of architecture 'sh3e' with
architecture 'sh2a-nofpu' produced unknown architecture
/usr/local/sh-elf/bin/ld: /tmp/ccRPtSqs.o: uses instructions which are
incompatible with instructions used in previous modules
/usr/local/sh-elf/bin/ld: failed to merge target specific data of file
/tmp/ccRPtSqs.o

This usually happens because SH2A insns are output -- 32 bit displacement
addressing insns which are more flexible -- even though the target is non-SH2A.
 This is what the comment above the reg_reg pattern is talking about.

(There is no compiler error because the target type is not passed down to the
assembler by the compiler).

Reply via email to