Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-07-01 | reorder prefix checks | iximeow | |
this measures a bit faster. it doesn't seem like it should be. the rex prefix checks compile identically but move a lea for a later expression up and pipelines better? | |||
2021-07-01 | reallocate OperandCode, convert disparate registers to array | iximeow | |
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-07-01 | making opcode u32 reduces a stall? | iximeow | |
2021-07-01 | complete yaxpeax-arch 0.1.0 adaptation, shore up .mem_size() | iximeow | |
2021-07-01 | update yaxpeax-x86 to yaxpeax-arch 0.1.0 interfaces | iximeow | |
2021-06-29 | fix several lingering mem_size discrepancies | iximeow | |
2021-06-28 | remove old movsx/movzx-related memory size hacks | iximeow | |
2021-06-28 | remove unused evex variants from generated code | iximeow | |
2021-06-28 | clean up protected mode vex-related warnings | iximeow | |
2021-06-28 | remove a few operand cases | iximeow | |
vex decoding is really intended to avoid explosions in code size more than anything... | |||
2021-06-28 | round out x86_32 support - avx2, avx, memory sizes | iximeow | |
2021-06-28 | protected mode memory sizes | iximeow | |
also some long-mode cleanup in corresponding areas | |||
2021-06-27 | protected-mode avx512 | iximeow | |
2021-06-27 | remove support for nonexistent prefixes | iximeow | |
2021-06-27 | add randomized testing against incorrect data in reused instructions | iximeow | |
2021-06-27 | PartialEq impls for data in instructiosn, and Instruction itself | iximeow | |
2021-06-27 | all tests now passing for long mode | iximeow | |
2021-06-27 | report memory sizes for all long-mode instructions | iximeow | |
2021-06-26 | awkward | iximeow | |
i really didnt know rust could do this | |||
2021-06-26 | clean up avx2-related warnings | iximeow | |
2021-06-26 | add long-mode avx512 support, except for compressed displacements | iximeow | |
2021-06-12 | finish up long mode avx2 | iximeow | |
2021-06-11 | add extensive avx and initial avx2 tests, fix several bugs and missing ↵ | iximeow | |
instructions | |||
2021-06-11 | remove vex ops file, didnt mean to track that in the first place | iximeow | |
2021-05-31 | fix typo | iximeow | |
2021-05-16 | fix ShowContextual rendering error with stale data and operands, publish 0.2.20.2.2 | iximeow | |
2021-05-07 | 0.2.10.2.1 | iximeow | |
2021-05-07 | remove dead OperandSpec variants | iximeow | |
2021-05-07 | update yaxpeax-arch to 0.0.5, fix interface breakages | iximeow | |
2021-05-06 | forward display style choices to ffi interface | iximeow | |
2021-05-06 | remove unneeded termion dep | iximeow | |
2021-03-23 | bump to 0.2.0 and write a changelog0.2.0 | iximeow | |
2021-03-22 | and clean up some warnings | iximeow | |
2021-03-22 | port long-mode ffi to protected-mode | iximeow | |
2021-03-22 | port long-mode decoder updates to protected-mode | iximeow | |
2021-03-21 | update protected mode tests (this breaks them horribly. next commit will fix.) | iximeow | |
2021-03-21 | remove some forgotten println comments | iximeow | |
2021-03-21 | include memory sizes on inc/dec in C format | iximeow | |
2021-03-21 | make Opcode, Operand, and DecodeError non_exhaustive | iximeow | |
in the future these can and will change (new operands, new instructions) and i would prefer they not be major breaking changes. applications can ignore them and probably do undesired variants anyway. if you want to write a 1120-variant match, are you me? why would you do this | |||
2021-03-21 | in real programs, having read_operands inlined hurts performance! | iximeow | |
the in-repo benchmark got better with this inlined but it's probably better to leave it up to the compiler when finally stitching stuff together. i suspect that having read_operands inlined resulted in just too many live values, and the compiler was inspired to play hijinks that pipelined poorly. disas-bench shows a ~15% improvement from this change. | |||
2021-03-21 | fuzzing shows resetting operands is not beneficial | iximeow | |
2021-03-21 | fix potential successful decodes with Opcode::Invalid | iximeow | |
vmov* are.. somehow messed up too | |||
2021-03-21 | add tsxldtrk | iximeow | |
does intel know no bounds | |||
2021-03-21 | xed says setssbsy and saveprevssp are more permissive | iximeow | |
2021-03-21 | add missing vpmaxuw, remove nonsense avx mov | iximeow | |
2021-03-21 | complete CET support, add UINTR, add missing VORP{S,D}, other cleanup | iximeow | |
2021-03-21 | add waitpkg, clean up unused values, old comments | iximeow | |
2021-03-21 | add tdx | iximeow | |
decoder flag to come | |||
2021-03-21 | rewrite 0f-based instruction handling | iximeow | |
this is... a more significant rewrite than i expected yaxpeax-x86 to ever need. it turns out that capstone is extremely permissive about duplicative 66/f2/f3 prefixes to the point that the implemented prefex handling was unsalvageable. while this replaces the *0f* opcode tables, i haven't profiled these changes. it's possible this is a net improvement for single-byte opcodes, it could be a net loss. code size may be severely impacted. there is still work to do. but this in total gets very close to iced/xed/zydis parity, far more than before. also adds several small extensions, gfni, 3dnow, enqcmd, invpcid, some of cet, and a few missing avx instructions. | |||
2021-03-17 | support several new extensions, 3dnow, and nuance in invalid operands | iximeow | |