~ubuntu-branches/ubuntu/precise/eglibc/precise

« back to all changes in this revision

Viewing changes to ports/sysdeps/unix/arm/sysdep.S

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2011-10-04 17:48:26 UTC
  • mfrom: (216.1.23 oneiric)
  • Revision ID: package-import@ubuntu.com-20111004174826-2cyb9ewn3ucymlsx
Tags: 2.13-20ubuntu5
libc6-dev: Don't break the current {gnat,gcj}-4.4-base versons. LP: #853688.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2002, 2003,
2
 
   2004, 2005, 2009, 2011
 
2
   2004, 2005, 2009
3
3
   Free Software Foundation, Inc.
4
4
   This file is part of the GNU C Library.
5
5
 
42
42
        moveq r0, $EAGAIN       /* Yes; translate it to EAGAIN.  */
43
43
#endif
44
44
 
45
 
#ifndef IS_IN_rtld
 
45
#if USE___THREAD
46
46
        mov ip, lr
47
47
        cfi_register (lr, ip)
48
48
        mov r1, r0
65
65
        DO_RET(r14)
66
66
 
67
67
1:      .word C_SYMBOL_NAME(rtld_errno) - 0b - 8
68
 
#else
69
 
#error "Unsupported non-TLS case"
 
68
#elif defined(_LIBC_REENTRANT)
 
69
        str lr, [sp, #-4]!
 
70
        cfi_adjust_cfa_offset (4)
 
71
        cfi_rel_offset (lr, 0)
 
72
        str r0, [sp, #-4]!
 
73
        cfi_adjust_cfa_offset (4)
 
74
        bl PLTJMP(C_SYMBOL_NAME(__errno_location))
 
75
        ldr r1, [sp], #4
 
76
        cfi_adjust_cfa_offset (-4)
 
77
        str r1, [r0]
 
78
        mvn r0, $0
 
79
        ldr pc, [sp], #4        
 
80
#else
 
81
#ifndef PIC
 
82
        ldr r1, 1f
 
83
        str r0, [r1]
 
84
        mvn r0, $0
 
85
        DO_RET (r14)
 
86
 
 
87
1:      .long C_SYMBOL_NAME(errno)
 
88
#else
 
89
        @ we have to establish our PIC register
 
90
        ldr r2, 1f
 
91
        ldr r1, 2f
 
92
0:      add r2, pc, r2
 
93
        str r0, [r1, r2]
 
94
        mvn r0, $0
 
95
        DO_RET (r14)
 
96
 
 
97
1:      .word _GLOBAL_OFFSET_TABLE_ - 0b - 8
 
98
2:      .word C_SYMBOL_NAME(errno)(GOTOFF)
 
99
#endif
70
100
#endif
71
101
 
72
102
#undef  __syscall_error