summaryrefslogtreecommitdiff
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)
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 */