@@ -37,18 +37,18 @@ class EXP_Pseudo<bit row, bit done>
37
37
}
38
38
39
39
// Real instruction with optional asm operands "compr" and "vm".
40
- class EXP_Real_ComprVM<string pseudo , int subtarget, EXP_Pseudo ps = !cast<EXP_Pseudo>(pseudo) >
40
+ class EXP_Real_ComprVM<EXP_Pseudo ps , int subtarget>
41
41
: EXPCommon<0, ps.done, "exp$tgt $src0, $src1, $src2, $src3"
42
42
#!if(ps.done, " done", "")#"$compr$vm">,
43
- SIMCInstr<pseudo , subtarget> {
43
+ SIMCInstr<ps.PseudoInstr , subtarget> {
44
44
let AsmMatchConverter = "cvtExp";
45
45
}
46
46
47
47
// Real instruction with optional asm operand "row_en".
48
- class EXP_Real_Row<string pseudo , int subtarget, string name = "exp", EXP_Pseudo ps = !cast<EXP_Pseudo>(pseudo) >
48
+ class EXP_Real_Row<EXP_Pseudo ps , int subtarget, string name = "exp">
49
49
: EXPCommon<ps.row, ps.done, name#"$tgt $src0, $src1, $src2, $src3"
50
50
#!if(ps.done, " done", "")#!if(ps.row, " row_en", "")>,
51
- SIMCInstr<pseudo , subtarget> {
51
+ SIMCInstr<ps.PseudoInstr , subtarget> {
52
52
let AsmMatchConverter = "cvtExp";
53
53
}
54
54
@@ -71,7 +71,7 @@ def EXP_ROW_DONE : EXP_Pseudo<1, 1>;
71
71
72
72
multiclass EXP_Real_si {
73
73
defvar ps = !cast<EXP_Pseudo>(NAME);
74
- def _si : EXP_Real_ComprVM<NAME , SIEncodingFamily.SI>, EXPe_ComprVM {
74
+ def _si : EXP_Real_ComprVM<ps , SIEncodingFamily.SI>, EXPe_ComprVM {
75
75
let AssemblerPredicate = isGFX6GFX7;
76
76
let DecoderNamespace = "GFX6GFX7";
77
77
let done = ps.done;
@@ -80,7 +80,7 @@ multiclass EXP_Real_si {
80
80
81
81
multiclass EXP_Real_vi {
82
82
defvar ps = !cast<EXP_Pseudo>(NAME);
83
- def _vi : EXP_Real_ComprVM<NAME , SIEncodingFamily.VI>, EXPe_vi {
83
+ def _vi : EXP_Real_ComprVM<ps , SIEncodingFamily.VI>, EXPe_vi {
84
84
let AssemblerPredicate = isGFX8GFX9;
85
85
let SubtargetPredicate = isNotGFX90APlus;
86
86
let DecoderNamespace = "GFX8";
@@ -90,7 +90,7 @@ multiclass EXP_Real_vi {
90
90
91
91
multiclass EXP_Real_gfx10 {
92
92
defvar ps = !cast<EXP_Pseudo>(NAME);
93
- def _gfx10 : EXP_Real_ComprVM<NAME , SIEncodingFamily.GFX10>, EXPe_ComprVM {
93
+ def _gfx10 : EXP_Real_ComprVM<ps , SIEncodingFamily.GFX10>, EXPe_ComprVM {
94
94
let AssemblerPredicate = isGFX10Only;
95
95
let DecoderNamespace = "GFX10";
96
96
let done = ps.done;
@@ -106,7 +106,7 @@ defm EXP_DONE : EXP_Real_si, EXP_Real_vi, EXP_Real_gfx10;
106
106
107
107
multiclass EXP_Real_gfx11 {
108
108
defvar ps = !cast<EXP_Pseudo>(NAME);
109
- def _gfx11 : EXP_Real_Row<NAME , SIEncodingFamily.GFX11>, EXPe_Row {
109
+ def _gfx11 : EXP_Real_Row<ps , SIEncodingFamily.GFX11>, EXPe_Row {
110
110
let AssemblerPredicate = isGFX11Only;
111
111
let DecoderNamespace = "GFX11";
112
112
let row = ps.row;
@@ -116,7 +116,7 @@ multiclass EXP_Real_gfx11 {
116
116
117
117
multiclass VEXPORT_Real_gfx12 {
118
118
defvar ps = !cast<EXP_Pseudo>(NAME);
119
- def _gfx12 : EXP_Real_Row<NAME , SIEncodingFamily.GFX12, "export">,
119
+ def _gfx12 : EXP_Real_Row<ps , SIEncodingFamily.GFX12, "export">,
120
120
EXPe_Row, MnemonicAlias<"exp", "export">, Requires<[isGFX12Plus, HasExportInsts]> {
121
121
let AssemblerPredicate = isGFX12Only;
122
122
let DecoderNamespace = "GFX12";
0 commit comments