Alexis Engelke
7333453a19
instrs: Update several operand types and sizes
2020-06-27 19:01:26 +02:00
Alexis Engelke
3221a319d3
instrs: Don't use O-encoding hack for FSTSW
2020-06-27 17:33:58 +02:00
Alexis Engelke
618d90ed42
instrs: Encode memory size for FPU instructions
2020-06-27 17:33:58 +02:00
Alexis Engelke
bb4b195dbe
instrs/sse,avx: Fix several operand sizes
2020-06-25 21:04:10 +02:00
Alexis Engelke
ab5e0c67c1
decode: Don't fall back to memory encoding with 72-table
2020-06-19 14:04:17 +02:00
Alexis Engelke
80ec7ed960
instrs: Fix decoding of XCHG r8, rax
...
Opcode 90 is only a NOP if there is no REX.B.
2020-06-14 13:36:11 +02:00
Alexis Engelke
dc286b14f2
Unify instruction mnemonics [API break]
...
It is a longer standing issue that some instructions like ADD, IMUL, and
SHL have multiple mnemonics for different encoding forms. This is a
relict from a time where such information was not stored in the
instruction decoding. This, however, is no longer the case and therefore
the extra mnemonics just increase the number of cases to be handled by
users.
2020-02-20 10:56:17 +01:00
Alexis Engelke
513a913feb
decode: Store CL as register operand for shifts
2020-02-19 16:53:59 +01:00
Alexis Engelke
f538554bb9
Support various smaller instruction set extensions
...
In particular: VAESNI, ADX, CLDEMOTE, ENQCMD, PCONFIG, WBNOINVD
2020-02-10 20:37:07 +01:00
Alexis Engelke
bf5d0ef292
Improve decoding correctness in very rare cases
2020-02-10 20:36:02 +01:00
Alexis Engelke
e63fa88da4
Minor fixes (RETF, POPCNT, +PDEP, +PEXT)
2020-02-10 17:17:39 +01:00
Alexis Engelke
19b76c809e
Add MMX and several other instructions
2019-11-03 11:56:24 +01:00
Alexis Engelke
c5281e2f58
Add support for several small ISA extensions
2019-11-02 22:17:43 +01:00
Alexis Engelke
7e89bee1f0
Further memory operand annotations
2019-11-02 22:17:20 +01:00
Alexis Engelke
df4e2725d4
Annotate several more memory-only instructions
2019-11-02 21:50:02 +01:00
Alexis Engelke
92e104d411
Finally fix moves from/to CR/DR registers
2019-11-02 21:48:36 +01:00
Alexis Engelke
bd6c7ceebe
Begin enforcing memory operand requirements
2019-11-02 19:21:29 +01:00
Alexis Engelke
32d65fbf19
Fix CR/DR move operand sizes
2019-11-02 19:20:47 +01:00
Alexis Engelke
194a7d6831
Add REP-prefix table
2019-11-02 19:01:23 +01:00
Alexis Engelke
21cea7ff23
Fix GETSEC prefix encoding
2019-11-02 19:00:11 +01:00
Alexis Engelke
5ba2859c7b
Fix ADDSUBPS encoding
2019-11-02 17:53:21 +01:00
Alexis Engelke
194b99065e
Add RSM instruction
2019-11-02 17:32:51 +01:00
Alexis Engelke
d728f8f4af
Fix UD0 encoding
2019-11-02 17:10:22 +01:00
Alexis Engelke
8efc33ca4d
Add LSS/LFS/LGS instructions
2019-11-02 17:10:04 +01:00
Alexis Engelke
8c51339c49
Add moves from/to control/debug registers
2019-11-02 17:09:41 +01:00
Alexis Engelke
9d6e357d54
Add INT1
2019-11-02 17:09:22 +01:00
Alexis Engelke
915c2296c1
Add support for far returns
2019-11-02 17:08:37 +01:00
Alexis Engelke
07709fcdd8
Fix operand ordering of MOV[LH]P[S]
2019-05-06 08:10:50 +02:00
Alexis Engelke
24b79f71b6
Add missing FPU instructions
2019-05-05 12:53:29 +02:00
Alexis Engelke
dff78c5a86
Support VSIB encoding
2019-04-27 11:16:09 +02:00
Alexis Engelke
1b474a04ac
Add support for missing AVX instructions
2019-04-27 11:10:22 +02:00
Alexis Engelke
14c5590413
Set size of rare memory operands to zero
2019-02-24 17:11:32 +01:00
Alexis Engelke
2dd1c99a81
Fix operand size of some SSE instructions
2019-02-24 15:46:09 +01:00
Alexis Engelke
d5d0009070
Distinguish VZEROALL and VZEROUPPER
2019-02-24 15:45:37 +01:00
Alexis Engelke
dfd70eef39
Fix bug with VMOV[DQ] operand width in 32-bit mode
2019-02-24 10:09:18 +01:00
Alexis Engelke
b2b29239b1
Disallow LOCK prefix for non-lockable instructions
2019-02-24 09:26:23 +01:00
Alexis Engelke
1670a52047
Fix decoding of CVTTS[SD]2SI
2019-02-23 16:33:32 +01:00
Alexis Engelke
81224d1748
Fix some FPU instruction operand sizes
2019-02-10 16:17:33 +01:00
Alexis Engelke
b328067e60
Minor update of instruction definitions
2019-02-10 10:49:22 +01:00
Alexis Engelke
617ebe5c8a
Decode additional CET instructions
...
Mainly motivated to decode binaries compiled by recent GCC versions,
which now include CET instructions like endbr64 all over the place.
2018-12-31 13:25:15 +01:00
Alexis Engelke
a3f77dbf49
Initial commit
2018-04-08 13:45:13 +00:00