Skip to content

Commit dd2c775

Browse files
committed
resolve comments
1 parent dcdf591 commit dd2c775

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed

llvm/lib/Target/X86/X86InstrCMovSetCC.td

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,21 @@ let Predicates = [HasCMOV, HasCF, HasNDD, In64BitMode] in
4545
(ins t.RegClass:$src1, t.RegClass:$src2, ccode:$cond),
4646
"cfcmov${cond}", binop_ndd_args, []>, UseEFLAGS, NDD<1>, NF;
4747
}
48-
let SchedRW = [WriteCMOV.Folded, WriteCMOV.ReadAfterFold] in {
49-
let Predicates = [HasCMOV, HasCF, In64BitMode] in {
50-
let mayLoad = 1 in
48+
let SchedRW = [WriteCMOV, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault] in {
49+
let Predicates = [HasCMOV, HasCF, In64BitMode], mayLoad = 1 in
5150
def rm : ITy<0x40, MRMSrcMemCC, t, (outs t.RegClass:$dst),
5251
(ins t.MemOperand:$src1, ccode:$cond),
5352
"cfcmov${cond}", unaryop_ndd_args, []>, UseEFLAGS, EVEX, T_MAP4;
54-
let mayStore = 1 in
55-
def mr : ITy<0x40, MRMDestMemCC, t, (outs t.MemOperand:$dst),
56-
(ins t.RegClass:$src1, ccode:$cond),
57-
"cfcmov${cond}", unaryop_ndd_args, []>, UseEFLAGS, NF;
58-
}
59-
let Predicates = [HasCMOV, HasCF, HasNDD, In64BitMode], mayLoad = 1 in
60-
def rm_ND : ITy<0x40, MRMSrcMemCC, t, (outs t.RegClass:$dst),
61-
(ins t.RegClass:$src1, t.MemOperand:$src2, ccode:$cond),
62-
"cfcmov${cond}", binop_ndd_args, []>, UseEFLAGS, NDD<1>, NF;
53+
let Predicates = [HasCMOV, HasCF, HasNDD, In64BitMode], mayLoad = 1 in
54+
def rm_ND : ITy<0x40, MRMSrcMemCC, t, (outs t.RegClass:$dst),
55+
(ins t.RegClass:$src1, t.MemOperand:$src2, ccode:$cond),
56+
"cfcmov${cond}", binop_ndd_args, []>, UseEFLAGS, NDD<1>, NF;
6357
}
58+
let SchedRW = [ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault, WriteCMOV],
59+
Predicates = [HasCMOV, HasCF, In64BitMode], mayStore = 1 in
60+
def mr : ITy<0x40, MRMDestMemCC, t, (outs t.MemOperand:$dst),
61+
(ins t.RegClass:$src1, ccode:$cond),
62+
"cfcmov${cond}", unaryop_ndd_args, []>, UseEFLAGS, NF;
6463
}
6564

6665
let isCodeGenOnly = 1, ForceDisassemble = 1 in {

llvm/test/MC/Disassembler/X86/apx/reverse-encoding.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,14 @@
433433

434434
## cfcmov
435435

436+
# ATT: cfcmovbew %r16w, %r17w
437+
# INTEL: cfcmovbe r17w, r16w
438+
0x62,0xec,0x7d,0x0c,0x46,0xc1
439+
440+
# ATT: cfcmovbel %r16d, %r17d
441+
# INTEL: cfcmovbe r17d, r16d
442+
0x62,0xec,0x7c,0x0c,0x46,0xc1
443+
436444
# ATT: cfcmovbeq %r16, %r17
437445
# INTEL: cfcmovbe r17, r16
438446
0x62,0xec,0xfc,0x0c,0x46,0xc1

0 commit comments

Comments
 (0)