src/share/vm/runtime/vm_version.hpp

changeset 4106
7eca5de9e0b6
parent 3517
c77d473e71f7
child 4153
b9a9ed0f8eeb
     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    }

mercurial