On Tue, 8 Feb 2022 at 11:09, Richard Henderson <richard.hender...@linaro.org> wrote: > > On 2/8/22 21:40, Peter Maydell wrote: > > On Tue, 8 Feb 2022 at 07:17, Richard Henderson > > <richard.hender...@linaro.org> wrote: > >> > >> When BH is constant, it is constrained to 10 bits for use in MOVCC. > > > > Where does this happen? I assumed it was going to be done > > by the constraint encodings, but tcg_out_addsub2_i64() > > is called for the add2_i64 and sub2_i64 ops, which get > > > > return C_O2_I4(r, r, rZ, rZ, rJ, rJ); > > and constraint J is > > CONST('J', TCG_CT_CONST_S13). > > (and indeed there is no "constrain to 10 bits" letter). > > Typo/thinko with 10 bit vs 11 bit: > > CONST('I', TCG_CT_CONST_S11) > > But there are different constraints for add2_i32 and add2_i64: > > case INDEX_op_add2_i32: > case INDEX_op_sub2_i32: > return C_O2_I4(r, r, rZ, rZ, rJ, rJ); > ... > case INDEX_op_add2_i64: > case INDEX_op_sub2_i64: > return C_O2_I4(R, R, RZ, RZ, RJ, RI);
Yes, I must have been looking at the _i32 lines by mistake. If you fix the 10s and 11s to 11s and 12s: Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM