From 9fb2cb86ed87804c41a68601d2aecf3409eb893e Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Tue, 23 Mar 2021 12:25:54 +0100 Subject: [DYNAREC] Added 66 0F BE opcode --- src/dynarec/dynarec_arm64_660f.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/dynarec/dynarec_arm64_660f.c b/src/dynarec/dynarec_arm64_660f.c index e708694e..bdf29b01 100755 --- a/src/dynarec/dynarec_arm64_660f.c +++ b/src/dynarec/dynarec_arm64_660f.c @@ -392,6 +392,27 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n BFIw(xFlags, x1, F_ZF, 1); SET_DFNONE(x1); break; + case 0xBE: + INST_NAME("MOVSX Gw, Eb"); + nextop = F8; + GETGD; + if(MODREG) { + if(rex.rex) { + ed = xRAX+(nextop&7)+(rex.b<<3); + eb1=ed; + eb2=0; + } else { + ed = (nextop&7); + eb1 = xRAX+(ed&3); // Ax, Cx, Dx or Bx + eb2 = (ed&4)>>2; // L or H + } + SBFXw(x1, eb1, eb2, 8); + } else { + addr = geted(dyn, addr, ninst, nextop, &ed, x2, &fixedaddress, 0xfff, 0, rex, 0, 0); + LDRSBw_U12(x1, ed, fixedaddress); + } + BFIx(gd, x1, 0, 16); + break; case 0xD6: INST_NAME("MOVQ Ex, Gx"); -- cgit 1.4.1