< 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 >