@@ -152,6 +152,24 @@ static inline int GetOperandSrcHDLImmType(G4_Type srcType)
152
152
default : MUST_BE_TRUE (false , " invalid type" ); break ;
153
153
}
154
154
}
155
+ else
156
+ {
157
+ switch (srcType) {
158
+ case Type_UD: type = G11HDL::SRCIMMTYPE_UD; break ;
159
+ case Type_D: type = G11HDL::SRCIMMTYPE_D; break ;
160
+ case Type_UW: type = G11HDL::SRCIMMTYPE_UW; break ;
161
+ case Type_W: type = G11HDL::SRCIMMTYPE_W; break ;
162
+ case Type_UV: type = G11HDL::SRCIMMTYPE_UV; break ;
163
+ case Type_VF: type = G11HDL::SRCIMMTYPE_VF; break ;
164
+ case Type_V: type = G11HDL::SRCIMMTYPE_V; break ;
165
+ case Type_F: type = G11HDL::SRCIMMTYPE_F; break ;
166
+ case Type_UQ: type = G11HDL::SRCIMMTYPE_UQ; break ;
167
+ case Type_Q: type = G11HDL::SRCIMMTYPE_Q; break ;
168
+ case Type_DF: type = G11HDL::SRCIMMTYPE_DF; break ;
169
+ case Type_HF: type = G11HDL::SRCIMMTYPE_HF; break ;
170
+ default : MUST_BE_TRUE (false , " invalid type" ); break ;
171
+ }
172
+ }
155
173
return type;
156
174
}
157
175
@@ -179,6 +197,24 @@ static inline int GetOperandSrcHDLType(G4_Type regType)
179
197
default : MUST_BE_TRUE (false , " invalid type" ); break ;
180
198
}
181
199
}
200
+ else
201
+ {
202
+ switch (regType)
203
+ {
204
+ case Type_UD: type = G11HDL::SRCTYPE_UD; break ;
205
+ case Type_D: type = G11HDL::SRCTYPE_D; break ;
206
+ case Type_UW: type = G11HDL::SRCTYPE_UW; break ;
207
+ case Type_W: type = G11HDL::SRCTYPE_W; break ;
208
+ case Type_UB: type = G11HDL::SRCTYPE_UB; break ;
209
+ case Type_B: type = G11HDL::SRCTYPE_B; break ;
210
+ case Type_DF: type = G11HDL::SRCTYPE_DF; break ;
211
+ case Type_F: type = G11HDL::SRCTYPE_F; break ;
212
+ case Type_UQ: type = G11HDL::SRCTYPE_UQ; break ;
213
+ case Type_Q: type = G11HDL::SRCTYPE_Q; break ;
214
+ case Type_HF: type = G11HDL::SRCTYPE_HF; break ;
215
+ default : MUST_BE_TRUE (false , " invalid type" ); break ;
216
+ }
217
+ }
182
218
return type;
183
219
}
184
220
@@ -201,6 +237,14 @@ void BinaryEncodingCNL::EncodeOpCode(G4_INST* inst,
201
237
G9HDL::EU_OPCODE BinaryEncodingCNL::getEUOpcode (G4_opcode g4opc)
202
238
{
203
239
240
+ switch (g4opc)
241
+ {
242
+ // GEN11 specific
243
+ case G4_ror: return G9HDL::EU_OPCODE_ROR;
244
+ case G4_rol: return G9HDL::EU_OPCODE_ROL;
245
+ case G4_dp4a: return G9HDL::EU_OPCODE_DP4A;
246
+ default : break ;
247
+ }
204
248
205
249
return (G9HDL::EU_OPCODE)BinaryEncodingBase::getEUOpcode (g4opc);
206
250
}
@@ -2078,7 +2122,7 @@ BinaryEncodingCNL::Status BinaryEncodingCNL::DoAllEncodingJMPI(G4_INST* inst)
2078
2122
2079
2123
// hardcode:
2080
2124
brOneSrc.GetOperandControl ().SetDestinationRegisterFile (G9HDL::REGFILE_ARF);
2081
- brOneSrc.GetOperandControl ().SetDestinationDataType (G9HDL::DSTTYPE_UD);
2125
+ brOneSrc.GetOperandControl ().SetDestinationDataType (getGenxPlatform () == GENX_CNL ? G9HDL::DSTTYPE_UD : G11HDL ::DSTTYPE_UD);
2082
2126
brOneSrc.GetOperandControl ().SetDestinationAddressingMode (G9HDL::ADDRMODE_DIRECT);
2083
2127
2084
2128
// FIXME: bxml does not have arch reg file enumerations
@@ -2417,7 +2461,8 @@ void BinaryEncodingCNL::DoAll()
2417
2461
BDWCompactSubRegTable.AddIndex1 (IVBCompactSubRegTable[i] & 0x1F , i);
2418
2462
BDWCompactSubRegTable.AddIndex2 (IVBCompactSubRegTable[i] & 0x3FF , i);
2419
2463
if (getGenxPlatform () > GENX_CNL)
2420
- {
2464
+ {
2465
+ BDWCompactDataTypeTableStr.AddIndex (ICLCompactDataTypeTable[i], i);
2421
2466
}
2422
2467
else
2423
2468
{
0 commit comments