83 // Override Abstract_VM_Version implementation
84 static bool use_biased_locking();
85
86 static bool is_determine_features_test_running() { return _is_determine_features_test_running; }
87 // CPU instruction support
88 static bool has_fsqrt() { return (_features & fsqrt_m) != 0; }
89 static bool has_fsqrts() { return (_features & fsqrts_m) != 0; }
90 static bool has_isel() { return (_features & isel_m) != 0; }
91 static bool has_lxarxeh() { return (_features & lxarxeh_m) !=0; }
92 static bool has_cmpb() { return (_features & cmpb_m) != 0; }
93 static bool has_popcntb() { return (_features & popcntb_m) != 0; }
94 static bool has_popcntw() { return (_features & popcntw_m) != 0; }
95 static bool has_fcfids() { return (_features & fcfids_m) != 0; }
96 static bool has_vand() { return (_features & vand_m) != 0; }
97 static bool has_lqarx() { return (_features & lqarx_m) != 0; }
98 static bool has_vcipher() { return (_features & vcipher_m) != 0; }
99 static bool has_vpmsumb() { return (_features & vpmsumb_m) != 0; }
100 static bool has_tcheck() { return (_features & tcheck_m) != 0; }
101 static bool has_mfdscr() { return (_features & mfdscr_m) != 0; }
102 static bool has_vsx() { return (_features & vsx_m) != 0; }
103
104 // Assembler testing
105 static void allow_all();
106 static void revert();
107
108 // POWER 8: DSCR current value.
109 static uint64_t _dscr_val;
110 };
111
112 #endif // CPU_PPC_VM_VM_VERSION_PPC_HPP
|
83 // Override Abstract_VM_Version implementation
84 static bool use_biased_locking();
85
86 static bool is_determine_features_test_running() { return _is_determine_features_test_running; }
87 // CPU instruction support
88 static bool has_fsqrt() { return (_features & fsqrt_m) != 0; }
89 static bool has_fsqrts() { return (_features & fsqrts_m) != 0; }
90 static bool has_isel() { return (_features & isel_m) != 0; }
91 static bool has_lxarxeh() { return (_features & lxarxeh_m) !=0; }
92 static bool has_cmpb() { return (_features & cmpb_m) != 0; }
93 static bool has_popcntb() { return (_features & popcntb_m) != 0; }
94 static bool has_popcntw() { return (_features & popcntw_m) != 0; }
95 static bool has_fcfids() { return (_features & fcfids_m) != 0; }
96 static bool has_vand() { return (_features & vand_m) != 0; }
97 static bool has_lqarx() { return (_features & lqarx_m) != 0; }
98 static bool has_vcipher() { return (_features & vcipher_m) != 0; }
99 static bool has_vpmsumb() { return (_features & vpmsumb_m) != 0; }
100 static bool has_tcheck() { return (_features & tcheck_m) != 0; }
101 static bool has_mfdscr() { return (_features & mfdscr_m) != 0; }
102 static bool has_vsx() { return (_features & vsx_m) != 0; }
103 static bool has_mtfprd() { return has_vpmsumb(); } // alias for P8
104
105 // Assembler testing
106 static void allow_all();
107 static void revert();
108
109 // POWER 8: DSCR current value.
110 static uint64_t _dscr_val;
111 };
112
113 #endif // CPU_PPC_VM_VM_VERSION_PPC_HPP
|