From: Daniel Dunbar Date: Wed, 12 May 2010 00:54:20 +0000 (+0000) Subject: MC/X86: Extend suffix matching hack to match 'q' suffix. X-Git-Tag: android-x86-6.0-r1~1003^2~6581 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=0481449a0536311b5fefc9122ce679000540e013;p=android-x86%2Fexternal-llvm.git MC/X86: Extend suffix matching hack to match 'q' suffix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103535 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index 6b403c10a1e..460410baf45 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -673,6 +673,8 @@ X86ATTAsmParser::MatchInstruction(const SmallVectorImpl bool MatchW = MatchInstructionImpl(Operands, Inst); Tmp[Base.size()] = 'l'; bool MatchL = MatchInstructionImpl(Operands, Inst); + Tmp[Base.size()] = 'q'; + bool MatchQ = MatchInstructionImpl(Operands, Inst); // Restore the old token. Op->setTokenValue(Base); @@ -680,7 +682,7 @@ X86ATTAsmParser::MatchInstruction(const SmallVectorImpl // If exactly one matched, then we treat that as a successful match (and the // instruction will already have been filled in correctly, since the failing // matches won't have modified it). - if (MatchB + MatchW + MatchL == 2) + if (MatchB + MatchW + MatchL + MatchQ == 3) return false; // Otherwise, the match failed. diff --git a/test/MC/AsmParser/X86/x86_64-suffix-matching.s b/test/MC/AsmParser/X86/x86_64-suffix-matching.s index c4f0be2c6ea..0ae6fe502d1 100644 --- a/test/MC/AsmParser/X86/x86_64-suffix-matching.s +++ b/test/MC/AsmParser/X86/x86_64-suffix-matching.s @@ -4,3 +4,7 @@ add $0, %eax // CHECK: addb $255, %al add $0xFF, %al +// CHECK: orq %rax, %rdx + or %rax, %rdx +// CHECK: shlq $3, %rax + shl $3, %rax