From ab5d2eba64b29501c4ed369fa2d95447c07f3761 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Sat, 31 May 2025 03:18:22 +0800 Subject: [WOW64] Improved RIP handling on INT n --- src/dynarec/arm64/dynarec_arm64_00.c | 2 +- src/emu/x64run.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/dynarec/arm64/dynarec_arm64_00.c b/src/dynarec/arm64/dynarec_arm64_00.c index 7b227e24..1baf4bb5 100644 --- a/src/dynarec/arm64/dynarec_arm64_00.c +++ b/src/dynarec/arm64/dynarec_arm64_00.c @@ -2649,7 +2649,7 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin #ifdef _WIN32 NOTEST(x1); SMEND(); - GETIP(addr); + GETIP(ip); STORE_XEMU_CALL(xRIP); MOV32w(x1, u8); CALL_S(native_int, -1); diff --git a/src/emu/x64run.c b/src/emu/x64run.c index 078a7ea9..8b21ca83 100644 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -1532,9 +1532,11 @@ x64emurun: case 0xCD: /* INT n */ tmp8u = F8; #ifdef _WIN32 + #ifndef TEST_INTERPRETER EmitInterruption(emu, tmp8u, (void*)R_RIP); STEP; addr = R_RIP; + #endif #else // this is a privilege opcode... if(box64_wine && tmp8u==0x2D) { -- cgit 1.4.1