about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/sparc/sparc32
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-01-31 06:42:36 +0000
committerUlrich Drepper <drepper@redhat.com>2000-01-31 06:42:36 +0000
commit4d76a0ec18ca374bbb5a2cf15b80515e246a135b (patch)
tree59b0a92fc083ec7758b9bd6f4ec21c3f70c5f27d /sysdeps/unix/sysv/linux/sparc/sparc32
parentb6aa34eb721a209444df2c0694bb18f8f4a58e47 (diff)
downloadglibc-4d76a0ec18ca374bbb5a2cf15b80515e246a135b.tar.gz
glibc-4d76a0ec18ca374bbb5a2cf15b80515e246a135b.tar.xz
glibc-4d76a0ec18ca374bbb5a2cf15b80515e246a135b.zip
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>
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc32')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list51
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h50
2 files changed, 37 insertions, 64 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
index d08c1a9cac..c82ae16c1a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
@@ -25,54 +25,3 @@ rt_sigprocmask	-	rt_sigprocmask	4	__syscall_rt_sigprocmask
 rt_sigqueueinfo	-	rt_sigqueueinfo	3	__syscall_rt_sigqueueinfo
 rt_sigsuspend	-	rt_sigsuspend	2	__syscall_rt_sigsuspend
 rt_sigtimedwait	-	rt_sigtimedwait	4	__syscall_rt_sigtimedwait
-s_execve	execve	execve		3	__syscall_execve
-s_fstat64	fxstat64 fstat64	2	__syscall_fstat64
-s_ftruncate64	ftruncate64 ftruncate64	3	__syscall_ftruncate64
-s_getcwd	getcwd	getcwd		2	__syscall_getcwd
-s_getdents	getdents getdents	3	__syscall_getdents
-s_getpriority	getpriority getpriority	2	__syscall_getpriority
-s_getresgid	getresgid getresgid	3	__syscall_getresgid
-s_getresuid	getresuid getresuid	3	__syscall_getresuid
-s_lstat64	lxstat64 lstat64	2	__syscall_lstat64
-s_mmap2		mmap64	mmap2		6	__syscall_mmap2
-s_poll		poll	poll		3	__syscall_poll
-s_pread64	pread64	pread		5	__syscall_pread
-s_ptrace	ptrace	ptrace		4	__syscall_ptrace
-s_pwrite64	pwrite64 pwrite		5	__syscall_pwrite
-s_reboot	reboot	reboot		3	__syscall_reboot
-s_sigaction	sigaction sigaction	3	__syscall_sigaction
-s_sigpending	sigpending sigpending	1	__syscall_sigpending
-s_sigprocmask	sigprocmask sigprocmask	3	__syscall_sigprocmask
-s_sigsuspend	sigsuspend sigsuspend	3	__syscall_sigsuspend
-s_stat64	xstat64 stat64		2	__syscall_stat64
-s_sysctl	sysctl	_sysctl		1	__syscall__sysctl
-s_truncate64	truncate64 truncate64	3	__syscall_truncate64
-s_ustat		ustat	ustat		2	__syscall_ustat
-sys_fstat	fxstat	fstat		2	__syscall_fstat
-sys_lstat	lxstat	lstat		2	__syscall_lstat
-sys_mknod	xmknod	mknod		3	__syscall_mknod
-sys_readv	readv	readv		3	__syscall_readv
-sys_stat	xstat	stat		2	__syscall_stat
-sys_writev	writev	writev		3	__syscall_writev
-s_chown		chown	chown		3	__syscall_chown
-s_chown32	chown	chown32		3	__syscall_chown32
-s_fchown	fchown	fchown		3	__syscall_fchown
-s_fchown32	fchown	fchown32	3	__syscall_fchown32
-s_lchown	lchown	lchown		3	__syscall_lchown
-s_lchown32	lchown	lchown32	3	__syscall_lchown32
-s_getgid	getgid	getgid		0	__syscall_getgid
-s_getgid32	getgid	getgid32	0	__syscall_getgid32
-s_getuid	getuid	getuid		0	__syscall_getuid
-s_getuid32	getuid	getuid32	0	__syscall_getuid32
-s_getgroups32	getgroups getgroups32	2	__syscall_getgroups32
-s_setgroups32	setgroups setgroups32	2	__syscall_setgroups32
-s_setfsgid32	setfsgid setfsgid32	1	__syscall_setfsgid32
-s_setfsuid32	setfsuid setfsuid32	1	__syscall_setfsuid32
-s_setregid32	setregid setregid32	2	__syscall_setregid32
-s_setreuid32	setreuid setreuid32	2	__syscall_setreuid32
-s_getegid	getegid	getegid		0	__syscall_getegid
-s_geteuid	geteuid	geteuid		0	__syscall_geteuid
-s_getegid32	getegid	getegid32	0	__syscall_getegid32
-s_geteuid32	geteuid	geteuid32	0	__syscall_geteuid32
-s_setgid32	setgid	setgid32	1	__syscall_setgid32
-s_setuid32	setuid	setuid32	1	__syscall_setuid32
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
index 003c0483a8..ee235c2b43 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
@@ -17,8 +17,8 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _LINUX_SPARC_SYSDEP_H
-#define _LINUX_SPARC_SYSDEP_H 1
+#ifndef _LINUX_SPARC32_SYSDEP_H
+#define _LINUX_SPARC32_SYSDEP_H 1
 
 #include <sysdeps/unix/sparc/sysdep.h>
 
@@ -56,20 +56,18 @@
         .type   C_SYMBOL_NAME(__errno_location),@function;	\
 	save   %sp,-96,%sp;					\
 	call   __errno_location;				\
-	nop;							\
-	st %i0,[%o0];						\
-	restore;						\
-	retl;							\
-	mov -1,%o0;
+	 nop;							\
+	st	%i0,[%o0];					\
+	jmpl	%i7+8,%g0;					\
+	 restore %g0,-1,%o0;
 #else
 #define SYSCALL_ERROR_HANDLER					\
-	save %sp,-96,%sp;					\
-	call __errno_location;					\
+	save	%sp,-96,%sp;					\
+	call	__errno_location;				\
 	nop;							\
-	st %i0,[%o0];						\
-	restore;						\
-	retl;							\
-	mov -1,%o0;
+	st	%i0,[%o0];					\
+	jmpl	%i7+8,%g0;					\
+	 restore %g0,-1,%o0;
 #endif   /* PIC */
 
 #define PSEUDO(name, syscall_name, args)			\
@@ -82,6 +80,32 @@
 	SYSCALL_ERROR_HANDLER;					\
 9000:;
 
+#else  /* __ASSEMBLER__ */
+
+#define __SYSCALL_STRING						\
+	"ta	0x10;"							\
+	"bcs	2f;"							\
+	" nop;"								\
+	"1:"								\
+	".subsection 2;"						\
+	"2:"								\
+	"save	%%sp, -192, %%sp;"					\
+	"call	__errno_location;"					\
+	" nop;"								\
+	"st	%%i0,[%%o0];"						\
+	"ba	1b;"							\
+	" restore %%g0, -1, %%o0;"					\
+	".previous;"
+
+#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",		\
+	"cc", "memory"
+
+#include <sysdeps/unix/sysv/linux/sparc/sysdep.h>
+
 #endif	/* __ASSEMBLER__ */
 
 #endif /* linux/sparc/sysdep.h */