Reapply r179115, but use parsePrimaryExpression a little more judiciously.
authorChad Rosier <mcrosier@apple.com>
Wed, 10 Apr 2013 17:35:30 +0000 (17:35 +0000)
committerChad Rosier <mcrosier@apple.com>
Wed, 10 Apr 2013 17:35:30 +0000 (17:35 +0000)
commitba69b366929a39d393e7eed0bbf2edc31d8de599
treebdb781c0154504364b38eb9fa592066ccbe89e4c
parentb187f8cd1ce98e40405ce8acf49997444646408a
Reapply r179115, but use parsePrimaryExpression a little more judiciously.
Test cases that regressed due to r179115, plus a few more, were added in
r179182.  Original commit message below:

[ms-inline asm] Use parsePrimaryExpr in lieu of parseExpression if we need to
parse an identifier.  Otherwise, parseExpression may parse multiple tokens,
which makes it impossible to properly compute an immediate displacement.
An example of such a case is the source operand (i.e., [Symbol + ImmDisp]) in
the below example:

 __asm mov eax, [Symbol + ImmDisp]

Part of rdar://13611297

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179187 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCParser/MCAsmParser.h
lib/MC/MCParser/AsmParser.cpp
lib/Target/X86/AsmParser/X86AsmParser.cpp