[X86] Teach assembler to accept vmsave/vmload/vmrun/invlpga/skinit with or without...
authorCraig Topper <craig.topper@sifive.com>
Fri, 18 Dec 2020 08:54:45 +0000 (00:54 -0800)
committerCraig Topper <craig.topper@sifive.com>
Sat, 19 Dec 2020 19:01:55 +0000 (11:01 -0800)
These instructions read their inputs from fixed registers rather
than using a modrm byte. We shouldn't require the user to list them
when parsing assembly. This matches the GNU assembler.

This patch adds InstAliases so we can accept either form. It also
changes the printing code to use the form without registers. This
will change the behavior of llvm-objdump, but should be consistent
with binutils objdump. This also matches what we already do in LLVM for
clzero and monitorx which also used fixed registers.

I need to add and improve tests before this can be commited. The
disassembler tests exist, but weren't checking the fixed register
so they pass before and after this change.

Fixes https://github.com/ClangBuiltLinux/linux/issues/1216

Differential Revision: https://reviews.llvm.org/D93524

19 files changed:
llvm/lib/Target/X86/X86InstrSVM.td
llvm/test/MC/Disassembler/X86/simple-tests.txt
llvm/test/MC/X86/SVM-32.s
llvm/test/MC/X86/SVM-64.s
llvm/test/MC/X86/x86-32-coverage.s
llvm/test/MC/X86/x86-32.s
llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s

index 82c8e74..d8f70b0 100644 (file)
@@ -26,37 +26,47 @@ def CLGI : I<0x01, MRM_DD, (outs), (ins), "clgi", []>, TB;
 
 // 0F 01 DE
 let Uses = [EAX] in
-def SKINIT : I<0x01, MRM_DE, (outs), (ins), "skinit\t{%eax|eax}", []>, TB;
+def SKINIT : I<0x01, MRM_DE, (outs), (ins), "skinit", []>, TB;
 
 // 0F 01 D8
 let Uses = [EAX] in
-def VMRUN32 : I<0x01, MRM_D8, (outs), (ins), "vmrun\t{%eax|eax}", []>, TB,
+def VMRUN32 : I<0x01, MRM_D8, (outs), (ins), "vmrun", []>, TB,
                 Requires<[Not64BitMode]>;
 let Uses = [RAX] in
-def VMRUN64 : I<0x01, MRM_D8, (outs), (ins), "vmrun\t{%rax|rax}", []>, TB,
+def VMRUN64 : I<0x01, MRM_D8, (outs), (ins), "vmrun", []>, TB,
                 Requires<[In64BitMode]>;
 
 // 0F 01 DA
 let Uses = [EAX] in
-def VMLOAD32 : I<0x01, MRM_DA, (outs), (ins), "vmload\t{%eax|eax}", []>, TB,
+def VMLOAD32 : I<0x01, MRM_DA, (outs), (ins), "vmload", []>, TB,
                  Requires<[Not64BitMode]>;
 let Uses = [RAX] in
-def VMLOAD64 : I<0x01, MRM_DA, (outs), (ins), "vmload\t{%rax|rax}", []>, TB,
+def VMLOAD64 : I<0x01, MRM_DA, (outs), (ins), "vmload", []>, TB,
                  Requires<[In64BitMode]>;
 
 // 0F 01 DB
 let Uses = [EAX] in
-def VMSAVE32 : I<0x01, MRM_DB, (outs), (ins), "vmsave\t{%eax|eax}", []>, TB,
+def VMSAVE32 : I<0x01, MRM_DB, (outs), (ins), "vmsave", []>, TB,
                  Requires<[Not64BitMode]>;
 let Uses = [RAX] in
-def VMSAVE64 : I<0x01, MRM_DB, (outs), (ins), "vmsave\t{%rax|rax}", []>, TB,
+def VMSAVE64 : I<0x01, MRM_DB, (outs), (ins), "vmsave", []>, TB,
                  Requires<[In64BitMode]>;
 
 // 0F 01 DF
 let Uses = [EAX, ECX] in
 def INVLPGA32 : I<0x01, MRM_DF, (outs), (ins),
