(gdb) bt
#0 output_move_double (operands=0x19be680, emit=1 '\001', count=0x0) at ../../../trunk/gcc/config/arm/arm.c:13933
#1 0x0000000000fdb969 in output_642 (operands=0x19be680, insn=0x7ffff643d900) at ../../../trunk/gcc/config/arm/vfp.md:202
#2 0x000000000079d73b in get_insn_template (code=642, insn=0x7ffff643d900) at ../../../trunk/gcc/final.c:1817
#3 0x000000000079f2ed in final_scan_insn (insn=0x7ffff643d900, file=0x1a451a0, optimize_p=2, nopeepholes=0, seen=0x7fffffffe208) at ../../../trunk/gcc/final.c:2682
#4 0x000000000079d5d9 in final (first=0x7ffff6ae6940, file=0x1a451a0, optimize_p=2) at ../../../trunk/gcc/final.c:1786
#5 0x00000000007a2280 in rest_of_handle_final () at ../../../trunk/gcc/final.c:4319
#6 0x0000000000a1f9ae in execute_one_pass (pass=0x1865060) at ../../../trunk/gcc/passes.c:2080
#7 0x0000000000a1fb9c in execute_pass_list (pass=0x1865060) at ../../../trunk/gcc/passes.c:2135
#8 0x0000000000a1fbbd in execute_pass_list (pass=0x1865ea0) at ../../../trunk/gcc/passes.c:2136
#9 0x0000000000a1fbbd in execute_pass_list (pass=0x1865e40) at ../../../trunk/gcc/passes.c:2136
#10 0x0000000000bc3b26 in tree_rest_of_compilation (fndecl=0x7ffff6c44a00) at ../../../trunk/gcc/tree-optimize.c:421
#11 0x0000000000699e81 in cgraph_expand_function (node=0x7ffff6937360) at ../../../trunk/gcc/cgraphunit.c:1818
#12 0x000000000069a04c in cgraph_expand_all_functions () at ../../../trunk/gcc/cgraphunit.c:1885
#13 0x000000000069ab8d in cgraph_optimize () at ../../../trunk/gcc/cgraphunit.c:2198
#14 0x0000000000697bce in cgraph_finalize_compilation_unit () at ../../../trunk/gcc/cgraphunit.c:1327
#15 0x00000000004c8b3c in c_write_global_declarations () at ../../../trunk/gcc/c-decl.c:10026
#16 0x0000000000b11a52 in compile_file () at ../../../trunk/gcc/toplev.c:573
#17 0x0000000000b13c8b in do_compile () at ../../../trunk/gcc/toplev.c:1935
#18 0x0000000000b13e02 in toplev_main (argc=20, argv=0x7fffffffe658) at ../../../trunk/gcc/toplev.c:2011
#19 0x00000000005c9d90 in main (argc=20, argv=0x7fffffffe658) at ../../../trunk/gcc/main.c:36
(gdb) f 3
#3 0x000000000079f2ed in final_scan_insn (insn=0x7ffff643d900, file=0x1a451a0, optimize_p=2, nopeepholes=0, seen=0x7fffffffe208) at ../../../trunk/gcc/final.c:2682
2682 templ = get_insn_template (insn_code_number, insn);
(gdb) print debug_rtx(insn)
(insn:TI 6 3 7 2 (set (reg:DI 2 r2 [orig:139 f_1(D)->x_frame_offset ] [139])
(mem/s:DI (plus:SI (reg:SI 0 r0 [ f ]) (const_int 152 [0x98])) [6 f_1(D)->x_frame_offset+0 S8 A64])) src/function.c:512 642 {*movdi_vfp_cortexa8}
(expr_list:REG_DEAD (reg:SI 0 r0 [ f ])
(nil)))
$3 = void
Apparently operands[1] doesn't match the actual operand (MEM ...) in the insn.
(gdb) cont
Continuing.
Breakpoint 2, output_move_double (operands= 0x19be680, emit=1 '\001', count=0x0) at ../../. ./trunk/ gcc/config/ arm/arm. c:13933 operands[ 0]) >x_frame_ offset ] [139]) operands[ 1])
13933 gcc_assert (!emit);
(gdb) print debug_rtx(
(reg:DI 2 r2 [orig:139 f_1(D)-
$1 = void
(gdb) print debug_rtx(
(reg:SI 3 r3)
$2 = void
(gdb) bt 0x19be680, emit=1 '\001', count=0x0) at ../../. ./trunk/ gcc/config/ arm/arm. c:13933 0x19be680, insn=0x7ffff643 d900) at ../../. ./trunk/ gcc/config/ arm/vfp. md:202 d900) at ../../. ./trunk/ gcc/final. c:1817 3d900, file=0x1a451a0, optimize_p=2, nopeepholes=0, seen=0x7fffffff e208) at ../../. ./trunk/ gcc/final. c:2682 0x7ffff6ae6940, file=0x1a451a0, optimize_p=2) at ../../. ./trunk/ gcc/final. c:1786 handle_ final () at ../../. ./trunk/ gcc/final. c:4319 ./trunk/ gcc/passes. c:2080 ./trunk/ gcc/passes. c:2135 ./trunk/ gcc/passes. c:2136 ./trunk/ gcc/passes. c:2136 of_compilation (fndecl= 0x7ffff6c44a00) at ../../. ./trunk/ gcc/tree- optimize. c:421 expand_ function (node=0x7ffff69 37360) at ../../. ./trunk/ gcc/cgraphunit. c:1818 expand_ all_functions () at ../../. ./trunk/ gcc/cgraphunit. c:1885 ./trunk/ gcc/cgraphunit. c:2198 finalize_ compilation_ unit () at ../../. ./trunk/ gcc/cgraphunit. c:1327 global_ declarations () at ../../. ./trunk/ gcc/c-decl. c:10026 ./trunk/ gcc/toplev. c:573 ./trunk/ gcc/toplev. c:1935 e658) at ../../. ./trunk/ gcc/toplev. c:2011 e658) at ../../. ./trunk/ gcc/main. c:36 3d900, file=0x1a451a0, optimize_p=2, nopeepholes=0, seen=0x7fffffff e208) at ../../. ./trunk/ gcc/final. c:2682 >x_frame_ offset ] [139])
(const_ int 152 [0x98])) [6 f_1(D)- >x_frame_ offset+ 0 S8 A64])) src/function.c:512 642 {*movdi_ vfp_cortexa8} list:REG_ DEAD (reg:SI 0 r0 [ f ])
#0 output_move_double (operands=
#1 0x0000000000fdb969 in output_642 (operands=
#2 0x000000000079d73b in get_insn_template (code=642, insn=0x7ffff643
#3 0x000000000079f2ed in final_scan_insn (insn=0x7ffff64
#4 0x000000000079d5d9 in final (first=
#5 0x00000000007a2280 in rest_of_
#6 0x0000000000a1f9ae in execute_one_pass (pass=0x1865060) at ../../.
#7 0x0000000000a1fb9c in execute_pass_list (pass=0x1865060) at ../../.
#8 0x0000000000a1fbbd in execute_pass_list (pass=0x1865ea0) at ../../.
#9 0x0000000000a1fbbd in execute_pass_list (pass=0x1865e40) at ../../.
#10 0x0000000000bc3b26 in tree_rest_
#11 0x0000000000699e81 in cgraph_
#12 0x000000000069a04c in cgraph_
#13 0x000000000069ab8d in cgraph_optimize () at ../../.
#14 0x0000000000697bce in cgraph_
#15 0x00000000004c8b3c in c_write_
#16 0x0000000000b11a52 in compile_file () at ../../.
#17 0x0000000000b13c8b in do_compile () at ../../.
#18 0x0000000000b13e02 in toplev_main (argc=20, argv=0x7fffffff
#19 0x00000000005c9d90 in main (argc=20, argv=0x7fffffff
(gdb) f 3
#3 0x000000000079f2ed in final_scan_insn (insn=0x7ffff64
2682 templ = get_insn_template (insn_code_number, insn);
(gdb) print debug_rtx(insn)
(insn:TI 6 3 7 2 (set (reg:DI 2 r2 [orig:139 f_1(D)-
(mem/s:DI (plus:SI (reg:SI 0 r0 [ f ])
(expr_
(nil)))
$3 = void
Apparently operands[1] doesn't match the actual operand (MEM ...) in the insn.
(gdb) print recog_data.operand operand[ 0] operand[ 1] recog_data. operand[ 0]) >x_frame_ offset ] [139]) recog_data. operand[ 1])
$6 = {0x7ffff5ff7100, 0x7ffff5ff77a0, 0xabababababababab <repeats 28 times>}
(gdb) print recog_data.
$7 = (rtx) 0x7ffff5ff7100
(gdb) print recog_data.
$8 = (rtx) 0x7ffff5ff77a0
(gdb) print debug_rtx(
(reg:DI 2 r2 [orig:139 f_1(D)-
$9 = void
(gdb) print debug_rtx(
(reg:SI 3 r3)
For some unknown reason, recog_data. operand[ 1] is corrupted.