diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-03-23 19:44:31 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-23 19:44:31 +0000 |
commit | 9eb88290df0c6522a7a52fa44ed821a6fba60a5a (patch) | |
tree | 4c663f4b2c765faefbece43109e24415b0b014fc /sysdeps/unix/alpha/sysdep.h | |
parent | f9ad605a05633387c0bb4048158f047a3c2df014 (diff) | |
download | glibc-9eb88290df0c6522a7a52fa44ed821a6fba60a5a.tar.gz glibc-9eb88290df0c6522a7a52fa44ed821a6fba60a5a.tar.xz glibc-9eb88290df0c6522a7a52fa44ed821a6fba60a5a.zip |
Update.
2003-03-23 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/make-syscalls.sh: Recognize 'E' in first position of the parameter description to denote no error checking. Generate appropriate pseudo asm code. * sysdeps/unix/syscalls.list: Mark getgid, getpid, getuid with 'E'. * sysdeps/unix/sysv/linux/syscalls.list: Mark getegid, geteuid, getpgrp, and getppid with 'E'. * sysdeps/powerpc/powerpc32/sysdep.h: Define PSEUDO_NOERRNO, PSEUDO_END_NOERRNO, and ret_NOERRNO. * sysdeps/powerpc/powerpc64/sysdep.h: Likewise. * sysdeps/unix/sysdep.h: Likewise. * sysdeps/unix/alpha/sysdep.h: Likewise. * sysdeps/unix/sparc/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/cris/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/hppa/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
Diffstat (limited to 'sysdeps/unix/alpha/sysdep.h')
-rw-r--r-- | sysdeps/unix/alpha/sysdep.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h index cb04cec2af..6e55061515 100644 --- a/sysdeps/unix/alpha/sysdep.h +++ b/sysdeps/unix/alpha/sysdep.h @@ -119,6 +119,21 @@ $syscall_error: \ END(sym) #endif +#define PSEUDO_NOERRNO(name, syscall_name, args) \ + .globl name; \ + .align 4; \ + .ent name,0; \ +__LABEL(name) \ + PSEUDO_PROLOGUE; \ + PSEUDO_PREPARE_ARGS \ + lda v0, SYS_ify(syscall_name); \ + call_pal PAL_callsys; + +#undef PSEUDO_END_NOERRNO +#define PSEUDO_END_NOERRNO(sym) END(sym) + +#define ret_NOERRNO ret + #define r0 v0 #define r1 a4 @@ -167,8 +182,8 @@ $syscall_error: \ /* If TLS is in use, we have a conflict between the PAL_rduniq primitive, as modeled within GCC, and explicit use of the R0 register. If we use the register via the asm, the scheduler may place the PAL_rduniq insn - before we've copied the data from R0 into _sc_ret. If this happens - we'll get a reload abort, since R0 is live at the same time it is + before we've copied the data from R0 into _sc_ret. If this happens + we'll get a reload abort, since R0 is live at the same time it is needed for the PAL_rduniq. Solve this by using the "v" constraint instead of an asm for the syscall |