Re: Bug#352529: [hppa] internal compiler error: in reload_cse_simplify_operands,
> > While investigating gstreamer0.10-ffmpeg's build failure under hppa[1],
> > I received the following error from gcc:
> >
> > gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libavutil -DHAVE_AV_CONFIG_H=1 -Wall -Wno-switch -g -O2 -MT mpegaudiodec.lo -MD -MP -MF .deps/mpegaudiodec.Tpo -c mpegaudiodec.c -fPIC -DPIC -o .libs/mpegaudiodec.o
> > mpegaudiodec.c: In function 'mp_decode_frame':
> > mpegaudiodec.c:2445: warning: pointer targets in passing argument 4 of 'ff_mpa_synth_filter' differ in signedness
> > mpegaudiodec.c: In function 'ff_mpa_synth_filter':
> > mpegaudiodec.c:920: error: insn does not satisfy its constraints:
> > (insn 4924 2540 2542 4 mpegaudiodec.c:888 (set (reg:HI 70 %fr23 [1852])
> > (reg:HI 1 %r1)) 53 {*pa.md:2926} (nil)
> > (nil))
> > mpegaudiodec.c:920: internal compiler error: in reload_cse_simplify_operands, at postreload.c:391
Would you please file a PR?
The program compiles with gcc-3.4, but fails with 4.0 and 4.1 (didn't
try head). At first glance, this seems like a reload bug.
The current define for HARD_REGNO_MODE_OK should stop reload from
trying to put a HImode value into a floating-point register. We don't
support HImode moves between general and floating-point registers as
they are more expensive than using a stack temporary. Looking at the
greg RTL output, I see that reload is just using %fr23 as temporary
storage (i.e., the value is copied back to a general register a few
instructions later).
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
Reply to: