diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2023-04-10 20:10:58 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-10 14:10:58 +0200 |
| commit | 9b3511cc88ea3c03590ccd9158095086de53c9ed (patch) | |
| tree | 5fd07d08586578d5c31c6e07cd01211471b45373 /src/emu | |
| parent | 48f80ebc930e66968e36e75425dae44490040a97 (diff) | |
| download | box64-9b3511cc88ea3c03590ccd9158095086de53c9ed.tar.gz box64-9b3511cc88ea3c03590ccd9158095086de53c9ed.zip | |
[RV64_DYNAREC] Added more opcode for SV and some fixes (#683)
* [RV64_DYNAREC] Added 66 0F 67 PACKUSWB opcode * [RV64_DYNAREC] Added 66 0F 6B PACKSSDW opcode * [INTERP] Fixed typos * [RV64_DYNAREC] Fixed 0F BA /7 BTC opcode * [RV64_DYNAREC] Added 0F BB BTC opcode
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x64run0f.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index 8cd5b312..5f46db5d 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -876,13 +876,13 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) if(!MODREG) { #ifdef TEST_INTERPRETER - test->memaddr=((test->memaddr)+(tmp32s<<(rex.w?3:2))); + test->memaddr=((test->memaddr)+(tmp64s<<(rex.w?3:2))); if(rex.w) *(uint64_t*)test->mem = *(uint64_t*)test->memaddr; else *(uint32_t*)test->mem = *(uint32_t*)test->memaddr; #else - ED=(reg64_t*)(((uintptr_t)(ED))+(tmp32s<<(rex.w?3:2))); + ED=(reg64_t*)(((uintptr_t)(ED))+(tmp64s<<(rex.w?3:2))); #endif } if(rex.w) { @@ -1022,13 +1022,13 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) if(!MODREG) { #ifdef TEST_INTERPRETER - test->memaddr=((test->memaddr)+(tmp32s<<(rex.w?3:2))); + test->memaddr=((test->memaddr)+(tmp64s<<(rex.w?3:2))); if(rex.w) *(uint64_t*)test->mem = *(uint64_t*)test->memaddr; else *(uint32_t*)test->mem = *(uint32_t*)test->memaddr; #else - ED=(reg64_t*)(((uintptr_t)(ED))+(tmp32s<<(rex.w?3:2))); + ED=(reg64_t*)(((uintptr_t)(ED))+(tmp64s<<(rex.w?3:2))); #endif } if(rex.w) { @@ -1160,13 +1160,13 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) if(!MODREG) { #ifdef TEST_INTERPRETER - test->memaddr=((test->memaddr)+(tmp32s<<(rex.w?3:2))); + test->memaddr=((test->memaddr)+(tmp64s<<(rex.w?3:2))); if(rex.w) *(uint64_t*)test->mem = *(uint64_t*)test->memaddr; else *(uint32_t*)test->mem = *(uint32_t*)test->memaddr; #else - ED=(reg64_t*)(((uintptr_t)(ED))+(tmp32s<<(rex.w?3:2))); + ED=(reg64_t*)(((uintptr_t)(ED))+(tmp64s<<(rex.w?3:2))); #endif } if(rex.w) { @@ -1729,4 +1729,4 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) return 0; } return addr; -} \ No newline at end of file +} |