diff -r 6b056026ecad -r 8d82c4dfa722 hotspot/src/share/vm/runtime/vm_version.hpp --- a/hotspot/src/share/vm/runtime/vm_version.hpp Wed Sep 19 16:50:26 2012 -0700 +++ b/hotspot/src/share/vm/runtime/vm_version.hpp Thu Sep 20 16:49:17 2012 +0200 @@ -37,6 +37,10 @@ static const char* _s_internal_vm_info_string; // These are set by machine-dependent initializations static bool _supports_cx8; + static bool _supports_atomic_getset4; + static bool _supports_atomic_getset8; + static bool _supports_atomic_getadd4; + static bool _supports_atomic_getadd8; static unsigned int _logical_processors_per_package; static int _vm_major_version; static int _vm_minor_version; @@ -75,6 +79,13 @@ // does HW support an 8-byte compare-exchange operation? static bool supports_cx8() {return _supports_cx8;} + // does HW support atomic get-and-set or atomic get-and-add? Used + // to guide intrinsification decisions for Unsafe atomic ops + static bool supports_atomic_getset4() {return _supports_atomic_getset4;} + static bool supports_atomic_getset8() {return _supports_atomic_getset8;} + static bool supports_atomic_getadd4() {return _supports_atomic_getadd4;} + static bool supports_atomic_getadd8() {return _supports_atomic_getadd8;} + static unsigned int logical_processors_per_package() { return _logical_processors_per_package; }