From 26b01d56f59bc17f48044ce79fbea41a7e2439cb Mon Sep 17 00:00:00 2001 From: xctan Date: Sun, 28 May 2023 23:17:09 +0800 Subject: [RV64_DYNAREC] Added F3 0F B8 POPCNT opcode and fixed LOCK CMPXCHG16B for ML2 (#808) * [RV64_DYNAREC] Added lock to F0 48 0F C7 LOCK CMPXCHG16B opcode * [RV64_DYNAREC] Added F3 0F B8 POPCNT opcode * [RV64_DYNAREC] Moved 16B lock to box64context --- src/dynarec/rv64/dynarec_rv64_f0.c | 14 ++++++++++-- src/dynarec/rv64/dynarec_rv64_f30f.c | 42 ++++++++++++++++++++++++++++++++++++ src/dynarec/rv64/rv64_emitter.h | 4 ++++ src/include/box64context.h | 3 +++ 4 files changed, 61 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/dynarec/rv64/dynarec_rv64_f0.c b/src/dynarec/rv64/dynarec_rv64_f0.c index cafca95d..6bb11fbd 100644 --- a/src/dynarec/rv64/dynarec_rv64_f0.c +++ b/src/dynarec/rv64/dynarec_rv64_f0.c @@ -283,9 +283,16 @@ uintptr_t dynarec64_F0(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni addr = geted(dyn, addr, ninst, nextop, &wback, x1, x2, &fixedaddress, rex, LOCK_LOCK, 0, 0); ANDI(xFlags, xFlags, ~(1<