diff options
author | Jiangning Liu <jiangning.liu@arm.com> | 2014-03-21 02:51:01 +0000 |
---|---|---|
committer | Jiangning Liu <jiangning.liu@arm.com> | 2014-03-21 02:51:01 +0000 |
commit | 705e53e2aa854a04b5ce0cc8ddcd98a6a16c46e3 (patch) | |
tree | f52b5234fe06cdf25685338751450eb0e3f50d64 /lib | |
parent | fb307be5afa79bc65b75885ee6c3ced3b450b037 (diff) | |
download | llvm-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.cpp | 16 |
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. |