diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-07-14 11:17:28 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-07-14 11:17:53 +0200 |
| commit | 41e3b2b1a18b07a0633e52b7573e15ed1c681c0f (patch) | |
| tree | 8d7cb6c68b2e829208b3f13bac0e9a1df60020e9 /src | |
| parent | 3349757d0faec529b62ba62c99ee4d7adcc84d2c (diff) | |
| download | box64-41e3b2b1a18b07a0633e52b7573e15ed1c681c0f.tar.gz box64-41e3b2b1a18b07a0633e52b7573e15ed1c681c0f.zip | |
Added 66 9C/9D opcodes (mostly for 32bits)
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64run66.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/emu/x64run66.c b/src/emu/x64run66.c index 4300bcb1..b037de11 100644 --- a/src/emu/x64run66.c +++ b/src/emu/x64run66.c @@ -368,6 +368,16 @@ uintptr_t Run66(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr) R_DX=((R_AX & 0x8000)?0xFFFF:0x0000); break; + case 0x9C: /* PUSHFW */ + CHECK_FLAGS(emu); + Push16(emu, (uint16_t)emu->eflags.x64); + break; + case 0x9D: /* POPFW */ + CHECK_FLAGS(emu); + emu->eflags.x64 &=0xffff0000; + emu->eflags.x64 |= (Pop16(emu) & 0x3F7FD7) | 0x2; + break; + case 0xA1: /* MOV EAX,Od */ if(rex.is32bits) { R_AX = *(uint16_t*)(uintptr_t)F32; |