Use LP_OP(mov) and RDI_LP on pointer
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 15 May 2012 17:19:11 +0000 (10:19 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 15 May 2012 17:19:11 +0000 (10:19 -0700)
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S

index d1ca161..68bae39 100644 (file)
@@ -1,5 +1,10 @@
 2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Use LP_OP(mov)
+       to update pointer in memory.  Load pointer into RDI_LP.
+
+2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
        * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
        (LLL_STUB_UNWIND_INFO_START): Align label to LP_SIZE instead
        of 8.
index d7c7e80..31bb08b 100644 (file)
@@ -72,10 +72,10 @@ ENTRY(__pthread_enable_asynccancel)
 
 3:     subq    $8, %rsp
        cfi_adjust_cfa_offset(8)
-       movq    $TCB_PTHREAD_CANCELED, %fs:RESULT
+       LP_OP(mov) $TCB_PTHREAD_CANCELED, %fs:RESULT
        lock
        orl     $TCB_EXITING_BITMASK, %fs:CANCELHANDLING
-       movq    %fs:CLEANUP_JMP_BUF, %rdi
+       mov     %fs:CLEANUP_JMP_BUF, %RDI_LP
 #ifdef SHARED
        call    __pthread_unwind@PLT
 #else
@@ -106,7 +106,7 @@ ENTRY(__pthread_disable_asynccancel)
        /* Performance doesn't matter in this loop.  We will
           delay until the thread is canceled.  And we will unlikely
           enter the loop twice.  */
-4:     movq    %fs:0, %rdi
+4:     mov     %fs:0, %RDI_LP
        movl    $__NR_futex, %eax
        xorq    %r10, %r10
        addq    $CANCELHANDLING, %rdi