mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-23 20:34:58 +00:00
Annotate X86InstrCMovSetCC.td with SchedRW lists.
llvm-svn: 177459
This commit is contained in:
parent
7f55317710
commit
c4c0f667dc
@ -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