aboutsummaryrefslogtreecommitdiff
path: root/src/long_mode/evex.rs
AgeCommit message (Collapse)Author
2021-12-17write `apply_disp_scale` in a mode-agnostic wayiximeow
`apply_disp_scale` forgot that `wrapping_mul` exists, so we don't need to explicitly write the size of value that `mem_size` should be cast to, in casting to/from a signed integer. taken with `.into()`, we don't need per-architecture stubs to make evex decoding work.
2021-12-16displacements are stored as unsigned, but are functionally signed intsiximeow
so multiplying to expand EVEX compressed offsets can overflow, and that needs to be okay.
2021-07-01reallocate OperandCode, convert disparate registers to arrayiximeow
also remove redundant assignments of operand_count and some OperandSpec, bulk-assign all registers and operands on entry to `read_instr`. this all, taken together, shaves off about 7 cycles per decode.
2021-06-27protected-mode avx512iximeow
2021-06-27all tests now passing for long modeiximeow
2021-06-26clean up avx2-related warningsiximeow
2021-06-26add long-mode avx512 support, except for compressed displacementsiximeow