aboutsummaryrefslogtreecommitdiff
path: root/src/protected_mode/display.rs
AgeCommit message (Collapse)Author
2024-06-23last vestiges of initial perf experimentsiximeow
2024-06-23another fuzz bugiximeow
2024-06-23fuzz caught negation bugiximeow
2024-06-23InstructionTextBuffer for all three modes, adjust fuzzer to matchiximeow
2024-06-23add additional `call` test casesiximeow
fix 32-bit 66-prefixed ff /2 call not having 16-bit operands fix momentary regression in rendering `call` instructions to string
2024-06-23forward long deprecation allowances as appropriateiximeow
2024-06-23normalize imports, pull safer_unchecked from yaxpeax-archiximeow
2024-06-23adapt the rest of formating changes to protected_modeiximeow
2024-06-23adapt OperandVisitor to protected mode tooiximeow
2024-06-23actually use new can_rep in 32b and 16b modesiximeow
2024-06-23port opcode helpers and reordering to 32-bit and 16-bit decodersiximeow
2024-04-02display opt: mem size labels and minor segment reporting changesiximeow
for mem size labels: add one new "BUG" entry at the start of the array so `mem_size` does not need to be adjusted before being used to look up a string from the `MEM_SIZE_STRINGS` array. it's hard to measure the direct benefit of this, but it shrinks codegen size by a bit and simplfies a bit of assembly.... for segment reporting changes: stos/scas/lods do not actually need special segment override logic. instead, set their use of `es` when decoded, if appropriate. this is potentially ambiguous; in non-64bit modes the sequence `26aa` would decode as `stos` with explicit `es` prefix. this is now identical to simply decoding `aa`, which now also reports that there is an explicit `es` prefix even though there is no prefix on tne instruction. on the other hand, the prefix-reported segment now more accurately describes the memory selector through which memory accesses will happen. seems ok?
2023-07-16fix indentationiximeow
2023-07-16forward changes along to 32-bit decoder...iximeow
2022-04-30support 0x9a callf in 16/32-bit modesiximeow
2022-01-12fuzz DisplayStyle::C and fix corresponding issues1.1.4iximeow
2022-01-02Wrap unsafe functions to catch errors in debug5225225
Closes https://github.com/iximeow/yaxpeax-x86/issues/16
2021-10-10support endbr{32,64}iximeow
2021-10-10consistentify doc styleiximeow
2021-10-10export `InstructionDisplayer` (#9)i509VCB
This makes generated docs refer to a type and show said type in the list of all structs rather than rustdoc showing gray text in return types. quote doc references
2021-08-21improve relative branch offset formatting for DisplayStyle::Ciximeow
2021-08-21fix negative relative branches (again!!! +- is bad!!!)iximeow
2021-08-14relative branches should be shown as $+offset, not just plain offsetiximeow
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-07-04update crate to rust 2018iximeow
2021-07-04support avx512 registers >=16iximeow
2021-07-04support xacquire/xrelease prefixingiximeow
2021-07-04fix several incorrect tests and docs in 64- and 32-bit modesiximeow
2021-07-03document public members in long_modeiximeow
2021-07-03factor out MemoryAccessSizeiximeow
2021-07-03support AMD `sev_snp`iximeow
2021-07-03clean up x86_32 and make interfaces match x86_64iximeow
2021-07-03add hresetiximeow
2021-07-03support pconfig/tmeiximeow
2021-06-28remove old movsx/movzx-related memory size hacksiximeow
2021-06-28round out x86_32 support - avx2, avx, memory sizesiximeow
2021-06-28protected mode memory sizesiximeow
also some long-mode cleanup in corresponding areas
2021-06-27protected-mode avx512iximeow
2021-05-07update yaxpeax-arch to 0.0.5, fix interface breakagesiximeow
2021-03-22and clean up some warningsiximeow
2021-03-22port long-mode decoder updates to protected-modeiximeow
2021-01-15fix several missing or invalid decodings among 0f01 opcodesiximeow
* `mwaitx`, `monitorx`, `rdpru`, and `clzero` are now supported * swapgs is no longer decoded in protected mode * rdpkru and wrpkru are no longer decoded if mod bits != 11
2020-08-09support salc, get segment register numbers rightiximeow
2020-08-09add 32-bit-only instructionsiximeow
2020-08-09port updates to protected-mode decoderiximeow
2020-05-23add SHA, BMI1, and BMI2, complete XSAVE extension supportiximeow
additionally: cmpcxchg{8,16}b, rdrand, rdseed, rdpid, {rd,wr}{fs,gs}base
2020-05-21add sha, lzcnt, tsx, f16c, svm, movbe, adx, and prefetchw extensionsiximeow
also add builders to get decoders appropriate for specific microarchitectures from intel and amd * low-power architectures are not yet present
2020-05-03that instruction is cwd, not cbdiximeow
2020-03-22yaxpeax-x86 decodes in 32-bit mode nowiximeow