diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-01-23 15:56:11 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-01-23 15:56:11 +0100 |
| commit | bc852aebeb9852801329f9576b4d5e3fa7df2efa (patch) | |
| tree | afa5f6e29bc226eb993b8d5972d533442734f42f /src/emu/x64run.c | |
| parent | 89da530898fa08c23b59e3e3bf64f266f113e014 (diff) | |
| download | box64-bc852aebeb9852801329f9576b4d5e3fa7df2efa.tar.gz box64-bc852aebeb9852801329f9576b4d5e3fa7df2efa.zip | |
Added a new option BOX64_MMAP32 to use 32bits mapping on external MMAP (help Snapdragon device running Vulkan with Wine/Wow64, active by default on SD845/SD888/SD8G2 profiles)
Diffstat (limited to 'src/emu/x64run.c')
| -rw-r--r-- | src/emu/x64run.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c index 7bec6b91..986c371a 100644 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -31,6 +31,7 @@ int my_setcontext(x64emu_t* emu, void* ucp); #ifdef TEST_INTERPRETER int RunTest(x64test_t *test) #else +int running32bits = 0; int Run(x64emu_t *emu, int step) #endif { @@ -440,6 +441,8 @@ x64emurun: goto fini; } is32bits = (emu->segs[_CS]==0x23); + if(is32bits) + running32bits = 1; #endif break; case 0x65: /* GS: prefix */ @@ -456,6 +459,8 @@ x64emurun: goto fini; } is32bits = (emu->segs[_CS]==0x23); + if(is32bits) + running32bits = 1; #endif break; case 0x66: /* 16bits prefix */ @@ -1426,6 +1431,10 @@ x64emurun: R_RIP = addr; STEP; is32bits = (emu->segs[_CS]==0x23); + #ifndef TEST_INTERPRETER + if(is32bits) + running32bits = 1; + #endif break; case 0xD0: /* GRP2 Eb,1 */ case 0xD2: /* GRP2 Eb,CL */ @@ -1941,6 +1950,10 @@ x64emurun: } STEP2; is32bits = (emu->segs[_CS]==0x23); + #ifndef TEST_INTERPRETER + if(is32bits) + running32bits = 1; + #endif } break; case 4: /* JMP NEAR Ed */ @@ -1967,6 +1980,10 @@ x64emurun: } STEP2; is32bits = (emu->segs[_CS]==0x23); + #ifndef TEST_INTERPRETER + if(is32bits) + running32bits = 1; + #endif } break; case 6: /* Push Ed */ |