mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-19 16:35:10 +00:00
Annotate X86InstrCMovSetCC.td with SchedRW lists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177459 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
61e0b78d78
commit
fea666b540
@ -16,7 +16,7 @@
|
||||
// SetCC instructions.
|
||||
multiclass CMOV<bits<8> opc, string Mnemonic, PatLeaf CondNode> {
|
||||
let Uses = [EFLAGS], Predicates = [HasCMov], Constraints = "$src1 = $dst",
|
||||
isCommutable = 1 in {
|
||||
isCommutable = 1, SchedRW = [WriteALU] in {
|
||||
def NAME#16rr
|
||||
: I<opc, MRMSrcReg, (outs GR16:$dst), (ins GR16:$src1, GR16:$src2),
|
||||
!strconcat(Mnemonic, "{w}\t{$src2, $dst|$dst, $src2}"),
|
||||
@ -37,7 +37,8 @@ multiclass CMOV<bits<8> opc, string Mnemonic, PatLeaf CondNode> {
|
||||
IIC_CMOV32_RR>, TB;
|
||||
}
|
||||
|
||||
let Uses = [EFLAGS], Predicates = [HasCMov], Constraints = "$src1 = $dst" in {
|
||||
let Uses = [EFLAGS], Predicates = [HasCMov], Constraints = "$src1 = $dst",
|
||||
SchedRW = [WriteALULd, ReadAfterLd] in {
|
||||
def NAME#16rm
|
||||
: I<opc, MRMSrcMem, (outs GR16:$dst), (ins GR16:$src1, i16mem:$src2),
|
||||
!strconcat(Mnemonic, "{w}\t{$src2, $dst|$dst, $src2}"),
|
||||
@ -83,11 +84,11 @@ multiclass SETCC<bits<8> opc, string Mnemonic, PatLeaf OpNode> {
|
||||
def r : I<opc, MRM0r, (outs GR8:$dst), (ins),
|
||||
!strconcat(Mnemonic, "\t$dst"),
|
||||
[(set GR8:$dst, (X86setcc OpNode, EFLAGS))],
|
||||
IIC_SET_R>, TB;
|
||||
IIC_SET_R>, TB, Sched<[WriteALU]>;
|
||||
def m : I<opc, MRM0m, (outs), (ins i8mem:$dst),
|
||||
!strconcat(Mnemonic, "\t$dst"),
|
||||
[(store (X86setcc OpNode, EFLAGS), addr:$dst)],
|
||||
IIC_SET_M>, TB;
|
||||
IIC_SET_M>, TB, Sched<[WriteALU, WriteStore]>;
|
||||
} // Uses = [EFLAGS]
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user