321 static const bool has_predicated_vectors(void);
322
323 // Some uarchs have different sized float register resources
324 static const int float_pressure(int default_pressure_threshold);
325
326 // Used to determine if we have fast l2f conversion
327 // USII has it, USIII doesn't
328 static const bool convL2FSupported(void);
329
330 // Vector width in bytes
331 static const int vector_width_in_bytes(BasicType bt);
332
333 // Limits on vector size (number of elements).
334 static const int max_vector_size(const BasicType bt);
335 static const int min_vector_size(const BasicType bt);
336 static const bool vector_size_supported(const BasicType bt, int size) {
337 return (Matcher::max_vector_size(bt) >= size &&
338 Matcher::min_vector_size(bt) <= size);
339 }
340
341 // Vector ideal reg
342 static const uint vector_ideal_reg(int len);
343
344 // CPU supports misaligned vectors store/load.
345 static const bool misaligned_vectors_ok();
346
347 // Should original key array reference be passed to AES stubs
348 static const bool pass_original_key_for_aes();
349
350 // Used to determine a "low complexity" 64-bit constant. (Zero is simple.)
351 // The standard of comparison is one (StoreL ConL) vs. two (StoreI ConI).
352 // Depends on the details of 64-bit constant generation on the CPU.
353 static const bool isSimpleConstant64(jlong con);
354
355 // These calls are all generated by the ADLC
356
357 // TRUE - grows up, FALSE - grows down (Intel)
358 virtual bool stack_direction() const;
359
360 // Java-Java calling convention
|
321 static const bool has_predicated_vectors(void);
322
323 // Some uarchs have different sized float register resources
324 static const int float_pressure(int default_pressure_threshold);
325
326 // Used to determine if we have fast l2f conversion
327 // USII has it, USIII doesn't
328 static const bool convL2FSupported(void);
329
330 // Vector width in bytes
331 static const int vector_width_in_bytes(BasicType bt);
332
333 // Limits on vector size (number of elements).
334 static const int max_vector_size(const BasicType bt);
335 static const int min_vector_size(const BasicType bt);
336 static const bool vector_size_supported(const BasicType bt, int size) {
337 return (Matcher::max_vector_size(bt) >= size &&
338 Matcher::min_vector_size(bt) <= size);
339 }
340
341 static const bool supports_scalable_vector();
342 // Actual max scalable vector register length.
343 static const int scalable_vector_reg_size(const BasicType bt);
344
345 // Vector ideal reg
346 static const uint vector_ideal_reg(int len);
347
348 // CPU supports misaligned vectors store/load.
349 static const bool misaligned_vectors_ok();
350
351 // Should original key array reference be passed to AES stubs
352 static const bool pass_original_key_for_aes();
353
354 // Used to determine a "low complexity" 64-bit constant. (Zero is simple.)
355 // The standard of comparison is one (StoreL ConL) vs. two (StoreI ConI).
356 // Depends on the details of 64-bit constant generation on the CPU.
357 static const bool isSimpleConstant64(jlong con);
358
359 // These calls are all generated by the ADLC
360
361 // TRUE - grows up, FALSE - grows down (Intel)
362 virtual bool stack_direction() const;
363
364 // Java-Java calling convention
|