about summary refs log tree commit diff stats
path: root/src/emu/x64run_private.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/x64run_private.c')
-rw-r--r--src/emu/x64run_private.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c
index a2bc6020..1d80e76a 100644
--- a/src/emu/x64run_private.c
+++ b/src/emu/x64run_private.c
@@ -1701,6 +1701,14 @@ uintptr_t GetEA32(x64emu_t *emu, uintptr_t* addr, rex_t rex, uint8_t v, uint8_t
     } else return (uintptr_t)GetECommon32O(emu, addr, rex, m, delta, 0);
 }
 
+uintptr_t GetEA32_16(x64emu_t *emu, uintptr_t* addr, rex_t rex, uint8_t v, uint8_t delta)
+{
+    uint8_t m = v&0xC7;    // filter Ed
+    if(m>=0xC0) {
+         return (uintptr_t)&emu->regs[(m&0x07)+(rex.b<<3)];
+    } else return (uintptr_t)GetEw16off(emu, addr, rex, m, delta);
+}
+
 reg64_t* GetEdO(x64emu_t *emu, uintptr_t* addr, rex_t rex, uint8_t v, uint8_t delta, uintptr_t offset)
 {
     uint8_t m = v&0xC7;    // filter Ed