Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-08-21 | maintain pre-annotation inlining properties | iximeow | |
this gets yaxpeax-x86 in no-inline configurations back to building as it did before, but is quite a blunt hammer. it seems that extra calls to `sink.record` trips the inlining thresholds for `read_with_annotation`, and then its caller, and its caller, even when one of them is just a delegation to its inner call. this is particularly unfortunate because yaxpeax-x86 is now making a decision about the inlining of a rather large function at the public edge of its API, but these attributes match the inlining decisions that LLVM was making before adding `DescriptionSink`. hopefully not too bad. not sure how to handle this in the future. | |||
2021-08-21 | add descriptions for other prefixes, 16-bit addressing | iximeow | |
2021-08-21 | add description reporting for segment prefixes and opcodes for 32-bit and 16-bit | iximeow | |
2021-08-21 | provide decoder annotation for evex prefix | iximeow | |
2021-08-21 | report barebones decoder annotation for vex-coded instructions | iximeow | |
2021-08-21 | extend decoder annotation through all of 64-, 32-, and 16-bit modes | iximeow | |
2021-08-21 | force read_sib inlining in 64-bit mode | iximeow | |
even though NullSink is no-ops, it causes llvm to not inline this function, for a net perf reduction | |||
2021-08-21 | extend annotation reporting to 32- and 16-bit modes, kinda | iximeow | |
2021-08-21 | wip | iximeow | |
2021-08-21 | fix negative relative branches (again!!! +- is bad!!!) | iximeow | |
2021-08-21 | fix incorrect decoding of 0x9*-series instructions with rex.b | iximeow | |
2021-08-21 | add push/pop/call/ret mem_size fixes to changelog | iximeow | |
2021-08-21 | clarify inaccurate 32/16-bit `call/jmp [mem]` mem_size | iximeow | |
2021-08-21 | report memory sizes for push, pop, call, ret | iximeow | |
these instructions had memory sizes reported for the operand, if it was a memory operand, but for versions with non-memory operands the decoded `Instruction` would imply that non memory access would happen at all. now, decoded instructions in these cases will report a more useful memory size. | |||
2021-08-14 | relative branches should be shown as $+offset, not just plain offset | iximeow | |
while x86 branches of immediates are all relative to PC, other architectures may have absolute branches to immediate addresses, leaving this syntax ambiguous and potentially confusing. yaxpeax prefers to write relative offsets `$+...` as a rule, so uphold that here. | |||
2021-08-14 | delcare pub const fn constructors for all gp registers, segment registers, ↵ | iximeow | |
and ip/flags | |||
2021-08-12 | add RegSpec::rbx() helper (#6) | chc4 | |
2021-07-22 | fix incorrect decodes with scas and 67-prefixes1.0.4 | iximeow | |
2021-07-06 | fix doc items, add example for use of yaxpeax_x86 by yaxpeax_arch traits1.0.3 | iximeow | |
2021-07-04 | update yaxpeax-arch to 0.2.0 and update DecodeError impls | iximeow | |
2021-07-04 | update crate to rust 2018 | iximeow | |
2021-07-04 | support vpscatter{dd,dq,qd,qq} | iximeow | |
2021-07-04 | support avx512 registers >=16 | iximeow | |
2021-07-04 | handle vzeroupper/vzeroall, reject vzero* with nonzero vvvv | iximeow | |
2021-07-04 | support xacquire/xrelease prefixing | iximeow | |
2021-07-04 | add real-mode decoder | iximeow | |
2021-07-04 | 16-bit addressing in protected mode may see avx512 masks too | iximeow | |
2021-07-04 | fix several incorrect tests and docs in 64- and 32-bit modes | iximeow | |
2021-07-03 | update protected_mode to match long_mode docs, apis | iximeow | |
2021-07-03 | update DecodeError impls | iximeow | |
2021-07-03 | document public members in long_mode | iximeow | |
2021-07-03 | write some dang docs, export `MemoryAccessSize` where you'll look for it | iximeow | |
2021-07-03 | export long_mode as amd64, a more recognizable name | iximeow | |
2021-07-03 | more carefully test mmx operand sizes | iximeow | |
2021-07-03 | factor out MemoryAccessSize | iximeow | |
2021-07-03 | add tests for MemoryAccessSize, consistentify style on docs | iximeow | |
2021-07-03 | be more strict about denying invalid operands | iximeow | |
2021-07-03 | do not reject prefixed sgdt, add a TODO for xop | iximeow | |
not that xop will ever be wanted, rip | |||
2021-07-03 | support AMD `sev_snp` | iximeow | |
2021-07-03 | instructions with evex-coded registers may have registers other than 0 | iximeow | |
2021-07-03 | defer checking invalid lengths for multi-prefix instructions | iximeow | |
this profiles slightly better? not entirely sure why... | |||
2021-07-03 | document some of the weird decisions in read_instr | iximeow | |
2021-07-03 | enforce reserved evex prefix bits | iximeow | |
2021-07-03 | clean up x86_32 and make interfaces match x86_64 | iximeow | |
2021-07-03 | prefixes on 0f01-series opcodes are more strict | iximeow | |
2021-07-03 | add hreset | iximeow | |
2021-07-03 | port over x86_64 improvements to x86_32 | iximeow | |
2021-07-03 | vbroadcastsd requires W | iximeow | |
2021-07-03 | support pconfig/tme | iximeow | |
2021-07-03 | reject instructions when their opcode is `Invalid` | iximeow | |
the evex route would allow "valid" instructions that have the opcode `invalid`. this is.. not correct. |