aboutsummaryrefslogtreecommitdiff
path: root/tests/armv7/thumb.rs
AgeCommit message (Collapse)Author
8 hoursthat case is not unpredictable anymore!iximeow
8 hoursimmediate consistency across the libraryiximeow
8 hoursreport rounding bit of smmla/smmlsiximeow
9 hoursfix hvc immediate missing its upper four bitsiximeow
9 hoursfix ssat/16 second operand off by one, testcasesiximeow
9 hoursfix issues around unpredictable ldrd and offset printingiximeow
9 hoursfix {s,u}xt{h,b}[16] using an immediate to describe their rotatesiximeow
9 hoursfix mrc/mrc2 use of CRd=15iximeow
9 hoursmore lining up differential testsiximeow
2026-08-06cdp/mrc/mcr opc1 is wider than display knowsiximeow
i *think* this is fixing an issue that was introduced in the diff between 0.4.0 and 0.5.0, so it's elided from the changelog..
2026-08-04write condition code *before* .w suffixiximeow
2026-08-04msr confusion like with mrs..iximeow
2026-08-03armv8 thumb-mode hintsiximeow
2026-08-03decode unknown wide hints like any other hintsiximeow
2026-08-02fix swapped rfe{ia,db} and srs{ia,db}iximeow
2026-08-02fix missing decode of `s` bit for wide shift/rotate opsiximeow
2026-08-02thumb ldc/stc encodings missed a bitiximeow
2026-08-02thumb2 preload improvementsiximeow
2026-08-02pkhbt/pkhtb bitmask confusioniximeow
2026-08-02Test Target, fix bogus MRS destinationsiximeow
2026-08-02thumb mrs/msr first operand was wildly wrongiximeow
2026-07-28temp, armv8-thumbiximeow
2026-07-28thumb2: fix parallel addition/subtraction, (un)signediximeow
2026-07-28thumb: when nonconforming, allow it/cond=1111 like capstoneiximeow
2026-07-28differential test should tolerate a few more differencesiximeow
2026-07-28lsl/mov aliasingiximeow
2026-07-28fix thumb2 TBH decode: wrong opcode and register-shift operandBrandon Ros
the T1 TBH arm set Opcode::TBB instead of Opcode::TBH, and built the index operand with bit 4 set in the RegShift raw value. bit 4 is the RegReg selector in RegShift::into_shift, so the mandatory 'lsl #1' index scaling decoded as a register shift 'lsl r0' instead. clear bit 4 so it reads back as the RegImm 'lsl #1' the encoding specifies. verified against binutils objdump: df e8 13 f0 is tbh [pc, r3, lsl #1].
2026-07-28fix more thumb2 register data-processing decode bugsBrandon Ros
- register-controlled shifts (lsl/lsr/asr/ror by register) all decoded as lsl: the shift type was read from hw1[6:5] (always 0 for this form) instead of hw0[6:5] - 32-bit uxt*/sxt* extends read the ror amount from the wrong field (hw1[2:1] scaled by 4 instead of hw1[5:4] scaled by 8), so a no-rotation extend came back as ror #4; rotation of 0 is now omitted - sxtab was decoded as sxtah (wrong opcode table entry) all cases verified against binutils objdump
2026-07-28fix several thumb2 decode bugsBrandon Ros
- 32-bit store encodings with the imm12 bit (bit 23) set were decoded as the register-offset form when imm12 < 64, or as strbt/strht/strt when imm12 was 0xExx. bit 23 set always means the imm12 form. - movw/movt packed imm4 at bit 16 instead of bit 12, producing 20-bit immediates (e.g. 0xf0005 instead of 0xf005) - mvn (immediate) was decoded as mov, dropping the bitwise not - ror (immediate) was decoded as asr all cases verified against binutils objdump
2022-09-29Add a test for issue #3Mitchell Johnson
2022-09-29Add some additional 32-bit thumb branch decode test casesMitchell Johnson
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-02get test situation in orderiximeow