< prev index next >

src/os_cpu/solaris_sparc/vm/solaris_sparc.il

Print this page
rev 13437 : imported patch solaris_sparc

*** 71,148 **** mov %o2, %o0 .nonvolatile .end - // Support for jint Atomic::cmpxchg(jint exchange_value, - // volatile jint* dest, - // jint compare_value) - // - // Arguments: - // exchange_value: O0 - // dest: O1 - // compare_value: O2 - // - // Results: - // O0: the value previously stored in dest - - .inline _Atomic_cas32, 3 - .volatile - 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) - // - // 64-bit - // - // Arguments: - // exchange_value: O0 - // dest: O1 - // compare_value: O2 - // - // Results: - // O0: the value previously stored in dest - - .inline _Atomic_cas64, 3 - .volatile - 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: --- 71,80 ----
< prev index next >