1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
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:
Ulrich Drepper
2000-01-31 06:42:36 +00:00
parent b6aa34eb72
commit 4d76a0ec18
10 changed files with 217 additions and 160 deletions

View File

@ -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