about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
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/sysdep.h
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/sysdep.h')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h50
1 files changed, 37 insertions, 13 deletions
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 */