src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp

changeset 2460
85c73c0edb06
parent 2314
f95d63e2154a
child 4675
63e54c37ac64
     1.1 --- a/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp	Thu Oct 07 13:49:40 2010 -0700
     1.2 +++ b/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp	Tue Jan 18 17:10:03 2011 -0800
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -77,11 +77,11 @@
    1.11  inline jbyte    OrderAccess::load_acquire(volatile jbyte*   p) { return *p; }
    1.12  inline jshort   OrderAccess::load_acquire(volatile jshort*  p) { return *p; }
    1.13  inline jint     OrderAccess::load_acquire(volatile jint*    p) { return *p; }
    1.14 -inline jlong    OrderAccess::load_acquire(volatile jlong*   p) { return *p; }
    1.15 +inline jlong    OrderAccess::load_acquire(volatile jlong*   p) { return Atomic::load(p); }
    1.16  inline jubyte   OrderAccess::load_acquire(volatile jubyte*  p) { return *p; }
    1.17  inline jushort  OrderAccess::load_acquire(volatile jushort* p) { return *p; }
    1.18  inline juint    OrderAccess::load_acquire(volatile juint*   p) { return *p; }
    1.19 -inline julong   OrderAccess::load_acquire(volatile julong*  p) { return *p; }
    1.20 +inline julong   OrderAccess::load_acquire(volatile julong*  p) { return Atomic::load((volatile jlong*)p); }
    1.21  inline jfloat   OrderAccess::load_acquire(volatile jfloat*  p) { return *p; }
    1.22  inline jdouble  OrderAccess::load_acquire(volatile jdouble* p) { return *p; }
    1.23  
    1.24 @@ -92,11 +92,11 @@
    1.25  inline void     OrderAccess::release_store(volatile jbyte*   p, jbyte   v) { *p = v; }
    1.26  inline void     OrderAccess::release_store(volatile jshort*  p, jshort  v) { *p = v; }
    1.27  inline void     OrderAccess::release_store(volatile jint*    p, jint    v) { *p = v; }
    1.28 -inline void     OrderAccess::release_store(volatile jlong*   p, jlong   v) { *p = v; }
    1.29 +inline void     OrderAccess::release_store(volatile jlong*   p, jlong   v) { Atomic::store(v, p); }
    1.30  inline void     OrderAccess::release_store(volatile jubyte*  p, jubyte  v) { *p = v; }
    1.31  inline void     OrderAccess::release_store(volatile jushort* p, jushort v) { *p = v; }
    1.32  inline void     OrderAccess::release_store(volatile juint*   p, juint   v) { *p = v; }
    1.33 -inline void     OrderAccess::release_store(volatile julong*  p, julong  v) { *p = v; }
    1.34 +inline void     OrderAccess::release_store(volatile julong*  p, julong  v) { Atomic::store((jlong)v, (volatile jlong*)p); }
    1.35  inline void     OrderAccess::release_store(volatile jfloat*  p, jfloat  v) { *p = v; }
    1.36  inline void     OrderAccess::release_store(volatile jdouble* p, jdouble v) { *p = v; }
    1.37  
    1.38 @@ -120,11 +120,11 @@
    1.39  inline void     OrderAccess::release_store_fence(volatile jbyte*   p, jbyte   v) { *p = v; fence(); }
    1.40  inline void     OrderAccess::release_store_fence(volatile jshort*  p, jshort  v) { *p = v; fence(); }
    1.41  inline void     OrderAccess::release_store_fence(volatile jint*    p, jint    v) { *p = v; fence(); }
    1.42 -inline void     OrderAccess::release_store_fence(volatile jlong*   p, jlong   v) { *p = v; fence(); }
    1.43 +inline void     OrderAccess::release_store_fence(volatile jlong*   p, jlong   v) { release_store(p, v); fence(); }
    1.44  inline void     OrderAccess::release_store_fence(volatile jubyte*  p, jubyte  v) { *p = v; fence(); }
    1.45  inline void     OrderAccess::release_store_fence(volatile jushort* p, jushort v) { *p = v; fence(); }
    1.46  inline void     OrderAccess::release_store_fence(volatile juint*   p, juint   v) { *p = v; fence(); }
    1.47 -inline void     OrderAccess::release_store_fence(volatile julong*  p, julong  v) { *p = v; fence(); }
    1.48 +inline void     OrderAccess::release_store_fence(volatile julong*  p, julong  v) { release_store(p, v); fence(); }
    1.49  inline void     OrderAccess::release_store_fence(volatile jfloat*  p, jfloat  v) { *p = v; fence(); }
    1.50  inline void     OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) { *p = v; fence(); }
    1.51  

mercurial