Skip to content

Commit 1f59211

Browse files
committed
resolve comments
1 parent 46d0cff commit 1f59211

File tree

3 files changed

+29
-37
lines changed

3 files changed

+29
-37
lines changed

llvm/lib/Target/X86/X86InstrKL.td

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,11 @@ multiclass Aesencdecwide<string suffix> {
7878
def AESDECWIDE256KL#suffix : I<0xD8, MRM3m, (outs), (ins opaquemem:$src), "aesdecwide256kl\t$src", []>, NoCD8, XS;
7979
}
8080

81-
let SchedRW = [WriteSystem] in {
82-
let Uses = [XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7],
83-
Defs = [EFLAGS, XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7],
84-
mayLoad = 1 in {
85-
let Predicates = [HasWIDEKL, NoEGPR] in
86-
defm "" : Aesencdecwide<"">, T8;
81+
let SchedRW = [WriteSystem], Uses = [XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7],
82+
Defs = [EFLAGS, XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7], mayLoad = 1 in {
83+
let Predicates = [HasWIDEKL, NoEGPR] in
84+
defm "" : Aesencdecwide<"">, T8;
8785

88-
let Predicates = [HasWIDEKL, HasEGPR, In64BitMode] in
89-
defm "" : Aesencdecwide<"_EVEX">, EVEX, T_MAP4;
90-
}
86+
let Predicates = [HasWIDEKL, HasEGPR, In64BitMode] in
87+
defm "" : Aesencdecwide<"_EVEX">, EVEX, T_MAP4;
9188
} // SchedRW

llvm/lib/Target/X86/X86InstrMisc.td

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,20 +1561,20 @@ multiclass Enqcmds<string suffix> {
15611561
def ENQCMD32#suffix : I<0xF8, MRMSrcMem, (outs), (ins GR32:$dst, i512mem_GR32:$src),
15621562
"enqcmd\t{$src, $dst|$dst, $src}",
15631563
[(set EFLAGS, (X86enqcmd GR32:$dst, addr:$src))]>,
1564-
NoCD8, XD, AdSize32, Requires<[HasENQCMD, NoEGPR]>;
1564+
NoCD8, XD, AdSize32;
15651565
def ENQCMD64#suffix : I<0xF8, MRMSrcMem, (outs), (ins GR64:$dst, i512mem_GR64:$src),
15661566
"enqcmd\t{$src, $dst|$dst, $src}",
15671567
[(set EFLAGS, (X86enqcmd GR64:$dst, addr:$src))]>,
1568-
NoCD8, XD, AdSize64, Requires<[HasENQCMD, NoEGPR, In64BitMode]>;
1568+
NoCD8, XD, AdSize64;
15691569

15701570
def ENQCMDS32#suffix : I<0xF8, MRMSrcMem, (outs), (ins GR32:$dst, i512mem_GR32:$src),
15711571
"enqcmds\t{$src, $dst|$dst, $src}",
15721572
[(set EFLAGS, (X86enqcmds GR32:$dst, addr:$src))]>,
1573-
NoCD8, XS, AdSize32, Requires<[HasENQCMD, NoEGPR]>;
1573+
NoCD8, XS, AdSize32;
15741574
def ENQCMDS64#suffix : I<0xF8, MRMSrcMem, (outs), (ins GR64:$dst, i512mem_GR64:$src),
15751575
"enqcmds\t{$src, $dst|$dst, $src}",
15761576
[(set EFLAGS, (X86enqcmds GR64:$dst, addr:$src))]>,
1577-
NoCD8, XS, AdSize64, Requires<[HasENQCMD, NoEGPR, In64BitMode]>;
1577+
NoCD8, XS, AdSize64;
15781578
}
15791579

15801580
let SchedRW = [WriteStore], Defs = [EFLAGS] in {
@@ -1587,9 +1587,8 @@ let SchedRW = [WriteStore], Defs = [EFLAGS] in {
15871587
[(set EFLAGS, (X86enqcmds GR16:$dst, addr:$src))]>,
15881588
T8, XS, AdSize16, Requires<[HasENQCMD, Not64BitMode]>;
15891589

1590-
defm "" : Enqcmds<"">, T8;
1591-
let Predicates = [HasENQCMD, HasEGPR, In64BitMode] in
1592-
defm "" : Enqcmds<"_EVEX">, EVEX, T_MAP4;
1590+
defm "" : Enqcmds<"">, T8, Requires<[HasENQCMD, NoEGPR]>;
1591+
defm "" : Enqcmds<"_EVEX">, EVEX, T_MAP4, Requires<[HasENQCMD, HasEGPR, In64BitMode]>;
15931592

15941593
}
15951594

llvm/lib/Target/X86/X86InstrSystem.td

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -436,39 +436,35 @@ def WRMSRLIST : I<0x01, MRM_C6, (outs), (ins), "wrmsrlist", []>, TB, XS;
436436
def RDMSRLIST : I<0x01, MRM_C6, (outs), (ins), "rdmsrlist", []>, TB, XD;
437437
}
438438

439-
multiclass Urdwrmsr_rr<string suffix> {
440-
let mayLoad = 1 in
439+
multiclass Urdwrmsr<Map rrmap, string suffix> {
440+
let mayLoad = 1 in {
441+
let OpMap = rrmap in
441442
def URDMSRrr#suffix : I<0xf8, MRMSrcReg, (outs GR64:$dst), (ins GR64:$src),
442443
"urdmsr\t{$src, $dst|$dst, $src}",
443444
[(set GR64:$dst, (int_x86_urdmsr GR64:$src))]>, XD, NoCD8;
444-
let mayStore = 1 in
445-
def UWRMSRrr#suffix : I<0xf8, MRMSrcReg, (outs), (ins GR64:$src1, GR64:$src2),
446-
"uwrmsr\t{$src2, $src1|$src1, $src2}",
447-
[(int_x86_uwrmsr GR64:$src1, GR64:$src2)]>, XS, NoCD8;
448-
}
449-
450-
multiclass Urdwrmsr_ri<string suffix> {
451-
let mayLoad = 1 in
452445
def URDMSRri#suffix : Ii32<0xf8, MRM0r, (outs GR64:$dst), (ins i64i32imm:$imm),
453446
"urdmsr\t{$imm, $dst|$dst, $imm}",
454447
[(set GR64:$dst, (int_x86_urdmsr i64immSExt32_su:$imm))]>,
455-
T_MAP7, XD, NoCD8;
456-
let mayStore = 1 in
448+
T_MAP7, VEX, XD, NoCD8;
449+
}
450+
let mayStore = 1 in {
451+
let OpMap = rrmap in
452+
def UWRMSRrr#suffix : I<0xf8, MRMSrcReg, (outs), (ins GR64:$src1, GR64:$src2),
453+
"uwrmsr\t{$src2, $src1|$src1, $src2}",
454+
[(int_x86_uwrmsr GR64:$src1, GR64:$src2)]>, XS, NoCD8;
457455
def UWRMSRir#suffix : Ii32<0xf8, MRM0r, (outs), (ins GR64:$src, i64i32imm:$imm),
458456
"uwrmsr\t{$src, $imm|$imm, $src}",
459457
[(int_x86_uwrmsr i64immSExt32_su:$imm, GR64:$src)]>,
460-
T_MAP7, XS, NoCD8;
458+
T_MAP7, VEX, XS, NoCD8;
459+
}
461460
}
462461

463-
let Predicates = [HasUSERMSR, NoEGPR] in {
464-
defm "" : Urdwrmsr_rr<"">, T8;
465-
defm "" : Urdwrmsr_ri<"">, VEX;
466-
}
462+
let Predicates = [HasUSERMSR, NoEGPR] in
463+
defm "" : Urdwrmsr<T8, "">;
464+
465+
let Predicates = [HasUSERMSR, HasEGPR, In64BitMode] in
466+
defm "" : Urdwrmsr<T_MAP4, "_EVEX">, EVEX;
467467

468-
let Predicates = [HasUSERMSR, HasEGPR, In64BitMode], mayLoad = 1 in {
469-
defm "" : Urdwrmsr_rr<"_EVEX">, EVEX, T_MAP4;
470-
defm "" : Urdwrmsr_ri<"_EVEX">, EVEX;
471-
}
472468
let Defs = [RAX, RDX], Uses = [ECX] in
473469
def RDPMC : I<0x33, RawFrm, (outs), (ins), "rdpmc", []>, TB;
474470

0 commit comments

Comments
 (0)