Make Sparc assembler accept parenthesized constant expressions.
authorDouglas Katzman <dougk@google.com>
Wed, 29 Apr 2015 18:48:29 +0000 (18:48 +0000)
committerDouglas Katzman <dougk@google.com>
Wed, 29 Apr 2015 18:48:29 +0000 (18:48 +0000)
Differential Revision: http://reviews.llvm.org/D9087

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236137 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
test/MC/Sparc/sparc-assembly-exprs.s [new file with mode: 0644]

index 28b70a4c26c8b723aae5c4335f620a2a0637feec..a094011366d9665874fc29fff77722eda212a138 100644 (file)
@@ -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/test/MC/Sparc/sparc-assembly-exprs.s b/test/MC/Sparc/sparc-assembly-exprs.s
new file mode 100644 (file)
index 0000000..7fdc5a5
--- /dev/null
@@ -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