aboutsummaryrefslogtreecommitdiff
path: root/src/armv7/thumb.rs
AgeCommit message (Collapse)Author
6 daysBump yaxpeax-arch and bitvec, allow use of deprecated yaxpeax-arch traits, ↵novafacing
fix bitvec syntax changes
2024-03-17at least armv7t doesnt panic now, but im very uncertain these are rightiximeow
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-01-02fix docs that failed to buildiximeow
2021-09-28fix various armv8 and armv8 panics that should be Err.iximeow
in fact the decoder should _never_ panic. included here are tests that cover the entire 32-bit instruction space and ensure that decoding and display do not panic. these tests run uncomfortably slowly (1168s to decode the 4b "instruction" sequences on my desktop), but verify that panics are no longer an issue.
2021-07-06update yaxpeax_arch and bump version to 0.1.00.1.0iximeow
2020-12-06TODONE: adr with add/subtracted offsetiximeow
instead of trying to shoehorn in `adr reg, label` syntax like the manual requests, it's much easier to just describe these as `{add, sub} reg, pc, offset` and potentially rewrite `pc, offset` as an `adr reg, label` if a higher-level tool has that kind of information available.
2020-12-06propagate up invalid thumb immediate expansioniximeow
2020-12-06warning cleanup (test edition)iximeow
add in some simd tests for future neon decoding. these tests are drawn from capstone and may need some subsequent cleanup
2020-12-06support CPS (change processor state) and some warming cleanupiximeow
2020-12-06add ldc/sdc instructions and a slew of 32b thumb2 testsiximeow
2020-12-06support more mul/div variantsiximeow
2020-12-06thumb parallel addition and subtractioniximeow
2020-12-06fill out more missing thumb2 decoderiximeow
2020-12-06fix more incomplete cases, report arm instruction length properlyiximeow
2020-12-06remove "Incomplete" opcode from arm7 non-thumb decoderiximeow
2020-12-06fix selection from wrong instr word, clean up .w suffixesiximeow
2020-12-06fix regimm masksiximeow
2020-12-06numerous one-off mis-specializations, most of ld/prefetch hintsiximeow
2020-12-06fix off by one in a mask for data-processing (shifted register)iximeow
2020-12-06fix incorrect operand selectioniximeow
2020-12-06use bitvec in thumb decoderiximeow
2020-12-06fix some 32-bit thumb2 instructions, hook up .w, `s`, and a few typosiximeow
mostly confusion of pre/post-increment, operand widths, immediate widths, things of that nature
2020-12-06add thumb/thumb2 decodingiximeow
16-bit instructions only, for now