------- Comment #13 from jakub at gcc dot gnu dot org 2010-07-22 14:03 ------- So it is wrong already in *.split4:
(insn 256 255 258 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:117 (set (reg:DI 1 %g1 [328]) (ashift:DI (reg:DI 1 %g1 [327]) (const_int 12 [0xc]))) 356 {*ashldi3_sp64} (nil)) (insn 258 256 263 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:117 (set (mem/f/c/i:DI (lo_sum:DI (reg:DI 1 %g1 [328]) (symbol_ref:DI ("_ZN3gnu5javax5print3ipp9attribute8defaults17FinishingsDefault15EDGE_STITCH_TOPE") [flags 0x2] <var_decl fe7c0cc0EDGE_STITCH_TOP>)) [30 EDGE_STITCH_TOP+0 S8 A64]) (reg/f:DI 21 %l5 [324])) 60 {*movdi_insn_sp64} (expr_list:REG_DEAD (reg/f:DI 21 %l5 [324]) (expr_list:REG_DEAD (reg:DI 1 %g1 [328]) (nil)))) (call_insn 263 258 266 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:123 (parallel [ (set (reg:DI 8 %o0) (call (mem:DI (symbol_ref:DI ("_Jv_AllocObjectNoFinalizer") [flags 0x41] <function_decl fe798280 _Jv_AllocObjectNoFinalizer>) [0 S8 A64]) (const_int 0 [0]))) (clobber (reg:DI 15 %o7)) ]) 388 {*call_value_symbolic_sp64} (nil) (expr_list:REG_DEP_TRUE (use (reg:DI 8 %o0)) (nil))) (debug_insn 266 263 267 2 /vol/gcc/src/hg/trunk/local/libjava/classpath/gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java:123 (var_location:DI this (reg/f:DI 1 %g1 [332])) -1 (nil)) This can't be right, %g1 as call clobbered register should have undefined value after the call (and, nothing really meaningful before the call). Could you attach -fdump-rtl-expand and -fdump-tree-optimized? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45028