diff options
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S b/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S index 35ae9b213d..2c5d3f589b 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2007, 2011 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 @@ -27,10 +27,17 @@ .globl __new_sem_trywait .type __new_sem_trywait,@function .align 5 + cfi_startproc __new_sem_trywait: mov.l r12, @-r15 + cfi_adjust_cfa_offset (4) + cfi_rel_offset (r12, 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 mov.l @r8, r0 2: @@ -44,11 +51,19 @@ __new_sem_trywait: bf/s 2b mov r2, 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+, r12 + cfi_adjust_cfa_offset (-4) + cfi_restore (r12) rts mov #0, r0 + cfi_restore_state 1: mov #EAGAIN, r8 @@ -67,11 +82,19 @@ __new_sem_trywait: .Lexit: mov.l r8, @r0 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+, r12 + cfi_adjust_cfa_offset (-4) + cfi_restore (r12) rts mov #-1, r0 + cfi_endproc + .align 2 .Lgot1: .long _GLOBAL_OFFSET_TABLE_ |