summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJiangning Liu <jiangning.liu@arm.com>2014-03-21 02:51:01 +0000
committerJiangning Liu <jiangning.liu@arm.com>2014-03-21 02:51:01 +0000
commit705e53e2aa854a04b5ce0cc8ddcd98a6a16c46e3 (patch)
treef52b5234fe06cdf25685338751450eb0e3f50d64 /lib
parentfb307be5afa79bc65b75885ee6c3ced3b450b037 (diff)
downloadllvm-705e53e2aa854a04b5ce0cc8ddcd98a6a16c46e3.tar.gz
llvm-705e53e2aa854a04b5ce0cc8ddcd98a6a16c46e3.tar.bz2
llvm-705e53e2aa854a04b5ce0cc8ddcd98a6a16c46e3.tar.xz
This reverts commit r203762, "ARM: support emission of complex SO expressions".
The commit r203762 introduced silent failure for complext SO expression, and it's even worse than compiler crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204427 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp16
1 files changed, 2 insertions, 14 deletions
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
index a12b8d4b77..3b2ca73aec 100644
--- a/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
+++ b/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
@@ -271,20 +271,8 @@ public:
unsigned getSOImmOpValue(const MCInst &MI, unsigned Op,
SmallVectorImpl<MCFixup> &Fixups,
const MCSubtargetInfo &STI) const {
- int SoImmVal = -1;
-
- const MCOperand &MO = MI.getOperand(Op);
- if (MO.isImm()) {
- SoImmVal = ARM_AM::getSOImmVal(MO.getImm());
- } else if (MO.isExpr()) {
- int64_t Value;
- bool Invalid = MO.getExpr()->EvaluateAsAbsolute(Value);
- (void) Invalid;
- assert(!Invalid && "non-constant expression is not a valid SOImm operand");
- assert((Value >= INT32_MIN && Value <= INT32_MAX) &&
- "expression must be representable in 32 bits");
- SoImmVal = Value;
- }
+ unsigned SoImm = MI.getOperand(Op).getImm();
+ int SoImmVal = ARM_AM::getSOImmVal(SoImm);
assert(SoImmVal != -1 && "Not a valid so_imm value!");
// Encode rotate_imm.