-                "invlpga\t{%eax, %ecx|eax, ecx}", []>, TB, Requires<[Not64BitMode]>;
+                "invlpga", []>, TB, Requires<[Not64BitMode]>;
 let Uses = [RAX, ECX] in
 def INVLPGA64 : I<0x01, MRM_DF, (outs), (ins),
-                "invlpga\t{%rax, %ecx|rax, ecx}", []>, TB, Requires<[In64BitMode]>;
+                "invlpga", []>, TB, Requires<[In64BitMode]>;
 } // SchedRW
+
+def : InstAlias<"skinit\t{%eax|eax}", (SKINIT), 0>;
+def : InstAlias<"vmrun\t{%eax|eax}", (VMRUN32), 0>, Requires<[Not64BitMode]>;
+def : InstAlias<"vmrun\t{%rax|rax}", (VMRUN64), 0>, Requires<[In64BitMode]>;
+def : InstAlias<"vmload\t{%eax|eax}", (VMLOAD32), 0>, Requires<[Not64BitMode]>;
+def : InstAlias<"vmload\t{%rax|rax}", (VMLOAD64), 0>, Requires<[In64BitMode]>;
+def : InstAlias<"vmsave\t{%eax|eax}", (VMSAVE32), 0>, Requires<[Not64BitMode]>;
+def : InstAlias<"vmsave\t{%rax|rax}", (VMSAVE64), 0>, Requires<[In64BitMode]>;
+def : InstAlias<"invlpga\t{%eax, %ecx|eax, ecx}", (INVLPGA32), 0>, Requires<[Not64BitMode]>;
+def : InstAlias<"invlpga\t{%rax, %ecx|rax, ecx}", (INVLPGA64), 0>, Requires<[In64BitMode]>;
index 6248cbd..21f9c4d 100644 (file)
 # CHECK: vmptrst
 0x0f 0xc7 0x38
 
-# CHECK: vmrun
+# CHECK: vmrun{{$}}
 0x0f 0x01 0xd8
 
 # CHECK: vmmcall
 0x0f 0x01 0xd9
 
-# CHECK: vmload
+# CHECK: vmload{{$}}
 0x0f 0x01 0xda
 
-# CHECK: vmsave
+# CHECK: vmsave{{$}}
 0x0f 0x01 0xdb
 
 # CHECK: stgi
 # CHECK: clgi
 0x0f 0x01 0xdd
 
-# CHECK: skinit
+# CHECK: skinit{{$}}
 0x0f 0x01 0xde
 
-# CHECK: invlpga
+# CHECK: invlpga{{$}}
 0x0f 0x01 0xdf
 
 # CHECK: movl $0, -4(%rbp)
index c08eb81..5b7834e 100644 (file)
@@ -4,31 +4,51 @@
 // CHECK: encoding: [0x0f,0x01,0xdd]          
 clgi 
 
-// CHECK: invlpga %eax, %ecx 
+// CHECK: invlpga
 // CHECK: encoding: [0x0f,0x01,0xdf]        
 invlpga %eax, %ecx 
 
-// CHECK: skinit %eax 
+// CHECK: invlpga
+// CHECK: encoding: [0x0f,0x01,0xdf]        
+invlpga
+
+// CHECK: skinit
 // CHECK: encoding: [0x0f,0x01,0xde]         
 skinit %eax 
 
+// CHECK: skinit
+// CHECK: encoding: [0x0f,0x01,0xde]         
+skinit
+
 // CHECK: stgi 
 // CHECK: encoding: [0x0f,0x01,0xdc]          
 stgi 
 
-// CHECK: vmload %eax 
+// CHECK: vmload
 // CHECK: encoding: [0x0f,0x01,0xda]         
 vmload %eax 
 
+// CHECK: vmload
+// CHECK: encoding: [0x0f,0x01,0xda]         
+vmload
+
 // CHECK: vmmcall 
 // CHECK: encoding: [0x0f,0x01,0xd9]          
 vmmcall 
 
-// CHECK: vmrun %eax 
+// CHECK: vmrun
 // CHECK: encoding: [0x0f,0x01,0xd8]         
 vmrun %eax 
 
-// CHECK: vmsave %eax 
+// CHECK: vmrun
+// CHECK: encoding: [0x0f,0x01,0xd8]         
+vmrun
+
+// CHECK: vmsave
 // CHECK: encoding: [0x0f,0x01,0xdb]         
 vmsave %eax 
 
