1329 return k0 == k1;
1330 }
1331
1332 template<typename K> int primitive_compare(const K& k0, const K& k1) {
1333 return ((k0 < k1) ? -1 : (k0 == k1) ? 0 : 1);
1334 }
1335
1336 //----------------------------------------------------------------------------------------------------
1337
1338 // Allow use of C++ thread_local when approved - see JDK-8282469.
1339 #define APPROVED_CPP_THREAD_LOCAL thread_local
1340
1341 // Converts any type T to a reference type.
1342 template<typename T>
1343 std::add_rvalue_reference_t<T> declval() noexcept;
1344
1345 // Quickly test to make sure IEEE-754 subnormal numbers are correctly
1346 // handled.
1347 bool IEEE_subnormal_handling_OK();
1348
1349 #endif // SHARE_UTILITIES_GLOBALDEFINITIONS_HPP
|
1329 return k0 == k1;
1330 }
1331
1332 template<typename K> int primitive_compare(const K& k0, const K& k1) {
1333 return ((k0 < k1) ? -1 : (k0 == k1) ? 0 : 1);
1334 }
1335
1336 //----------------------------------------------------------------------------------------------------
1337
1338 // Allow use of C++ thread_local when approved - see JDK-8282469.
1339 #define APPROVED_CPP_THREAD_LOCAL thread_local
1340
1341 // Converts any type T to a reference type.
1342 template<typename T>
1343 std::add_rvalue_reference_t<T> declval() noexcept;
1344
1345 // Quickly test to make sure IEEE-754 subnormal numbers are correctly
1346 // handled.
1347 bool IEEE_subnormal_handling_OK();
1348
1349 #if defined(AMD64) || defined (AARCH64)
1350 #define LOOM_MONITOR_SUPPORT true
1351 #define LOOM_MONITOR_SUPPORT_ONLY(code) code
1352 #define NOT_LOOM_MONITOR_SUPPORT(code)
1353 #else
1354 #undef LOOM_MONITOR_SUPPORT
1355 #define LOOM_MONITOR_SUPPORT_ONLY(code)
1356 #define NOT_LOOM_MONITOR_SUPPORT(code) code
1357 #endif
1358
1359 #endif // SHARE_UTILITIES_GLOBALDEFINITIONS_HPP
|