summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2013-05-09 23:48:53 +0000
committerChad Rosier <mcrosier@apple.com>2013-05-09 23:48:53 +0000
commitedb1dc8498c3e8917bdf955bd07212a1d05a2c21 (patch)
tree4a2094ab39ce5872ef2df37f904e24c1af4f2180 /llvm
parent85378316bfb597efbe592a3b36b5b053229cea0f (diff)
downloadbcm5719-llvm-edb1dc8498c3e8917bdf955bd07212a1d05a2c21.tar.gz
bcm5719-llvm-edb1dc8498c3e8917bdf955bd07212a1d05a2c21.zip
[x86AsmParser] It's valid to stop parsing an operand at an immediate.
rdar://13854369 and PR15944 llvm-svn: 181564
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp4
-rw-r--r--llvm/test/MC/X86/intel-syntax.s2
2 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index 68908abb576..520c4c0048e 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -219,7 +219,9 @@ private:
const MCExpr *getSym() { return Sym; }
StringRef getSymName() { return SymName; }
int64_t getImm() { return Imm + IC.execute(); }
- bool isValidEndState() { return State == IES_RBRAC; }
+ bool isValidEndState() {
+ return State == IES_RBRAC || State == IES_INTEGER;
+ }
bool getStopOnLBrac() { return StopOnLBrac; }
bool getAddImmPrefix() { return AddImmPrefix; }
bool hadError() { return State == IES_ERROR; }
diff --git a/llvm/test/MC/X86/intel-syntax.s b/llvm/test/MC/X86/intel-syntax.s
index b2f337dac9d..fa1ba5ba543 100644
--- a/llvm/test/MC/X86/intel-syntax.s
+++ b/llvm/test/MC/X86/intel-syntax.s
@@ -322,4 +322,6 @@ _main:
setnle al
// CHECK: jne _foo
jnz _foo
+// CHECK: outb %al, $4
+ out 4, al
ret
OpenPOWER on IntegriCloud