Jake Hamby writes: > As an added bonus, I see that my patch set also included an old m68k patch > that had been sitting in my tree, which fixes a crash when -m68040 is > defined. > I may have submitted it to port-m68k before. It hasn't been tested with the > new compiler either. Here's that patch separately. It only matter when > TARGET_68881 && TUNE_68040.
Do you have a test case or some recipe for reproducing the crash? I'd be happy to test this patch on Linux/M68K. /Mikael > > -Jake > > > Index: external/gpl3/gcc/dist/gcc/config/m68k/m68k.md > ==================================================================== > RCS file: /cvsroot/src/external/gpl3/gcc/dist/gcc/config/m68k/m68k.md,v > retrieving revision 1.4 > diff -u -u -r1.4 m68k.md > --- external/gpl3/gcc/dist/gcc/config/m68k/m68k.md 24 Jan 2016 09:43:33 > -0000 1.4 > +++ external/gpl3/gcc/dist/gcc/config/m68k/m68k.md 26 Mar 2016 10:42:41 > -0000 > @@ -2132,9 +2132,9 @@ > ;; into the kernel to emulate fintrz. They should also be faster > ;; than calling the subroutines fixsfsi or fixdfsi. > > -(define_insn "fix_truncdfsi2" > +(define_insn "fix_trunc<mode>si2" > [(set (match_operand:SI 0 "nonimmediate_operand" "=dm") > - (fix:SI (fix:DF (match_operand:DF 1 "register_operand" "f")))) > + (fix:SI (match_operand:FP 1 "register_operand" "f"))) > (clobber (match_scratch:SI 2 "=d")) > (clobber (match_scratch:SI 3 "=d"))] > "TARGET_68881 && TUNE_68040" > @@ -2143,9 +2143,9 @@ > return "fmovem%.l %!,%2\;moveq #16,%3\;or%.l %2,%3\;and%.w > #-33,%3\;fmovem%.l %3,%!\;fmove%.l %1,%0\;fmovem%.l %2,%!"; > }) > > -(define_insn "fix_truncdfhi2" > +(define_insn "fix_trunc<mode>hi2" > [(set (match_operand:HI 0 "nonimmediate_operand" "=dm") > - (fix:HI (fix:DF (match_operand:DF 1 "register_operand" "f")))) > + (fix:HI (match_operand:FP 1 "register_operand" "f"))) > (clobber (match_scratch:SI 2 "=d")) > (clobber (match_scratch:SI 3 "=d"))] > "TARGET_68881 && TUNE_68040" > @@ -2154,9 +2154,9 @@ > return "fmovem%.l %!,%2\;moveq #16,%3\;or%.l %2,%3\;and%.w > #-33,%3\;fmovem%.l %3,%!\;fmove%.w %1,%0\;fmovem%.l %2,%!"; > }) > > -(define_insn "fix_truncdfqi2" > +(define_insn "fix_trunc<mode>qi2" > [(set (match_operand:QI 0 "nonimmediate_operand" "=dm") > - (fix:QI (fix:DF (match_operand:DF 1 "register_operand" "f")))) > + (fix:QI (match_operand:FP 1 "register_operand" "f"))) > (clobber (match_scratch:SI 2 "=d")) > (clobber (match_scratch:SI 3 "=d"))] > "TARGET_68881 && TUNE_68040" --