< prev index next >

src/hotspot/cpu/x86/vm_version_x86.hpp

Print this page

 478 
 479     constexpr static int features_bitmap_element_shift_count() {
 480       return LogBitsPerLong;
 481     }
 482 
 483     constexpr static uint64_t features_bitmap_element_mask() {
 484       return (1ULL << features_bitmap_element_shift_count()) - 1;
 485     }
 486 
 487     static int index(Feature_Flag feature) {
 488       int idx = feature >> features_bitmap_element_shift_count();
 489       assert(idx < features_bitmap_element_count(), "Features array index out of bounds");
 490       return idx;
 491     }
 492 
 493     static uint64_t bit_mask(Feature_Flag feature) {
 494       return (1ULL << (feature & features_bitmap_element_mask()));
 495     }
 496 
 497     static int _features_bitmap_size; // for JVMCI purposes

 498    public:
 499     VM_Features() {
 500       for (int i = 0; i < features_bitmap_element_count(); i++) {
 501         _features_bitmap[i] = 0;
 502       }
 503     }
 504 
 505     void set_feature(Feature_Flag feature) {
 506       int idx = index(feature);
 507       _features_bitmap[idx] |= bit_mask(feature);
 508     }
 509 
 510     void clear_feature(VM_Version::Feature_Flag feature) {
 511       int idx = index(feature);
 512       _features_bitmap[idx] &= ~bit_mask(feature);
 513     }
 514 
 515     bool supports_feature(VM_Version::Feature_Flag feature) {
 516       int idx = index(feature);
 517       return (_features_bitmap[idx] & bit_mask(feature)) != 0;

 478 
 479     constexpr static int features_bitmap_element_shift_count() {
 480       return LogBitsPerLong;
 481     }
 482 
 483     constexpr static uint64_t features_bitmap_element_mask() {
 484       return (1ULL << features_bitmap_element_shift_count()) - 1;
 485     }
 486 
 487     static int index(Feature_Flag feature) {
 488       int idx = feature >> features_bitmap_element_shift_count();
 489       assert(idx < features_bitmap_element_count(), "Features array index out of bounds");
 490       return idx;
 491     }
 492 
 493     static uint64_t bit_mask(Feature_Flag feature) {
 494       return (1ULL << (feature & features_bitmap_element_mask()));
 495     }
 496 
 497     static int _features_bitmap_size; // for JVMCI purposes
 498 
 499    public:
 500     VM_Features() {
 501       for (int i = 0; i < features_bitmap_element_count(); i++) {
 502         _features_bitmap[i] = 0;
 503       }
 504     }
 505 
 506     void set_feature(Feature_Flag feature) {
 507       int idx = index(feature);
 508       _features_bitmap[idx] |= bit_mask(feature);
 509     }
 510 
 511     void clear_feature(VM_Version::Feature_Flag feature) {
 512       int idx = index(feature);
 513       _features_bitmap[idx] &= ~bit_mask(feature);
 514     }
 515 
 516     bool supports_feature(VM_Version::Feature_Flag feature) {
 517       int idx = index(feature);
 518       return (_features_bitmap[idx] & bit_mask(feature)) != 0;
< prev index next >