1.1 --- a/src/share/vm/runtime/vm_version.hpp Wed Sep 19 16:50:26 2012 -0700 1.2 +++ b/src/share/vm/runtime/vm_version.hpp Thu Sep 20 16:49:17 2012 +0200 1.3 @@ -37,6 +37,10 @@ 1.4 static const char* _s_internal_vm_info_string; 1.5 // These are set by machine-dependent initializations 1.6 static bool _supports_cx8; 1.7 + static bool _supports_atomic_getset4; 1.8 + static bool _supports_atomic_getset8; 1.9 + static bool _supports_atomic_getadd4; 1.10 + static bool _supports_atomic_getadd8; 1.11 static unsigned int _logical_processors_per_package; 1.12 static int _vm_major_version; 1.13 static int _vm_minor_version; 1.14 @@ -75,6 +79,13 @@ 1.15 1.16 // does HW support an 8-byte compare-exchange operation? 1.17 static bool supports_cx8() {return _supports_cx8;} 1.18 + // does HW support atomic get-and-set or atomic get-and-add? Used 1.19 + // to guide intrinsification decisions for Unsafe atomic ops 1.20 + static bool supports_atomic_getset4() {return _supports_atomic_getset4;} 1.21 + static bool supports_atomic_getset8() {return _supports_atomic_getset8;} 1.22 + static bool supports_atomic_getadd4() {return _supports_atomic_getadd4;} 1.23 + static bool supports_atomic_getadd8() {return _supports_atomic_getadd8;} 1.24 + 1.25 static unsigned int logical_processors_per_package() { 1.26 return _logical_processors_per_package; 1.27 }