fixed more binutils issues (newer gcc/libc)
[zpugcc/jano.git] / toolchain / gcc / newlib / libc / sys / sparc64 / cerror.S
blobc29563fefecc934cc3be97f99b4d5e186c15c01f
1 ! Set errno.
2 ! This function is called by all the syscall stubs.
4 ! FIXME: We assume errno is the first member of struct _reent.
5 ! Not sure what to do about this.
7 #include <sys/syscallasm.h>
9         DATA_SECTION
10         ALIGN (4)
11         GLOBAL (ASM_SYMBOL (errno))     ! FIXME: ASM_PRIVATE_SYMBOL ?
12 ASM_SYMBOL (errno):
13         WORD (0)
15         TEXT_SECTION
16         ALIGN (4)
18         GLOBAL (ASM_PRIVATE_SYMBOL (cerror))
19 ASM_PRIVATE_SYMBOL (cerror):
20         sethi   %hi (ASM_SYMBOL (errno)),%g1
21         stw     %o0,[%g1+%lo (ASM_SYMBOL (errno))]
22         jmpl    %o7+8,%g0
23         mov     -1,%o0
25         GLOBAL (ASM_PRIVATE_SYMBOL (cerror_r))
26 ASM_PRIVATE_SYMBOL (cerror_r):
27         stw     %o0,[%o1]
28         jmpl    %o7+8,%g0
29         mov     -1,%o0