http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47725
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> 2011-02-14 14:06:45
UTC ---
(In reply to comment #4)
>
> Who generates insn #2? The machinery handling parameters in function.c? If
> so, maybe it should do the copy in the incoming mode instead:
>
> (insn 2 4 3 2 (set (reg/v/f:SI 59 [ pc_target ])
> (reg:SI 5 di [ pc_target ]))
>
> (insn 3 5 4 2 (set (reg:DI 60)
> (zero_extend:DI (reg/v/f:SI 59 [ pc_target ])))
assign_parm_setup_reg has
enum rtx_code code = unsignedp ? ZERO_EXTEND : SIGN_EXTEND;
rtx insn, insns;
HARD_REG_SET hardregs;
start_sequence ();
insn = gen_extend_insn (op0, op1, promoted_nominal_mode,
data->passed_mode, unsignedp);
emit_insn (insn);
insns = get_insns ();