On 6/14/21 10:37 AM, Richard Henderson wrote: > Merge tcg_out_bswap32 and tcg_out_bswap32s. Use the flags > in the internal uses for loads and stores. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > tcg/mips/tcg-target.c.inc | 39 ++++++++++++++++----------------------- > 1 file changed, 16 insertions(+), 23 deletions(-)
> -static void tcg_out_bswap32(TCGContext *s, TCGReg ret, TCGReg arg) > +static void tcg_out_bswap32(TCGContext *s, TCGReg ret, TCGReg arg, int flags) > { > if (use_mips32r2_instructions) { > tcg_out_opc_reg(s, OPC_WSBH, ret, 0, arg); > tcg_out_opc_sa(s, OPC_ROTR, ret, ret, 16); > + if (flags & TCG_BSWAP_OZ) { > + tcg_out_opc_bf(s, OPC_DEXT, ret, ret, 31, 0); Maybe mention the rotr -> ext32u mips32r2 simplification? Otherwise: Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>