Commit Graph

89 Commits

Author SHA1 Message Date
Alexis Engelke
92e104d411 Finally fix moves from/to CR/DR registers 2019-11-02 21:48:36 +01:00
Alexis Engelke
96ba1a1166 Verify more register indices 2019-11-02 21:47:28 +01:00
Alexis Engelke
ab2d60da75 Reject invalid segment registers 2019-11-02 21:11:35 +01:00
Alexis Engelke
e2026b572d Reject invalid VEX encodings 2019-11-02 21:08:34 +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
7682541a00 Refactor opcode parsing 2019-11-02 19:00:46 +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
e43ec050af Correctly handle mis-placed REX prefix 2019-11-02 17:32:40 +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
a2a28b7342 Fix immediate size for REX+66 combinations 2019-11-02 17:08:58 +01:00
Alexis Engelke
915c2296c1 Add support for far returns 2019-11-02 17:08:37 +01:00
Alexis Engelke
c4a4df458d Be more restrictive about VEX prefix combinations 2019-11-02 15:53:00 +01:00
Alexis Engelke
5613adda25 Support decoding SS segment override prefix 2019-11-02 15:52:45 +01:00
Alexis Engelke
9987f47a50 meson: Fix warning about missing warning 2019-08-18 18:16:54 +02:00
Alexis Engelke
c930fa03dc Make header compatible with C++ 2019-08-18 18:13:53 +02:00
Alexis Engelke
bb3c7a4a4f Fix alignment warnings from Clang 2019-08-18 18:13:39 +02:00
Alexis Engelke
0f2681b138 Add some API description to README 2019-06-16 10:19:08 +02:00
Alexis Engelke
69ac42c11f Fix format.c for recent file name change 2019-06-16 10:18:41 +02:00
Alexis Engelke
69691c9605 Generate pkg-config file 2019-06-16 09:48:18 +02:00
Alexis Engelke
9bdb71e6aa Install library and header files 2019-06-16 09:46:31 +02:00
Alexis Engelke
c59319b3bb Rename decode tables to fadec-decode-table.inc 2019-06-16 09:45:51 +02:00
Alexis Engelke
2933b0f106 Rename library to libfadec 2019-06-16 09:44:12 +02:00
Alexis Engelke
07709fcdd8 Fix operand ordering of MOV[LH]P[S] 2019-05-06 08:10:50 +02:00
Alexis Engelke
fba31efff0 Add Travis CI file 2019-05-05 13:10:20 +02:00
Alexis Engelke
24b79f71b6 Add missing FPU instructions 2019-05-05 12:53:29 +02:00
Alexis Engelke
3f278bc6cc Store register type in decoded instruction 2019-05-05 12:53:10 +02:00
Alexis Engelke
899278600b Refactor encoding of bit field 2019-05-05 12:26:20 +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
a7d4c7be9d Minor clean-up 2019-04-27 11:09:57 +02:00
Alexis Engelke
db1ec271df Simplify macros for immediate loading 2019-04-27 08:19:33 +02:00
Alexis Engelke
1ff0e60ddc Remove unused macros 2019-04-27 08:19:03 +02:00
Alexis Engelke
000349b360 Update README 2019-02-24 17:14:41 +01:00
Alexis Engelke
f4644430b8 Update README 2019-02-24 17:13:56 +01:00
Alexis Engelke
b105c48903 Update README 2019-02-24 17:12:35 +01:00
Alexis Engelke
14c5590413 Set size of rare memory operands to zero 2019-02-24 17:11:32 +01:00
Alexis Engelke
53ca6a2f23 Drop export of VEX.L prefix
This was previously needed to distinguish VZEROALL and VZEROUPPER. As
mandatory VEX.L is now handled properly, there is no need to export this
encoding detail any longer.
2019-02-24 15:48:08 +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
f7f0b322c7 Enforce mandatory L0/L1 in VEX prefix 2019-02-24 15:45:00 +01:00
Alexis Engelke
83988828ec Add some test cases for ModRM decoding 2019-02-24 10:10:02 +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
9cdd35f82f Decode VEX compact escapes more precisely
The single opcode byte follows the VEX prefix immediately.
2019-02-24 10:08:41 +01:00