Index: src/arm/simulator-arm.cc |
diff --git a/src/arm/simulator-arm.cc b/src/arm/simulator-arm.cc |
index 563912bf6fa14e5c0d1dfb06fa033c097f288023..4c1698e330b565f83dc2eff3a9a02fc8a90a64db 100644 |
--- a/src/arm/simulator-arm.cc |
+++ b/src/arm/simulator-arm.cc |
@@ -2920,7 +2920,15 @@ void Simulator::DecodeType3(Instruction* instr) { |
} |
} |
} else { |
- UNIMPLEMENTED(); |
+ // PU == 0b01, BW == 0b11, Bits(9, 6) != 0b0001 |
+ if ((instr->Bits(20, 16) == 0x1f) && |
+ (instr->Bits(11, 4) == 0xf3)) { |
+ // Rbit. |
+ uint32_t rm_val = get_register(instr->RmValue()); |
+ set_register(rd, base::bits::ReverseBits(rm_val)); |
+ } else { |
+ UNIMPLEMENTED(); |
+ } |
} |
break; |
} |