summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Katzman <dougk@google.com>2015-04-29 18:48:29 +0000
committerDouglas Katzman <dougk@google.com>2015-04-29 18:48:29 +0000
commit9cb88b73c69fa4bd8ce7b4dc030239c795905de7 (patch)
tree445c3134d96a92bf08ca52021c77eecb2aed4a0d
parent66f2e12f7ac928367b40f38c0df2fd50edd537a6 (diff)
downloadbcm5719-llvm-9cb88b73c69fa4bd8ce7b4dc030239c795905de7.tar.gz
bcm5719-llvm-9cb88b73c69fa4bd8ce7b4dc030239c795905de7.zip
Make Sparc assembler accept parenthesized constant expressions.
Differential Revision: http://reviews.llvm.org/D9087 llvm-svn: 236137
-rw-r--r--llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp1
-rw-r--r--llvm/test/MC/Sparc/sparc-assembly-exprs.s6
2 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
index 28b70a4c26c..a094011366d 100644
--- a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
+++ b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
@@ -682,6 +682,7 @@ SparcAsmParser::parseSparcAsmOperand(std::unique_ptr<SparcOperand> &Op,
case AsmToken::Minus:
case AsmToken::Integer:
+ case AsmToken::LParen:
if (!getParser().parseExpression(EVal, E))
Op = SparcOperand::CreateImm(EVal, S, E);
break;
diff --git a/llvm/test/MC/Sparc/sparc-assembly-exprs.s b/llvm/test/MC/Sparc/sparc-assembly-exprs.s
new file mode 100644
index 00000000000..7fdc5a50345
--- /dev/null
+++ b/llvm/test/MC/Sparc/sparc-assembly-exprs.s
@@ -0,0 +1,6 @@
+! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
+
+ ! CHECK: mov 1033, %o1 ! encoding: [0x92,0x10,0x24,0x09]
+ mov (0x400|9), %o1
+ ! CHECK: mov 60, %o2 ! encoding: [0x94,0x10,0x20,0x3c]
+ mov (12+3<<2), %o2
OpenPOWER on IntegriCloud