src/hotspot/os_cpu/solaris_x86/solaris_x86_64.il
changeset 59252 623722a6aeb9
parent 59251 4cbfa5077d68
equal deleted inserted replaced
59251:4cbfa5077d68 59252:623722a6aeb9
    79       .inline _Atomic_xchg_long,2
    79       .inline _Atomic_xchg_long,2
    80       xchgq    (%rsi), %rdi
    80       xchgq    (%rsi), %rdi
    81       movq     %rdi, %rax
    81       movq     %rdi, %rax
    82       .end
    82       .end
    83 
    83 
    84   // Support for jbyte Atomic::cmpxchg(jbyte exchange_value,
    84   // Support for jbyte Atomic::cmpxchg(volatile jbyte *dest,
    85   //                                   volatile jbyte *dest,
    85   //                                   jbyte compare_value,
    86   //                                   jbyte compare_value)
    86   //                                   jbyte exchange_value)
    87       .inline _Atomic_cmpxchg_byte,3
    87       .inline _Atomic_cmpxchg_byte,3
    88       movb     %dl, %al      // compare_value
    88       movb     %dl, %al      // compare_value
    89       lock
    89       lock
    90       cmpxchgb %dil, (%rsi)
    90       cmpxchgb %dil, (%rsi)
    91       .end
    91       .end
    92 
    92 
    93   // Support for jint Atomic::cmpxchg(jint exchange_value,
    93   // Support for jint Atomic::cmpxchg(volatile jint *dest,
    94   //                                  volatile jint *dest,
    94   //                                  int compare_value,
    95   //                                  jint compare_value)
    95   //                                  jint exchange_value)
    96       .inline _Atomic_cmpxchg,3
    96       .inline _Atomic_cmpxchg,3
    97       movl     %edx, %eax      // compare_value
    97       movl     %edx, %eax      // compare_value
    98       lock
    98       lock
    99       cmpxchgl %edi, (%rsi)
    99       cmpxchgl %edi, (%rsi)
   100       .end
   100       .end
   101 
   101 
   102   // Support for jlong Atomic::cmpxchg(jlong exchange_value,
   102   // Support for jlong Atomic::cmpxchg(volatile jlong* dest,
   103   //                                   volatile jlong* dest,
   103   //                                   jlong compare_value,
   104   //                                   jlong compare_value)
   104   //                                   jlong exchange_value)
   105       .inline _Atomic_cmpxchg_long,3
   105       .inline _Atomic_cmpxchg_long,3
   106       movq     %rdx, %rax      // compare_value
   106       movq     %rdx, %rax      // compare_value
   107       lock
   107       lock
   108       cmpxchgq %rdi, (%rsi)
   108       cmpxchgq %rdi, (%rsi)
   109       .end
   109       .end