aboutsummaryrefslogtreecommitdiff
path: root/src/armv7/thumb.rs
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2026-08-03 00:53:34 +0000
committeriximeow <me@iximeow.net>2026-08-03 00:53:34 +0000
commit0a874bce72cff033004599c4a2dc061ea0782c7f (patch)
tree94d8c0bc3db5ebb49d9987a79e209821cd44e7ec /src/armv7/thumb.rs
parent5f48fb91742f9e9977b499959861a8a40d4ec03c (diff)
armv8 thumb-mode hints
Diffstat (limited to 'src/armv7/thumb.rs')
-rw-r--r--src/armv7/thumb.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/armv7/thumb.rs b/src/armv7/thumb.rs
index cba18a4..d4bef7a 100644
--- a/src/armv7/thumb.rs
+++ b/src/armv7/thumb.rs
@@ -1797,6 +1797,39 @@ pub fn decode_into<T: Reader<<ARMv7 as Arch>::Address, <ARMv7 as Arch>::Word>>(d
Operand::Nothing,
];
}
+ 0b00001101 => {
+ // `PACBTI T1`
+ // v8
+ inst.opcode = Opcode::PACBTI;
+ inst.operands = [
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ ];
+ }
+ 0b00001111 => {
+ // `BTI T1`
+ // v8
+ inst.opcode = Opcode::BTI;
+ inst.operands = [
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ ];
+ }
+ 0b00010000 => {
+ // `ESB T1`
+ // v8
+ inst.opcode = Opcode::ESB;
+ inst.operands = [
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ ];
+ }
0b00010100 => {
// `CSDB` (`A8-376`)
// v6T2
@@ -1808,6 +1841,28 @@ pub fn decode_into<T: Reader<<ARMv7 as Arch>::Address, <ARMv7 as Arch>::Word>>(d
Operand::Nothing,
];
}
+ 0b00011101 => {
+ // `PAC T1`
+ // v8
+ inst.opcode = Opcode::PAC;
+ inst.operands = [
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ ];
+ }
+ 0b00101101 => {
+ // `AUT T1`
+ // v8
+ inst.opcode = Opcode::AUT;
+ inst.operands = [
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ Operand::Nothing,
+ ];
+ }
hint => {
// from DDI0406 C.d (v7):
// > Encodings with op1 set to 0b000 and a value of