From bbd1745596d2f0562745dbde8d2a62bc0d1eaaae Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 5 Jan 2003 11:26:28 +0000 Subject: Update. 2003-01-05 Kaz Kojima * sysdeps/unix/sysv/linux/sh/clone.S (__clone): Use SYSCALL_ERROR_HANDLER. * sysdeps/unix/sysv/linux/sh/pipe.S (__libc_pipe): Likewise. * sysdeps/unix/sysv/linux/sh/socket.S (__socket): Likewise. Add support for cancellation handling. * sysdeps/unix/sysv/linux/sh/syscall.S (__syscall): Use SYSCALL_ERROR_HANDLER. * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Likewise. * sysdeps/unix/sysv/linux/sh/sysdep.h (PSEUDO): Likewise. Add support for cancellation handling. (SYSCALL_ERROR_HANDLER): Define PIC variants. --- sysdeps/unix/sysv/linux/sh/syscall.S | 32 ++++---------------------------- 1 file changed, 4 insertions(+), 28 deletions(-) (limited to 'sysdeps/unix/sysv/linux/sh/syscall.S') diff --git a/sysdeps/unix/sysv/linux/sh/syscall.S b/sysdeps/unix/sysv/linux/sh/syscall.S index 08f2be6978..afa16c2fb9 100644 --- a/sysdeps/unix/sysv/linux/sh/syscall.S +++ b/sysdeps/unix/sysv/linux/sh/syscall.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -33,36 +33,12 @@ ENTRY (__syscall) shad r2, r1 not r1, r1 // r1=0 means r0 = -1 to -4095 tst r1, r1 // i.e. error in linux - bf 1f - mov.l .L2, r1 -#ifdef SHARED - mov r0, r4 - mov.l r12, @-r15 - sts.l pr, @-r15 - mov.l 0f, r12 - mova 0f, r0 - add r0, r12 - mova .L2, r0 - add r0, r1 - jsr @r1 - nop - lds.l @r15+, pr - rts - mov.l @r15+, r12 - .align 2 -0: - .long _GLOBAL_OFFSET_TABLE_ -#else - jmp @r1 - mov r0, r4 -#endif -1: + bf .Lpseudo_end + SYSCALL_ERROR_HANDLER +.Lpseudo_end: rts nop - .align 2 -.L2: - .long PLTJMP(C_SYMBOL_NAME(__syscall_error)) PSEUDO_END (__syscall) weak_alias (__syscall, syscall) -- cgit v1.2.3