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
This commit is contained in:
Jiangning Liu 2014-03-21 02:51:01 +00:00
parent fb307be5af
commit 705e53e2aa
2 changed files with 2 additions and 23 deletions

View File

@ -271,20 +271,8 @@ public:
unsigned getSOImmOpValue(const MCInst &MI, unsigned Op, unsigned getSOImmOpValue(const MCInst &MI, unsigned Op,
SmallVectorImpl<MCFixup> &Fixups, SmallVectorImpl<MCFixup> &Fixups,
const MCSubtargetInfo &STI) const { const MCSubtargetInfo &STI) const {
int SoImmVal = -1; unsigned SoImm = MI.getOperand(Op).getImm();
int SoImmVal = ARM_AM::getSOImmVal(SoImm);
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;
}
assert(SoImmVal != -1 && "Not a valid so_imm value!"); assert(SoImmVal != -1 && "Not a valid so_imm value!");
// Encode rotate_imm. // Encode rotate_imm.

View File

@ -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