flobernd
38c67d2a85
Refactorings
2017-07-03 03:14:01 +02:00
flobernd
ad8e5ce6a9
Minor refactorings
2017-07-01 01:10:03 +02:00
flobernd
392c36c85f
Fixed decoding of MASK register (again)
2017-06-29 21:12:22 +02:00
flobernd
c2a531902c
Fixed decoding of MASK register
2017-06-29 21:07:08 +02:00
flobernd
1fe1894362
Minor bugfixes
2017-06-29 20:54:36 +02:00
flobernd
aca1ad1414
Minor bugfixes
2017-06-29 20:52:35 +02:00
flobernd
d7c81e5104
Fixed operand-size of some special MVEX instructions
2017-06-29 20:40:48 +02:00
flobernd
2ee8332529
Fixed operand-action for MVEX-instructions with `READWRITE` operands
2017-06-29 20:06:44 +02:00
flobernd
8ef597970d
Minor bugfixes
...
- Fixed operand-action for MVEX instructions with mask-register
- Fixed decoding of MVEX instructions without swizzle/broadcast/convert functionality
2017-06-29 19:44:01 +02:00
flobernd
65fe4a4e6c
Improved instruction decoding
...
- Decoding of EVEX/MVEX instructions without a NDS/NDD-operand encoded in `.vvvv` and without a VSIB-operand will now fail, if `.v'` is != 1b
- Added information about XACQUIRE, XRELEASE and BOUND prefixes to the instruction definitions
- Fixed immediate-decoding of the `vpermil2pd` / `vpermil2ps` instruction
2017-06-29 18:09:42 +02:00
flobernd
778b47c02f
Minor bugfixes
...
- Fixed segment register for implicit memory-operands
- Fixed decoding of `MOV CR, GPR`, `MOV GPR, CR`, `MOV DR, GPR` and `MOV GPR, DR`
2017-06-28 22:18:12 +02:00
flobernd
05817fa8e7
Fixed register decoding for XOP and VEX instructions (again)
2017-06-28 20:50:32 +02:00
flobernd
808ccac372
Fixed register decoding for XOP and VEX instructions
2017-06-28 20:46:32 +02:00
flobernd
b118637dae
Cleaned up register-decoding code
2017-06-28 19:50:33 +02:00
flobernd
55400e9206
Improved decoding of XOP/VEX/EVEX/MVEX instructions
...
Decoding of XOP/VEX/EVEX/MVEX instructions without a NDS register encoded in .vvvv will now fail, if the .vvvv value is != 1111b
2017-06-27 04:14:17 +02:00
flobernd
e7a7be70e9
Performance optimizations
2017-06-27 03:32:42 +02:00
flobernd
920d62d699
Fixed operand-action for EVEX/MVEX instructions with write-mask (again)
2017-06-26 03:20:26 +02:00
flobernd
a1551af657
Fixed decoding of operands with VSIB index-register
2017-06-26 03:12:18 +02:00
flobernd
99de0f3152
Fixed operand-action for EVEX/MVEX instructions with write-mask (again)
2017-06-26 00:54:49 +02:00
flobernd
e15279ed1f
Fixed operand-action for EVEX/MVEX instructions with write-mask (again)
2017-06-26 00:02:00 +02:00
flobernd
652b5afadb
Fixed operand-action for EVEX/MVEX instructions with write-mask
2017-06-25 23:49:19 +02:00
flobernd
3b45ae2f1d
Minor bugfixes
2017-06-25 23:29:42 +02:00
flobernd
83699fe9d0
Minor bugfixes
2017-06-25 23:24:43 +02:00
flobernd
96a7197647
Fixed segment-register priority in 64-bit mode
2017-06-24 04:35:48 +02:00
flobernd
3a346b5e9d
Fixed segment-register for XOP/VEX/EVEX/MVEX instructions
2017-06-24 03:29:35 +02:00
flobernd
7d77e0747f
Minor improvements to the instruction-decoder
...
- Set mask-mode to "merge" for all MVEX instructions
- Set operand-action of EVEX dest-operands to RCW, if a merge write-mask is specified
2017-06-24 03:20:45 +02:00
flobernd
e04adf2b8d
Fixed semantic decoding of EIP/RIP-relative displacements
2017-06-24 03:02:03 +02:00
flobernd
83ea3bc2c8
Minor bugfixes
2017-06-24 02:48:14 +02:00
flobernd
0957a57ab4
Fixed vector-length for EVEX instructions with fixed vector-length
2017-06-24 00:01:21 +02:00
flobernd
b3d508850f
Added information for VEX/EVEX/MVEX instructions with static broadcast-factor
2017-06-23 20:47:34 +02:00
flobernd
cd3bf5586b
Changed default element-count from 0 to 1
2017-06-23 04:26:21 +02:00
flobernd
c8c3d29ba4
Added support for MVEX instructions with static broadcast factor
2017-06-23 03:35:12 +02:00
flobernd
2297c763cf
Added compressed disp8 calculation for MVEX instructions with element-granularity
2017-06-23 01:40:19 +02:00
flobernd
d8f3843f57
Added compressed disp8 calculation for MVEX instructions without swizzle/broadcast/convert functionality
2017-06-23 01:15:42 +02:00
flobernd
6c370d29c9
Added support for some MVEX special-cases
2017-06-22 22:10:18 +02:00
flobernd
4d3a71369b
Removed EVEX tuple-type and element-size from the public info-struct
2017-06-22 19:54:35 +02:00
flobernd
b9c43d83a7
Added compressed disp8 calculation for MVEX instructions
2017-06-22 19:39:43 +02:00
flobernd
76f0bcf00d
Improved semantic decoding of MVEX instructions
2017-06-22 19:14:27 +02:00
flobernd
2a0525925f
Added decoding of MVEX swizzle/conversion and rounding-control values
2017-06-22 02:42:16 +02:00
flobernd
5bd81b7f1c
Fixed sign-extension of displacement values
2017-06-22 01:38:41 +02:00
flobernd
dc62509b9b
Ignore REX-prefix, if it is not the last prefix before the opcode
2017-06-21 04:04:58 +02:00
flobernd
9628fb8367
Fixed order of segment-registers
2017-06-21 03:03:13 +02:00
flobernd
6ff954f585
Fixed MVEX.SSS error-condition
2017-06-20 22:56:25 +02:00
flobernd
d475231a63
Fixed decoding of implicit "1" immediate (ROL, ROR, RCL, ...)
2017-06-20 22:44:37 +02:00
flobernd
5112e61fd8
Fixed element-type for AGEN operands
2017-06-20 22:02:40 +02:00
flobernd
52e1b59702
Improved EVEX and MVEX encoding
...
- Added some MASK related error-conditions
- Added functionality and mask-policy attributes to the MVEX instruction-definition struct
- Added MVEX specific error-condition
2017-06-20 21:23:06 +02:00
flobernd
95b685a29d
Minor bugfixes
...
- Fixed some VEX/EVEX/MVEX-prefix error conditions
- MASK register size is now 64-bit for EVEX- and 16-bit for MVEX-instructions
2017-06-20 17:48:55 +02:00
flobernd
17358016d9
Allowed custom operand-sizes for register operands
2017-06-20 03:16:17 +02:00
flobernd
ee97ae753c
Fixed some EVEX tuple-types
2017-06-19 20:46:42 +02:00
flobernd
4bceac86c9
Various bugfixes
...
- Fixed operand-size and element-count of AGEN operands
- Fixed decoding of 8-bit modrm.rm register-operands
- Fixed vector-length for EVEX instructions with rounding-semantics
2017-06-19 20:19:21 +02:00