36 inline void Atomic::store (jbyte store_value, volatile jbyte* dest) { *dest = store_value; } |
36 inline void Atomic::store (jbyte store_value, volatile jbyte* dest) { *dest = store_value; } |
37 inline void Atomic::store (jshort store_value, volatile jshort* dest) { *dest = store_value; } |
37 inline void Atomic::store (jshort store_value, volatile jshort* dest) { *dest = store_value; } |
38 inline void Atomic::store (jint store_value, volatile jint* dest) { *dest = store_value; } |
38 inline void Atomic::store (jint store_value, volatile jint* dest) { *dest = store_value; } |
39 inline void Atomic::store_ptr(intptr_t store_value, volatile intptr_t* dest) { *dest = store_value; } |
39 inline void Atomic::store_ptr(intptr_t store_value, volatile intptr_t* dest) { *dest = store_value; } |
40 inline void Atomic::store_ptr(void* store_value, volatile void* dest) { *(void* volatile *)dest = store_value; } |
40 inline void Atomic::store_ptr(void* store_value, volatile void* dest) { *(void* volatile *)dest = store_value; } |
41 |
|
42 inline void Atomic::inc (volatile jint* dest) { (void)add (1, dest); } |
|
43 inline void Atomic::inc_ptr(volatile intptr_t* dest) { (void)add_ptr(1, dest); } |
|
44 inline void Atomic::inc_ptr(volatile void* dest) { (void)add_ptr(1, dest); } |
|
45 |
|
46 inline void Atomic::dec (volatile jint* dest) { (void)add (-1, dest); } |
|
47 inline void Atomic::dec_ptr(volatile intptr_t* dest) { (void)add_ptr(-1, dest); } |
|
48 inline void Atomic::dec_ptr(volatile void* dest) { (void)add_ptr(-1, dest); } |
|
49 |
41 |
50 // For Sun Studio - implementation is in solaris_x86_64.il. |
42 // For Sun Studio - implementation is in solaris_x86_64.il. |
51 |
43 |
52 extern "C" { |
44 extern "C" { |
53 jint _Atomic_add(jint add_value, volatile jint* dest); |
45 jint _Atomic_add(jint add_value, volatile jint* dest); |