From 4d76a0ec18ca374bbb5a2cf15b80515e246a135b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 31 Jan 2000 06:42:36 +0000 Subject: Update. 2000-01-30 Ulrich Drepper * 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 * 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 --- sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h | 50 +++++++++++++++++++------- 1 file changed, 37 insertions(+), 13 deletions(-) (limited to 'sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h') 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 @@ -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 + #endif /* __ASSEMBLER__ */ #endif /* linux/sparc/sysdep.h */ -- cgit 1.4.1