diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-25 21:58:07 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-25 21:58:07 +0100 |
| commit | 4130e0847ce83843f5d0cfbcf828e51bf9efc16c (patch) | |
| tree | c29fc1dd160469ae0c661ae32847f548ff1fc138 | |
| parent | 37a451a38e6fe75fd0dd67085f42b2671d48f71b (diff) | |
| download | box64-4130e0847ce83843f5d0cfbcf828e51bf9efc16c.tar.gz box64-4130e0847ce83843f5d0cfbcf828e51bf9efc16c.zip | |
Minor fixes to MODRM decoder functions
| -rwxr-xr-x | src/emu/x64run_private.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c index c544705d..1ac3eec2 100755 --- a/src/emu/x64run_private.c +++ b/src/emu/x64run_private.c @@ -1091,7 +1091,7 @@ reg64_t* GetECommon32O(x64emu_t* emu, rex_t rex, uint8_t m, uint8_t delta, uintp base += Fetch32s(emu); return (reg64_t*)(base+R_RIP+delta); } - return (reg64_t*)(uintptr_t)(emu->regs[m+(rex.b<<3)].dword[0]); + return (reg64_t*)(uintptr_t)(base + emu->regs[m+(rex.b<<3)].dword[0]); } else { if((m&7)==4) { uint8_t sib = Fetch8(emu); @@ -1238,9 +1238,9 @@ reg64_t* GetGd(x64emu_t *emu, rex_t rex, uint8_t v) reg64_t* GetGb(x64emu_t *emu, rex_t rex, uint8_t v) { uint8_t m = (v&0x38)>>3; - if(rex.rex) { + if(rex.rex) return &emu->regs[(m&7)+(rex.r<<3)]; - } else + else return (reg64_t*)&emu->regs[m&3].byte[m>>2]; } |