1 | /******************************************************************************* |
2 | * Copyright 2019-2021 Intel Corporation |
3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. |
6 | * You may obtain a copy of the License at |
7 | * |
8 | * http://www.apache.org/licenses/LICENSE-2.0 |
9 | * |
10 | * Unless required by applicable law or agreed to in writing, software |
11 | * distributed under the License is distributed on an "AS IS" BASIS, |
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. |
15 | *******************************************************************************/ |
16 | |
17 | /* |
18 | * When compiling nGEN in C++11 or C++14 mode, this header file should be |
19 | * #include'd exactly once in your source code. |
20 | */ |
21 | |
22 | #if (defined(NGEN_CPP11) || defined(NGEN_CPP14)) && !defined(NGEN_GLOBAL_REGS) |
23 | |
24 | #include "ngen.hpp" |
25 | |
26 | #define NGEN_REGISTER_DECL_MAIN(CG, PREFIX) \ |
27 | PREFIX constexpr ngen::IndirectRegisterFrame CG::indirect; \ |
28 | \ |
29 | PREFIX constexpr ngen::GRF CG::r0; \ |
30 | PREFIX constexpr ngen::GRF CG::r1; \ |
31 | PREFIX constexpr ngen::GRF CG::r2; \ |
32 | PREFIX constexpr ngen::GRF CG::r3; \ |
33 | PREFIX constexpr ngen::GRF CG::r4; \ |
34 | PREFIX constexpr ngen::GRF CG::r5; \ |
35 | PREFIX constexpr ngen::GRF CG::r6; \ |
36 | PREFIX constexpr ngen::GRF CG::r7; \ |
37 | PREFIX constexpr ngen::GRF CG::r8; \ |
38 | PREFIX constexpr ngen::GRF CG::r9; \ |
39 | PREFIX constexpr ngen::GRF CG::r10; \ |
40 | PREFIX constexpr ngen::GRF CG::r11; \ |
41 | PREFIX constexpr ngen::GRF CG::r12; \ |
42 | PREFIX constexpr ngen::GRF CG::r13; \ |
43 | PREFIX constexpr ngen::GRF CG::r14; \ |
44 | PREFIX constexpr ngen::GRF CG::r15; \ |
45 | PREFIX constexpr ngen::GRF CG::r16; \ |
46 | PREFIX constexpr ngen::GRF CG::r17; \ |
47 | PREFIX constexpr ngen::GRF CG::r18; \ |
48 | PREFIX constexpr ngen::GRF CG::r19; \ |
49 | PREFIX constexpr ngen::GRF CG::r20; \ |
50 | PREFIX constexpr ngen::GRF CG::r21; \ |
51 | PREFIX constexpr ngen::GRF CG::r22; \ |
52 | PREFIX constexpr ngen::GRF CG::r23; \ |
53 | PREFIX constexpr ngen::GRF CG::r24; \ |
54 | PREFIX constexpr ngen::GRF CG::r25; \ |
55 | PREFIX constexpr ngen::GRF CG::r26; \ |
56 | PREFIX constexpr ngen::GRF CG::r27; \ |
57 | PREFIX constexpr ngen::GRF CG::r28; \ |
58 | PREFIX constexpr ngen::GRF CG::r29; \ |
59 | PREFIX constexpr ngen::GRF CG::r30; \ |
60 | PREFIX constexpr ngen::GRF CG::r31; \ |
61 | PREFIX constexpr ngen::GRF CG::r32; \ |
62 | PREFIX constexpr ngen::GRF CG::r33; \ |
63 | PREFIX constexpr ngen::GRF CG::r34; \ |
64 | PREFIX constexpr ngen::GRF CG::r35; \ |
65 | PREFIX constexpr ngen::GRF CG::r36; \ |
66 | PREFIX constexpr ngen::GRF CG::r37; \ |
67 | PREFIX constexpr ngen::GRF CG::r38; \ |
68 | PREFIX constexpr ngen::GRF CG::r39; \ |
69 | PREFIX constexpr ngen::GRF CG::r40; \ |
70 | PREFIX constexpr ngen::GRF CG::r41; \ |
71 | PREFIX constexpr ngen::GRF CG::r42; \ |
72 | PREFIX constexpr ngen::GRF CG::r43; \ |
73 | PREFIX constexpr ngen::GRF CG::r44; \ |
74 | PREFIX constexpr ngen::GRF CG::r45; \ |
75 | PREFIX constexpr ngen::GRF CG::r46; \ |
76 | PREFIX constexpr ngen::GRF CG::r47; \ |
77 | PREFIX constexpr ngen::GRF CG::r48; \ |
78 | PREFIX constexpr ngen::GRF CG::r49; \ |
79 | PREFIX constexpr ngen::GRF CG::r50; \ |
80 | PREFIX constexpr ngen::GRF CG::r51; \ |
81 | PREFIX constexpr ngen::GRF CG::r52; \ |
82 | PREFIX constexpr ngen::GRF CG::r53; \ |
83 | PREFIX constexpr ngen::GRF CG::r54; \ |
84 | PREFIX constexpr ngen::GRF CG::r55; \ |
85 | PREFIX constexpr ngen::GRF CG::r56; \ |
86 | PREFIX constexpr ngen::GRF CG::r57; \ |
87 | PREFIX constexpr ngen::GRF CG::r58; \ |
88 | PREFIX constexpr ngen::GRF CG::r59; \ |
89 | PREFIX constexpr ngen::GRF CG::r60; \ |
90 | PREFIX constexpr ngen::GRF CG::r61; \ |
91 | PREFIX constexpr ngen::GRF CG::r62; \ |
92 | PREFIX constexpr ngen::GRF CG::r63; \ |
93 | PREFIX constexpr ngen::GRF CG::r64; \ |
94 | PREFIX constexpr ngen::GRF CG::r65; \ |
95 | PREFIX constexpr ngen::GRF CG::r66; \ |
96 | PREFIX constexpr ngen::GRF CG::r67; \ |
97 | PREFIX constexpr ngen::GRF CG::r68; \ |
98 | PREFIX constexpr ngen::GRF CG::r69; \ |
99 | PREFIX constexpr ngen::GRF CG::r70; \ |
100 | PREFIX constexpr ngen::GRF CG::r71; \ |
101 | PREFIX constexpr ngen::GRF CG::r72; \ |
102 | PREFIX constexpr ngen::GRF CG::r73; \ |
103 | PREFIX constexpr ngen::GRF CG::r74; \ |
104 | PREFIX constexpr ngen::GRF CG::r75; \ |
105 | PREFIX constexpr ngen::GRF CG::r76; \ |
106 | PREFIX constexpr ngen::GRF CG::r77; \ |
107 | PREFIX constexpr ngen::GRF CG::r78; \ |
108 | PREFIX constexpr ngen::GRF CG::r79; \ |
109 | PREFIX constexpr ngen::GRF CG::r80; \ |
110 | PREFIX constexpr ngen::GRF CG::r81; \ |
111 | PREFIX constexpr ngen::GRF CG::r82; \ |
112 | PREFIX constexpr ngen::GRF CG::r83; \ |
113 | PREFIX constexpr ngen::GRF CG::r84; \ |
114 | PREFIX constexpr ngen::GRF CG::r85; \ |
115 | PREFIX constexpr ngen::GRF CG::r86; \ |
116 | PREFIX constexpr ngen::GRF CG::r87; \ |
117 | PREFIX constexpr ngen::GRF CG::r88; \ |
118 | PREFIX constexpr ngen::GRF CG::r89; \ |
119 | PREFIX constexpr ngen::GRF CG::r90; \ |
120 | PREFIX constexpr ngen::GRF CG::r91; \ |
121 | PREFIX constexpr ngen::GRF CG::r92; \ |
122 | PREFIX constexpr ngen::GRF CG::r93; \ |
123 | PREFIX constexpr ngen::GRF CG::r94; \ |
124 | PREFIX constexpr ngen::GRF CG::r95; \ |
125 | PREFIX constexpr ngen::GRF CG::r96; \ |
126 | PREFIX constexpr ngen::GRF CG::r97; \ |
127 | PREFIX constexpr ngen::GRF CG::r98; \ |
128 | PREFIX constexpr ngen::GRF CG::r99; \ |
129 | PREFIX constexpr ngen::GRF CG::r100; \ |
130 | PREFIX constexpr ngen::GRF CG::r101; \ |
131 | PREFIX constexpr ngen::GRF CG::r102; \ |
132 | PREFIX constexpr ngen::GRF CG::r103; \ |
133 | PREFIX constexpr ngen::GRF CG::r104; \ |
134 | PREFIX constexpr ngen::GRF CG::r105; \ |
135 | PREFIX constexpr ngen::GRF CG::r106; \ |
136 | PREFIX constexpr ngen::GRF CG::r107; \ |
137 | PREFIX constexpr ngen::GRF CG::r108; \ |
138 | PREFIX constexpr ngen::GRF CG::r109; \ |
139 | PREFIX constexpr ngen::GRF CG::r110; \ |
140 | PREFIX constexpr ngen::GRF CG::r111; \ |
141 | PREFIX constexpr ngen::GRF CG::r112; \ |
142 | PREFIX constexpr ngen::GRF CG::r113; \ |
143 | PREFIX constexpr ngen::GRF CG::r114; \ |
144 | PREFIX constexpr ngen::GRF CG::r115; \ |
145 | PREFIX constexpr ngen::GRF CG::r116; \ |
146 | PREFIX constexpr ngen::GRF CG::r117; \ |
147 | PREFIX constexpr ngen::GRF CG::r118; \ |
148 | PREFIX constexpr ngen::GRF CG::r119; \ |
149 | PREFIX constexpr ngen::GRF CG::r120; \ |
150 | PREFIX constexpr ngen::GRF CG::r121; \ |
151 | PREFIX constexpr ngen::GRF CG::r122; \ |
152 | PREFIX constexpr ngen::GRF CG::r123; \ |
153 | PREFIX constexpr ngen::GRF CG::r124; \ |
154 | PREFIX constexpr ngen::GRF CG::r125; \ |
155 | PREFIX constexpr ngen::GRF CG::r126; \ |
156 | PREFIX constexpr ngen::GRF CG::r127; \ |
157 | \ |
158 | PREFIX constexpr ngen::NullRegister CG::null; \ |
159 | PREFIX constexpr ngen::AddressRegister CG::a0; \ |
160 | PREFIX constexpr ngen::AccumulatorRegister CG::acc0; \ |
161 | PREFIX constexpr ngen::AccumulatorRegister CG::acc1; \ |
162 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::acc2; \ |
163 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::acc3; \ |
164 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::acc4; \ |
165 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::acc5; \ |
166 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::acc6; \ |
167 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::acc7; \ |
168 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::acc8; \ |
169 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::acc9; \ |
170 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::mme0; \ |
171 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::mme1; \ |
172 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::mme2; \ |
173 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::mme3; \ |
174 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::mme4; \ |
175 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::mme5; \ |
176 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::mme6; \ |
177 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::mme7; \ |
178 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::nomme; \ |
179 | PREFIX constexpr ngen::SpecialAccumulatorRegister CG::noacc; \ |
180 | PREFIX constexpr ngen::FlagRegister CG::f0; \ |
181 | PREFIX constexpr ngen::FlagRegister CG::f1; \ |
182 | PREFIX constexpr ngen::FlagRegister CG::f0_0; \ |
183 | PREFIX constexpr ngen::FlagRegister CG::f0_1; \ |
184 | PREFIX constexpr ngen::FlagRegister CG::f1_0; \ |
185 | PREFIX constexpr ngen::FlagRegister CG::f1_1; \ |
186 | PREFIX constexpr ngen::ChannelEnableRegister CG::ce0; \ |
187 | PREFIX constexpr ngen::StackPointerRegister CG::sp; \ |
188 | PREFIX constexpr ngen::StateRegister CG::sr0; \ |
189 | PREFIX constexpr ngen::StateRegister CG::sr1; \ |
190 | PREFIX constexpr ngen::ControlRegister CG::cr0; \ |
191 | PREFIX constexpr ngen::NotificationRegister CG::n0; \ |
192 | PREFIX constexpr ngen::InstructionPointerRegister CG::ip; \ |
193 | PREFIX constexpr ngen::ThreadDependencyRegister CG::tdr0; \ |
194 | PREFIX constexpr ngen::PerformanceRegister CG::tm0; \ |
195 | PREFIX constexpr ngen::PerformanceRegister CG::tm1; \ |
196 | PREFIX constexpr ngen::PerformanceRegister CG::tm2; \ |
197 | PREFIX constexpr ngen::PerformanceRegister CG::tm3; \ |
198 | PREFIX constexpr ngen::PerformanceRegister CG::tm4; \ |
199 | PREFIX constexpr ngen::PerformanceRegister CG::pm0; \ |
200 | PREFIX constexpr ngen::PerformanceRegister CG::tp0; \ |
201 | PREFIX constexpr ngen::DebugRegister CG::dbg0; \ |
202 | PREFIX constexpr ngen::FlowControlRegister CG::fc0; \ |
203 | PREFIX constexpr ngen::FlowControlRegister CG::fc1; \ |
204 | PREFIX constexpr ngen::FlowControlRegister CG::fc2; \ |
205 | PREFIX constexpr ngen::FlowControlRegister CG::fc3; \ |
206 | \ |
207 | PREFIX constexpr ngen::InstructionModifier CG::NoDDClr; \ |
208 | PREFIX constexpr ngen::InstructionModifier CG::NoDDChk; \ |
209 | PREFIX constexpr ngen::InstructionModifier CG::AccWrEn; \ |
210 | PREFIX constexpr ngen::InstructionModifier CG::NoSrcDepSet; \ |
211 | PREFIX constexpr ngen::InstructionModifier CG::Breakpoint; \ |
212 | PREFIX constexpr ngen::InstructionModifier CG::sat; \ |
213 | PREFIX constexpr ngen::InstructionModifier CG::NoMask; \ |
214 | PREFIX constexpr ngen::InstructionModifier CG::AutoSWSB; \ |
215 | PREFIX constexpr ngen::InstructionModifier CG::Serialize; \ |
216 | PREFIX constexpr ngen::InstructionModifier CG::EOT; \ |
217 | PREFIX constexpr ngen::InstructionModifier CG::Align1; \ |
218 | PREFIX constexpr ngen::InstructionModifier CG::Align16; \ |
219 | PREFIX constexpr ngen::InstructionModifier CG::Atomic; \ |
220 | PREFIX constexpr ngen::InstructionModifier CG::Switch; \ |
221 | PREFIX constexpr ngen::InstructionModifier CG::NoPreempt; \ |
222 | \ |
223 | PREFIX constexpr ngen::PredCtrl CG::anyv; \ |
224 | PREFIX constexpr ngen::PredCtrl CG::allv; \ |
225 | PREFIX constexpr ngen::PredCtrl CG::any2h; \ |
226 | PREFIX constexpr ngen::PredCtrl CG::all2h; \ |
227 | PREFIX constexpr ngen::PredCtrl CG::any4h; \ |
228 | PREFIX constexpr ngen::PredCtrl CG::all4h; \ |
229 | PREFIX constexpr ngen::PredCtrl CG::any8h; \ |
230 | PREFIX constexpr ngen::PredCtrl CG::all8h; \ |
231 | PREFIX constexpr ngen::PredCtrl CG::any16h; \ |
232 | PREFIX constexpr ngen::PredCtrl CG::all16h; \ |
233 | PREFIX constexpr ngen::PredCtrl CG::any32h; \ |
234 | PREFIX constexpr ngen::PredCtrl CG::all32h; \ |
235 | \ |
236 | PREFIX constexpr ngen::InstructionModifier CG::x_repl; \ |
237 | PREFIX constexpr ngen::InstructionModifier CG::y_repl; \ |
238 | PREFIX constexpr ngen::InstructionModifier CG::z_repl; \ |
239 | PREFIX constexpr ngen::InstructionModifier CG::w_repl; \ |
240 | \ |
241 | PREFIX constexpr ngen::InstructionModifier CG::ze; \ |
242 | PREFIX constexpr ngen::InstructionModifier CG::eq; \ |
243 | PREFIX constexpr ngen::InstructionModifier CG::nz; \ |
244 | PREFIX constexpr ngen::InstructionModifier CG::ne; \ |
245 | PREFIX constexpr ngen::InstructionModifier CG::gt; \ |
246 | PREFIX constexpr ngen::InstructionModifier CG::ge; \ |
247 | PREFIX constexpr ngen::InstructionModifier CG::lt; \ |
248 | PREFIX constexpr ngen::InstructionModifier CG::le; \ |
249 | PREFIX constexpr ngen::InstructionModifier CG::ov; \ |
250 | PREFIX constexpr ngen::InstructionModifier CG::un; \ |
251 | PREFIX constexpr ngen::InstructionModifier CG::eo; \ |
252 | \ |
253 | PREFIX constexpr ngen::InstructionModifier CG::M0; \ |
254 | PREFIX constexpr ngen::InstructionModifier CG::M4; \ |
255 | PREFIX constexpr ngen::InstructionModifier CG::M8; \ |
256 | PREFIX constexpr ngen::InstructionModifier CG::M12; \ |
257 | PREFIX constexpr ngen::InstructionModifier CG::M16; \ |
258 | PREFIX constexpr ngen::InstructionModifier CG::M20; \ |
259 | PREFIX constexpr ngen::InstructionModifier CG::M24; \ |
260 | PREFIX constexpr ngen::InstructionModifier CG::M28; \ |
261 | \ |
262 | PREFIX constexpr ngen::SBID CG::sb0; \ |
263 | PREFIX constexpr ngen::SBID CG::sb1; \ |
264 | PREFIX constexpr ngen::SBID CG::sb2; \ |
265 | PREFIX constexpr ngen::SBID CG::sb3; \ |
266 | PREFIX constexpr ngen::SBID CG::sb4; \ |
267 | PREFIX constexpr ngen::SBID CG::sb5; \ |
268 | PREFIX constexpr ngen::SBID CG::sb6; \ |
269 | PREFIX constexpr ngen::SBID CG::sb7; \ |
270 | PREFIX constexpr ngen::SBID CG::sb8; \ |
271 | PREFIX constexpr ngen::SBID CG::sb9; \ |
272 | PREFIX constexpr ngen::SBID CG::sb10; \ |
273 | PREFIX constexpr ngen::SBID CG::sb11; \ |
274 | PREFIX constexpr ngen::SBID CG::sb12; \ |
275 | PREFIX constexpr ngen::SBID CG::sb13; \ |
276 | PREFIX constexpr ngen::SBID CG::sb14; \ |
277 | PREFIX constexpr ngen::SBID CG::sb15; \ |
278 | \ |
279 | PREFIX constexpr ngen::AddressBase CG::A32; \ |
280 | PREFIX constexpr ngen::AddressBase CG::A32NC; \ |
281 | PREFIX constexpr ngen::AddressBase CG::A64; \ |
282 | PREFIX constexpr ngen::AddressBase CG::A64NC; \ |
283 | PREFIX constexpr ngen::AddressBase CG::SLM; \ |
284 | |
285 | #define (CG,PREFIX) \ |
286 | PREFIX constexpr ngen::GRF CG::r128; \ |
287 | PREFIX constexpr ngen::GRF CG::r129; \ |
288 | PREFIX constexpr ngen::GRF CG::r130; \ |
289 | PREFIX constexpr ngen::GRF CG::r131; \ |
290 | PREFIX constexpr ngen::GRF CG::r132; \ |
291 | PREFIX constexpr ngen::GRF CG::r133; \ |
292 | PREFIX constexpr ngen::GRF CG::r134; \ |
293 | PREFIX constexpr ngen::GRF CG::r135; \ |
294 | PREFIX constexpr ngen::GRF CG::r136; \ |
295 | PREFIX constexpr ngen::GRF CG::r137; \ |
296 | PREFIX constexpr ngen::GRF CG::r138; \ |
297 | PREFIX constexpr ngen::GRF CG::r139; \ |
298 | PREFIX constexpr ngen::GRF CG::r140; \ |
299 | PREFIX constexpr ngen::GRF CG::r141; \ |
300 | PREFIX constexpr ngen::GRF CG::r142; \ |
301 | PREFIX constexpr ngen::GRF CG::r143; \ |
302 | PREFIX constexpr ngen::GRF CG::r144; \ |
303 | PREFIX constexpr ngen::GRF CG::r145; \ |
304 | PREFIX constexpr ngen::GRF CG::r146; \ |
305 | PREFIX constexpr ngen::GRF CG::r147; \ |
306 | PREFIX constexpr ngen::GRF CG::r148; \ |
307 | PREFIX constexpr ngen::GRF CG::r149; \ |
308 | PREFIX constexpr ngen::GRF CG::r150; \ |
309 | PREFIX constexpr ngen::GRF CG::r151; \ |
310 | PREFIX constexpr ngen::GRF CG::r152; \ |
311 | PREFIX constexpr ngen::GRF CG::r153; \ |
312 | PREFIX constexpr ngen::GRF CG::r154; \ |
313 | PREFIX constexpr ngen::GRF CG::r155; \ |
314 | PREFIX constexpr ngen::GRF CG::r156; \ |
315 | PREFIX constexpr ngen::GRF CG::r157; \ |
316 | PREFIX constexpr ngen::GRF CG::r158; \ |
317 | PREFIX constexpr ngen::GRF CG::r159; \ |
318 | PREFIX constexpr ngen::GRF CG::r160; \ |
319 | PREFIX constexpr ngen::GRF CG::r161; \ |
320 | PREFIX constexpr ngen::GRF CG::r162; \ |
321 | PREFIX constexpr ngen::GRF CG::r163; \ |
322 | PREFIX constexpr ngen::GRF CG::r164; \ |
323 | PREFIX constexpr ngen::GRF CG::r165; \ |
324 | PREFIX constexpr ngen::GRF CG::r166; \ |
325 | PREFIX constexpr ngen::GRF CG::r167; \ |
326 | PREFIX constexpr ngen::GRF CG::r168; \ |
327 | PREFIX constexpr ngen::GRF CG::r169; \ |
328 | PREFIX constexpr ngen::GRF CG::r170; \ |
329 | PREFIX constexpr ngen::GRF CG::r171; \ |
330 | PREFIX constexpr ngen::GRF CG::r172; \ |
331 | PREFIX constexpr ngen::GRF CG::r173; \ |
332 | PREFIX constexpr ngen::GRF CG::r174; \ |
333 | PREFIX constexpr ngen::GRF CG::r175; \ |
334 | PREFIX constexpr ngen::GRF CG::r176; \ |
335 | PREFIX constexpr ngen::GRF CG::r177; \ |
336 | PREFIX constexpr ngen::GRF CG::r178; \ |
337 | PREFIX constexpr ngen::GRF CG::r179; \ |
338 | PREFIX constexpr ngen::GRF CG::r180; \ |
339 | PREFIX constexpr ngen::GRF CG::r181; \ |
340 | PREFIX constexpr ngen::GRF CG::r182; \ |
341 | PREFIX constexpr ngen::GRF CG::r183; \ |
342 | PREFIX constexpr ngen::GRF CG::r184; \ |
343 | PREFIX constexpr ngen::GRF CG::r185; \ |
344 | PREFIX constexpr ngen::GRF CG::r186; \ |
345 | PREFIX constexpr ngen::GRF CG::r187; \ |
346 | PREFIX constexpr ngen::GRF CG::r188; \ |
347 | PREFIX constexpr ngen::GRF CG::r189; \ |
348 | PREFIX constexpr ngen::GRF CG::r190; \ |
349 | PREFIX constexpr ngen::GRF CG::r191; \ |
350 | PREFIX constexpr ngen::GRF CG::r192; \ |
351 | PREFIX constexpr ngen::GRF CG::r193; \ |
352 | PREFIX constexpr ngen::GRF CG::r194; \ |
353 | PREFIX constexpr ngen::GRF CG::r195; \ |
354 | PREFIX constexpr ngen::GRF CG::r196; \ |
355 | PREFIX constexpr ngen::GRF CG::r197; \ |
356 | PREFIX constexpr ngen::GRF CG::r198; \ |
357 | PREFIX constexpr ngen::GRF CG::r199; \ |
358 | PREFIX constexpr ngen::GRF CG::r200; \ |
359 | PREFIX constexpr ngen::GRF CG::r201; \ |
360 | PREFIX constexpr ngen::GRF CG::r202; \ |
361 | PREFIX constexpr ngen::GRF CG::r203; \ |
362 | PREFIX constexpr ngen::GRF CG::r204; \ |
363 | PREFIX constexpr ngen::GRF CG::r205; \ |
364 | PREFIX constexpr ngen::GRF CG::r206; \ |
365 | PREFIX constexpr ngen::GRF CG::r207; \ |
366 | PREFIX constexpr ngen::GRF CG::r208; \ |
367 | PREFIX constexpr ngen::GRF CG::r209; \ |
368 | PREFIX constexpr ngen::GRF CG::r210; \ |
369 | PREFIX constexpr ngen::GRF CG::r211; \ |
370 | PREFIX constexpr ngen::GRF CG::r212; \ |
371 | PREFIX constexpr ngen::GRF CG::r213; \ |
372 | PREFIX constexpr ngen::GRF CG::r214; \ |
373 | PREFIX constexpr ngen::GRF CG::r215; \ |
374 | PREFIX constexpr ngen::GRF CG::r216; \ |
375 | PREFIX constexpr ngen::GRF CG::r217; \ |
376 | PREFIX constexpr ngen::GRF CG::r218; \ |
377 | PREFIX constexpr ngen::GRF CG::r219; \ |
378 | PREFIX constexpr ngen::GRF CG::r220; \ |
379 | PREFIX constexpr ngen::GRF CG::r221; \ |
380 | PREFIX constexpr ngen::GRF CG::r222; \ |
381 | PREFIX constexpr ngen::GRF CG::r223; \ |
382 | PREFIX constexpr ngen::GRF CG::r224; \ |
383 | PREFIX constexpr ngen::GRF CG::r225; \ |
384 | PREFIX constexpr ngen::GRF CG::r226; \ |
385 | PREFIX constexpr ngen::GRF CG::r227; \ |
386 | PREFIX constexpr ngen::GRF CG::r228; \ |
387 | PREFIX constexpr ngen::GRF CG::r229; \ |
388 | PREFIX constexpr ngen::GRF CG::r230; \ |
389 | PREFIX constexpr ngen::GRF CG::r231; \ |
390 | PREFIX constexpr ngen::GRF CG::r232; \ |
391 | PREFIX constexpr ngen::GRF CG::r233; \ |
392 | PREFIX constexpr ngen::GRF CG::r234; \ |
393 | PREFIX constexpr ngen::GRF CG::r235; \ |
394 | PREFIX constexpr ngen::GRF CG::r236; \ |
395 | PREFIX constexpr ngen::GRF CG::r237; \ |
396 | PREFIX constexpr ngen::GRF CG::r238; \ |
397 | PREFIX constexpr ngen::GRF CG::r239; \ |
398 | PREFIX constexpr ngen::GRF CG::r240; \ |
399 | PREFIX constexpr ngen::GRF CG::r241; \ |
400 | PREFIX constexpr ngen::GRF CG::r242; \ |
401 | PREFIX constexpr ngen::GRF CG::r243; \ |
402 | PREFIX constexpr ngen::GRF CG::r244; \ |
403 | PREFIX constexpr ngen::GRF CG::r245; \ |
404 | PREFIX constexpr ngen::GRF CG::r246; \ |
405 | PREFIX constexpr ngen::GRF CG::r247; \ |
406 | PREFIX constexpr ngen::GRF CG::r248; \ |
407 | PREFIX constexpr ngen::GRF CG::r249; \ |
408 | PREFIX constexpr ngen::GRF CG::r250; \ |
409 | PREFIX constexpr ngen::GRF CG::r251; \ |
410 | PREFIX constexpr ngen::GRF CG::r252; \ |
411 | PREFIX constexpr ngen::GRF CG::r253; \ |
412 | PREFIX constexpr ngen::GRF CG::r254; \ |
413 | PREFIX constexpr ngen::GRF CG::r255; |
414 | |
415 | #define (CG,PREFIX) \ |
416 | PREFIX constexpr ngen::DataSpecLSC CG::D8; \ |
417 | PREFIX constexpr ngen::DataSpecLSC CG::D16; \ |
418 | PREFIX constexpr ngen::DataSpecLSC CG::D32; \ |
419 | PREFIX constexpr ngen::DataSpecLSC CG::D64; \ |
420 | PREFIX constexpr ngen::DataSpecLSC CG::D8U32; \ |
421 | PREFIX constexpr ngen::DataSpecLSC CG::D16U32; \ |
422 | PREFIX constexpr ngen::DataSpecLSC CG::D8T; \ |
423 | PREFIX constexpr ngen::DataSpecLSC CG::D16T; \ |
424 | PREFIX constexpr ngen::DataSpecLSC CG::D32T; \ |
425 | PREFIX constexpr ngen::DataSpecLSC CG::D64T; \ |
426 | PREFIX constexpr ngen::DataSpecLSC CG::D8U32T; \ |
427 | PREFIX constexpr ngen::DataSpecLSC CG::D16U32T; \ |
428 | PREFIX constexpr ngen::DataSpecLSC CG::V1; \ |
429 | PREFIX constexpr ngen::DataSpecLSC CG::V2; \ |
430 | PREFIX constexpr ngen::DataSpecLSC CG::V3; \ |
431 | PREFIX constexpr ngen::DataSpecLSC CG::V4; \ |
432 | PREFIX constexpr ngen::DataSpecLSC CG::V8; \ |
433 | PREFIX constexpr ngen::DataSpecLSC CG::V16; \ |
434 | PREFIX constexpr ngen::DataSpecLSC CG::V32; \ |
435 | PREFIX constexpr ngen::DataSpecLSC CG::V64; \ |
436 | PREFIX constexpr ngen::DataSpecLSC CG::V1T; \ |
437 | PREFIX constexpr ngen::DataSpecLSC CG::V2T; \ |
438 | PREFIX constexpr ngen::DataSpecLSC CG::V3T; \ |
439 | PREFIX constexpr ngen::DataSpecLSC CG::V4T; \ |
440 | PREFIX constexpr ngen::DataSpecLSC CG::V8T; \ |
441 | PREFIX constexpr ngen::DataSpecLSC CG::V16T; \ |
442 | PREFIX constexpr ngen::DataSpecLSC CG::V32T; \ |
443 | PREFIX constexpr ngen::DataSpecLSC CG::V64T; \ |
444 | PREFIX constexpr ngen::DataSpecLSC CG::transpose; \ |
445 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1UC_L3UC; \ |
446 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1UC_L3C; \ |
447 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1C_L3UC; \ |
448 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1C_L3C; \ |
449 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1S_L3UC; \ |
450 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1S_L3C; \ |
451 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1IAR_L3C; \ |
452 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1UC_L3WB; \ |
453 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1WT_L3UC; \ |
454 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1WT_L3WB; \ |
455 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1S_L3WB; \ |
456 | PREFIX constexpr ngen::CacheSettingsLSC CG::L1WB_L3WB; |
457 | |
458 | #define (CG,PREFIX) \ |
459 | PREFIX constexpr ngen::PredCtrl CG::any; \ |
460 | PREFIX constexpr ngen::PredCtrl CG::all; \ |
461 | PREFIX constexpr ngen::FlagRegister CG::f2; \ |
462 | PREFIX constexpr ngen::FlagRegister CG::f3; \ |
463 | PREFIX constexpr ngen::SBID CG::sb16; \ |
464 | PREFIX constexpr ngen::SBID CG::sb17; \ |
465 | PREFIX constexpr ngen::SBID CG::sb18; \ |
466 | PREFIX constexpr ngen::SBID CG::sb19; \ |
467 | PREFIX constexpr ngen::SBID CG::sb20; \ |
468 | PREFIX constexpr ngen::SBID CG::sb21; \ |
469 | PREFIX constexpr ngen::SBID CG::sb22; \ |
470 | PREFIX constexpr ngen::SBID CG::sb23; \ |
471 | PREFIX constexpr ngen::SBID CG::sb24; \ |
472 | PREFIX constexpr ngen::SBID CG::sb25; \ |
473 | PREFIX constexpr ngen::SBID CG::sb26; \ |
474 | PREFIX constexpr ngen::SBID CG::sb27; \ |
475 | PREFIX constexpr ngen::SBID CG::sb28; \ |
476 | PREFIX constexpr ngen::SBID CG::sb29; \ |
477 | PREFIX constexpr ngen::SBID CG::sb30; \ |
478 | PREFIX constexpr ngen::SBID CG::sb31; \ |
479 | PREFIX constexpr ngen::SWSBInfo CG::NoAccSBSet; \ |
480 | PREFIX constexpr ngen::DataSpecLSC CG::vnni; |
481 | |
482 | #ifndef NGEN_SHORT_NAMES |
483 | #define (CG,PREFIX) |
484 | #else |
485 | #define NGEN_REGISTER_DECL_EXTRA4(CG,PREFIX) \ |
486 | PREFIX constexpr const ngen::IndirectRegisterFrame &CG::r; \ |
487 | PREFIX constexpr const ngen::InstructionModifier &CG::W; |
488 | #endif |
489 | |
490 | #define NGEN_REGISTER_DECL(CG,PREFIX) \ |
491 | NGEN_REGISTER_DECL_MAIN(CG,PREFIX) \ |
492 | NGEN_REGISTER_DECL_EXTRA1(CG,PREFIX) \ |
493 | NGEN_REGISTER_DECL_EXTRA2(CG,PREFIX) \ |
494 | NGEN_REGISTER_DECL_EXTRA3(CG,PREFIX) \ |
495 | NGEN_REGISTER_DECL_EXTRA4(CG,PREFIX) |
496 | |
497 | #include "ngen.hpp" |
498 | NGEN_REGISTER_DECL(ngen::BinaryCodeGenerator<hw>, template <ngen::HW hw>) |
499 | |
500 | #ifdef NGEN_ASM |
501 | #include "ngen_asm.hpp" |
502 | NGEN_REGISTER_DECL(ngen::AsmCodeGenerator, /* nothing */) |
503 | #endif |
504 | |
505 | template class ngen::BinaryCodeGenerator<ngen::HW::Unknown>; |
506 | template class ngen::BinaryCodeGenerator<ngen::HW::Gen9>; |
507 | template class ngen::BinaryCodeGenerator<ngen::HW::Gen10>; |
508 | template class ngen::BinaryCodeGenerator<ngen::HW::Gen11>; |
509 | template class ngen::BinaryCodeGenerator<ngen::HW::Gen12LP>; |
510 | template class ngen::BinaryCodeGenerator<ngen::HW::XeHP>; |
511 | template class ngen::BinaryCodeGenerator<ngen::HW::XeHPG>; |
512 | template class ngen::BinaryCodeGenerator<ngen::HW::XeHPC>; |
513 | |
514 | #endif /* (defined(NGEN_CPP11) || defined(NGEN_CPP14)) && !defined(NGEN_GLOBAL_REGS) */ |
515 | |