[llvm] r331158 - [X86] Remove some instructions from the Intel assembly matcher table as there are equivalent mode aware InstAliases that conflict.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 29 23:21:21 PDT 2018


Author: ctopper
Date: Sun Apr 29 23:21:21 2018
New Revision: 331158

URL: http://llvm.org/viewvc/llvm-project?rev=331158&view=rev
Log:
[X86] Remove some instructions from the Intel assembly matcher table as there are equivalent mode aware InstAliases that conflict.

The instructions have predicates of Not64BitMode, but there are identical strings in InstAliases that have Mode32Bit and Mode16Bit. But the ordering is uncontrolled and the less specific Not64BitMode was ordered first.

This patch hides the Not64BitMode from the table so there is no conflict anymore.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrControl.td

Modified: llvm/trunk/lib/Target/X86/X86InstrControl.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrControl.td?rev=331158&r1=331157&r2=331158&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrControl.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrControl.td Sun Apr 29 23:21:21 2018
@@ -167,7 +167,7 @@ let isBranch = 1, isTerminator = 1, isBa
                       Requires<[In64BitMode]>, Sched<[WriteJumpLd]>, NOTRACK;
   }
 
-  let Predicates = [Not64BitMode] in {
+  let Predicates = [Not64BitMode], AsmVariantName = "att" in {
     def FARJMP16i  : Iseg16<0xEA, RawFrmImm16, (outs),
                             (ins i16imm:$off, i16imm:$seg),
                             "ljmp{w}\t$seg, $off", []>,
@@ -244,7 +244,7 @@ let isCall = 1 in
                         Sched<[WriteJumpLd]>, NOTRACK;
     }
 
-    let Predicates = [Not64BitMode] in {
+    let Predicates = [Not64BitMode], AsmVariantName = "att" in {
       def FARCALL16i  : Iseg16<0x9A, RawFrmImm16, (outs),
                                (ins i16imm:$off, i16imm:$seg),
                                "lcall{w}\t$seg, $off", []>,




More information about the llvm-commits mailing list