aboutsummaryrefslogtreecommitdiff
path: root/src/armv7/thumb.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/armv7/thumb.rs')
-rw-r--r--src/armv7/thumb.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/armv7/thumb.rs b/src/armv7/thumb.rs
index e9427d1..7aa3a5d 100644
--- a/src/armv7/thumb.rs
+++ b/src/armv7/thumb.rs
@@ -357,15 +357,14 @@ pub fn decode_into<T: Reader<<ARMv7 as Arch>::Address, <ARMv7 as Arch>::Word>>(d
// TODO: should_is_must()
// rt == 0b1111
// rd == 0b0000
- inst.opcode = Opcode::TBB;
+ inst.opcode = Opcode::TBH;
inst.operands = [
Operand::RegDerefPreindexRegShift(
Reg::from_u8(rn),
// want `<Rm>, LSL #1`, construct a raw shift
- // ourselves
+ // ourselves. bit 4 clear selects `RegImm`.
RegShift::from_raw(
- 0b10000 | // `RegImm`
- rd as u16 | // reg == rd
+ rd as u16 | // reg == rm
(0b00 << 5) | // LSL
(1 << 7) // shift == #1
),