72 ldbrx_m = (1 << ldbrx ), 73 stdbrx_m = (1 << stdbrx ), 74 vshasig_m = (1 << vshasig), 75 rtm_m = (1 << rtm ), 76 darn_m = (1 << darn ), 77 all_features_m = (unsigned long)-1 78 }; 79 80 static bool _is_determine_features_test_running; 81 82 static void print_features(); 83 static void determine_features(); // also measures cache line size 84 static void config_dscr(); // Power 8: Configure Data Stream Control Register. 85 static void determine_section_size(); 86 static void power6_micro_bench(); 87 public: 88 // Initialization 89 static void initialize(); 90 91 // Override Abstract_VM_Version implementation 92 static void print_platform_virtualization_info(outputStream*); 93 94 // Override Abstract_VM_Version implementation 95 static bool use_biased_locking(); 96 97 static bool is_determine_features_test_running() { return _is_determine_features_test_running; } 98 // CPU instruction support 99 static bool has_fsqrt() { return (_features & fsqrt_m) != 0; } 100 static bool has_fsqrts() { return (_features & fsqrts_m) != 0; } 101 static bool has_isel() { return (_features & isel_m) != 0; } 102 static bool has_lxarxeh() { return (_features & lxarxeh_m) !=0; } 103 static bool has_cmpb() { return (_features & cmpb_m) != 0; } 104 static bool has_popcntb() { return (_features & popcntb_m) != 0; } 105 static bool has_popcntw() { return (_features & popcntw_m) != 0; } 106 static bool has_fcfids() { return (_features & fcfids_m) != 0; } 107 static bool has_vand() { return (_features & vand_m) != 0; } 108 static bool has_lqarx() { return (_features & lqarx_m) != 0; } 109 static bool has_vcipher() { return (_features & vcipher_m) != 0; } 110 static bool has_vpmsumb() { return (_features & vpmsumb_m) != 0; } 111 static bool has_mfdscr() { return (_features & mfdscr_m) != 0; } 112 static bool has_vsx() { return (_features & vsx_m) != 0; } 113 static bool has_ldbrx() { return (_features & ldbrx_m) != 0; } 114 static bool has_stdbrx() { return (_features & stdbrx_m) != 0; } | 72 ldbrx_m = (1 << ldbrx ), 73 stdbrx_m = (1 << stdbrx ), 74 vshasig_m = (1 << vshasig), 75 rtm_m = (1 << rtm ), 76 darn_m = (1 << darn ), 77 all_features_m = (unsigned long)-1 78 }; 79 80 static bool _is_determine_features_test_running; 81 82 static void print_features(); 83 static void determine_features(); // also measures cache line size 84 static void config_dscr(); // Power 8: Configure Data Stream Control Register. 85 static void determine_section_size(); 86 static void power6_micro_bench(); 87 public: 88 // Initialization 89 static void initialize(); 90 91 // Override Abstract_VM_Version implementation 92 static bool use_biased_locking(); 93 94 static bool is_determine_features_test_running() { return _is_determine_features_test_running; } 95 // CPU instruction support 96 static bool has_fsqrt() { return (_features & fsqrt_m) != 0; } 97 static bool has_fsqrts() { return (_features & fsqrts_m) != 0; } 98 static bool has_isel() { return (_features & isel_m) != 0; } 99 static bool has_lxarxeh() { return (_features & lxarxeh_m) !=0; } 100 static bool has_cmpb() { return (_features & cmpb_m) != 0; } 101 static bool has_popcntb() { return (_features & popcntb_m) != 0; } 102 static bool has_popcntw() { return (_features & popcntw_m) != 0; } 103 static bool has_fcfids() { return (_features & fcfids_m) != 0; } 104 static bool has_vand() { return (_features & vand_m) != 0; } 105 static bool has_lqarx() { return (_features & lqarx_m) != 0; } 106 static bool has_vcipher() { return (_features & vcipher_m) != 0; } 107 static bool has_vpmsumb() { return (_features & vpmsumb_m) != 0; } 108 static bool has_mfdscr() { return (_features & mfdscr_m) != 0; } 109 static bool has_vsx() { return (_features & vsx_m) != 0; } 110 static bool has_ldbrx() { return (_features & ldbrx_m) != 0; } 111 static bool has_stdbrx() { return (_features & stdbrx_m) != 0; } |