161 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector_Float256Species);
162 }
163 static bool is_float256mask(BasicType bt, vmSymbols::SID sid) {
164 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector_Float256Mask);
165 }
166 static bool is_float256(BasicType bt, vmSymbols::SID sid) {
167 return is_float256vector(bt, sid) || is_float256species(bt, sid) || is_float256mask(bt, sid);
168 }
169 static bool is_float512vector(BasicType bt, vmSymbols::SID sid) {
170 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector);
171 }
172 static bool is_float512species(BasicType bt, vmSymbols::SID sid) {
173 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Species);
174 }
175 static bool is_float512mask(BasicType bt, vmSymbols::SID sid) {
176 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Mask);
177 }
178 static bool is_float512(BasicType bt, vmSymbols::SID sid) {
179 return is_float512vector(bt, sid) || is_float512species(bt, sid) || is_float512mask(bt, sid);
180 }
181 static bool is_float_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
182 return is_float64(bt, sid) || is_float128(bt, sid) || is_float256(bt, sid) || is_float512(bt, sid);
183 }
184 static bool is_double64vector(BasicType bt, vmSymbols::SID sid) {
185 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector);
186 }
187 static bool is_double64species(BasicType bt, vmSymbols::SID sid) {
188 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector_Double64Species);
189 }
190 static bool is_double64mask(BasicType bt, vmSymbols::SID sid) {
191 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector_Double64Mask);
192 }
193 static bool is_double64(BasicType bt, vmSymbols::SID sid) {
194 return is_double64vector(bt, sid) || is_double64species(bt, sid) || is_double64mask(bt, sid);
195 }
196 static bool is_double128vector(BasicType bt, vmSymbols::SID sid) {
197 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector);
198 }
199 static bool is_double128species(BasicType bt, vmSymbols::SID sid) {
200 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector_Double128Species);
201 }
202 static bool is_double128mask(BasicType bt, vmSymbols::SID sid) {
212 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector_Double256Species);
213 }
214 static bool is_double256mask(BasicType bt, vmSymbols::SID sid) {
215 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector_Double256Mask);
216 }
217 static bool is_double256(BasicType bt, vmSymbols::SID sid) {
218 return is_double256vector(bt, sid) || is_double256species(bt, sid) || is_double256mask(bt, sid);
219 }
220 static bool is_double512vector(BasicType bt, vmSymbols::SID sid) {
221 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector);
222 }
223 static bool is_double512species(BasicType bt, vmSymbols::SID sid) {
224 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Species);
225 }
226 static bool is_double512mask(BasicType bt, vmSymbols::SID sid) {
227 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Mask);
228 }
229 static bool is_double512(BasicType bt, vmSymbols::SID sid) {
230 return is_double512vector(bt, sid) || is_double512species(bt, sid) || is_double512mask(bt, sid);
231 }
232 static bool is_double_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
233 return is_double64(bt, sid) || is_double128(bt, sid) || is_double256(bt, sid) || is_double512(bt, sid);
234 }
235 static bool is_int64vector(BasicType bt, vmSymbols::SID sid) {
236 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector);
237 }
238 static bool is_int64species(BasicType bt, vmSymbols::SID sid) {
239 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector_Int64Species);
240 }
241 static bool is_int64mask(BasicType bt, vmSymbols::SID sid) {
242 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector_Int64Mask);
243 }
244 static bool is_int64(BasicType bt, vmSymbols::SID sid) {
245 return is_int64vector(bt, sid) || is_int64species(bt, sid) || is_int64mask(bt, sid);
246 }
247 static bool is_int128vector(BasicType bt, vmSymbols::SID sid) {
248 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector);
249 }
250 static bool is_int128species(BasicType bt, vmSymbols::SID sid) {
251 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector_Int128Species);
252 }
253 static bool is_int128mask(BasicType bt, vmSymbols::SID sid) {
263 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector_Int256Species);
264 }
265 static bool is_int256mask(BasicType bt, vmSymbols::SID sid) {
266 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector_Int256Mask);
267 }
268 static bool is_int256(BasicType bt, vmSymbols::SID sid) {
269 return is_int256vector(bt, sid) || is_int256species(bt, sid) || is_int256mask(bt, sid);
270 }
271 static bool is_int512vector(BasicType bt, vmSymbols::SID sid) {
272 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector);
273 }
274 static bool is_int512species(BasicType bt, vmSymbols::SID sid) {
275 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector_Int512Species);
276 }
277 static bool is_int512mask(BasicType bt, vmSymbols::SID sid) {
278 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector_Int512Mask);
279 }
280 static bool is_int512(BasicType bt, vmSymbols::SID sid) {
281 return is_int512vector(bt, sid) || is_int512species(bt, sid) || is_int512mask(bt, sid);
282 }
283 static bool is_int_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
284 return is_int64(bt, sid) || is_int128(bt, sid) || is_int256(bt, sid) || is_int512(bt, sid);
285 }
286 static bool is_long64vector(BasicType bt, vmSymbols::SID sid) {
287 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector);
288 }
289 static bool is_long64species(BasicType bt, vmSymbols::SID sid) {
290 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector_Long64Species);
291 }
292 static bool is_long64mask(BasicType bt, vmSymbols::SID sid) {
293 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector_Long64Mask);
294 }
295 static bool is_long64(BasicType bt, vmSymbols::SID sid) {
296 return is_long64vector(bt, sid) || is_long64species(bt, sid) || is_long64mask(bt, sid);
297 }
298 static bool is_long128vector(BasicType bt, vmSymbols::SID sid) {
299 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector);
300 }
301 static bool is_long128species(BasicType bt, vmSymbols::SID sid) {
302 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector_Long128Species);
303 }
304 static bool is_long128mask(BasicType bt, vmSymbols::SID sid) {
314 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector_Long256Species);
315 }
316 static bool is_long256mask(BasicType bt, vmSymbols::SID sid) {
317 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector_Long256Mask);
318 }
319 static bool is_long256(BasicType bt, vmSymbols::SID sid) {
320 return is_long256vector(bt, sid) || is_long256species(bt, sid) || is_long256mask(bt, sid);
321 }
322 static bool is_long512vector(BasicType bt, vmSymbols::SID sid) {
323 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector);
324 }
325 static bool is_long512species(BasicType bt, vmSymbols::SID sid) {
326 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector_Long512Species);
327 }
328 static bool is_long512mask(BasicType bt, vmSymbols::SID sid) {
329 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector_Long512Mask);
330 }
331 static bool is_long512(BasicType bt, vmSymbols::SID sid) {
332 return is_long512vector(bt, sid) || is_long512species(bt, sid) || is_long512mask(bt, sid);
333 }
334 static bool is_long_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
335 return is_long64(bt, sid) || is_long128(bt, sid) || is_long256(bt, sid) || is_long512(bt, sid);
336 }
337 static bool is_byte64vector(BasicType bt, vmSymbols::SID sid) {
338 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector);
339 }
340 static bool is_byte64species(BasicType bt, vmSymbols::SID sid) {
341 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector_Byte64Species);
342 }
343 static bool is_byte64mask(BasicType bt, vmSymbols::SID sid) {
344 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector_Byte64Mask);
345 }
346 static bool is_byte64(BasicType bt, vmSymbols::SID sid) {
347 return is_byte64vector(bt, sid) || is_byte64species(bt, sid) || is_byte64mask(bt, sid);
348 }
349 static bool is_byte128vector(BasicType bt, vmSymbols::SID sid) {
350 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector);
351 }
352 static bool is_byte128species(BasicType bt, vmSymbols::SID sid) {
353 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector_Byte128Species);
354 }
355 static bool is_byte128mask(BasicType bt, vmSymbols::SID sid) {
365 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector_Byte256Species);
366 }
367 static bool is_byte256mask(BasicType bt, vmSymbols::SID sid) {
368 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector_Byte256Mask);
369 }
370 static bool is_byte256(BasicType bt, vmSymbols::SID sid) {
371 return is_byte256vector(bt, sid) || is_byte256species(bt, sid) || is_byte256mask(bt, sid);
372 }
373 static bool is_byte512vector(BasicType bt, vmSymbols::SID sid) {
374 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector);
375 }
376 static bool is_byte512species(BasicType bt, vmSymbols::SID sid) {
377 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector_Byte512Species);
378 }
379 static bool is_byte512mask(BasicType bt, vmSymbols::SID sid) {
380 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector_Byte512Mask);
381 }
382 static bool is_byte512(BasicType bt, vmSymbols::SID sid) {
383 return is_byte512vector(bt, sid) || is_byte512species(bt, sid) || is_byte512mask(bt, sid);
384 }
385 static bool is_byte_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
386 return is_byte64(bt, sid) || is_byte128(bt, sid) || is_byte256(bt, sid) || is_byte512(bt, sid);
387 }
388 static bool is_short64vector(BasicType bt, vmSymbols::SID sid) {
389 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector);
390 }
391 static bool is_short64species(BasicType bt, vmSymbols::SID sid) {
392 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector_Short64Species);
393 }
394 static bool is_short64mask(BasicType bt, vmSymbols::SID sid) {
395 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector_Short64Mask);
396 }
397 static bool is_short64(BasicType bt, vmSymbols::SID sid) {
398 return is_short64vector(bt, sid) || is_short64species(bt, sid) || is_short64mask(bt, sid);
399 }
400 static bool is_short128vector(BasicType bt, vmSymbols::SID sid) {
401 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector);
402 }
403 static bool is_short128species(BasicType bt, vmSymbols::SID sid) {
404 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector_Short128Species);
405 }
406 static bool is_short128mask(BasicType bt, vmSymbols::SID sid) {
416 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector_Short256Species);
417 }
418 static bool is_short256mask(BasicType bt, vmSymbols::SID sid) {
419 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector_Short256Mask);
420 }
421 static bool is_short256(BasicType bt, vmSymbols::SID sid) {
422 return is_short256vector(bt, sid) || is_short256species(bt, sid) || is_short256mask(bt, sid);
423 }
424 static bool is_short512vector(BasicType bt, vmSymbols::SID sid) {
425 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector);
426 }
427 static bool is_short512species(BasicType bt, vmSymbols::SID sid) {
428 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector_Short512Species);
429 }
430 static bool is_short512mask(BasicType bt, vmSymbols::SID sid) {
431 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector_Short512Mask);
432 }
433 static bool is_short512(BasicType bt, vmSymbols::SID sid) {
434 return is_short512vector(bt, sid) || is_short512species(bt, sid) || is_short512mask(bt, sid);
435 }
436 static bool is_short_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
437 return is_short64(bt, sid) || is_short128(bt, sid) || is_short256(bt, sid) || is_short512(bt, sid);
438 }
439
440 #define __ basic_type(), as_klass()->name()->sid()
441
442 bool ciType::is_vectormask() {
443 return basic_type() == T_OBJECT &&
444 (is_float64mask(__) || is_float128mask(__) || is_float256mask(__) || is_float512mask(__) ||
445 is_double64mask(__) || is_double128mask(__) || is_double256mask(__) || is_double512mask(__) ||
446 is_int64mask(__) || is_int128mask(__) || is_int256mask(__) || is_int512mask(__) ||
447 is_long64mask(__) || is_long128mask(__) || is_long256mask(__) || is_long512mask(__) ||
448 is_byte64mask(__) || is_byte128mask(__) || is_byte256mask(__) || is_byte512mask(__) ||
449 is_short64mask(__) || is_short128mask(__) || is_short256mask(__) || is_short512mask(__));
450 }
451
452 bool ciType::is_vectorapi_vector() {
453 return is_float_vec_or_mask(__) ||
454 is_double_vec_or_mask(__) ||
455 is_int_vec_or_mask(__) ||
456 is_long_vec_or_mask(__) ||
457 is_byte_vec_or_mask(__) ||
458 is_short_vec_or_mask(__);
459 }
460
461 int ciType::vectorapi_vector_size() {
462 if ( is_double64(__) || is_long64(__)) return 1;
463 if ( is_int64(__) || is_float64(__) || is_long128(__) || is_double128(__) ) return 2;
464 if ( is_short64(__) || is_int128(__) || is_float128(__) || is_long256(__) || is_double256(__) ) return 4;
465 if ( is_byte64(__) || is_short128(__) || is_int256(__) || is_float256(__) || is_long512(__) || is_double512(__) ) return 8;
466 if ( is_byte128(__) || is_short256(__) || is_int512(__) || is_float512(__) ) return 16;
467 if ( is_byte256(__) || is_short512(__) ) return 32;
468 if ( is_byte512(__) ) return 64;
469 return -1;
470 }
471
472 BasicType ciType::vectorapi_vector_bt() {
473 if ( is_float_vec_or_mask(__) ) return T_FLOAT;
474 if ( is_double_vec_or_mask(__) ) return T_DOUBLE;
475 if ( is_int_vec_or_mask(__) ) return T_INT;
476 if ( is_long_vec_or_mask(__) ) return T_LONG;
477 if ( is_byte_vec_or_mask(__) ) return T_BYTE;
478 if ( is_short_vec_or_mask(__) ) return T_SHORT;
479 return T_VOID;
480 }
481
482 #undef __
483
484 // ciReturnAddress
485 //
486 // This class represents the type of a specific return address in the
487 // bytecodes.
488
|
161 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector_Float256Species);
162 }
163 static bool is_float256mask(BasicType bt, vmSymbols::SID sid) {
164 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float256Vector_Float256Mask);
165 }
166 static bool is_float256(BasicType bt, vmSymbols::SID sid) {
167 return is_float256vector(bt, sid) || is_float256species(bt, sid) || is_float256mask(bt, sid);
168 }
169 static bool is_float512vector(BasicType bt, vmSymbols::SID sid) {
170 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector);
171 }
172 static bool is_float512species(BasicType bt, vmSymbols::SID sid) {
173 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Species);
174 }
175 static bool is_float512mask(BasicType bt, vmSymbols::SID sid) {
176 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Float512Vector_Float512Mask);
177 }
178 static bool is_float512(BasicType bt, vmSymbols::SID sid) {
179 return is_float512vector(bt, sid) || is_float512species(bt, sid) || is_float512mask(bt, sid);
180 }
181 static bool is_float_scalable_vector(BasicType bt, vmSymbols::SID sid) {
182 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector);
183 }
184 static bool is_float_scalable_species(BasicType bt, vmSymbols::SID sid) {
185 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector_FloatScalableSpecies);
186 }
187 static bool is_float_scalable_mask(BasicType bt, vmSymbols::SID sid) {
188 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_FloatScalableVector_FloatScalableMask);
189 }
190 static bool is_float_scalable(BasicType bt, vmSymbols::SID sid) {
191 return is_float_scalable_vector(bt, sid) || is_float_scalable_species(bt, sid) || is_float_scalable_mask(bt, sid);
192 }
193 static bool is_float_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
194 return is_float64(bt, sid) || is_float128(bt, sid) || is_float256(bt, sid) || is_float512(bt, sid) || is_float_scalable(bt, sid);
195 }
196 static bool is_double64vector(BasicType bt, vmSymbols::SID sid) {
197 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector);
198 }
199 static bool is_double64species(BasicType bt, vmSymbols::SID sid) {
200 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector_Double64Species);
201 }
202 static bool is_double64mask(BasicType bt, vmSymbols::SID sid) {
203 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double64Vector_Double64Mask);
204 }
205 static bool is_double64(BasicType bt, vmSymbols::SID sid) {
206 return is_double64vector(bt, sid) || is_double64species(bt, sid) || is_double64mask(bt, sid);
207 }
208 static bool is_double128vector(BasicType bt, vmSymbols::SID sid) {
209 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector);
210 }
211 static bool is_double128species(BasicType bt, vmSymbols::SID sid) {
212 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double128Vector_Double128Species);
213 }
214 static bool is_double128mask(BasicType bt, vmSymbols::SID sid) {
224 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector_Double256Species);
225 }
226 static bool is_double256mask(BasicType bt, vmSymbols::SID sid) {
227 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double256Vector_Double256Mask);
228 }
229 static bool is_double256(BasicType bt, vmSymbols::SID sid) {
230 return is_double256vector(bt, sid) || is_double256species(bt, sid) || is_double256mask(bt, sid);
231 }
232 static bool is_double512vector(BasicType bt, vmSymbols::SID sid) {
233 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector);
234 }
235 static bool is_double512species(BasicType bt, vmSymbols::SID sid) {
236 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Species);
237 }
238 static bool is_double512mask(BasicType bt, vmSymbols::SID sid) {
239 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Double512Vector_Double512Mask);
240 }
241 static bool is_double512(BasicType bt, vmSymbols::SID sid) {
242 return is_double512vector(bt, sid) || is_double512species(bt, sid) || is_double512mask(bt, sid);
243 }
244 static bool is_double_scalable_vector(BasicType bt, vmSymbols::SID sid) {
245 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector);
246 }
247 static bool is_double_scalable_species(BasicType bt, vmSymbols::SID sid) {
248 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector_DoubleScalableSpecies);
249 }
250 static bool is_double_scalable_mask(BasicType bt, vmSymbols::SID sid) {
251 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_DoubleScalableVector_DoubleScalableMask);
252 }
253 static bool is_double_scalable(BasicType bt, vmSymbols::SID sid) {
254 return is_double_scalable_vector(bt, sid) || is_double_scalable_species(bt, sid) || is_double_scalable_mask(bt, sid);
255 }
256 static bool is_double_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
257 return is_double64(bt, sid) || is_double128(bt, sid) || is_double256(bt, sid) || is_double512(bt, sid) || is_double_scalable(bt, sid);
258 }
259 static bool is_int64vector(BasicType bt, vmSymbols::SID sid) {
260 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector);
261 }
262 static bool is_int64species(BasicType bt, vmSymbols::SID sid) {
263 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector_Int64Species);
264 }
265 static bool is_int64mask(BasicType bt, vmSymbols::SID sid) {
266 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int64Vector_Int64Mask);
267 }
268 static bool is_int64(BasicType bt, vmSymbols::SID sid) {
269 return is_int64vector(bt, sid) || is_int64species(bt, sid) || is_int64mask(bt, sid);
270 }
271 static bool is_int128vector(BasicType bt, vmSymbols::SID sid) {
272 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector);
273 }
274 static bool is_int128species(BasicType bt, vmSymbols::SID sid) {
275 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int128Vector_Int128Species);
276 }
277 static bool is_int128mask(BasicType bt, vmSymbols::SID sid) {
287 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector_Int256Species);
288 }
289 static bool is_int256mask(BasicType bt, vmSymbols::SID sid) {
290 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int256Vector_Int256Mask);
291 }
292 static bool is_int256(BasicType bt, vmSymbols::SID sid) {
293 return is_int256vector(bt, sid) || is_int256species(bt, sid) || is_int256mask(bt, sid);
294 }
295 static bool is_int512vector(BasicType bt, vmSymbols::SID sid) {
296 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector);
297 }
298 static bool is_int512species(BasicType bt, vmSymbols::SID sid) {
299 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector_Int512Species);
300 }
301 static bool is_int512mask(BasicType bt, vmSymbols::SID sid) {
302 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Int512Vector_Int512Mask);
303 }
304 static bool is_int512(BasicType bt, vmSymbols::SID sid) {
305 return is_int512vector(bt, sid) || is_int512species(bt, sid) || is_int512mask(bt, sid);
306 }
307 static bool is_int_scalable_vector(BasicType bt, vmSymbols::SID sid) {
308 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector);
309 }
310 static bool is_int_scalable_species(BasicType bt, vmSymbols::SID sid) {
311 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector_IntScalableSpecies);
312 }
313 static bool is_int_scalable_mask(BasicType bt, vmSymbols::SID sid) {
314 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_IntScalableVector_IntScalableMask);
315 }
316 static bool is_int_scalable(BasicType bt, vmSymbols::SID sid) {
317 return is_int_scalable_vector(bt, sid) || is_int_scalable_species(bt, sid) || is_int_scalable_mask(bt, sid);
318 }
319 static bool is_int_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
320 return is_int64(bt, sid) || is_int128(bt, sid) || is_int256(bt, sid) || is_int512(bt, sid) || is_int_scalable(bt, sid);
321 }
322 static bool is_long64vector(BasicType bt, vmSymbols::SID sid) {
323 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector);
324 }
325 static bool is_long64species(BasicType bt, vmSymbols::SID sid) {
326 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector_Long64Species);
327 }
328 static bool is_long64mask(BasicType bt, vmSymbols::SID sid) {
329 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long64Vector_Long64Mask);
330 }
331 static bool is_long64(BasicType bt, vmSymbols::SID sid) {
332 return is_long64vector(bt, sid) || is_long64species(bt, sid) || is_long64mask(bt, sid);
333 }
334 static bool is_long128vector(BasicType bt, vmSymbols::SID sid) {
335 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector);
336 }
337 static bool is_long128species(BasicType bt, vmSymbols::SID sid) {
338 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long128Vector_Long128Species);
339 }
340 static bool is_long128mask(BasicType bt, vmSymbols::SID sid) {
350 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector_Long256Species);
351 }
352 static bool is_long256mask(BasicType bt, vmSymbols::SID sid) {
353 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long256Vector_Long256Mask);
354 }
355 static bool is_long256(BasicType bt, vmSymbols::SID sid) {
356 return is_long256vector(bt, sid) || is_long256species(bt, sid) || is_long256mask(bt, sid);
357 }
358 static bool is_long512vector(BasicType bt, vmSymbols::SID sid) {
359 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector);
360 }
361 static bool is_long512species(BasicType bt, vmSymbols::SID sid) {
362 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector_Long512Species);
363 }
364 static bool is_long512mask(BasicType bt, vmSymbols::SID sid) {
365 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Long512Vector_Long512Mask);
366 }
367 static bool is_long512(BasicType bt, vmSymbols::SID sid) {
368 return is_long512vector(bt, sid) || is_long512species(bt, sid) || is_long512mask(bt, sid);
369 }
370 static bool is_long_scalable_vector(BasicType bt, vmSymbols::SID sid) {
371 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector);
372 }
373 static bool is_long_scalable_species(BasicType bt, vmSymbols::SID sid) {
374 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector_LongScalableSpecies);
375 }
376 static bool is_long_scalable_mask(BasicType bt, vmSymbols::SID sid) {
377 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_LongScalableVector_LongScalableMask);
378 }
379 static bool is_long_scalable(BasicType bt, vmSymbols::SID sid) {
380 return is_long_scalable_vector(bt, sid) || is_long_scalable_species(bt, sid) || is_long_scalable_mask(bt, sid);
381 }
382 static bool is_long_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
383 return is_long64(bt, sid) || is_long128(bt, sid) || is_long256(bt, sid) || is_long512(bt, sid) || is_long_scalable(bt, sid);
384 }
385 static bool is_byte64vector(BasicType bt, vmSymbols::SID sid) {
386 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector);
387 }
388 static bool is_byte64species(BasicType bt, vmSymbols::SID sid) {
389 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector_Byte64Species);
390 }
391 static bool is_byte64mask(BasicType bt, vmSymbols::SID sid) {
392 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte64Vector_Byte64Mask);
393 }
394 static bool is_byte64(BasicType bt, vmSymbols::SID sid) {
395 return is_byte64vector(bt, sid) || is_byte64species(bt, sid) || is_byte64mask(bt, sid);
396 }
397 static bool is_byte128vector(BasicType bt, vmSymbols::SID sid) {
398 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector);
399 }
400 static bool is_byte128species(BasicType bt, vmSymbols::SID sid) {
401 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte128Vector_Byte128Species);
402 }
403 static bool is_byte128mask(BasicType bt, vmSymbols::SID sid) {
413 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector_Byte256Species);
414 }
415 static bool is_byte256mask(BasicType bt, vmSymbols::SID sid) {
416 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte256Vector_Byte256Mask);
417 }
418 static bool is_byte256(BasicType bt, vmSymbols::SID sid) {
419 return is_byte256vector(bt, sid) || is_byte256species(bt, sid) || is_byte256mask(bt, sid);
420 }
421 static bool is_byte512vector(BasicType bt, vmSymbols::SID sid) {
422 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector);
423 }
424 static bool is_byte512species(BasicType bt, vmSymbols::SID sid) {
425 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector_Byte512Species);
426 }
427 static bool is_byte512mask(BasicType bt, vmSymbols::SID sid) {
428 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Byte512Vector_Byte512Mask);
429 }
430 static bool is_byte512(BasicType bt, vmSymbols::SID sid) {
431 return is_byte512vector(bt, sid) || is_byte512species(bt, sid) || is_byte512mask(bt, sid);
432 }
433 static bool is_byte_scalable_vector(BasicType bt, vmSymbols::SID sid) {
434 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector);
435 }
436 static bool is_byte_scalable_species(BasicType bt, vmSymbols::SID sid) {
437 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector_ByteScalableSpecies);
438 }
439 static bool is_byte_scalable_mask(BasicType bt, vmSymbols::SID sid) {
440 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ByteScalableVector_ByteScalableMask);
441 }
442 static bool is_byte_scalable(BasicType bt, vmSymbols::SID sid) {
443 return is_byte_scalable_vector(bt, sid) || is_byte_scalable_species(bt, sid) || is_byte_scalable_mask(bt, sid);
444 }
445 static bool is_byte_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
446 return is_byte64(bt, sid) || is_byte128(bt, sid) || is_byte256(bt, sid) || is_byte512(bt, sid) || is_byte_scalable(bt, sid);
447 }
448 static bool is_short64vector(BasicType bt, vmSymbols::SID sid) {
449 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector);
450 }
451 static bool is_short64species(BasicType bt, vmSymbols::SID sid) {
452 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector_Short64Species);
453 }
454 static bool is_short64mask(BasicType bt, vmSymbols::SID sid) {
455 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short64Vector_Short64Mask);
456 }
457 static bool is_short64(BasicType bt, vmSymbols::SID sid) {
458 return is_short64vector(bt, sid) || is_short64species(bt, sid) || is_short64mask(bt, sid);
459 }
460 static bool is_short128vector(BasicType bt, vmSymbols::SID sid) {
461 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector);
462 }
463 static bool is_short128species(BasicType bt, vmSymbols::SID sid) {
464 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short128Vector_Short128Species);
465 }
466 static bool is_short128mask(BasicType bt, vmSymbols::SID sid) {
476 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector_Short256Species);
477 }
478 static bool is_short256mask(BasicType bt, vmSymbols::SID sid) {
479 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short256Vector_Short256Mask);
480 }
481 static bool is_short256(BasicType bt, vmSymbols::SID sid) {
482 return is_short256vector(bt, sid) || is_short256species(bt, sid) || is_short256mask(bt, sid);
483 }
484 static bool is_short512vector(BasicType bt, vmSymbols::SID sid) {
485 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector);
486 }
487 static bool is_short512species(BasicType bt, vmSymbols::SID sid) {
488 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector_Short512Species);
489 }
490 static bool is_short512mask(BasicType bt, vmSymbols::SID sid) {
491 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_Short512Vector_Short512Mask);
492 }
493 static bool is_short512(BasicType bt, vmSymbols::SID sid) {
494 return is_short512vector(bt, sid) || is_short512species(bt, sid) || is_short512mask(bt, sid);
495 }
496 static bool is_short_scalable_vector(BasicType bt, vmSymbols::SID sid) {
497 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector);
498 }
499 static bool is_short_scalable_species(BasicType bt, vmSymbols::SID sid) {
500 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector_ShortScalableSpecies);
501 }
502 static bool is_short_scalable_mask(BasicType bt, vmSymbols::SID sid) {
503 return bt == T_OBJECT && sid == vmSymbols::VM_SYMBOL_ENUM_NAME(jdk_incubator_vector_ShortScalableVector_ShortScalableMask);
504 }
505 static bool is_short_scalable(BasicType bt, vmSymbols::SID sid) {
506 return is_short_scalable_vector(bt, sid) || is_short_scalable_species(bt, sid) || is_short_scalable_mask(bt, sid);
507 }
508 static bool is_short_vec_or_mask(BasicType bt, vmSymbols::SID sid) {
509 return is_short64(bt, sid) || is_short128(bt, sid) || is_short256(bt, sid) || is_short512(bt, sid) || is_short_scalable(bt, sid);
510 }
511
512 #define __ basic_type(), as_klass()->name()->sid()
513
514 bool ciType::is_vectormask() {
515 return basic_type() == T_OBJECT &&
516 (is_float64mask(__) || is_float128mask(__) || is_float256mask(__) || is_float512mask(__) || is_float_scalable_mask(__) ||
517 is_double64mask(__) || is_double128mask(__) || is_double256mask(__) || is_double512mask(__) || is_double_scalable_mask(__) ||
518 is_int64mask(__) || is_int128mask(__) || is_int256mask(__) || is_int512mask(__) || is_int_scalable_mask(__) ||
519 is_long64mask(__) || is_long128mask(__) || is_long256mask(__) || is_long512mask(__) || is_long_scalable_mask(__) ||
520 is_byte64mask(__) || is_byte128mask(__) || is_byte256mask(__) || is_byte512mask(__) || is_byte_scalable_mask(__) ||
521 is_short64mask(__) || is_short128mask(__) || is_short256mask(__) || is_short512mask(__) || is_short_scalable_mask(__));
522 }
523
524 bool ciType::is_vectorapi_vector() {
525 return is_float_vec_or_mask(__) ||
526 is_double_vec_or_mask(__) ||
527 is_int_vec_or_mask(__) ||
528 is_long_vec_or_mask(__) ||
529 is_byte_vec_or_mask(__) ||
530 is_short_vec_or_mask(__);
531 }
532
533 int ciType::vectorapi_vector_size() {
534 if ( is_double64(__) || is_long64(__)) return 1;
535 if ( is_int64(__) || is_float64(__) || is_long128(__) || is_double128(__) ) return 2;
536 if ( is_short64(__) || is_int128(__) || is_float128(__) || is_long256(__) || is_double256(__) ) return 4;
537 if ( is_byte64(__) || is_short128(__) || is_int256(__) || is_float256(__) || is_long512(__) || is_double512(__) ) return 8;
538 if ( is_byte128(__) || is_short256(__) || is_int512(__) || is_float512(__) ) return 16;
539 if ( is_byte256(__) || is_short512(__) ) return 32;
540 if ( is_byte512(__) ) return 64;
541 if ( is_double_scalable(__)) return Matcher::max_vector_size(T_DOUBLE);
542 if ( is_long_scalable(__)) return Matcher::max_vector_size(T_LONG);
543 if ( is_float_scalable(__)) return Matcher::max_vector_size(T_FLOAT);
544 if ( is_int_scalable(__)) return Matcher::max_vector_size(T_INT);
545 if ( is_short_scalable(__)) return Matcher::max_vector_size(T_SHORT);
546 if ( is_byte_scalable(__)) return Matcher::max_vector_size(T_BYTE);
547 return -1;
548 }
549
550 BasicType ciType::vectorapi_vector_bt() {
551 if ( is_float_vec_or_mask(__) ) return T_FLOAT;
552 if ( is_double_vec_or_mask(__) ) return T_DOUBLE;
553 if ( is_int_vec_or_mask(__) ) return T_INT;
554 if ( is_long_vec_or_mask(__) ) return T_LONG;
555 if ( is_byte_vec_or_mask(__) ) return T_BYTE;
556 if ( is_short_vec_or_mask(__) ) return T_SHORT;
557 return T_VOID;
558 }
559
560 #undef __
561
562 // ciReturnAddress
563 //
564 // This class represents the type of a specific return address in the
565 // bytecodes.
566
|