aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Target/ARM/ARMInstrInfo.td3
-rw-r--r--test/MC/Disassembler/ARM/arm-tests.txt7
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td
index b0660a0..2f9da43 100644
--- a/lib/Target/ARM/ARMInstrInfo.td
+++ b/lib/Target/ARM/ARMInstrInfo.td
@@ -939,6 +939,7 @@ multiclass AI1_adde_sube_s_irs<bits<4> opcod, string opc, PatFrag opnode,
bits<4> Rd;
bits<4> Rn;
bits<12> imm;
+ let Inst{31-27} = 0b1110; // non-predicated
let Inst{15-12} = Rd;
let Inst{19-16} = Rn;
let Inst{11-0} = imm;
@@ -952,6 +953,7 @@ multiclass AI1_adde_sube_s_irs<bits<4> opcod, string opc, PatFrag opnode,
bits<4> Rd;
bits<4> Rn;
bits<4> Rm;
+ let Inst{31-27} = 0b1110; // non-predicated
let Inst{11-4} = 0b00000000;
let isCommutable = Commutable;
let Inst{3-0} = Rm;
@@ -967,6 +969,7 @@ multiclass AI1_adde_sube_s_irs<bits<4> opcod, string opc, PatFrag opnode,
bits<4> Rd;
bits<4> Rn;
bits<12> shift;
+ let Inst{31-27} = 0b1110; // non-predicated
let Inst{11-0} = shift;
let Inst{15-12} = Rd;
let Inst{19-16} = Rn;
diff --git a/test/MC/Disassembler/ARM/arm-tests.txt b/test/MC/Disassembler/ARM/arm-tests.txt
index 4e39e8e..c66f8ce 100644
--- a/test/MC/Disassembler/ARM/arm-tests.txt
+++ b/test/MC/Disassembler/ARM/arm-tests.txt
@@ -226,3 +226,10 @@
# CHECK: blx #60
0x0f 0x00 0x00 0xfa
+
+# CHECK-NOT: adcs r10, r8, r0, asr #6
+# CHECK: adcshi r10, r8, r0, asr #6
+0x40 0xa3 0xb8 0x80
+
+# CHECK: adcshi r10, r8, r0, asr r3
+0x50 0xa3 0xb8 0x80