mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-04 06:09:05 +00:00
[X86][Haswell][SchedModel] Add architecture specific scheduling models.
Group: Integer instructions. Sub-group: Synchronization instructions. <rdar://problem/15607571> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215909 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2a2fcc1a0e
commit
184c0f8b2f
@ -916,4 +916,30 @@ def WriteCMPS : SchedWriteRes<[HWPort23, HWPort0156]> {
|
||||
}
|
||||
def : InstRW<[WriteCMPS], (instregex "CMPS(B|L|Q|W)")>;
|
||||
|
||||
//-- Synchronization instructions --//
|
||||
|
||||
// XADD.
|
||||
def WriteXADD : SchedWriteRes<[]> {
|
||||
let NumMicroOps = 5;
|
||||
}
|
||||
def : InstRW<[WriteXADD], (instregex "XADD(8|16|32|64)rm")>;
|
||||
|
||||
// CMPXCHG.
|
||||
def WriteCMPXCHG : SchedWriteRes<[]> {
|
||||
let NumMicroOps = 6;
|
||||
}
|
||||
def : InstRW<[WriteCMPXCHG], (instregex "CMPXCHG(8|16|32|64)rm")>;
|
||||
|
||||
// CMPXCHG8B.
|
||||
def WriteCMPXCHG8B : SchedWriteRes<[]> {
|
||||
let NumMicroOps = 15;
|
||||
}
|
||||
def : InstRW<[WriteCMPXCHG8B], (instregex "CMPXCHG8B")>;
|
||||
|
||||
// CMPXCHG16B.
|
||||
def WriteCMPXCHG16B : SchedWriteRes<[]> {
|
||||
let NumMicroOps = 22;
|
||||
}
|
||||
def : InstRW<[WriteCMPXCHG16B], (instregex "CMPXCHG16B")>;
|
||||
|
||||
} // SchedModel
|
||||
|
Loading…
Reference in New Issue
Block a user