+// CHECK: vmsave
+// CHECK: encoding: [0x0f,0x01,0xdb]         
+vmsave
+
index 6ed73fd..d1bc567 100644 (file)
@@ -4,31 +4,51 @@
 // CHECK: encoding: [0x0f,0x01,0xdd]          
 clgi 
 
-// CHECK: invlpga %rax, %ecx 
+// CHECK: invlpga
 // CHECK: encoding: [0x0f,0x01,0xdf]        
 invlpga %rax, %ecx 
 
-// CHECK: skinit %eax 
+// CHECK: invlpga
+// CHECK: encoding: [0x0f,0x01,0xdf]        
+invlpga
+
+// CHECK: skinit
 // CHECK: encoding: [0x0f,0x01,0xde]         
 skinit %eax 
 
+// CHECK: skinit
+// CHECK: encoding: [0x0f,0x01,0xde]         
+skinit
+
 // CHECK: stgi 
 // CHECK: encoding: [0x0f,0x01,0xdc]          
 stgi 
 
-// CHECK: vmload %rax 
+// CHECK: vmload
 // CHECK: encoding: [0x0f,0x01,0xda]         
 vmload %rax 
 
+// CHECK: vmload
+// CHECK: encoding: [0x0f,0x01,0xda]         
+vmload
+
 // CHECK: vmmcall 
 // CHECK: encoding: [0x0f,0x01,0xd9]          
 vmmcall 
 
-// CHECK: vmrun %rax 
+// CHECK: vmrun
 // CHECK: encoding: [0x0f,0x01,0xd8]         
 vmrun %rax 
 
-// CHECK: vmsave %rax 
+// CHECK: vmrun
+// CHECK: encoding: [0x0f,0x01,0xd8]         
+vmrun
+
+// CHECK: vmsave
 // CHECK: encoding: [0x0f,0x01,0xdb]         
 vmsave %rax 
 
+// CHECK: vmsave
+// CHECK: encoding: [0x0f,0x01,0xdb]         
+vmsave
+
index d215688..feadfa4 100644 (file)
 // CHECK:      vmxon   305419896
                vmxon   0x12345678
 
-// CHECK:      vmrun %eax
+// CHECK:      vmrun
                vmrun %eax
 
 // CHECK:      vmmcall
                vmmcall
 
-// CHECK:      vmload %eax
+// CHECK:      vmload
                vmload %eax
 
-// CHECK:      vmsave %eax
+// CHECK:      vmsave
                vmsave %eax
 
 // CHECK:      stgi
 // CHECK:      clgi
                clgi
 
-// CHECK:      skinit %eax
+// CHECK:      skinit
                skinit %eax
 
-// CHECK:      invlpga %eax, %ecx
+// CHECK:      invlpga
                invlpga %eax, %ecx
 
 // CHECK:   blendvps   %xmm0, (%eax), %xmm1   # encoding: [0x66,0x0f,0x38,0x14,0x08]
index 426ab61..3dba916 100644 (file)
 // CHECK: encoding: [0x0f,0x01,0xf8]
 
        vmrun %eax
-// CHECK: vmrun %eax
+// CHECK: vmrun
 // CHECK: encoding: [0x0f,0x01,0xd8]
        vmmcall
 // CHECK: vmmcall
 // CHECK: encoding: [0x0f,0x01,0xd9]
        vmload %eax
-// CHECK: vmload %eax
+// CHECK: vmload
 // CHECK: encoding: [0x0f,0x01,0xda]
        vmsave %eax
-// CHECK: vmsave %eax
+// CHECK: vmsave
 // CHECK: encoding: [0x0f,0x01,0xdb]
        stgi
 // CHECK: stgi
 // CHECK: clgi
 // CHECK: encoding: [0x0f,0x01,0xdd]
        skinit %eax
-// CHECK: skinit %eax
+// CHECK: skinit
 // CHECK: encoding: [0x0f,0x01,0xde]
        invlpga %eax, %ecx
-// CHECK: invlpga %eax, %ecx
+// CHECK: invlpga
 // CHECK: encoding: [0x0f,0x01,0xdf]
 
        rdtscp
