------- Comment #8 from hjl at lucon dot org 2007-03-26 04:04 ------- The invalid insn is added via
#0 add_insn (insn=0x2aaaaaafc690) at /export/gnu/src/gcc/gcc/gcc/emit-rtl.c:3411 #1 0x00000000004fb88d in emit_insn (x=0x2aaaaaafc690) at /export/gnu/src/gcc/gcc/gcc/emit-rtl.c:4336 #2 0x000000000051f3f8 in emit_move_insn_1 (x=0x2aaaaacecd80, y=0x2aaaaacfb080) at /export/gnu/src/gcc/gcc/gcc/expr.c:3260 #3 0x000000000051f725 in emit_move_insn (x=0x2aaaaacecd80, y=0x2aaaaacfb080) at /export/gnu/src/gcc/gcc/gcc/expr.c:3351 #4 0x0000000000507baf in force_reg (mode=SImode, x=0x2aaaaacfb080) at /export/gnu/src/gcc/gcc/gcc/explow.c:680 #5 0x0000000000507695 in memory_address (mode=SImode, x=0x2aaaaacfb080) at /export/gnu/src/gcc/gcc/gcc/explow.c:485 #6 0x00000000004f7491 in change_address_1 (memref=0x2aaaaacecd60, mode=SImode, addr=0x2aaaaacfb080, validate=1) at /export/gnu/src/gcc/gcc/gcc/emit-rtl.c:1811 #7 0x00000000004f7add in adjust_address_1 (memref=0x2aaaaacecd60, mode=SImode, offset=0, validate=1, adjust=1) at /export/gnu/src/gcc/gcc/gcc/emit-rtl.c:1895 #8 0x000000000051e778 in emit_move_change_mode (new_mode=SImode, old_mode=SDmode, x=0x2aaaaacecd60, force=1 '\001') at /export/gnu/src/gcc/gcc/gcc/expr.c:2882 #9 0x000000000051e830 in emit_move_via_integer (mode=SDmode, x=0x2aaaaacecd60, y=0x2aaaaacecb40, force=1 '\001') ---Type <return> to continue, or q <return> to quit--- at /export/gnu/src/gcc/gcc/gcc/expr.c:2921 #10 0x000000000051f45f in emit_move_insn_1 (x=0x2aaaaacecd60, y=0x2aaaaacecb40) at /export/gnu/src/gcc/gcc/gcc/expr.c:3268 #11 0x000000000051f725 in emit_move_insn (x=0x2aaaaacecd60, y=0x2aaaaacecb40) at /export/gnu/src/gcc/gcc/gcc/expr.c:3351 #12 0x000000000051fecc in emit_single_push_insn (mode=SDmode, x=0x2aaaaacecb40, type=0x2aaaaab16c00) at /export/gnu/src/gcc/gcc/gcc/expr.c:3582 #13 0x0000000000520757 in emit_push_insn (x=0x2aaaaacecb40, mode=SDmode, type=0x2aaaaab16c00, size=0x0, align=32, partial=0, reg=0x0, extra=0, args_addr=0x0, args_so_far=0x2aaaaaafb400, reg_parm_stack_space=0, alignment_pad=0x2aaaaaafb400) at /export/gnu/src/gcc/gcc/gcc/expr.c:3852 #14 0x00000000004a3c1c in store_one_arg (arg=0x7fff5d787aa8, argblock=0x0, flags=0, variable_size=0, reg_parm_stack_space=0) at /export/gnu/src/gcc/gcc/gcc/calls.c:4239 #15 0x000000000049f94c in expand_call (exp=0x2aaaaacebb40, target=0x0, ignore=1) at /export/gnu/src/gcc/gcc/gcc/calls.c:2652 #16 0x000000000052a40c in expand_expr_real_1 (exp=0x2aaaaacebb40, target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0) at /export/gnu/src/gcc/gcc/gcc/expr.c:7785 #17 0x0000000000527414 in expand_expr_real (exp=0x2aaaaacebb40, target=0x2aaaaaafb400, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0) at /export/gnu/src/gcc/gcc/gcc/expr.c:6785 We didn't see this problem before is because decimal float wasn't enabled by default on x86 until revision 123185. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31344