aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-02-22support most avx operand codesiximeow
avx is still incomplete, but less so avx is still practically untested
2020-02-22fix {jmp,call} <reg>, as well as jmpf/callfiximeow
also support vmxon to finish out the f30f opcode map add tests for forms of inc/dec, as well as TODOs, as yaxpeax-x86 doesn't provide a way to distinguish different operand sizes (yet)
2020-02-22more sse/sse2 supportiximeow
largely f20f/f30f opcode map items
2020-02-22add vmclear testiximeow
this instruction is decoded with the sse2 660f map but not actually added in sse2
2020-02-22support 660f sse2 instructionsiximeow
this isn't quite all of sse2, but gets close. the f20f opcode map still needs some touching up. also fix `G_E_xmm_Ib` not respecting rex.r for the rrr operand
2020-02-16bump version0.0.6iximeow
2020-02-16embarassingly had OperandSpec variants for modrm displacement == 0 backwardsiximeow
2020-02-11bump to 0.0.50.0.5iximeow
2020-02-11support `in` and `out` instructionsiximeow
2020-02-11add `RegSpec::name` to get `&'static str` labels for registersiximeow
2020-02-11derive Ord and PartialOrd for RegSpec and RegisterBankiximeow
this makes these usable as keys in collections such as BTreeMap. there is no specific ordering imposed by Ord (f.ex it may be the case that `eax > dx` while `eax > rax`), but some specific ordering may be imposed in the future.
2020-02-06bump yaxpeax-arch version0.0.4iximeow
2020-01-18bump yaxpeax-archiximeow
2020-01-15oh no, first version bump alreadyiximeow
2020-01-15support "int imm8" instructionsiximeow
2020-01-15update yaxpeax-arch dependency because it is a crate now!iximeow
2020-01-15update readme with no-std information, feature description, and some numbersiximeow
2020-01-15make space for non-64bit modesiximeow
2020-01-15avoid needing to dynamically allocate in yaxpeax-x86 ffiiximeow
this makes ffi builds also no-std, and significantly smaller too
2020-01-15make x86 actually no_stdiximeow
it depended on crates that dragged in std, oops
2020-01-15add more sse2 instructions (packed shift by immediate, mostly)iximeow
really need to adjust OperandCode, almost out of one-off options...
2020-01-15add 660f6* series instructions as well as 660f70iximeow
this adds in some missing sse2 instructions in the alternate secondary opcode map. because these were missing, instructions were incorrectly decoded from the 0f opcode map, yielding mmx-operand versions of themselves (usually) there are undoubtedly more missing sse2 instructions from the 660f map.
2020-01-15negative displacements were printed wrong, test against that for the futureiximeow
this was accidentally fixed in no_std-ing, the prior commit
2020-01-15no_std!!iximeow
this makes yaxpeax-x86 no_std. no externally-visible changes!
2020-01-13explicitly fail to handle WAIT prefixiximeow
2020-01-13test that instruction lengths are correctiximeow
fix several instances of incorrect instruction lengths * immediates for `mov reg, imm` and some other instructions were double-counted * lengths for vex prefixes were wrong all over the place
2020-01-13add Default impl for Instruction to track yaxpeax-archiximeow
2020-01-13de-pub some internal functionsiximeow
2020-01-12forgot a line breakiximeow
2020-01-12update descriptioniximeow
2020-01-12update repository path and explicitly version depsiximeow
2020-01-12add explicit license alsoiximeow
2020-01-12add readme, finallyiximeow
2020-01-12no println when decoding vex instructions pleaseiximeow
2020-01-12add *extremely* poor ffi bindings for x86 decodersiximeow
this is specifically to support a disas-bench integration, for now
2020-01-12"fix warnings"iximeow
this assists many misdecodes from being totally wrong to only slightly wrong and more clear about it (rrr-selected opcodes or W-bit-selected opcodes were accidentally decoded as the first variant of their opcode) also fixes sillier warnings all over the place, and probably a few incorrectly counted lengths
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-12display more directlyiximeow
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