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 | db55b02e1ce9e192f22ac43df6d1b52c536d0eaf (patch) | |
tree | 42fd155a5129a42197cb823e0d9f1c64bf494fb3 | |
parent | 531a5be4d07328b9a1b61a4ddf1b1750b1e22a68 (diff) | |
download | bcm5719-llvm-db55b02e1ce9e192f22ac43df6d1b52c536d0eaf.tar.gz bcm5719-llvm-db55b02e1ce9e192f22ac43df6d1b52c536d0eaf.zip |
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.
llvm-svn: 204427
-rw-r--r-- | llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp | 16 | ||||
-rw-r--r-- | llvm/test/MC/ARM/shift-offset-addressing-emission.s | 9 |
2 files changed, 2 insertions, 23 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp index a12b8d4b771..3b2ca73aecd 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp +++ b/llvm/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. diff --git a/llvm/test/MC/ARM/shift-offset-addressing-emission.s b/llvm/test/MC/ARM/shift-offset-addressing-emission.s deleted file mode 100644 index 1dbd80e2050..00000000000 --- a/llvm/test/MC/ARM/shift-offset-addressing-emission.s +++ /dev/null @@ -1,9 +0,0 @@ -@ RUN: llvm-mc -triple armv7-elf -filetype obj -o - %s \ -@ RUN: | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck %s - - cmp r0, #(.L2 - .L1) -.L1: -.L2: - -@ CHECK: 0: cmp r0, #0 - |