diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-06-09 17:45:36 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-06-09 17:45:36 +0200 |
| commit | 38364ef07f328003104bb2a2d28a2c5d66f40d92 (patch) | |
| tree | 927f8a4ebbc25b382b9a85ee606d0cdf5ed78e8f /src | |
| parent | b25d8db9949ed5d16408a06fe0906f424e53ae85 (diff) | |
| download | box64-38364ef07f328003104bb2a2d28a2c5d66f40d92.tar.gz box64-38364ef07f328003104bb2a2d28a2c5d66f40d92.zip | |
[COSIM] Fixed 66 48 xx type of opcodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64run_private.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c index c5a2716c..9fc0c280 100644 --- a/src/emu/x64run_private.c +++ b/src/emu/x64run_private.c @@ -1567,9 +1567,12 @@ reg64_t* TestEw(x64test_t *test, uintptr_t* addr, rex_t rex, uint8_t v, uint8_t return &test->emu->regs[(m&0x07)+(rex.b<<3)]; } else { reg64_t* ret = GetECommon(test->emu, addr, rex, m, delta); - test->memsize = 2; + test->memsize = rex.w?8:2; test->memaddr = (uintptr_t)ret; - *(uint16_t*)test->mem = ret->word[0]; + if(rex.w) + *(uint64_t*)test->mem = ret->q[0]; + else + *(uint16_t*)test->mem = ret->word[0]; return (reg64_t*)test->mem; } } |