This is the mail archive of the libc-hacker@sourceware.org mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, Here is a nptl patch for SH to sync with the recent x86 changes. Regards, kaz - 2007-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait): Store 2 before returning ETIMEDOUT. diff -uprN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2007-11-06 10:32:41.000000000 +0900 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2007-12-04 13:02:45.000000000 +0900 @@ -225,6 +225,12 @@ __lll_timedlock_wait: add #-8, r15 cfi_adjust_cfa_offset(8) + mov #2, r2 + XCHG (r2, @r8, r3) + + tst r3, r3 + bt 6f + 1: /* Get current time. */ mov r15, r4 @@ -250,17 +256,11 @@ __lll_timedlock_wait: add #-1, r2 4: cmp/pz r2 - bf 5f /* Time is already up. */ + bf 2f /* Time is already up. */ mov.l r2, @r15 /* Store relative timeout. */ mov.l r3, @(4,r15) - mov #1, r3 - mov #2, r4 - CMPXCHG (r3, @r8, r4, r2) - tst r2, r2 - bt 8f - mov r8, r4 mov r11, r5 LOAD_FUTEX_WAIT (r5, r0, r1) @@ -272,39 +272,29 @@ __lll_timedlock_wait: SYSCALL_INST_PAD mov r0, r5 -8: - mov #0, r3 - mov #2, r4 - CMPXCHG (r3, @r8, r4, r2) - bf/s 7f - mov #0, r0 + mov #2, r2 + XCHG (r2, @r8, r3) + + tst r3, r3 + bt/s 6f + mov #-ETIMEDOUT, r1 + cmp/eq r5, r1 + bf 1b + +2: mov #ETIMEDOUT, r3 6: + mov r3, r0 add #8, r15 mov.l @r15+, r8 mov.l @r15+, r9 mov.l @r15+, r10 rts mov.l @r15+, r11 -7: - /* Check whether the time expired. */ - mov #-ETIMEDOUT, r1 - cmp/eq r5, r1 - bt 5f - /* Make sure the current holder knows we are going to sleep. */ - XCHG (r2, @r8, r3) - tst r3, r3 - bt/s 6b - mov #0, r0 - bra 1b - nop 3: rts mov #EINVAL, r0 -5: - bra 6b - mov #ETIMEDOUT, r0 cfi_endproc .L1k:
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |