aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
24 hoursOpcode and Operand should be non-exhaustiveiximeow
but exhaustiveness checking is very valuable here, so allow it to be disabled. caveats apply. read the docs in Cargo.toml.
24 hoursavoid subtle changes to A64 Opcode enum discriminant choicesiximeow
24 hourstag instruction decode fixes, differential test precisioniximeow
24 hoursfix opcode display for ldgMartin Fink
24 hoursvisitor-oriented fmtiximeow
this makes a decode+format benchmark drop from 75s to 14s... (decode is 5s)
2025-06-20changelog + another inlineiximeow
2025-06-02some armv7 decode helpers are trivial functions but didn't inlineiximeow
both from_u8 and the build function here compiled to truly trivial code: four instructions (mov rdi, rax; cmp 0xlim, rax; jae panic; ret) in the hot path, and constrained register choice on the caller side. inlining these makes for a *smaller* armv7 decoder, on the order of 5kb down from 5.5kb. in the process it also gets about 45% faster (400mb/s to 560mb/s) inlining decode_into, then, really just helps the standalone decoder benchmark case. this moves decode throughput from 560mb/s to 724mb/s.
2025-05-25support the rest of PAC instructions. compare to a more recent capstoneiximeow
capstone-rs currently binds an old capstone (4.0), where capstone 5.0 is where much of the armv8.2+ implementation was ported over from LLVM. so, differential testing is now pointed to a capstone-rs fork pending the merge of https://github.com/capstone-rust/capstone-rs/pull/172
2024-06-25Bump yaxpeax-arch and bitvec, allow use of deprecated yaxpeax-arch traits, ↵novafacing
fix bitvec syntax changes
2024-06-25Add support for `udf`Martin Fink
2024-03-17at least armv7t doesnt panic now, but im very uncertain these are rightiximeow
2024-03-17ye olde "const array rebuilt in locals with simd but static is const" issueiximeow
2024-03-17ah uxtw/h fix introduced warningsiximeow
2024-03-17fix uxtb/uxth alias being incorrectly applied with x-size registersiximeow
2024-03-17when decoding invalid opcodes, return errors. better testing for this ↵iximeow
circumstance.
2024-03-17be more explicit about undefined system instructions being invalidiximeow
2024-03-17system instruction and register improvementsiximeow
* cN instead of crN for control registers * # for immediates in sys/sysl instructions * write out ARM system register names in the way the ARM reference manual says
2024-03-16ldrab and ldraa tests, fix immediate decodingiximeow
2024-03-16test dmb and make immediates shown with the immediate prefixiximeow
2024-03-16fix movi (immediate) to unpack immediate correctlyiximeow
.... and add tests that exercise movi with an immediate other than 0
2024-03-16fix ldrsw register sizeiximeow
also unignore tests that would have caught this fix test expectation that predated using pc-relative syntax and fix a test that expected an instruction to be disassembled as "invalid" successfully, rather than returning an error
2024-03-09improve msr register decodingiximeow
"improve" rather than "fix" as `pstate.0x3` is hardly as useful as `msr uao, #3`. but the "pstate field" that had been decoded before was totally incorrect.
2024-03-09fix armv8 a64 decoder hint instructionsbelovdv
2023-11-02ah and a doc comment for the public method0.2.4iximeow
2023-11-02make RegShift::into_shift publicwscp
2023-01-31fix 24-bit branch immediate decodingjam1garner
2022-09-29Fix 32-bit conditional thumb branchesMitchell Johnson
Correct the shift used to select condition bits and correctly compute the branch offset.
2022-09-29Fix negative unconditional 16-bit thumb branchesMitchell Johnson
Sign extension shift had an off-by-one error so the sign bit was not being properly extended.
2022-09-29Fix 32-bit Thumb unconditional branch decodingMitchell Johnson
T4 encodings of unconditional branches were not being interpreted correctly (#6), and 32-bit bl/blx instructions were similarly incorrect. Correct the bits selected for op1 and op2 and handle the slightly-unusual i1/i2 sign bit xor for these instructions.
2022-04-08Fix no_std buildsMitchell Johnson
2022-01-02fix docs that failed to buildiximeow
2022-01-02why did that compileiximeow
2022-01-02document the crateiximeow
2022-01-01capstone/yax differences, test pac more comprehensivelyiximeow
2022-01-01fix float formatteriximeow
integer floats need a .0, the rest get default precision
2022-01-01more inconvenient test case handlingiximeow
2022-01-01test expectation cleanupiximeow
2022-01-01start getting the msr/hint situation under controliximeow
2021-12-31more pac instructions, fmov fixesiximeow
2021-12-31fix more invalid rejects, misdecodes, test casesiximeow
2021-12-31shift/sm3ss fixesiximeow
2021-12-31sshll is weirdiximeow
2021-12-31pac, cfi, other misc cleanup, notes and todosiximeow
2021-12-30many many MORE one-off fixes from differential testingiximeow
2021-12-29many incorrect decode/reject cases fixediximeow
2021-12-29ldapr/stlr (unscaled immediate)iximeow
2021-12-29memory tagsiximeow
2021-12-29more missed tables and manual compatiximeow
2021-12-29more misc fixesiximeow
2021-12-29simd table lookupiximeow