aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMISelLowering.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2011-07-21 18:54:16 +0000
committerOwen Anderson <resistor@mac.com>2011-07-21 18:54:16 +0000
commit92a202213bb4c20301abf6ab64e46df3695e60bf (patch)
treeea32134f1f818aa4c39815bf26129c890bff42e9 /lib/Target/ARM/ARMISelLowering.cpp
parenta305fe75450348677a228f7d0f1cc53b2504b562 (diff)
Split up the ARM so_reg ComplexPattern into so_reg_reg and so_reg_imm, allowing us to distinguish the encodings that use shifted registers from those that use shifted immediates. This is necessary to allow the fixed-length decoder to distinguish things like BICS vs LDRH.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135693 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMISelLowering.cpp')
-rw-r--r--lib/Target/ARM/ARMISelLowering.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp
index 129b1bcd00..2a7b058715 100644
--- a/lib/Target/ARM/ARMISelLowering.cpp
+++ b/lib/Target/ARM/ARMISelLowering.cpp
@@ -5224,15 +5224,19 @@ struct AddSubFlagsOpcodePair {
static AddSubFlagsOpcodePair AddSubFlagsOpcodeMap[] = {
{ARM::ADCSri, ARM::ADCri},
{ARM::ADCSrr, ARM::ADCrr},
- {ARM::ADCSrs, ARM::ADCrs},
+ {ARM::ADCSrsi, ARM::ADCrsi},
+ {ARM::ADCSrsr, ARM::ADCrsr},
{ARM::SBCSri, ARM::SBCri},
{ARM::SBCSrr, ARM::SBCrr},
- {ARM::SBCSrs, ARM::SBCrs},
+ {ARM::SBCSrsi, ARM::SBCrsi},
+ {ARM::SBCSrsr, ARM::SBCrsr},
{ARM::RSBSri, ARM::RSBri},
{ARM::RSBSrr, ARM::RSBrr},
- {ARM::RSBSrs, ARM::RSBrs},
+ {ARM::RSBSrsi, ARM::RSBrsi},
+ {ARM::RSBSrsr, ARM::RSBrsr},
{ARM::RSCSri, ARM::RSCri},
- {ARM::RSCSrs, ARM::RSCrs},
+ {ARM::RSCSrsi, ARM::RSCrsi},
+ {ARM::RSCSrsr, ARM::RSCrsr},
{ARM::t2ADCSri, ARM::t2ADCri},
{ARM::t2ADCSrr, ARM::t2ADCrr},
{ARM::t2ADCSrs, ARM::t2ADCrs},