diff options
author | David Goodwin <david_goodwin@apple.com> | 2009-07-14 18:48:51 +0000 |
---|---|---|
committer | David Goodwin <david_goodwin@apple.com> | 2009-07-14 18:48:51 +0000 |
commit | 419c6150877bb35bd3a95a3101e47f6615c8e390 (patch) | |
tree | 6e470f45433950355ec9f6d89afdd22e688b487f /lib | |
parent | d51e5d0ee7137b278933e74aad098a8bf24329ef (diff) | |
download | external_llvm-419c6150877bb35bd3a95a3101e47f6615c8e390.zip external_llvm-419c6150877bb35bd3a95a3101e47f6615c8e390.tar.gz external_llvm-419c6150877bb35bd3a95a3101e47f6615c8e390.tar.bz2 |
hasThumb2() does not mean we are compiling for thumb, must also check isThumb().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75660 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/ARM/ARMISelDAGToDAG.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp index 75e956b..fe4b4ed 100644 --- a/lib/Target/ARM/ARMISelDAGToDAG.cpp +++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp @@ -902,7 +902,8 @@ SDNode *ARMDAGToDAGISel::Select(SDValue Op) { return CurDAG->SelectNodeTo(N, ARM::tADDrSPi, MVT::i32, TFI, CurDAG->getTargetConstant(0, MVT::i32)); } else { - unsigned Opc = Subtarget->hasThumb2() ? ARM::t2ADDri : ARM::ADDri; + unsigned Opc = ((Subtarget->isThumb() && Subtarget->hasThumb2()) ? + ARM::t2ADDri : ARM::ADDri); SDValue Ops[] = { TFI, CurDAG->getTargetConstant(0, MVT::i32), getAL(CurDAG), CurDAG->getRegister(0, MVT::i32), CurDAG->getRegister(0, MVT::i32) }; @@ -941,7 +942,8 @@ SDNode *ARMDAGToDAGISel::Select(SDValue Op) { CurDAG->getTargetConstant(ShImm, MVT::i32), getAL(CurDAG), CurDAG->getRegister(0, MVT::i32), CurDAG->getRegister(0, MVT::i32) }; - return CurDAG->SelectNodeTo(N, (Subtarget->hasThumb2()) ? + return CurDAG->SelectNodeTo(N, (Subtarget->isThumb() && + Subtarget->hasThumb2()) ? ARM::t2ADDrs : ARM::ADDrs, MVT::i32, Ops, 7); } if (isPowerOf2_32(RHSV+1)) { // 2^n-1? @@ -951,7 +953,8 @@ SDNode *ARMDAGToDAGISel::Select(SDValue Op) { CurDAG->getTargetConstant(ShImm, MVT::i32), getAL(CurDAG), CurDAG->getRegister(0, MVT::i32), CurDAG->getRegister(0, MVT::i32) }; - return CurDAG->SelectNodeTo(N, (Subtarget->hasThumb2()) ? + return CurDAG->SelectNodeTo(N, (Subtarget->isThumb() && + Subtarget->hasThumb2()) ? ARM::t2RSBrs : ARM::RSBrs, MVT::i32, Ops, 7); } } |