summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/AsmParser
diff options
context:
space:
mode:
authorMihai Popa <mihail.popa@gmail.com>2013-06-11 09:48:35 +0000
committerMihai Popa <mihail.popa@gmail.com>2013-06-11 09:48:35 +0000
commitc1d119ed6e87747861e76ea3d6a8a12704d78d94 (patch)
treec7d7be582f57ef274a19bf1261998fb36be3d7d8 /llvm/lib/Target/ARM/AsmParser
parent1c7be576c572e82fd36d66177fa315b228567e76 (diff)
downloadbcm5719-llvm-c1d119ed6e87747861e76ea3d6a8a12704d78d94.tar.gz
bcm5719-llvm-c1d119ed6e87747861e76ea3d6a8a12704d78d94.zip
It adds support for negative zero offsets for loads and stores.
Negative zero is returned by the primary expression parser as INT32_MIN, so all that the method needs to do is to accept this value. Behavior already present for Thumb2. llvm-svn: 183734
Diffstat (limited to 'llvm/lib/Target/ARM/AsmParser')
-rw-r--r--llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index 314d37d7d58..c59ca64c117 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -994,7 +994,7 @@ public:
const MCConstantExpr *CE = dyn_cast<MCConstantExpr>(getImm());
if (!CE) return false;
int64_t Val = CE->getValue();
- return Val > -4096 && Val < 4096;
+ return (Val == INT32_MIN) || (Val > -4096 && Val < 4096);
}
bool isAddrMode3() const {
// If we have an immediate that's not a constant, treat it as a label
OpenPOWER on IntegriCloud