mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-11 13:46:13 +00:00
R600/SI: Add a generic pseudo EXP instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218767 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cbb63311cd
commit
f7082f9bd7
@ -589,14 +589,6 @@ class MIMG <bits<7> op, dag outs, dag ins, string asm, list<dag> pattern> :
|
||||
let MIMG = 1;
|
||||
}
|
||||
|
||||
def EXP : InstSI<
|
||||
(outs),
|
||||
(ins i32imm:$en, i32imm:$tgt, i32imm:$compr, i32imm:$done, i32imm:$vm,
|
||||
VReg_32:$src0, VReg_32:$src1, VReg_32:$src2, VReg_32:$src3),
|
||||
"EXP $en, $tgt, $compr, $done, $vm, $src0, $src1, $src2, $src3",
|
||||
[] >, EXPe {
|
||||
|
||||
let EXP_CNT = 1;
|
||||
}
|
||||
|
||||
} // End Uses = [EXEC]
|
||||
|
@ -255,6 +255,30 @@ class SIMCInstr <string pseudo, int subtarget> {
|
||||
int Subtarget = subtarget;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// EXP classes
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
class EXPCommon : InstSI<
|
||||
(outs),
|
||||
(ins i32imm:$en, i32imm:$tgt, i32imm:$compr, i32imm:$done, i32imm:$vm,
|
||||
VReg_32:$src0, VReg_32:$src1, VReg_32:$src2, VReg_32:$src3),
|
||||
"EXP $en, $tgt, $compr, $done, $vm, $src0, $src1, $src2, $src3",
|
||||
[] > {
|
||||
|
||||
let EXP_CNT = 1;
|
||||
let Uses = [EXEC];
|
||||
}
|
||||
|
||||
multiclass EXP_m {
|
||||
|
||||
let isPseudo = 1 in {
|
||||
def "" : EXPCommon, SIMCInstr <"EXP", SISubtarget.NONE> ;
|
||||
}
|
||||
|
||||
def _si : EXPCommon, SIMCInstr <"EXP", SISubtarget.SI>, EXPe;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Scalar classes
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -37,6 +37,12 @@ def WAIT_FLAG : InstFlag<"printWaitFlag">;
|
||||
|
||||
let SubtargetPredicate = isSI in {
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// EXP Instructions
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
defm EXP : EXP_m;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SMRD Instructions
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
Reference in New Issue
Block a user