diff options
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S index 7bd93553d3..fc1791b51f 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2003-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -30,11 +30,20 @@ .globl __pthread_cond_broadcast .type __pthread_cond_broadcast, @function .align 5 + cfi_startproc __pthread_cond_broadcast: mov.l r10, @-r15 + cfi_adjust_cfa_offset (4) + cfi_rel_offset (r10, 0) mov.l r9, @-r15 + cfi_adjust_cfa_offset (4) + cfi_rel_offset (r9, 0) mov.l r8, @-r15 + cfi_adjust_cfa_offset (4) + cfi_rel_offset (r8, 0) sts.l pr, @-r15 + cfi_adjust_cfa_offset (4) + cfi_rel_offset (pr, 0) mov r4, r8 /* Get internal lock. */ @@ -136,12 +145,22 @@ __pthread_cond_broadcast: add #cond_futex, r4 10: - mov #0, r0 + cfi_remember_state lds.l @r15+, pr + cfi_adjust_cfa_offset (-4) + cfi_restore (pr) mov.l @r15+, r8 + cfi_adjust_cfa_offset (-4) + cfi_restore (r8) mov.l @r15+, r9 + cfi_adjust_cfa_offset (-4) + cfi_restore (r9) + mov.l @r15+, r10 + cfi_adjust_cfa_offset (-4) + cfi_restore (r10) rts - mov.l @r15+, r10 + mov #0, r0 + cfi_restore_state 4: /* Unlock. */ @@ -153,12 +172,22 @@ __pthread_cond_broadcast: tst r2, r2 bf 5f 6: - mov #0, r0 + cfi_remember_state lds.l @r15+, pr + cfi_adjust_cfa_offset (-4) + cfi_restore (pr) mov.l @r15+, r8 + cfi_adjust_cfa_offset (-4) + cfi_restore (r8) mov.l @r15+, r9 + cfi_adjust_cfa_offset (-4) + cfi_restore (r9) + mov.l @r15+, r10 + cfi_adjust_cfa_offset (-4) + cfi_restore (r10) rts - mov.l @r15+, r10 + mov #0, r0 + cfi_restore_state 1: /* Initial locking failed. */ @@ -244,6 +273,7 @@ __pthread_cond_broadcast: SYSCALL_INST_PAD bra 10b nop + cfi_endproc #ifndef __ASSUME_PRIVATE_FUTEX .Lpfoff: |