mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
2000-01-30 Ulrich Drepper <drepper@redhat.com> * locale/programs/ld-collate.c (struct locale_collate_t): Change type of plane_size and plane_cnt to uint32_t. Reported by Jakub Jelinek. 2000-01-29 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (SYSCALL_ERROR_HANDLER): Optimize. (__SYSCALL_STRING, __SYSCALL_CLOBBERS): Define. Include linux/sparc/sysdep.h. Use a different guard define than linux/sparc/sysdep.h. * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove stubs for inlined syscalls. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (SYSCALL_ERROR_HANDLER): Optimize. (__SYSCALL_STRING, __SYSCALL_CLOBBERS): Define. Include linux/sparc/sysdep.h. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Remove stubs for inlined syscalls. * sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction): Use INLINE_SYSCALL. * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Remove. * sysdeps/unix/sysv/linux/sparc/sysdep.h: New file. 2000-01-29 Ulrich Drepper <drepper@redhat.com>
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1997, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
|
||||
|
||||
@ -43,53 +43,13 @@
|
||||
C_LABEL(name); \
|
||||
.type name,@function;
|
||||
|
||||
#ifdef PIC
|
||||
# ifdef _LIBC_REENTRANT
|
||||
# define SYSCALL_ERROR_HANDLER \
|
||||
save %sp, -192, %sp; \
|
||||
call __errno_location; \
|
||||
nop; \
|
||||
st %i0,[%o0]; \
|
||||
sub %g0,1,%i0; \
|
||||
jmpl %i7+8, %g0; \
|
||||
restore
|
||||
# else
|
||||
# define SYSCALL_ERROR_HANDLER \
|
||||
.global C_SYMBOL_NAME(errno); \
|
||||
.type C_SYMBOL_NAME(errno),@object; \
|
||||
mov %o7, %g3; \
|
||||
101: call 102f; \
|
||||
sethi %hi(_GLOBAL_OFFSET_TABLE_-(101b-.)), %g2; \
|
||||
102: or %g2,%lo(_GLOBAL_OFFSET_TABLE_-(101b-.)), %g2; \
|
||||
sethi %hi(errno), %o1; \
|
||||
add %g2, %o7, %l7; \
|
||||
or %o1, %lo(errno), %o1; \
|
||||
mov %g3,%o7; \
|
||||
ldx [%l7+%o1], %g2; \
|
||||
st %o0, [%g2]; \
|
||||
retl; \
|
||||
sub %g0, 1, %i0
|
||||
# endif
|
||||
#else
|
||||
# ifdef _LIBC_REENTRANT
|
||||
# define SYSCALL_ERROR_HANDLER \
|
||||
#define SYSCALL_ERROR_HANDLER \
|
||||
save %sp, -192, %sp; \
|
||||
call __errno_location; \
|
||||
nop; \
|
||||
st %i0, [%o0]; \
|
||||
sub %g0, 1, %i0; \
|
||||
jmpl %i7+8, %g0; \
|
||||
restore
|
||||
# else
|
||||
# define SYSCALL_ERROR_HANDLER \
|
||||
.global C_SYMBOL_NAME(errno); \
|
||||
.type C_SYMBOL_NAME(errno),@object; \
|
||||
sethi %hi(errno), %g1; \
|
||||
st %i0, [%g1 + %lo(errno)]; \
|
||||
retl; \
|
||||
sub %g0, 1, %i0
|
||||
# endif
|
||||
#endif
|
||||
restore %g0, -1, %o0
|
||||
|
||||
#define PSEUDO(name, syscall_name, args) \
|
||||
.text; \
|
||||
@ -115,6 +75,30 @@
|
||||
#define r1 %o1
|
||||
#define MOVE(x,y) mov x, y
|
||||
|
||||
#else /* __ASSEMBLER__ */
|
||||
|
||||
#define __SYSCALL_STRING \
|
||||
"ta 0x6d;" \
|
||||
"bcc,pt %%xcc, 1f;" \
|
||||
" nop;" \
|
||||
"save %%sp, -192, %%sp;" \
|
||||
"call __errno_location;" \
|
||||
" nop;" \
|
||||
"st %%i0,[%%o0];" \
|
||||
"restore %%g0, -1, %%o0;" \
|
||||
"1:"
|
||||
|
||||
#define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g7", \
|
||||
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
|
||||
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
|
||||
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
|
||||
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
|
||||
"f32", "f34", "f36", "f38", "f40", "f42", "f44", "f46", \
|
||||
"f48", "f50", "f52", "f54", "f56", "f58", "f60", "f62", \
|
||||
"cc", "memory"
|
||||
|
||||
#include <sysdeps/unix/sysv/linux/sparc/sysdep.h>
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
|
||||
/* This is the offset from the %sp to the backing store above the
|
||||
|
Reference in New Issue
Block a user