diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-07-05 23:01:09 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-07-05 23:01:09 +0200 |
| commit | a2aa5fc650f7e2d4e9400f76832b80689366f4af (patch) | |
| tree | 5f1b27548b84613c1b1d383ba40b83d5b7cc4f60 /src/emu | |
| parent | 26d4f21fa7b180e8e33d7d87f82919da5a57224e (diff) | |
| download | box64-a2aa5fc650f7e2d4e9400f76832b80689366f4af.tar.gz box64-a2aa5fc650f7e2d4e9400f76832b80689366f4af.zip | |
Added 66 0F 38 08/09/0A opcodes ([DYNAREC] too) (for #32 / Zoom)
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x64run660f.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c index f3679015..00a684e3 100644 --- a/src/emu/x64run660f.c +++ b/src/emu/x64run660f.c @@ -248,6 +248,27 @@ int Run660F(x64emu_t *emu, rex_t rex) } break; + case 0x08: /* PSIGNB Gx, Ex */ + nextop = F8; + GETEX(0); + GETGX; + for (int i=0; i<16; ++i) + GX->sb[i] *= (EX->sb[i]<0)?-1:((EX->sb[i]>0)?1:0); + break; + case 0x09: /* PSIGNW Gx, Ex */ + nextop = F8; + GETEX(0); + GETGX; + for (int i=0; i<8; ++i) + GX->sw[i] *= (EX->sw[i]<0)?-1:((EX->sw[i]>0)?1:0); + break; + case 0x0A: /* PSIGND Gx, Ex */ + nextop = F8; + GETEX(0); + GETGX; + for (int i=0; i<4; ++i) + GX->sd[i] *= (EX->sd[i]<0)?-1:((EX->sd[i]>0)?1:0); + break; case 0x0B: /* PMULHRSW Gx, Ex */ nextop = F8; GETEX(0); |