Skip to content

Commit f47b073

Browse files
committed
[X86] Teach assembler to accept vmsave/vmload/vmrun/invlpga/skinit with or without the fixed register operands
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 ClangBuiltLinux/linux#1216 Differential Revision: https://reviews.llvm.org/D93524
1 parent a6516a8 commit f47b073

File tree

19 files changed

+110
-60
lines changed

19 files changed

+110
-60
lines changed

llvm/lib/Target/X86/X86InstrSVM.td

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,37 +26,47 @@ def CLGI : I<0x01, MRM_DD, (outs), (ins), "clgi", []>, TB;
2626

2727
// 0F 01 DE
2828
let Uses = [EAX] in
29-
def SKINIT : I<0x01, MRM_DE, (outs), (ins), "skinit\t{%eax|eax}", []>, TB;
29+
def SKINIT : I<0x01, MRM_DE, (outs), (ins), "skinit", []>, TB;
3030

3131
// 0F 01 D8
3232
let Uses = [EAX] in
33-
def VMRUN32 : I<0x01, MRM_D8, (outs), (ins), "vmrun\t{%eax|eax}", []>, TB,
33+
def VMRUN32 : I<0x01, MRM_D8, (outs), (ins), "vmrun", []>, TB,
3434
Requires<[Not64BitMode]>;
3535
let Uses = [RAX] in
36-
def VMRUN64 : I<0x01, MRM_D8, (outs), (ins), "vmrun\t{%rax|rax}", []>, TB,
36+
def VMRUN64 : I<0x01, MRM_D8, (outs), (ins), "vmrun", []>, TB,
3737
Requires<[In64BitMode]>;
3838

3939
// 0F 01 DA
4040
let Uses = [EAX] in
41-
def VMLOAD32 : I<0x01, MRM_DA, (outs), (ins), "vmload\t{%eax|eax}", []>, TB,
41+
def VMLOAD32 : I<0x01, MRM_DA, (outs), (ins), "vmload", []>, TB,
4242
Requires<[Not64BitMode]>;
4343
let Uses = [RAX] in
44-
def VMLOAD64 : I<0x01, MRM_DA, (outs), (ins), "vmload\t{%rax|rax}", []>, TB,
44+
def VMLOAD64 : I<0x01, MRM_DA, (outs), (ins), "vmload", []>, TB,
4545
Requires<[In64BitMode]>;
4646

4747
// 0F 01 DB
4848
let Uses = [EAX] in
49-
def VMSAVE32 : I<0x01, MRM_DB, (outs), (ins), "vmsave\t{%eax|eax}", []>, TB,
49+
def VMSAVE32 : I<0x01, MRM_DB, (outs), (ins), "vmsave", []>, TB,
5050
Requires<[Not64BitMode]>;
5151
let Uses = [RAX] in
52-
def VMSAVE64 : I<0x01, MRM_DB, (outs), (ins), "vmsave\t{%rax|rax}", []>, TB,
52+
def VMSAVE64 : I<0x01, MRM_DB, (outs), (ins), "vmsave", []>, TB,
5353
Requires<[In64BitMode]>;
5454

