96 static const char* internal_vm_info_string(); |
96 static const char* internal_vm_info_string(); |
97 static const char* jre_release_version(); |
97 static const char* jre_release_version(); |
98 |
98 |
99 // does HW support an 8-byte compare-exchange operation? |
99 // does HW support an 8-byte compare-exchange operation? |
100 static bool supports_cx8() { |
100 static bool supports_cx8() { |
|
101 assert(_initialized, "not initialized"); |
101 #ifdef SUPPORTS_NATIVE_CX8 |
102 #ifdef SUPPORTS_NATIVE_CX8 |
102 return true; |
103 return true; |
103 #else |
104 #else |
104 return _supports_cx8; |
105 return _supports_cx8; |
105 #endif |
106 #endif |
106 } |
107 } |
107 // does HW support atomic get-and-set or atomic get-and-add? Used |
108 // does HW support atomic get-and-set or atomic get-and-add? Used |
108 // to guide intrinsification decisions for Unsafe atomic ops |
109 // to guide intrinsification decisions for Unsafe atomic ops |
109 static bool supports_atomic_getset4() {return _supports_atomic_getset4;} |
110 static bool supports_atomic_getset4() { assert(_initialized, "not initialized"); return _supports_atomic_getset4;} |
110 static bool supports_atomic_getset8() {return _supports_atomic_getset8;} |
111 static bool supports_atomic_getset8() { assert(_initialized, "not initialized"); return _supports_atomic_getset8;} |
111 static bool supports_atomic_getadd4() {return _supports_atomic_getadd4;} |
112 static bool supports_atomic_getadd4() { assert(_initialized, "not initialized"); return _supports_atomic_getadd4;} |
112 static bool supports_atomic_getadd8() {return _supports_atomic_getadd8;} |
113 static bool supports_atomic_getadd8() { assert(_initialized, "not initialized"); return _supports_atomic_getadd8;} |
113 |
114 |
114 static unsigned int logical_processors_per_package() { |
115 static unsigned int logical_processors_per_package() { |
115 return _logical_processors_per_package; |
116 return _logical_processors_per_package; |
116 } |
117 } |
117 |
118 |