(__lll_lock_wait): Remove jump prediction suffix.
This commit is contained in:
parent
b6e2f87a61
commit
25d025ce77
@ -88,10 +88,10 @@ __lll_mutex_timedlock_wait:
|
|||||||
|
|
||||||
movl %ecx, %ebp
|
movl %ecx, %ebp
|
||||||
movl %edx, %edi
|
movl %edx, %edi
|
||||||
leal 1(%eax), %esi
|
|
||||||
|
1: leal 1(%eax), %esi
|
||||||
|
|
||||||
/* Get current time. */
|
/* Get current time. */
|
||||||
1:
|
|
||||||
movl %esp, %ebx
|
movl %esp, %ebx
|
||||||
xorl %ecx, %ecx
|
xorl %ecx, %ecx
|
||||||
movl $SYS_gettimeofday, %eax
|
movl $SYS_gettimeofday, %eax
|
||||||
@ -120,11 +120,12 @@ __lll_mutex_timedlock_wait:
|
|||||||
movl %ebp, %ebx
|
movl %ebp, %ebx
|
||||||
movl $SYS_futex, %eax
|
movl $SYS_futex, %eax
|
||||||
ENTER_KERNEL
|
ENTER_KERNEL
|
||||||
|
movl %eax, %ecx
|
||||||
|
|
||||||
movl $1, %esi
|
movl $1, %eax
|
||||||
LOCK
|
LOCK
|
||||||
xaddl %esi, (%ebx)
|
xaddl %eax, (%ebx)
|
||||||
testl %esi, %esi
|
testl %eax, %eax
|
||||||
jne 7f
|
jne 7f
|
||||||
|
|
||||||
movl $2, (%ebx)
|
movl $2, (%ebx)
|
||||||
@ -138,7 +139,7 @@ __lll_mutex_timedlock_wait:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
/* Check whether the time expired. */
|
/* Check whether the time expired. */
|
||||||
7: cmpl $-ETIMEDOUT, %eax
|
7: cmpl $-ETIMEDOUT, %ecx
|
||||||
je 5f
|
je 5f
|
||||||
jmp 1b
|
jmp 1b
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ __lll_lock_wait:
|
|||||||
orl $-1, %esi /* Load -1. */
|
orl $-1, %esi /* Load -1. */
|
||||||
LOCK
|
LOCK
|
||||||
xaddl %esi, (%rdi)
|
xaddl %esi, (%rdi)
|
||||||
jne,pn 1b
|
jne 1b
|
||||||
|
|
||||||
movl $-1, (%rdi)
|
movl $-1, (%rdi)
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ extern int __lll_mutex_unlock_wait (int *__futex) attribute_hidden;
|
|||||||
"jmp 2f\n\t" \
|
"jmp 2f\n\t" \
|
||||||
".previous\n" \
|
".previous\n" \
|
||||||
"2:" \
|
"2:" \
|
||||||
: "=S" (result), "=&D" (ignore1), "=&a" (ignore2), \
|
: "=a" (result), "=&D" (ignore1), "=&S" (ignore2), \
|
||||||
"=&d" (ignore3), "=m" (futex) \
|
"=&d" (ignore3), "=m" (futex) \
|
||||||
: "0" (1), "4" (futex), "m" (timeout) \
|
: "0" (1), "4" (futex), "m" (timeout) \
|
||||||
: "memory", "cx", "cc", "r10"); \
|
: "memory", "cx", "cc", "r10"); \
|
||||||
|
@ -87,10 +87,11 @@ __lll_mutex_timedlock_wait:
|
|||||||
|
|
||||||
movq %rdi, %r12
|
movq %rdi, %r12
|
||||||
movq %rdx, %r13
|
movq %rdx, %r13
|
||||||
leaq 1(%rsi), %r14
|
|
||||||
|
1: leaq 1(%rax), %r14
|
||||||
|
|
||||||
/* Get current time. */
|
/* Get current time. */
|
||||||
1: movq %rsp, %rdi
|
movq %rsp, %rdi
|
||||||
xorq %rsi, %rsi
|
xorq %rsi, %rsi
|
||||||
movq $VSYSCALL_ADDR_vgettimeofday, %rax
|
movq $VSYSCALL_ADDR_vgettimeofday, %rax
|
||||||
/* This is a regular function call, all calleer-save registers
|
/* This is a regular function call, all calleer-save registers
|
||||||
@ -121,11 +122,12 @@ __lll_mutex_timedlock_wait:
|
|||||||
movq %r12, %rdi
|
movq %r12, %rdi
|
||||||
movq $SYS_futex, %rax
|
movq $SYS_futex, %rax
|
||||||
syscall
|
syscall
|
||||||
|
movq %rax, %rcx
|
||||||
|
|
||||||
movl $1, %r14d
|
movl $1, %eax
|
||||||
LOCK
|
LOCK
|
||||||
xaddl %r14d, (%rdi)
|
xaddl %eax, (%rdi)
|
||||||
testl %r14d, %r14d
|
testl %eax, %eax
|
||||||
jne 7f
|
jne 7f
|
||||||
|
|
||||||
movl $2, (%rdi)
|
movl $2, (%rdi)
|
||||||
@ -138,7 +140,7 @@ __lll_mutex_timedlock_wait:
|
|||||||
retq
|
retq
|
||||||
|
|
||||||
/* Check whether the time expired. */
|
/* Check whether the time expired. */
|
||||||
7: cmpq $-ETIMEDOUT, %rax
|
7: cmpq $-ETIMEDOUT, %rcx
|
||||||
je 5f
|
je 5f
|
||||||
jmp 1b
|
jmp 1b
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user