diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-06-25 15:20:18 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-06-25 15:20:18 +0200 |
| commit | 3880b7811b1c7393f6ece708f17e1fb2219a16e0 (patch) | |
| tree | cc8514692343997dd0abce4089112f392bde44c2 /src | |
| parent | 2604bb078cd6f554dcbe816b92dc344665f56afb (diff) | |
| download | box64-3880b7811b1c7393f6ece708f17e1fb2219a16e0.tar.gz box64-3880b7811b1c7393f6ece708f17e1fb2219a16e0.zip | |
[32BITS] Added 1E/1F opcodes
Diffstat (limited to 'src')
| -rwxr-xr-x | src/emu/x64run.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c index 397fbed1..8f23eac4 100755 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -196,6 +196,22 @@ x64emurun: GO(0x30, xor) /* XOR 0x30 -> 0x35 */ #undef GO + case 0x1E: /* PUSH DS */ + if(!rex.is32bits) { + unimp = 1; + goto fini; + } + Push(emu, emu->segs[_DS]); // even if a segment is a 16bits, a 32bits push/pop is done + break; + case 0x1F: /* POP DS */ + if(!rex.is32bits) { + unimp = 1; + goto fini; + } + emu->segs[_DS] = Pop(emu); // no check, no use.... + emu->segs_serial[_DS] = 0; + break; + case 0x2E: /* segments are ignored */ case 0x26: case 0x36: /* SS: (ignored) */ |