< prev index next >
src/os_cpu/solaris_sparc/vm/solaris_sparc.il
Print this page
rev 13266 : imported patch Atomic_refactoring
@@ -30,11 +30,11 @@
mov %g7, %o0
.nonvolatile
.end
- // Support for jint Atomic::xchg(jint exchange_value, volatile jint* dest).
+ // Support for int32_t Atomic::specialized_xchg(int32_t exchange_value, volatile int32_t* dest).
//
// Arguments:
// exchange_value: O0
// dest: O1
//
@@ -46,11 +46,11 @@
swap [%o1],%o0
.nonvolatile
.end
- // Support for intptr_t Atomic::xchg_ptr(intptr_t exchange_value, volatile intptr_t * dest).
+ // Support for int64_t Atomic::specialized_xchg(int64_t exchange_value, volatile int64_t * dest).
//
// 64-bit
//
// Arguments:
// exchange_value: O0
@@ -71,13 +71,13 @@
mov %o2, %o0
.nonvolatile
.end
- // Support for jint Atomic::cmpxchg(jint exchange_value,
- // volatile jint* dest,
- // jint compare_value)
+ // Support for int32_t Atomic::specialized_cmpxchg(int32_t exchange_value,
+ // volatile int32_t* dest,
+ // int32_t compare_value)
//
// Arguments:
// exchange_value: O0
// dest: O1
// compare_value: O2
@@ -90,13 +90,13 @@
cas [%o1], %o2, %o0
.nonvolatile
.end
- // Support for intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value,
- // volatile intptr_t* dest,
- // intptr_t compare_value)
+ // Support for int64_t Atomic::specialized_cmpxchg(int64_t exchange_value,
+ // volatile int64_t* dest,
+ // int64_t compare_value)
//
// 64-bit
//
// Arguments:
// exchange_value: O0
@@ -111,56 +111,11 @@
casx [%o1], %o2, %o0
.nonvolatile
.end
- // Support for jlong Atomic::cmpxchg(jlong exchange_value,
- // volatile jlong* dest,
- // jlong compare_value)
- //
- // 32-bit calling conventions
- //
- // Arguments:
- // exchange_value: O1:O0
- // dest: O2
- // compare_value: O4:O3
- //
- // Results:
- // O1:O0: the value previously stored in dest
-
- .inline _Atomic_casl, 3
- .volatile
- sllx %o0, 32, %o0
- srl %o1, 0, %o1
- or %o0,%o1,%o0
- sllx %o3, 32, %o3
- srl %o4, 0, %o4
- or %o3,%o4,%o3
- casx [%o2], %o3, %o0
- srl %o0, 0, %o1
- srlx %o0, 32, %o0
- .nonvolatile
- .end
-
- // Support for jlong Atomic::load and Atomic::store on v9.
- //
- // void _Atomic_move_long_v9(volatile jlong* src, volatile jlong* dst)
- //
- // Arguments:
- // src: O0
- // dest: O1
- //
- // Overwrites O2
-
- .inline _Atomic_move_long_v9,2
- .volatile
- ldx [%o0], %o2
- stx %o2, [%o1]
- .nonvolatile
- .end
-
- // Support for jint Atomic::add(jint add_value, volatile jint* dest).
+ // Support for int32_t Atomic::specialized_add(int32_t add_value, volatile int32_t* dest).
//
// Arguments:
// add_value: O0 (e.g., +1 or -1)
// dest: O1
//
@@ -181,11 +136,11 @@
add %o0, %o2, %o0
.nonvolatile
.end
- // Support for intptr_t Atomic::add_ptr(intptr_t add_value, volatile intptr_t* dest)
+ // Support for int64_t Atomic::specialized_add(int64_t add_value, volatile int64_t* dest)
//
// 64-bit
//
// Arguments:
// add_value: O0 (e.g., +1 or -1)
< prev index next >