5555
// 0F 01 DF
5656
let Uses = [EAX, ECX] in
5757
def INVLPGA32 : I<0x01, MRM_DF, (outs), (ins),
58-
"invlpga\t{%eax, %ecx|eax, ecx}", []>, TB, Requires<[Not64BitMode]>;
58+
"invlpga", []>, TB, Requires<[Not64BitMode]>;
5959
let Uses = [RAX, ECX] in
6060
def INVLPGA64 : I<0x01, MRM_DF, (outs), (ins),
61-
"invlpga\t{%rax, %ecx|rax, ecx}", []>, TB, Requires<[In64BitMode]>;
61+
"invlpga", []>, TB, Requires<[In64BitMode]>;
6262
} // SchedRW
63+
64+
def : InstAlias<"skinit\t{%eax|eax}", (SKINIT), 0>;
65+
def : InstAlias<"vmrun\t{%eax|eax}", (VMRUN32), 0>, Requires<[Not64BitMode]>;
66+
def : InstAlias<"vmrun\t{%rax|rax}", (VMRUN64), 0>, Requires<[In64BitMode]>;
67+
def : InstAlias<"vmload\t{%eax|eax}", (VMLOAD32), 0>, Requires<[Not64BitMode]>;
68+
def : InstAlias<"vmload\t{%rax|rax}", (VMLOAD64), 0>, Requires<[In64BitMode]>;
69+
def : InstAlias<"vmsave\t{%eax|eax}", (VMSAVE32), 0>, Requires<[Not64BitMode]>;
70+
def : InstAlias<"vmsave\t{%rax|rax}", (VMSAVE64), 0>, Requires<[In64BitMode]>;
71+
def : InstAlias<"invlpga\t{%eax, %ecx|eax, ecx}", (INVLPGA32), 0>, Requires<[Not64BitMode]>;
72+
def : InstAlias<"invlpga\t{%rax, %ecx|rax, ecx}", (INVLPGA64), 0>, Requires<[In64BitMode]>;

llvm/test/MC/Disassembler/X86/simple-tests.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,16 @@
6666
# CHECK: vmptrst
6767
0x0f 0xc7 0x38
6868

69-
# CHECK: vmrun
69+
# CHECK: vmrun{{$}}
7070
0x0f 0x01 0xd8
7171

7272
# CHECK: vmmcall
7373
0x0f 0x01 0xd9
7474

75-
# CHECK: vmload
75+
# CHECK: vmload{{$}}
7676
0x0f 0x01 0xda
7777

78-
# CHECK: vmsave
78+
# CHECK: vmsave{{$}}
7979
0x0f 0x01 0xdb
8080

8181
# CHECK: stgi
@@ -84,10 +84,10 @@
8484
# CHECK: clgi
8585
0x0f 0x01 0xdd
8686

87-
# CHECK: skinit
87+
# CHECK: skinit{{$}}
8888
0x0f 0x01 0xde
8989

90-
# CHECK: invlpga
90+
# CHECK: invlpga{{$}}
9191
0x0f 0x01 0xdf
9292

9393
# CHECK: movl $0, -4(%rbp)

llvm/test/MC/X86/SVM-32.s

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,51 @@
44
// CHECK: encoding: [0x0f,0x01,0xdd]
55
clgi
66

7-
// CHECK: invlpga %eax, %ecx
7+
// CHECK: invlpga
88
// CHECK: encoding: [0x0f,0x01,0xdf]
99
invlpga %eax, %ecx
1010

11-
// CHECK: skinit %eax
11+
// CHECK: invlpga
12+
// CHECK: encoding: [0x0f,0x01,0xdf]
13+
invlpga
14+
15+
// CHECK: skinit
1216
// CHECK: encoding: [0x0f,0x01,0xde]
1317
skinit %eax
1418

19+
// CHECK: skinit
20+
// CHECK: encoding: [0x0f,0x01,0xde]
21+
skinit
22+
1523
// CHECK: stgi
1624
// CHECK: encoding: [0x0f,0x01,0xdc]
1725
stgi
1826

19-
// CHECK: vmload %eax
27+
// CHECK: vmload
2028
// CHECK: encoding: [0x0f,0x01,0xda]
2129
vmload %eax
2230

31+
// CHECK: vmload
32+
// CHECK: encoding: [0x0f,0x01,0xda]
33+
vmload
34+
2335
// CHECK: vmmcall
2436
// CHECK: encoding: [0x0f,0x01,0xd9]
2537
vmmcall
2638

27-
// CHECK: vmrun %eax
39+
// CHECK: vmrun
2840
// CHECK: encoding: [0x0f,0x01,0xd8]
2941
vmrun %eax
3042

31-
// CHECK: vmsave %eax
43+
// CHECK: vmrun
44+
// CHECK: encoding: [0x0f,0x01,0xd8]
45+
vmrun
46+
47+
// CHECK: vmsave
3248
// CHECK: encoding: [0x0f,0x01,0xdb]
3349
vmsave %eax
3450

