diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-09-24 14:46:17 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-09-24 14:46:17 +0200 |
| commit | 6313a31668888b9999b663cdb1144551e1a86f73 (patch) | |
| tree | 6360ac9d8bbd337846f7f1f5272c2966db61ad3c /src | |
| parent | 15a4be2db14420b30de25a7386b4dab39be00ac2 (diff) | |
| download | box64-6313a31668888b9999b663cdb1144551e1a86f73.tar.gz box64-6313a31668888b9999b663cdb1144551e1a86f73.zip | |
[INTEPRETER] Added a check on CS for CA/CB opecodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64run.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c index 6d4742d7..276dd91f 100644 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -1464,7 +1464,11 @@ x64emurun: } emu->segs_serial[_CS] = 0; R_RSP += tmp16u; - // need to check status of CS register! + is32bits = (R_CS==0x23); // checking if CS changed + #ifndef TEST_INTERPRETER + if(is32bits) + running32bits = 1; + #endif STEP2; break; case 0xCB: /* FAR RET */ @@ -1476,7 +1480,11 @@ x64emurun: emu->segs[_CS] = Pop64(emu); // no check, no use.... } emu->segs_serial[_CS] = 0; - // need to check status of CS register! + is32bits = (R_CS==0x23); // checking if CS changed + #ifndef TEST_INTERPRETER + if(is32bits) + running32bits = 1; + #endif STEP2; break; case 0xCC: /* INT 3 */ |