< prev index next >

src/hotspot/cpu/aarch64/vm_version_aarch64.hpp

Print this page

151   static int cpu_model2()                     { return _model2; }
152   static int cpu_variant()                    { return _variant; }
153   static int cpu_revision()                   { return _revision; }
154 
155   static bool model_is(int cpu_model) {
156     return _model == cpu_model || _model2 == cpu_model;
157   }
158 
159   static bool is_zva_enabled() { return 0 <= _zva_length; }
160   static int zva_length() {
161     assert(is_zva_enabled(), "ZVA not available");
162     return _zva_length;
163   }
164 
165   static int icache_line_size() { return _icache_line_size; }
166   static int dcache_line_size() { return _dcache_line_size; }
167   static int get_initial_sve_vector_length()  { return _initial_sve_vector_length; };
168 
169   // Aarch64 supports fast class initialization checks
170   static bool supports_fast_class_init_checks() { return true; }

171   constexpr static bool supports_stack_watermark_barrier() { return true; }
172 
173   static void get_compatible_board(char *buf, int buflen);
174 
175   static const SpinWait& spin_wait_desc() { return _spin_wait; }
176 
177   static bool supports_on_spin_wait() { return _spin_wait.inst() != SpinWait::NONE; }
178 
179   static bool supports_float16() { return true; }
180 
181 #ifdef __APPLE__
182   // Is the CPU running emulated (for example macOS Rosetta running x86_64 code on M1 ARM (aarch64)
183   static bool is_cpu_emulated();
184 #endif
185 
186   static void initialize_cpu_information(void);
187 
188   static bool use_rop_protection() { return _rop_protection; }
189 
190   // For common 64/128-bit unpredicated vector operations, we may prefer

151   static int cpu_model2()                     { return _model2; }
152   static int cpu_variant()                    { return _variant; }
153   static int cpu_revision()                   { return _revision; }
154 
155   static bool model_is(int cpu_model) {
156     return _model == cpu_model || _model2 == cpu_model;
157   }
158 
159   static bool is_zva_enabled() { return 0 <= _zva_length; }
160   static int zva_length() {
161     assert(is_zva_enabled(), "ZVA not available");
162     return _zva_length;
163   }
164 
165   static int icache_line_size() { return _icache_line_size; }
166   static int dcache_line_size() { return _dcache_line_size; }
167   static int get_initial_sve_vector_length()  { return _initial_sve_vector_length; };
168 
169   // Aarch64 supports fast class initialization checks
170   static bool supports_fast_class_init_checks() { return true; }
171   static bool supports_cont_preemption() { return true; }
172   constexpr static bool supports_stack_watermark_barrier() { return true; }
173 
174   static void get_compatible_board(char *buf, int buflen);
175 
176   static const SpinWait& spin_wait_desc() { return _spin_wait; }
177 
178   static bool supports_on_spin_wait() { return _spin_wait.inst() != SpinWait::NONE; }
179 
180   static bool supports_float16() { return true; }
181 
182 #ifdef __APPLE__
183   // Is the CPU running emulated (for example macOS Rosetta running x86_64 code on M1 ARM (aarch64)
184   static bool is_cpu_emulated();
185 #endif
186 
187   static void initialize_cpu_information(void);
188 
189   static bool use_rop_protection() { return _rop_protection; }
190 
191   // For common 64/128-bit unpredicated vector operations, we may prefer
< prev index next >