index 9fb2ce1..db3cf6f 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      59    29.50                 U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      127   63.50   *      *      U     int    $7
 # CHECK-NEXT:  1      71    35.50                 U     invlpg (%rax)
-# CHECK-NEXT:  1      71    35.50                 U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      71    35.50                 U     invlpga
 # CHECK-NEXT:  1      2     1.00                        lahf
 # CHECK-NEXT:  1      2     1.00    *                   leave
 # CHECK-NEXT:  1      2     1.00                  U     lodsb  (%rsi), %al
@@ -2304,7 +2304,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 29.50  29.50  insl       %dx, %es:(%rdi)
 # CHECK-NEXT: 63.50  63.50  int        $7
 # CHECK-NEXT: 35.50  35.50  invlpg     (%rax)
-# CHECK-NEXT: 35.50  35.50  invlpga    %rax, %ecx
+# CHECK-NEXT: 35.50  35.50  invlpga
 # CHECK-NEXT: 1.00   1.00   lahf
 # CHECK-NEXT: 1.00   1.00   leave
 # CHECK-NEXT: 1.00   1.00   lodsb      (%rsi), %al
index 19894f3..c9e7f63 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.33    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.33                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.33                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.33                  U     invlpga
 # CHECK-NEXT:  1      1     0.50                        lahf
 # CHECK-NEXT:  3      7     0.67    *                   leave
 # CHECK-NEXT:  3      7     0.67                  U     lodsb  (%rsi), %al
@@ -2310,7 +2310,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insl     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     int      $7
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     invlpg   (%rax)
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     invlpga  %rax, %ecx
+# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     invlpga
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     lahf
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67   0.50   0.50   leave
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67   0.50   0.50   lodsb    (%rsi), %al
index 3b4c94a..b60a873 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.50                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.50                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.50                  U     invlpga
 # CHECK-NEXT:  4      2     2.00                        lahf
 # CHECK-NEXT:  1      1     1.00    *                   leave
 # CHECK-NEXT:  1      100   0.50                  U     lodsb  (%rsi), %al
@@ -2325,7 +2325,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insl    %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     int     $7
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     invlpg  (%rax)
-# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     invlpga %rax, %ecx
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     invlpga
 # CHECK-NEXT:  -      -      -      -      -     2.00   2.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lahf
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     leave
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lodsb   (%rsi), %al
index aa232ce..389e095 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      20    1.25                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.25                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.25                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.25                  U     invlpga
 # CHECK-NEXT:  1      1     0.50                        lahf
 # CHECK-NEXT:  3      7     0.50    *                   leave
 # CHECK-NEXT:  1      100   0.25                  U     lodsb  (%rsi), %al
@@ -2312,7 +2312,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insl       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     int        $7
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpg     (%rax)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpga    %rax, %ecx
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpga
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     lahf
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     leave
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsb      (%rsi), %al
index b59c5ea..b0c89f0 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.50                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.50                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.50                  U     invlpga
 # CHECK-NEXT:  1      1     0.50                        lahf
 # CHECK-NEXT:  1      1     0.50    *                   leave
 # CHECK-NEXT:  1      100   0.50                  U     lodsb  (%rsi), %al
@@ -2316,7 +2316,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     insl   %dx, %es:(%rdi)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     int    $7
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     invlpg (%rax)
-# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     invlpga        %rax, %ecx
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     invlpga
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     lahf
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     leave
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     lodsb  (%rsi), %al
index 19894f3..c9e7f63 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.33    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.33                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.33                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.33                  U     invlpga
 # CHECK-NEXT:  1      1     0.50                        lahf
 # CHECK-NEXT:  3      7     0.67    *                   leave
 # CHECK-NEXT:  3      7     0.67                  U     lodsb  (%rsi), %al
@@ -2310,7 +2310,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insl     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     int      $7
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     invlpg   (%rax)
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     invlpga  %rax, %ecx
+# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     invlpga
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     lahf
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67   0.50   0.50   leave
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67   0.50   0.50   lodsb    (%rsi), %al
index 7f629b5..c265464 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      21    1.25                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.25                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.25                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.25                  U     invlpga
 # CHECK-NEXT:  1      1     0.50                        lahf
 # CHECK-NEXT:  3      7     0.50    *                   leave
 # CHECK-NEXT:  3      1     0.50                  U     lodsb  (%rsi), %al
