aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2012-01-17 21:25:10 +0000
committerDevang Patel <dpatel@apple.com>2012-01-17 21:25:10 +0000
commit6220fea2a877e5cff559ed38e98c59a076ea9825 (patch)
treea44be87973a693a1703a86fad4df93fcd87c99e7
parentfced2945995b4fd8f28f7dec9fcb5a6ab2e2798d (diff)
Intel syntax: Parse "BYTE PTR [RDX + RCX]"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148334 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/AsmParser/X86AsmParser.cpp4
-rw-r--r--test/MC/X86/intel-syntax.s2
2 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp
index b31993c0f2..75e286625b 100644
--- a/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -637,6 +637,10 @@ X86Operand *X86AsmParser::ParseIntelBracExpression(unsigned Size) {
Disp = isPlus ? ValExpr : MCUnaryExpr::CreateMinus(ValExpr, getContext());
} else
return ErrorOperand(PlusLoc, "unexpected token after +");
+ } else if (getLexer().is(AsmToken::Identifier)) {
+ IndexReg = getIntelRegisterOperand(Tok.getString());
+ if (IndexReg)
+ Parser.Lex();
}
}
diff --git a/test/MC/X86/intel-syntax.s b/test/MC/X86/intel-syntax.s
index 2966dd7822..42638f2685 100644
--- a/test/MC/X86/intel-syntax.s
+++ b/test/MC/X86/intel-syntax.s
@@ -23,6 +23,8 @@ _main:
mov RCX, QWORD PTR [0]
// CHECK: movl -24(%rsp,%rax,4), %eax
mov EAX, DWORD PTR [RSP + 4*RAX - 24]
+// CHECK: movb %dil, (%rdx,%rcx)
+ mov BYTE PTR [RDX + RCX], DIL
// CHECK: callq _test
call _test
ret