aboutsummaryrefslogtreecommitdiff
path: root/src/lib.rs
AgeCommit message (Collapse)Author
2020-01-12match changes in arch to have Resulty decode, instead of Optioniximeow
2020-01-12custom hasher for regspeciximeow
for hashmaps with heavy traffic keyed on RegSpec, this can be a significant time savings
2020-01-12avx feature flag and avx/aesni instructions flagged properlyiximeow
2020-01-12fix avx bit numberiximeow
2020-01-12support aesniiximeow
this includes respecting ModRM_XXXX-style operand codes from alternate 0f opcode maps. this MAY introduce bugs where an opcode 0fXX is valid by the 0f map, invalid by the 660f map, and we see a sequence like 660fXXYY. if YY results in 0fXX being invalid by 660f, we may have to fall back to reading opcode XX as an 0f opcode, where YY needs to be re-read with the correct operand code. hopefully this doesn't actually happen...
2020-01-12support missing sse3 instructions, add tests for sse3 instructionsiximeow
2020-01-12add avx decoder flag, and a display impl showing active featuresiximeow
2020-01-12test fence instructions against different quirks modesiximeow
add enclv instruction add sse3, ssse3, sse4.1, and sse4.2 feature flags, plus a host of missing opcodes
2020-01-12initial flagging supportiximeow
2020-01-12add a slew of system-y instructions, as well as cpu quirks for amd/intel ↵iximeow
fence instructions
2020-01-12vex tests work!iximeow
2020-01-12vexiximeow
2020-01-12movs on non-byte operandsiximeow
2020-01-12that wasnt supposed to get committediximeow
2020-01-12proper movs operand supportiximeow
2020-01-12pshuf/psr/shld/shrd plus some test fixesiximeow
this makes all current non-vex/evex tests pass!!!
2020-01-12down to one failing test, for nowiximeow
2020-01-12more cvt variantsiximeow
2020-01-12improved cvts again, movd/movqiximeow
2020-01-12add pxor and some others, support mm operandsiximeow
2020-01-12support ucomiss, cvt*, some other sse instructionsiximeow
2020-01-12more careful prefix handlingiximeow
2020-01-12support prefetch, movlps, movhps, refine prefix permissivityiximeow
rep, repz, repnz prefixes are only displayed on instructions for which they have a semantic effect. movs, cmps, scas, lods, stos, ins, and outs are now decodable.
2020-01-12fix 0x98 and 0x99 opcodes, lss/lfs/lgs decodesiximeow
also remove unnecessary variants in unlikely_operands and adjust expectations of several tests
2020-01-12add display rules for new opcodes, continuing to fix testsiximeow
2020-01-12properly handle excessive prefixes on 0f-category instructioniximeow
also initial support for 660f opcode map, though it's all invalid instructions fix backwards base and index registers for memory operands with both fix incorrect test
2020-01-12hack to handle prefixed sequences that might appear to be escaped opcodesiximeow
2020-01-12support imul, >2 operands, and 4-bit register bankiximeow
2020-01-12clear operands when decoding instruction, fix length countsiximeow
operand-clearing should be removable but is a stopgap for decoding only clearing a few entries
2020-01-12update x86 to revised decoder traitiximeow
2020-01-12most non-avx (really, non-vex) instructionsiximeow
2020-01-12even more squeezeiximeow
2020-01-12more squeezing!!iximeow
2020-01-12doubly love speculationiximeow
2020-01-12wtf i love speculationiximeow
2020-01-12TEMP remove length trackingiximeow
2020-01-12distinct prefixes argument not necessaryiximeow
2020-01-12evil bit hacks to shrink read_operands downiximeow
2020-01-12normalize displacement-containing operands a little moreiximeow
2020-01-12reduce argument counts, try to reduce memory pressureiximeow
also remove several bounds checks, surprisingly ineffective
2020-01-12that terrifying code is no longer an improvementiximeow
2020-01-12make Instruction smalleriximeow
this breaks all of how Operand are used, but its faster, so its impossible to say,
2020-01-12make Prefixes Copy to try reducing pressure? it kind of worked?iximeow
2020-01-12move jbs operand code up for improved speculationiximeow
2020-01-12shrink read_operands down from 53kb to ~35kbiximeow
2020-01-12check errors across the boardiximeow
2020-01-12try to get a handle on read_operands sizeiximeow
explicitly number some OperandCode so their variants can be reused, factor out other code which turns out to be helpful for code size and performance reasons. reorder some arguments for read_E/read_M because it seems to have made a small improvement.
2020-01-12small changes to prepare for Big Changesiximeow
2020-01-12now thats dangerousiximeow
2020-01-12lar has a 16-byte second operand, unconditionallyiximeow