| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2 days | draft | iximeow | |
| 7 days | fair enough on those warnings | iximeow | |
| 7 days | type aliases make some of these signatures less egregious.. | iximeow | |
| 7 days | uarch settings for apx, avx10.1, etc + nouns get caps | iximeow | |
| 2025-09-29 | fix broken capstone_bench stuff, might delete later, idk | iximeow | |
| 2025-09-29 | annotation description test requires `fmt` | iximeow | |
| this was missed in typical testing because either tests run with all features, no features, or fmt. there wasn't a test entry for only std, which was broken. | |||
| 2025-06-02 | changelog should note ISA extension changes | iximeow | |
| 2025-06-01 | 3dnow was still supported on K8, K10. 32-bit mode should learn about uarch ↵ | iximeow | |
| tweaks too | |||
| 2025-06-01 | describe the per-isa extensions a bit better | iximeow | |
| 2025-06-01 | revise_instruction is the same on all bitnesses, so macro it too | iximeow | |
| 2025-06-01 | DecodeEverything wasn't useful, no better than InstDecoder::default()?? | iximeow | |
| 2025-06-01 | cpu feature bits are the same across 64/32/16-bit | iximeow | |
| 2025-06-01 | expand isa feature selection to more bits | iximeow | |
| this is backed by the new IsaSettings trait. the existing InstDecoders are unchanged, except that they implement this new trait. also add new `DecodeEverything` structs with `IsaSettings` impls that are unconditionally set to permit anything the decoder can be configured to conditionally accept or reject. in the process, add new `_3dnow` flag and stop accepting 3dnow instructions in uarch-specific decoder settings that would not have 3dnow instructions. update AMD microarchitectures and cross-ref chip directory | |||
| 2024-06-24 | summary description of opt workHEAD2.0.0no-gods-no- | iximeow | |
| this empty commit reproduces a github comment that describes the work on commits from this point back to, roughly, 1.2.2. since many commits between these two points are interesting in the context of performance optimization (especially uarch-relevant tweaks), many WIP commits are preserved. as a result there is no clear squash merge, and this commit will be the next best thing. on Rust 1.68.0 and a Xeon E3-1230 V2, relative changes are measured roughly as: starting at ed4f238a4c2d860e6fadc8abeaa0cba36ed1df8a: - non-fmt ns/decode: 15ns - non-fmt instructions/decode: 94.6 - non-fmt IPC: 1.71 - fmt ns/decode+display: 91ns - fmt instructions/decode+display: 683.8 - fmt IPC: 2.035 ending at 6a5ea107475284756070614a566970fbb383c4e6 - non-fmt ns/decode: 15ns - non-fmt instructions/decode: 94.6 - non-fmt IPC: 1.71 - fmt ns/decode+display: 47ns - fmt instructions/decode+display: 329.6 - fmt IPC: 1.898 for an overall ~50% reduction in runtimes to display instructions. writing into InstructionTextBuffer reduces overhead another ~10%. -- original message follows -- this is where much of https://github.com/iximeow/yaxpeax-arch/pull/7 originated. `std::fmt` as a primary writing mechanism has.. some limitations: * https://github.com/rust-lang/rust/issues/92993#issuecomment-2028915232 * https://github.com/llvm/llvm-project/issues/87440 * https://github.com/rust-lang/rust/pull/122770 and some more interesting more fundamental limitations - writing to a `T: fmt::Write` means implementations don't know if it's possible to write bytes in reverse order (useful for printing digits) or if it's OK to write too many bytes and then only advance `len` by the correct amount (useful for copying variable-length-but-short strings like register names). these are both perfectly fine to a `String` or `Vec`, less fine to do to a file descriptor like stdout. at the same time, `Colorize` and traits depending on it are very broken, for reasons described in yaxpeax-arch. so, this adapts `yaxpeax-x86` to use the new `DisplaySink` type for writing, with optimizations where appropriate and output spans for certain kinds of tokens - registers, integers, opcodes, etc. it's not a perfect replacement for Colorize-to-ANSI-supporting-outputs but it's more flexible and i think can be made right. along the way this completes the move of `safer_unchecked` out to yaxpeax-arch (ty @5225225 it's still so useful), cleans up some docs, and comes with a few new test cases. because of the major version bump of yaxpeax-arch, and because this removes most functionality of the Colorize impl - it prints the correct words, just without coloring - this is itself a major version bump to 2.0.0. yay! this in turn is a good point to change the `Opcode` enums from being tuple-like to struct-like, and i've done so in https://github.com/iximeow/yaxpeax-x86/commit/1b8019d5b39a05c109399b8628a1082bfec79755. full notes in CHANGELOG ofc. this is notes for myself when i'm trying to remember any of this in two years :) | |||
| 2024-06-24 | document one more stray unsafe | iximeow | |
| 2024-06-24 | add missing feature flag to real-mode ffi library | iximeow | |
| ffi/ still needs... much more work | |||
| 2024-06-24 | bench: fetch from fork updated for yaxpeax-x86 2.0.0 | iximeow | |
| 2024-06-24 | bump cargo version to 2.0.0, not quite releasing yet | iximeow | |
| 2024-06-24 | justify the current max instruction length | iximeow | |
| this is also checked by a new fuzz target | |||
| 2024-06-24 | consistently enter register/number/opcode spans | iximeow | |
| 2024-06-24 | one more stray docs error | iximeow | |
| 2024-06-24 | rename most operand variants, make them structy rather than tupley | iximeow | |
| 2024-06-23 | remove selects_cs(), cs() now does the right thing | iximeow | |
| 2024-06-23 | note yaxpeax-arch version bump in changelog | iximeow | |
| 2024-06-23 | update yaxpeax-arch to 0.3.1, fix fuzz target warnings | iximeow | |
| 2024-06-23 | nightly correctly remarked that == on fat pointers is ambiguous | iximeow | |
| 2024-06-23 | fix several sources of dead code warnings in various crate configs | iximeow | |
| 2024-06-23 | remove yaxpeax-x86 safer_unchecked.rs, it is now in yaxpeax-arch | iximeow | |
| 2024-06-23 | cfg_attr wants feature, not features plural | iximeow | |
| 2024-06-23 | last vestiges of initial perf experiments | iximeow | |
| 2024-06-23 | another fuzz bug | iximeow | |
| 2024-06-23 | fuzz caught negation bug | iximeow | |
| 2024-06-23 | InstructionTextBuffer for all three modes, adjust fuzzer to match | iximeow | |
| 2024-06-23 | stale file | iximeow | |
| 2024-06-23 | add additional `call` test cases | iximeow | |
| fix 32-bit 66-prefixed ff /2 call not having 16-bit operands fix momentary regression in rendering `call` instructions to string | |||
| 2024-06-23 | forward long deprecation allowances as appropriate | iximeow | |
| 2024-06-23 | adapt protected-mode display to real mode | iximeow | |
| 2024-06-23 | normalize imports, pull safer_unchecked from yaxpeax-arch | iximeow | |
| 2024-06-23 | fix inlining attributes re. profiling flag in protected_mode | iximeow | |
| 2024-06-23 | adapt OperandVisitor and related to real_mode | iximeow | |
| 2024-06-23 | adapt the rest of formating changes to protected_mode | iximeow | |
| 2024-06-23 | fix AbsoluteFarAddress being tagged as a memory operand | iximeow | |
| 2024-06-23 | adapt OperandVisitor to protected mode too | iximeow | |
| 2024-06-23 | centralize unsafe claims and better validate | iximeow | |
| 2024-06-23 | actually use new can_lock in 32b and 16b modes | iximeow | |
| 2024-06-23 | actually use new can_rep in 32b and 16b modes | iximeow | |
| 2024-06-23 | port opcode helpers and reordering to 32-bit and 16-bit decoders | iximeow | |
| 2024-06-23 | InstructionTextBuffer is only present with alloc (new crate flag) | iximeow | |
| 2024-06-23 | add more conditional inlining for 32-bit and 16-bit decoders | iximeow | |
| 2024-06-22 | NoColorsSink has a decent name now | iximeow | |
