On 03/30/2013 08:33 AM, Aurelien Jarno wrote:
> +static inline void tcg_out_add2(TCGContext *s, TCGArg retl, TCGArg reth,
> +                                TCGArg arg1l, TCGArg arg1h,
> +                                TCGArg arg2l, TCGArg arg2h,
> +                                int cmp4)
> +{
> +    tcg_out_bundle(s, MmI,
> +                   tcg_opc_a1(TCG_REG_P0, OPC_ADD_A1, TCG_REG_R2, arg1l, 
> arg2l),
> +                   tcg_opc_m48(TCG_REG_P0, OPC_NOP_M48, 0),
> +                   tcg_opc_cmp_a(TCG_REG_P0, TCG_COND_LTU,
> +                                 TCG_REG_R2, arg1l, cmp4));

I seem to recall a 1-cycle cross-unit delay, going between M to I units?
Maybe that was just the itanic1, it's been so long...?

Anyway, in this case it's easy to avoid by putting the nop first and using
an mII bundle.

That said, the code looks correct.

Reviewed-by: Richard Henderson <r...@twiddle.net>


r~



Reply via email to