51+
// CHECK: vmsave
52+
// CHECK: encoding: [0x0f,0x01,0xdb]
53+
vmsave
54+

llvm/test/MC/X86/SVM-64.s

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,51 @@
44
// CHECK: encoding: [0x0f,0x01,0xdd]
55
clgi
66

7-
// CHECK: invlpga %rax, %ecx
7+
// CHECK: invlpga
88
// CHECK: encoding: [0x0f,0x01,0xdf]
99
invlpga %rax, %ecx
1010

11-
// CHECK: skinit %eax
11+
// CHECK: invlpga
12+
// CHECK: encoding: [0x0f,0x01,0xdf]
13+
invlpga
14+
15+
// CHECK: skinit
1216
// CHECK: encoding: [0x0f,0x01,0xde]
1317
skinit %eax
1418

19+
// CHECK: skinit
20+
// CHECK: encoding: [0x0f,0x01,0xde]
21+
skinit
22+
1523
// CHECK: stgi
1624
// CHECK: encoding: [0x0f,0x01,0xdc]
1725
stgi
1826

19-
// CHECK: vmload %rax
27+
// CHECK: vmload
2028
// CHECK: encoding: [0x0f,0x01,0xda]
2129
vmload %rax
2230

31+
// CHECK: vmload
32+
// CHECK: encoding: [0x0f,0x01,0xda]
33+
vmload
34+
2335
// CHECK: vmmcall
2436
// CHECK: encoding: [0x0f,0x01,0xd9]
2537
vmmcall
2638

27-
// CHECK: vmrun %rax
39+
// CHECK: vmrun
2840
// CHECK: encoding: [0x0f,0x01,0xd8]
2941
vmrun %rax
3042

31-
// CHECK: vmsave %rax
43+
// CHECK: vmrun
44+
// CHECK: encoding: [0x0f,0x01,0xd8]
45+
vmrun
46+
47+
// CHECK: vmsave
3248
// CHECK: encoding: [0x0f,0x01,0xdb]
3349
vmsave %rax
3450

51+
// CHECK: vmsave
52+
// CHECK: encoding: [0x0f,0x01,0xdb]
53+
vmsave
54+

llvm/test/MC/X86/x86-32-coverage.s

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10476,16 +10476,16 @@
1047610476
// CHECK: vmxon 305419896
1047710477
vmxon 0x12345678
1047810478

10479-
// CHECK: vmrun %eax
10479+
// CHECK: vmrun
1048010480
vmrun %eax
1048110481

1048210482
// CHECK: vmmcall
1048310483
vmmcall
1048410484

10485-
// CHECK: vmload %eax
10485+
// CHECK: vmload
1048610486
vmload %eax
1048710487

10488-
// CHECK: vmsave %eax
10488+
// CHECK: vmsave
1048910489
vmsave %eax
1049010490

1049110491
// CHECK: stgi
@@ -10494,10 +10494,10 @@
1049410494
// CHECK: clgi
1049510495
clgi
1049610496

10497-
// CHECK: skinit %eax
10497+
// CHECK: skinit
1049810498
skinit %eax
1049910499

10500-
// CHECK: invlpga %eax, %ecx
10500+
// CHECK: invlpga
1050110501
invlpga %eax, %ecx
1050210502

1050310503
// CHECK: blendvps %xmm0, (%eax), %xmm1 # encoding: [0x66,0x0f,0x38,0x14,0x08]

llvm/test/MC/X86/x86-32.s

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@
4545
// CHECK: encoding: [0x0f,0x01,0xf8]
4646

