mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-07-21 02:29:22 +00:00
R600/SI: Refactor SOP2 definitions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229684 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0563ea452c
commit
2ad48511fd
@ -464,39 +464,31 @@ multiclass SOP2_SELECT_32 <sop2 op, string opName, list<dag> pattern> {
|
|||||||
opName#" $dst, $src0, $src1 [$scc]">;
|
opName#" $dst, $src0, $src1 [$scc]">;
|
||||||
}
|
}
|
||||||
|
|
||||||
multiclass SOP2_32 <sop2 op, string opName, list<dag> pattern> {
|
multiclass SOP2_m <sop2 op, string opName, dag outs, dag ins, string asm,
|
||||||
def "" : SOP2_Pseudo <opName, (outs SReg_32:$dst),
|
list<dag> pattern> {
|
||||||
(ins SSrc_32:$src0, SSrc_32:$src1), pattern>;
|
|
||||||
|
|
||||||
def _si : SOP2_Real_si <op, opName, (outs SReg_32:$dst),
|
def "" : SOP2_Pseudo <opName, outs, ins, pattern>;
|
||||||
(ins SSrc_32:$src0, SSrc_32:$src1), opName#" $dst, $src0, $src1">;
|
|
||||||
|
def _si : SOP2_Real_si <op, opName, outs, ins, asm>;
|
||||||
|
|
||||||
|
def _vi : SOP2_Real_vi <op, opName, outs, ins, asm>;
|
||||||
|
|
||||||
def _vi : SOP2_Real_vi <op, opName, (outs SReg_32:$dst),
|
|
||||||
(ins SSrc_32:$src0, SSrc_32:$src1), opName#" $dst, $src0, $src1">;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
multiclass SOP2_64 <sop2 op, string opName, list<dag> pattern> {
|
multiclass SOP2_32 <sop2 op, string opName, list<dag> pattern> : SOP2_m <
|
||||||
def "" : SOP2_Pseudo <opName, (outs SReg_64:$dst),
|
op, opName, (outs SReg_32:$dst), (ins SSrc_32:$src0, SSrc_32:$src1),
|
||||||
(ins SSrc_64:$src0, SSrc_64:$src1), pattern>;
|
opName#" $dst, $src0, $src1", pattern
|
||||||
|
>;
|
||||||
|
|
||||||
def _si : SOP2_Real_si <op, opName, (outs SReg_64:$dst),
|
multiclass SOP2_64 <sop2 op, string opName, list<dag> pattern> : SOP2_m <
|
||||||
(ins SSrc_64:$src0, SSrc_64:$src1), opName#" $dst, $src0, $src1">;
|
op, opName, (outs SReg_64:$dst), (ins SSrc_64:$src0, SSrc_64:$src1),
|
||||||
|
opName#" $dst, $src0, $src1", pattern
|
||||||
def _vi : SOP2_Real_vi <op, opName, (outs SReg_64:$dst),
|
>;
|
||||||
(ins SSrc_64:$src0, SSrc_64:$src1), opName#" $dst, $src0, $src1">;
|
|
||||||
}
|
|
||||||
|
|
||||||
multiclass SOP2_64_32 <sop2 op, string opName, list<dag> pattern> {
|
|
||||||
def "" : SOP2_Pseudo <opName, (outs SReg_64:$dst),
|
|
||||||
(ins SSrc_64:$src0, SSrc_32:$src1), pattern>;
|
|
||||||
|
|
||||||
def _si : SOP2_Real_si <op, opName, (outs SReg_64:$dst),
|
|
||||||
(ins SSrc_64:$src0, SSrc_32:$src1), opName#" $dst, $src0, $src1">;
|
|
||||||
|
|
||||||
def _vi : SOP2_Real_vi <op, opName, (outs SReg_64:$dst),
|
|
||||||
(ins SSrc_64:$src0, SSrc_32:$src1), opName#" $dst, $src0, $src1">;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
multiclass SOP2_64_32 <sop2 op, string opName, list<dag> pattern> : SOP2_m <
|
||||||
|
op, opName, (outs SReg_64:$dst), (ins SSrc_64:$src0, SSrc_32:$src1),
|
||||||
|
opName#" $dst, $src0, $src1", pattern
|
||||||
|
>;
|
||||||
|
|
||||||
class SOPC_Helper <bits<7> op, RegisterOperand rc, ValueType vt,
|
class SOPC_Helper <bits<7> op, RegisterOperand rc, ValueType vt,
|
||||||
string opName, PatLeaf cond> : SOPC <
|
string opName, PatLeaf cond> : SOPC <
|
||||||
|
Loading…
Reference in New Issue
Block a user