https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67643

            Bug ID: 67643
           Summary: [SH] ICE with ISR and -mfmovd
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: olegendo at gcc dot gnu.org
  Target Milestone: ---
            Target: sh*-*-*

The following ...

extern void foo (void);

void __attribute__((interrupt_handler))
isr2 (void)
{
  foo ();
}

compiled with -m4a -ml -mfmovd -O2 results in:

sh_tmp2.cpp: In function 'isr2':
sh_tmp2.cpp:11:1: error: unrecognizable insn:
 }
 ^
(insn 15 14 16 2 (parallel [
            (set (reg:SI 151 )
                (mem/c:SI (reg:SI 1 r1) [2 __fpscr_values+4 S4 A32]))
            (set (reg:SI 155 fpscr1)
                (unspec_volatile:SI [
                        (const_int 0 [0])
                    ] UNSPECV_FPSCR_STAT))
            (set (reg:SI 154 fpscr0)
                (unspec_volatile:SI [
                        (const_int 0 [0])
                    ] UNSPECV_FPSCR_MODES))
        ]) sh_tmp2.cpp:9 -1
     (expr_list:REG_UNUSED (reg:SI 155 fpscr1)
        (expr_list:REG_UNUSED (reg:SI 151 )
            (nil))))
sh_tmp2.cpp:11:1: internal compiler error: in extract_insn, at recog.c:2297
0xa18333 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../gcc-trunk2/gcc/rtl-error.c:109
0xa18369 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        ../../gcc-trunk2/gcc/rtl-error.c:117
0x9e0c0f extract_insn(rtx_insn*)
        ../../gcc-trunk2/gcc/recog.c:2297
0x9e1d28 extract_constrain_insn(rtx_insn*)
        ../../gcc-trunk2/gcc/recog.c:2198
0x9e540e copyprop_hardreg_forward_1
        ../../gcc-trunk2/gcc/regcprop.c:778
0x9e618d execute
        ../../gcc-trunk2/gcc/regcprop.c:1268
Please submit a full bug report,

Reply via email to