[llvm] r350483 - [X86][AsmParser] Don't allow X86::DX in CheckBaseRegAndIndexRegAndScale.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 5 15:30:28 PST 2019


Author: ctopper
Date: Sat Jan  5 15:30:28 2019
New Revision: 350483

URL: http://llvm.org/viewvc/llvm-project?rev=350483&view=rev
Log:
[X86][AsmParser] Don't allow X86::DX in CheckBaseRegAndIndexRegAndScale.

This was here because out and in instructions allow '(%dx)' even though its not a memory reference. To handle this we build a special operand for the DX register reference before we get to the call to CheckBaseRegAndIndexRegAndScale. So we no longer need this special case.

Modified:
    llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp

Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=350483&r1=350482&r2=350483&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Sat Jan  5 15:30:28 2019
@@ -1011,8 +1011,7 @@ static bool CheckBaseRegAndIndexRegAndSc
   // and then only in non-64-bit modes.
   if (X86MCRegisterClasses[X86::GR16RegClassID].contains(BaseReg) &&
       (Is64BitMode || (BaseReg != X86::BX && BaseReg != X86::BP &&
-                       BaseReg != X86::SI && BaseReg != X86::DI)) &&
-      BaseReg != X86::DX) {
+                       BaseReg != X86::SI && BaseReg != X86::DI))) {
     ErrMsg = "invalid 16-bit base register";
     return true;
   }




More information about the llvm-commits mailing list