< prev index next >
src/hotspot/os_cpu/solaris_x86/solaris_x86_64.il
Print this page
*** 47,105 ****
rdtsc
salq $32, %rdx
orq %rdx, %rax
.end
! // Support for jint Atomic::add(jint add_value, volatile jint* dest)
.inline _Atomic_add,2
movl %edi, %eax // save add_value for return
lock
xaddl %edi, (%rsi)
addl %edi, %eax
.end
! // Support for jlong Atomic::add(jlong add_value, volatile jlong* dest)
.inline _Atomic_add_long,2
movq %rdi, %rax // save add_value for return
lock
xaddq %rdi, (%rsi)
addq %rdi, %rax
.end
! // Support for jint Atomic::xchg(jint exchange_value, volatile jint* dest).
.inline _Atomic_xchg,2
xchgl (%rsi), %edi
movl %edi, %eax
.end
! // Support for jlong Atomic::xchg(jlong exchange_value, volatile jlong* dest).
.inline _Atomic_xchg_long,2
xchgq (%rsi), %rdi
movq %rdi, %rax
.end
! // Support for jbyte Atomic::cmpxchg(jbyte exchange_value,
! // volatile jbyte *dest,
! // jbyte compare_value)
.inline _Atomic_cmpxchg_byte,3
movb %dl, %al // compare_value
lock
cmpxchgb %dil, (%rsi)
.end
! // Support for jint Atomic::cmpxchg(jint exchange_value,
! // volatile jint *dest,
! // jint compare_value)
.inline _Atomic_cmpxchg,3
movl %edx, %eax // compare_value
lock
cmpxchgl %edi, (%rsi)
.end
! // Support for jlong Atomic::cmpxchg(jlong exchange_value,
! // volatile jlong* dest,
! // jlong compare_value)
.inline _Atomic_cmpxchg_long,3
movq %rdx, %rax // compare_value
lock
cmpxchgq %rdi, (%rsi)
.end
--- 47,105 ----
rdtsc
salq $32, %rdx
orq %rdx, %rax
.end
! // Support for jint Atomic::add(volatile jint* dest, jint add_value)
.inline _Atomic_add,2
movl %edi, %eax // save add_value for return
lock
xaddl %edi, (%rsi)
addl %edi, %eax
.end
! // Support for jlong Atomic::add(volatile jlong* dest, jlong add_value)
.inline _Atomic_add_long,2
movq %rdi, %rax // save add_value for return
lock
xaddq %rdi, (%rsi)
addq %rdi, %rax
.end
! // Support for jint Atomic::xchg(volatile jint* dest, jint exchange_value).
.inline _Atomic_xchg,2
xchgl (%rsi), %edi
movl %edi, %eax
.end
! // Support for jlong Atomic::xchg(volatile jlong* dest, jlong exchange_value).
.inline _Atomic_xchg_long,2
xchgq (%rsi), %rdi
movq %rdi, %rax
.end
! // Support for jbyte Atomic::cmpxchg(volatile jbyte *dest,
! // jbyte compare_value,
! // jbyte exchange_value)
.inline _Atomic_cmpxchg_byte,3
movb %dl, %al // compare_value
lock
cmpxchgb %dil, (%rsi)
.end
! // Support for jint Atomic::cmpxchg(volatile jint *dest,
! // int compare_value,
! // jint exchange_value)
.inline _Atomic_cmpxchg,3
movl %edx, %eax // compare_value
lock
cmpxchgl %edi, (%rsi)
.end
! // Support for jlong Atomic::cmpxchg(volatile jlong* dest,
! // jlong compare_value,
! // jlong exchange_value)
.inline _Atomic_cmpxchg_long,3
movq %rdx, %rax // compare_value
lock
cmpxchgq %rdi, (%rsi)
.end
< prev index next >