From ad55cfde7f61395618991543694b35183f9c6ad7 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 10 Feb 2024 13:10:33 +0100 Subject: Added 0F 01 E0..E7 opcodes ([ARM64_DYNAREC] too) --- src/dynarec/arm64/dynarec_arm64_0f.c | 12 ++++++++++++ src/emu/x64run0f.c | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c index 6b2d3fa5..2ef482eb 100644 --- a/src/dynarec/arm64/dynarec_arm64_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_0f.c @@ -78,6 +78,18 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin *need_epilog = 0; *ok = 0; break; + case 0xE0: + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: + INST_NAME("SMSW Ed"); + ed = xRAX+(nextop&7)+(rex.b<<3); + MOV32w(ed, (1<<0) | (1<<4)); // only PE and ET set... + break; default: DEFAULT; } else diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index d0b5900f..e36376d5 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -95,6 +95,16 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) emit_signal(emu, SIGILL, (void*)R_RIP, 0); #endif break; + case 0xE0: + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: /* SMSW Ew */ + ED->word[0] = (1<<0) | (1<<4); // only PE and ET set... + break; default: return 0; } else -- cgit 1.4.1