162 // @formatter:on
163
164 /**
165 * Basic set of CPU features mirroring what is returned from the cpuid instruction. See:
166 * {@code VM_Version::cpuFeatureFlags}.
167 */
168 public enum CPUFeature implements CPUFeatureName {
169 FP,
170 ASIMD,
171 EVTSTRM,
172 AES,
173 PMULL,
174 SHA1,
175 SHA2,
176 CRC32,
177 LSE,
178 DCPOP,
179 SHA3,
180 SHA512,
181 SVE,
182 PACA,
183 SVEBITPERM,
184 SVE2,
185 A53MAC,
186 FPHP,
187 ASIMDHP,
188 }
189
190 private final EnumSet<CPUFeature> features;
191
192 public AArch64(EnumSet<CPUFeature> features) {
193 super("aarch64", AArch64Kind.QWORD, ByteOrder.LITTLE_ENDIAN, true, allRegisters, 0, 0, 0);
194 this.features = features;
195 }
196
197 @Override
198 public EnumSet<CPUFeature> getFeatures() {
199 return features;
200 }
201
|
162 // @formatter:on
163
164 /**
165 * Basic set of CPU features mirroring what is returned from the cpuid instruction. See:
166 * {@code VM_Version::cpuFeatureFlags}.
167 */
168 public enum CPUFeature implements CPUFeatureName {
169 FP,
170 ASIMD,
171 EVTSTRM,
172 AES,
173 PMULL,
174 SHA1,
175 SHA2,
176 CRC32,
177 LSE,
178 DCPOP,
179 SHA3,
180 SHA512,
181 SVE,
182 SB,
183 PACA,
184 SVEBITPERM,
185 SVE2,
186 A53MAC,
187 FPHP,
188 ASIMDHP,
189 }
190
191 private final EnumSet<CPUFeature> features;
192
193 public AArch64(EnumSet<CPUFeature> features) {
194 super("aarch64", AArch64Kind.QWORD, ByteOrder.LITTLE_ENDIAN, true, allRegisters, 0, 0, 0);
195 this.features = features;
196 }
197
198 @Override
199 public EnumSet<CPUFeature> getFeatures() {
200 return features;
201 }
202
|