https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82045
--- Comment #12 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- (In reply to r...@cebitec.uni-bielefeld.de from comment #11) > Unfortunately, the patch breaks x86 bootstrap (e.g. for the 32-bit > _multc3.o), both in i386-pc-solaris2.* and x86_64-pc-linux-gnu compilers: > > $ cc1 -fpreprocessed libgcc2.i -quiet -o libgcc2.s > > Thread 2 hit Breakpoint 1, fancy_abort ( > file=0x98dbb80 "/vol/gcc/src/hg/trunk/local/gcc/calls.c", line=4571, > function=0x98dc691 <emit_library_call_value(int, rtx_def*, rtx_def*, > libcall_type, machine_mode, int, std::pair<rtx_def*, > machine_mode>*)::__FUNCTION__> "emit_library_call_value") at > /vol/gcc/src/hg/trunk/local/gcc/diagnostic.c:1488 > 1488 internal_error ("in %s, at %s:%d", function, trim_filename (file), > line); > > #0 fancy_abort (file=0x98dbb80 "/vol/gcc/src/hg/trunk/local/gcc/calls.c", > line=4571, > function=0x98dc691 <emit_library_call_value(int, rtx_def*, rtx_def*, > libcall_type, machine_mode, int, std::pair<rtx_def*, > machine_mode>*)::__FUNCTION__> "emit_library_call_value") at > /vol/gcc/src/hg/trunk/local/gcc/diagnostic.c:1488 > #1 0x085fa6de in emit_library_call_value (retval=1, orgfun=0xfe7894a0, > value=0x0, fn_type=LCT_CONST, outmode=E_TFmode, nargs=3, args=0x8046970) > at /vol/gcc/src/hg/trunk/local/gcc/calls.c:4570 > #2 0x085e8409 in emit_library_call_value (fun=0xfe7894a0, value=0x0, > fn_type=LCT_CONST, outmode=E_TFmode, arg1=0xfe789460, > arg1_mode=E_TFmode, > arg2=0xfe789480, arg2_mode=E_TFmode) > at /vol/gcc/src/hg/trunk/local/gcc/rtl.h:3873 > #3 0x089ed51e in expand_binop (mode=E_TFmode, binoptab=smul_optab, > op0=0xfe789460, op1=0xfe789480, target=0xfe789440, unsignedp=0, > methods=OPTAB_LIB_WIDEN) at /vol/gcc/src/hg/trunk/local/gcc/optabs.c:1763 > #4 0x08738653 in expand_mult (mode=E_TFmode, op0=0xfe789460, > op1=0xfe789480, > target=0xfe789440, unsignedp=0) > at /vol/gcc/src/hg/trunk/local/gcc/expmed.c:3455 > #5 0x0875ddb3 in expand_expr_real_2 (ops=0x8047190, target=0xfe789440, > tmode=E_TFmode, modifier=EXPAND_NORMAL) > at /vol/gcc/src/hg/trunk/local/gcc/expr.c:8827 > #6 0x08611992 in expand_gimple_stmt_1 (stmt=0xfe610104) > at /vol/gcc/src/hg/trunk/local/gcc/cfgexpand.c:3691 > #7 0x08611bbc in expand_gimple_stmt (stmt=0xfe610104) > at /vol/gcc/src/hg/trunk/local/gcc/cfgexpand.c:3751 > #8 0x0861898c in expand_gimple_basic_block (bb=0xfe784080, > disable_tail_calls=false) > at /vol/gcc/src/hg/trunk/local/gcc/cfgexpand.c:5750 > #9 0x0861a160 in (anonymous namespace)::pass_expand::execute > (this=0xa31ea30, > fun=0xfe758068) at /vol/gcc/src/hg/trunk/local/gcc/cfgexpand.c:6357 > #10 0x08a21b8e in execute_one_pass (pass=0xa31ea30) > at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2495 > #11 0x08a21ec9 in execute_pass_list_1 (pass=0xa31ea30) > at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2584 > #12 0x08a21f43 in execute_pass_list (fn=0xfe758068, pass=0xa31c300) > at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2595 > #13 0x0865bdec in cgraph_node::expand (this=0xfe777000) > at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2054 > #14 0x0865c7c6 in output_in_order () > at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2296 > #15 0x0865cf5a in symbol_table::compile (this=0xfe6070c8) > at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2537 > #16 0x0865d1b2 in symbol_table::finalize_compilation_unit (this=0xfe6070c8) > at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2631 > #17 0x08b327b5 in compile_file () > at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:496 > #18 0x08b34b12 in do_compile () > at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2037 > #19 0x08b34dd8 in toplev::main (this=0x80475fe, argc=6, argv=0x804762c) > at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2172 > #20 0x0963505a in main (argc=6, argv=0x804762c) > at /vol/gcc/src/hg/trunk/local/gcc/main.c:39 > > (gdb) p mode > $12 = E_BLKmode > (gdb) p val > $13 = (rtx) 0x0 Yeah, I've been testing a fixed version today. I hope to post soon once I've got a bit more coverage.