On Wed, Mar 23, 2011 at 1:22 AM, Eric Botcazou <ebotca...@adacore.com> wrote:
>> It is:
>>
>>       op0 = parmreg;
>>       op1 = validated_mem;
>>       if (icode != CODE_FOR_nothing
>>           && insn_data[icode].operand[0].predicate (op0,
>> promoted_nominal_mode) && insn_data[icode].operand[1].predicate (op1,
>> data->passed_mode)) {
>>           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 ();
>
> Sure, but why is need_conversion set to true?
>

Pointer is promoted to Pmode from ptr_mode.


-- 
H.J.
---
#0  promote_mode (type=0x7ffff0e05540, mode=SImode, punsignedp=0x7fffffffd76c)
    at /export/gnu/import/git/gcc-x32/gcc/explow.c:808
#1  0x00000000009ef004 in default_promote_function_mode (type=0x7ffff0e05540,
    mode=SImode, punsignedp=0x7fffffffd76c, funtype=0x7ffff0cec3f0,
    for_return=2) at /export/gnu/import/git/gcc-x32/gcc/targhooks.c:128
#2  0x00000000006d7155 in promote_function_mode (type=0x7ffff0e05540,
    mode=SImode, punsignedp=0x7fffffffd76c, funtype=0x7ffff0cec3f0,
    for_return=2) at /export/gnu/import/git/gcc-x32/gcc/explow.c:774
#3  0x00000000007cf7de in assign_parm_setup_reg (all=0x7fffffffda10,
    parm=0x7ffff0dec880, data=0x7fffffffd980)
    at /export/gnu/import/git/gcc-x32/gcc/function.c:2941

Reply via email to