On 9/12/22 00:04, Paolo Bonzini wrote:
--- a/target/i386/tcg/emit.c.inc
+++ b/target/i386/tcg/emit.c.inc
@@ -290,6 +290,20 @@ BINARY_INT_MMX(PUNPCKHWD, punpckhwd)
BINARY_INT_MMX(PUNPCKHDQ, punpckhdq)
BINARY_INT_MMX(PACKSSDW, packssdw)
+BINARY_INT_MMX(PSUBUSB, psubusb)
+BINARY_INT_MMX(PSUBUSW, psubusw)
tcg_gen_gvec_ussub
+BINARY_INT_MMX(PMINUB, pminub)
tcg_gen_gvec_umin
+BINARY_INT_MMX(PADDUSB, paddusb)
+BINARY_INT_MMX(PADDUSW, paddusw)
tcg_gen_gvec_usadd
+BINARY_INT_MMX(PMAXUB, pmaxub)
tcg_gen_gvec_umax
+BINARY_INT_MMX(PSUBSB, psubsb)
+BINARY_INT_MMX(PSUBSW, psubsw)
tcg_gen_gvec_sssub
+BINARY_INT_MMX(PMINSW, pminsw)
tcg_gen_gvec_smin
+BINARY_INT_MMX(PADDSB, paddsb)
+BINARY_INT_MMX(PADDSW, paddsw)
tcg_gen_gvec_ssadd
+BINARY_INT_MMX(PMAXSW, pmaxsw)
tcg_gen_gvec_smax
+static void gen_PADDB(DisasContext *s, CPUX86State *env, X86DecodedInsn
*decode)
+{
+ int vec_len = sse_vec_len(s, decode);
+
+ tcg_gen_gvec_add(MO_8,
+ decode->op[0].offset, decode->op[1].offset,
+ decode->op[2].offset, vec_len, vec_len);
+}
Worth the creation of a helper and/or macro to reduce duplication?
r~