diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-10-22 00:40:00 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-10-22 00:40:00 +0000 |
commit | 0f55e9ce2e1c451cfc5b7978c3bbe46b2def4c48 (patch) | |
tree | cdb50c4d775ccdf34632cd587a1d04a06e580a8f /llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp | |
parent | 6746d43a3fcf964b2254ee3983b22ca71e814a34 (diff) | |
download | bcm5719-llvm-0f55e9ce2e1c451cfc5b7978c3bbe46b2def4c48.tar.gz bcm5719-llvm-0f55e9ce2e1c451cfc5b7978c3bbe46b2def4c48.zip |
Don't generate sbfx / ubfx with negative lsb field. Patch by David Conrad.
llvm-svn: 84813
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp index 6e976936d98..5c1835b46a2 100644 --- a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp +++ b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp @@ -1287,7 +1287,7 @@ SDNode *ARMDAGToDAGISel::SelectV6T2BitfieldExtractOp(SDValue Op, assert(Srl_imm > 0 && Srl_imm < 32 && "bad amount in shift node!"); unsigned Width = 32 - Srl_imm; int LSB = Srl_imm - Shl_imm; - if ((LSB + Width) > 32) + if (LSB < 0) return NULL; SDValue Reg0 = CurDAG->getRegister(0, MVT::i32); SDValue Ops[] = { Op.getOperand(0).getOperand(0), |