@@ -2312,7 +2312,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insl       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     int        $7
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpg     (%rax)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpga    %rax, %ecx
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpga
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     lahf
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     leave
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     lodsb      (%rsi), %al
index b4ede6c..28b6763 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   1.00                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   1.00    *      *      U     int    $7
 # CHECK-NEXT:  1      100   1.00                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   1.00                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   1.00                  U     invlpga
 # CHECK-NEXT:  1      1     0.50                        lahf
 # CHECK-NEXT:  1      1     0.50    *                   leave
 # CHECK-NEXT:  1      100   1.00                  U     lodsb  (%rsi), %al
@@ -2310,7 +2310,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     insl     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     int      $7
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     invlpg   (%rax)
-# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     invlpga  %rax, %ecx
+# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     invlpga
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     lahf
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     leave
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     lodsb    (%rsi), %al
index 70850ef..1df4761 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.33    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.33                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.33                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.33                  U     invlpga
 # CHECK-NEXT:  1      1     0.50                        lahf
 # CHECK-NEXT:  3      7     0.67    *                   leave
 # CHECK-NEXT:  3      7     0.67                  U     lodsb  (%rsi), %al
@@ -2310,7 +2310,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insl     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     int      $7
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     invlpg   (%rax)
-# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     invlpga  %rax, %ecx
+# CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     invlpga
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     lahf
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67   0.50   0.50   leave
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67   0.50   0.50   lodsb    (%rsi), %al
index 05deb0e..c0da94b 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      20    1.25                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.25                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.25                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.25                  U     invlpga
 # CHECK-NEXT:  1      1     0.50                        lahf
 # CHECK-NEXT:  3      7     0.50    *                   leave
 # CHECK-NEXT:  1      100   0.25                  U     lodsb  (%rsi), %al
@@ -2312,7 +2312,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insl       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     int        $7
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpg     (%rax)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpga    %rax, %ecx
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpga
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     lahf
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     leave
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsb      (%rsi), %al
index 224ec29..907d7cc 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      20    1.25                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.25                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.25                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.25                  U     invlpga
 # CHECK-NEXT:  1      1     0.50                        lahf
 # CHECK-NEXT:  3      7     0.50    *                   leave
 # CHECK-NEXT:  1      100   0.25                  U     lodsb  (%rsi), %al
@@ -2312,7 +2312,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insl       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     int        $7
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpg     (%rax)
-# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpga    %rax, %ecx
+# CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     invlpga
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     lahf
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     leave
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     lodsb      (%rsi), %al
index d888cb3..34c3336 100644 (file)
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.25                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.25                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.25                  U     invlpga
 # CHECK-NEXT:  1      100   0.25                        lahf
 # CHECK-NEXT:  2      8     0.50    *                   leave
 # CHECK-NEXT:  1      100   0.25                  U     lodsb  (%rsi), %al
@@ -2314,7 +2314,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     insl %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     int  $7
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     invlpg       (%rax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     invlpga      %rax, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     invlpga
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     lahf
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     leave
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     lodsb        (%rsi), %al
index 8849e32..c290729 100644 (file)
@@ -1185,7 +1185,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     insl   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.25    *      *      U     int    $7
 # CHECK-NEXT:  1      100   0.25                  U     invlpg (%rax)
-# CHECK-NEXT:  1      100   0.25                  U     invlpga        %rax, %ecx
+# CHECK-NEXT:  1      100   0.25                  U     invlpga
 # CHECK-NEXT:  1      100   0.25                        lahf
 # CHECK-NEXT:  2      8     0.33    *                   leave
 # CHECK-NEXT:  1      100   0.25                  U     lodsb  (%rsi), %al
@@ -1986,7 +1986,7 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     insl  %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     int   $7
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     invlpg        (%rax)
-# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     invlpga       %rax, %ecx
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     invlpga
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     lahf
 # CHECK-NEXT: 0.33   0.33   0.33   0.25   0.25   0.25   0.25    -      -      -      -      -      -     leave
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -      -     lodsb (%rsi), %al