From: Heiher <wa...@lemote.com> pandn FD, FS, FT Operation: FD = ((NOT FS) AND FT)
Signed-off-by: Heiher <wa...@lemote.com> Signed-off-by: Fuxin Zhang <zhan...@lemote.com> --- target-mips/translate.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target-mips/translate.c b/target-mips/translate.c index 55c2ca0..ed67180 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -3880,6 +3880,8 @@ static void gen_loongson_multimedia(DisasContext *ctx, int rd, int rs, int rt) case OPC_##UP: gen_helper_##LO(t0, t0); break #define LMI_DIRECT(UP, LO, OP) \ case OPC_##UP: tcg_gen_##OP##_i64(t0, t0, t1); break +#define LMI_DIRECT_SWAP(UP, LO, OP) \ + case OPC_##UP: tcg_gen_##OP##_i64(t0, t1, t0); break switch (opc) { LMI_HELPER(PADDSH, paddsh); @@ -3945,8 +3947,8 @@ static void gen_loongson_multimedia(DisasContext *ctx, int rd, int rs, int rt) LMI_DIRECT(XOR_CP2, xor, xor); LMI_DIRECT(NOR_CP2, nor, nor); LMI_DIRECT(AND_CP2, and, and); - LMI_DIRECT(PANDN, pandn, andc); LMI_DIRECT(OR, or, or); + LMI_DIRECT_SWAP(PANDN, pandn, andc); case OPC_PINSRH_0: tcg_gen_deposit_i64(t0, t0, t1, 0, 16); -- 2.10.0