On 09/22/2014 11:46 PM, Zhenqiang Chen wrote: > +static bool > +aarch64_convert_mode (rtx* op0, rtx* op1, int unsignedp) > +{ > + enum machine_mode mode; > + > + mode = GET_MODE (*op0); > + if (mode == VOIDmode) > + mode = GET_MODE (*op1); > + > + if (mode == QImode || mode == HImode) > + { > + *op0 = convert_modes (SImode, mode, *op0, unsignedp); > + *op1 = convert_modes (SImode, mode, *op1, unsignedp); > + } > + else if (mode != SImode && mode != DImode) > + return false; > + > + return true; > +}
Hum. I'd rather not replicate too much of the expander logic here. We could avoid that by using struct expand_operand, create_input_operand et al, then expand_insn. That does require that the target hooks be given trees rather than rtl as input. r~