4747
vmrun %eax
48-
// CHECK: vmrun %eax
48+
// CHECK: vmrun
4949
// CHECK: encoding: [0x0f,0x01,0xd8]
5050
vmmcall
5151
// CHECK: vmmcall
5252
// CHECK: encoding: [0x0f,0x01,0xd9]
5353
vmload %eax
54-
// CHECK: vmload %eax
54+
// CHECK: vmload
5555
// CHECK: encoding: [0x0f,0x01,0xda]
5656
vmsave %eax
57-
// CHECK: vmsave %eax
57+
// CHECK: vmsave
5858
// CHECK: encoding: [0x0f,0x01,0xdb]
5959
stgi
6060
// CHECK: stgi
@@ -63,10 +63,10 @@
6363
// CHECK: clgi
6464
// CHECK: encoding: [0x0f,0x01,0xdd]
6565
skinit %eax
66-
// CHECK: skinit %eax
66+
// CHECK: skinit
6767
// CHECK: encoding: [0x0f,0x01,0xde]
6868
invlpga %eax, %ecx
69-
// CHECK: invlpga %eax, %ecx
69+
// CHECK: invlpga
7070
// CHECK: encoding: [0x0f,0x01,0xdf]
7171

7272
rdtscp

llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
13831383
# CHECK-NEXT: 1 59 29.50 U insl %dx, %es:(%rdi)
13841384
# CHECK-NEXT: 1 127 63.50 * * U int $7
13851385
# CHECK-NEXT: 1 71 35.50 U invlpg (%rax)
1386-
# CHECK-NEXT: 1 71 35.50 U invlpga %rax, %ecx
1386+
# CHECK-NEXT: 1 71 35.50 U invlpga
13871387
# CHECK-NEXT: 1 2 1.00 lahf
13881388
# CHECK-NEXT: 1 2 1.00 * leave
13891389
# CHECK-NEXT: 1 2 1.00 U lodsb (%rsi), %al
@@ -2304,7 +2304,7 @@ xorq (%rax), %rdi
23042304
# CHECK-NEXT: 29.50 29.50 insl %dx, %es:(%rdi)
23052305
# CHECK-NEXT: 63.50 63.50 int $7
23062306
# CHECK-NEXT: 35.50 35.50 invlpg (%rax)
2307-
# CHECK-NEXT: 35.50 35.50 invlpga %rax, %ecx
2307+
# CHECK-NEXT: 35.50 35.50 invlpga
23082308
# CHECK-NEXT: 1.00 1.00 lahf
23092309
# CHECK-NEXT: 1.00 1.00 leave
23102310
# CHECK-NEXT: 1.00 1.00 lodsb (%rsi), %al

llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
13831383
# CHECK-NEXT: 1 100 0.33 U insl %dx, %es:(%rdi)
13841384
# CHECK-NEXT: 1 100 0.33 * * U int $7
13851385
# CHECK-NEXT: 1 100 0.33 U invlpg (%rax)
1386-
# CHECK-NEXT: 1 100 0.33 U invlpga %rax, %ecx
1386+
# CHECK-NEXT: 1 100 0.33 U invlpga
13871387
# CHECK-NEXT: 1 1 0.50 lahf
13881388
# CHECK-NEXT: 3 7 0.67 * leave
13891389
# CHECK-NEXT: 3 7 0.67 U lodsb (%rsi), %al
@@ -2310,7 +2310,7 @@ xorq (%rax), %rdi
23102310
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - insl %dx, %es:(%rdi)
23112311
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - int $7
23122312
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpg (%rax)
2313-
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga %rax, %ecx
2313+
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga
23142314
# CHECK-NEXT: - - 0.50 - - 0.50 - - lahf
23152315
# CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 leave
23162316
# CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 lodsb (%rsi), %al

llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
13831383
# CHECK-NEXT: 1 100 0.50 U insl %dx, %es:(%rdi)
13841384
# CHECK-NEXT: 1 100 0.50 * * U int $7
13851385
# CHECK-NEXT: 1 100 0.50 U invlpg (%rax)
1386-
# CHECK-NEXT: 1 100 0.50 U invlpga %rax, %ecx
1386+
# CHECK-NEXT: 1 100 0.50 U invlpga
13871387
# CHECK-NEXT: 4 2 2.00 lahf
13881388
# CHECK-NEXT: 1 1 1.00 * leave
13891389
# CHECK-NEXT: 1 100 0.50 U lodsb (%rsi), %al
@@ -2325,7 +2325,7 @@ xorq (%rax), %rdi
23252325
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - insl %dx, %es:(%rdi)
23262326
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - int $7
23272327
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpg (%rax)
2328-
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpga %rax, %ecx
2328+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpga
23292329
# CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - - - - - lahf
23302330
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leave
23312331
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lodsb (%rsi), %al

llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
13831383
# CHECK-NEXT: 8 20 1.25 U insl %dx, %es:(%rdi)
13841384
# CHECK-NEXT: 1 100 0.25 * * U int $7
13851385
# CHECK-NEXT: 1 100 0.25 U invlpg (%rax)
1386-
# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx
1386+
# CHECK-NEXT: 1 100 0.25 U invlpga
13871387
# CHECK-NEXT: 1 1 0.50 lahf
13881388
# CHECK-NEXT: 3 7 0.50 * leave
13891389
# CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al
@@ -2312,7 +2312,7 @@ xorq (%rax), %rdi
23122312
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi)
23132313
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7
23142314
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax)
2315-
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx
2315+
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga
23162316
# CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf
23172317
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave
23182318
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsb (%rsi), %al

llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
13831383
# CHECK-NEXT: 1 100 0.50 U insl %dx, %es:(%rdi)
13841384
# CHECK-NEXT: 1 100 0.50 * * U int $7
13851385
# CHECK-NEXT: 1 100 0.50 U invlpg (%rax)
1386-
# CHECK-NEXT: 1 100 0.50 U invlpga %rax, %ecx
1386+
# CHECK-NEXT: 1 100 0.50 U invlpga
13871387
# CHECK-NEXT: 1 1 0.50 lahf
13881388
# CHECK-NEXT: 1 1 0.50 * leave
13891389
# CHECK-NEXT: 1 100 0.50 U lodsb (%rsi), %al
@@ -2316,7 +2316,7 @@ xorq (%rax), %rdi
23162316
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - insl %dx, %es:(%rdi)
23172317
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - int $7
23182318
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - invlpg (%rax)
2319-
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - invlpga %rax, %ecx
2319+
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - invlpga
23202320
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lahf
23212321
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - leave
23222322
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lodsb (%rsi), %al

llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
13831383
# CHECK-NEXT: 1 100 0.33 U insl %dx, %es:(%rdi)
13841384
# CHECK-NEXT: 1 100 0.33 * * U int $7
13851385
# CHECK-NEXT: 1 100 0.33 U invlpg (%rax)
1386-
# CHECK-NEXT: 1 100 0.33 U invlpga %rax, %ecx
1386+
# CHECK-NEXT: 1 100 0.33 U invlpga
13871387
# CHECK-NEXT: 1 1 0.50 lahf
13881388
# CHECK-NEXT: 3 7 0.67 * leave
13891389
# CHECK-NEXT: 3 7 0.67 U lodsb (%rsi), %al
@@ -2310,7 +2310,7 @@ xorq (%rax), %rdi
23102310
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - insl %dx, %es:(%rdi)
23112311
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - int $7
23122312
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpg (%rax)
2313-
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga %rax, %ecx
2313+
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga
23142314
# CHECK-NEXT: - - 0.50 - - 0.50 - - lahf
23152315
# CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 leave
23162316
# CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 lodsb (%rsi), %al

llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,7 @@ xorq (%rax), %rdi
13831383
# CHECK-NEXT: 8 21 1.25 U insl %dx, %es:(%rdi)
13841384
# CHECK-NEXT: 1 100 0.25 * * U int $7
13851385
# CHECK-NEXT: 1 100 0.25 U invlpg (%rax)
1386-
# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx
1386+
# CHECK-NEXT: 1 100 0.25 U invlpga
13871387
# CHECK-NEXT: 1 1 0.50 lahf
13881388
# CHECK-NEXT: 3 7 0.50 * leave
13891389
# CHECK-NEXT: 3 1 0.50 U lodsb (%rsi), %al
@@ -2312,7 +2312,7 @@ xorq (%rax), %rdi
23122312
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi)
23132313
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7
23142314
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax)
2315-
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx
2315+
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga
23162316
# CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf
23172317
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave
23182318
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - lodsb (%rsi), %al

0 commit comments

Comments
 (0)