Alexis Engelke
111769832f
format: Properly output VSIB encodings
2021-01-08 10:37:13 +01:00
Alexis Engelke
018a954b4c
encode: Use macro for OPC_SEG mask
2021-01-07 10:20:00 +01:00
Alexis Engelke
dfb28c923d
encode: Make internal escape encoding more compact
2021-01-07 10:03:58 +01:00
Alexis Engelke
3fdbd70153
encode: Fix erroneous encoding of high registers
2021-01-07 10:03:17 +01:00
Alexis Engelke
db183ee6f9
meson: Check compiler options and Python version
...
Thanks to William Woodruff for pointing out that -Wcast-align=strict is
a GCC-only option, which causes build errors (instead of just
complaining about an unsupported warning option).
2021-01-05 20:21:44 +01:00
Alexis Engelke
84645afaac
README: Add API for encoder
2021-01-03 21:23:24 +01:00
Alexis Engelke
aefab34927
README: Update and include encoder
2021-01-03 21:19:36 +01:00
Alexis Engelke
44808e7b1a
format: Format instructions with Intel syntax
2021-01-03 21:18:57 +01:00
Alexis Engelke
d8c7ee94b7
instrs: Minor fixes to operand sizes
2021-01-03 20:08:34 +01:00
Alexis Engelke
d2bf961b77
instrs: Properly handle PUSH/POP of SEG registers
2021-01-03 20:08:34 +01:00
Alexis Engelke
3a3a284f6f
parseinstrs: Improve performance
2021-01-03 20:08:34 +01:00
Alexis Engelke
5a77c0e6eb
parseinstrs: Use suffix tree to reduce mnem size
...
This brings slight size improvements, although due to SSE/MMX
instruction name prefixes, benefits are rather small (~50 bytes).
2021-01-03 20:08:30 +01:00
Alexis Engelke
e82c9e20db
build: Simplify
2021-01-02 16:27:28 +01:00
Alexis Engelke
90cce987f0
decode: Remove use of ARCH_* macros
2021-01-02 16:25:25 +01:00
Alexis Engelke
64a9984fa0
format: Add function fdi_name
2020-12-12 16:24:17 +01:00
Alexis Engelke
305eb9d568
decode: Inline ModRM decoding
...
This is a preparation for further changes to that routine.
2020-11-29 13:34:16 +01:00
Alexis Engelke
aa1a39bd9d
instrs: Check SREG validity using modreg table
2020-11-29 11:56:08 +01:00
Alexis Engelke
13e7e27640
decode: Minor non-functional changes
2020-11-29 10:03:11 +01:00
Alexis Engelke
7ab5a18cb0
instrs: Fix naming of some FMA instructions
2020-11-28 13:54:51 +01:00
Alexis Engelke
8976c7141a
decode: Fix erroneous decoding of high-byte regs
2020-11-28 13:54:19 +01:00
Alexis Engelke
757acf18c3
decode: Minor performance improvements
2020-11-27 09:07:52 +01:00
Alexis Engelke
fd80706f54
decode: Store instruction descriptors separately
2020-11-22 22:27:43 +01:00
Alexis Engelke
bb8510d77f
decode: Ignore ES/CS/SS/DS override in 64-bit mode
2020-11-22 20:59:13 +01:00
Alexis Engelke
8ab9f641b8
instrs: Add TSXLDTRK, AVX_VNNI, HRESET, and UINTR
2020-11-22 17:36:12 +01:00
Alexis Engelke
f4215d4260
decode: Remove PrefixSet enum
2020-11-22 16:02:35 +01:00
Alexis Engelke
ad1f1e39c3
decode: Minor non-functional changes
2020-11-22 15:14:57 +01:00
Alexis Engelke
6fe5500444
instrs: Force RIP access to 64-bit and fix XBEGIN
2020-11-22 15:13:52 +01:00
Alexis Engelke
f9bba6289e
instrs: Annotate only-mem and only-reg in opcode
2020-11-22 11:34:55 +01:00
Alexis Engelke
bbc3b34f71
decode: Fix VEX + REX + legacy combinations
2020-11-21 15:43:51 +01:00
Alexis Engelke
7f0bd4de8b
decode: Fix combinations of VEX with legacy prefix
2020-11-21 14:59:25 +01:00
Alexis Engelke
318fdc50eb
decode: Replace table walk macro with function
2020-11-17 10:43:08 +01:00
Alexis Engelke
95070908d0
tests/decode: Add more test cases
2020-11-09 09:47:36 +01:00
Alexis Engelke
58464d6fa1
decode: Fix ignoring VEX.B in 32-bit mode
2020-11-09 09:47:36 +01:00
Alexis Engelke
62b0420147
parseinstr: Simplify opcode naming scheme
2020-11-09 09:47:36 +01:00
Alexis Engelke
9df6ac1788
decode: Replace T8+T72 with T16+T8E for R/M value
2020-11-09 09:47:36 +01:00
Alexis Engelke
7d7e72746e
parseinstr: Split escape and opcode
2020-11-09 09:47:36 +01:00
Alexis Engelke
01e1587c5c
decode: Move prefix before other opcode extensions
2020-11-09 09:47:36 +01:00
Alexis Engelke
2e7e396325
decode: Remove TABLE_PREFIX_REP and use NFx prefix
2020-11-09 09:47:36 +01:00
Alexis Engelke
69ce124354
encode: Add library for x86-64 encoding
2020-11-09 09:46:38 +01:00
Alexis Engelke
4e95c8d152
instrs: Several operand size and AVX-related fixes
2020-07-05 14:59:24 +02:00
Alexis Engelke
9d7aeb2b61
instrs: Replace LIG attribute with LIG specifier
2020-07-05 14:57:22 +02:00
Alexis Engelke
468eeaa249
parseinstrs: Create a separate class for parsed opcode
2020-07-05 14:57:22 +02:00
Alexis Engelke
9b6caeb2ae
parseinstrs: Write mnemonics to separate file
2020-07-04 14:35:51 +02:00
Alexis Engelke
dc668691d8
instrs: Specify segment register size
2020-07-04 14:25:22 +02:00
Alexis Engelke
0da46cba98
instrs: Add missing VEXLIG for compares
2020-07-04 14:25:20 +02:00
Alexis Engelke
c9333ac2c9
instrs: Enforce memory for VSIB encodings
2020-07-04 14:24:59 +02:00
Alexis Engelke
141680e77c
instrs: Remove MUSTMEM, encode in operands
2020-07-04 14:24:56 +02:00
Alexis Engelke
da4ad137d8
instrs: Remove redundant IMM_8
2020-07-04 08:55:51 +02:00
Alexis Engelke
854082a156
instrs: Remove invalid SIZE_8 markers
2020-07-02 08:39:51 +02:00
Alexis Engelke
7ee9320840
decode: Add second fixed operand size
2020-06-30 22:07:18 +02:00