about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S334
1 files changed, 0 insertions, 334 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
deleted file mode 100644
index 1e32ec0767..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
+++ /dev/null
@@ -1,334 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <sysdep.h>
-#include <shlib-compat.h>
-
-	.text
-
-#ifndef UP
-# define LOCK lock
-#else
-# define
-#endif
-
-#define SYS_gettimeofday	__NR_gettimeofday
-#define SYS_futex		240
-#define FUTEX_WAKE		1
-
-#define EINTR			4
-#define EAGAIN			11
-#define EWOULDBLOCK		EAGAIN
-#define EINVAL			22
-#define ETIMEDOUT		110
-
-
-	.globl	__new_sem_wait
-	.type	__new_sem_wait,@function
-	.align	16
-__new_sem_wait:
-	pushl	%ebx
-	pushl	%esi
-
-	movl	12(%esp), %ebx
-
-3:	movl	(%ebx), %eax
-2:	testl	%eax, %eax
-	je,pn	1f
-
-	leal	-1(%eax), %edx
-	LOCK
-	cmpxchgl %edx, (%ebx)
-	jne,pn	2b
-	xorl	%eax, %eax
-
-	popl	%esi
-	popl	%ebx
-	ret
-
-1:	xorl	%esi, %esi
-	movl	$SYS_futex, %eax
-	movl	%esi, %ecx
-	movl	%esi, %edx
-	ENTER_KERNEL
-
-	testl	%eax, %eax
-	je	3b
-	cmpl	$-EWOULDBLOCK, %eax
-	je	3b
-	negl	%eax
-#ifdef PIC
-	call	__i686.get_pc_thunk.bx
-#else
-	movl	$4f, %ebx
-4:
-#endif
-	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
-#if USE___THREAD
-	movl	%gs:0, %edx
-	subl	errno@gottpoff(%ebx), %edx
-	movl	%eax, (%edx)
-#else
-	movl	%eax, %edx
-	call	__errno_location@plt
-	movl	%edx, (%eax)
-#endif
-	orl	$-1, %eax
-	popl	%esi
-	popl	%ebx
-	ret
-	.size	__new_sem_wait,.-__new_sem_wait
-	.symver	__new_sem_wait, sem_wait@@GLIBC_2.1
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-	.global	__old_sem_wait
-__old_sem_wait = __new_sem_wait
-	.symver	__old_sem_wait, sem_wait@GLIBC_2.0
-#endif
-
-
-	.globl	__new_sem_trywait
-	.type	__new_sem_trywait,@function
-	.align	16
-__new_sem_trywait:
-	movl	4(%esp), %ecx
-
-	movl	(%ecx), %eax
-2:	testl	%eax, %eax
-	jz	1f
-
-	leal	-1(%eax), %edx
-	LOCK
-	cmpxchgl %edx, (%ecx)
-	jne,pn	2b
-	xorl	%eax, %eax
-	ret
-
-1:
-#ifdef PIC
-	call	__i686.get_pc_thunk.cx
-#else
-	movl	$3f, %ecx
-3:
-#endif
-	addl	$_GLOBAL_OFFSET_TABLE_, %ecx
-#if USE___THREAD
-	movl	%gs:0, %edx
-	subl	errno@gottpoff(%ecx), %edx
-	movl	$EAGAIN, (%edx)
-#else
-	call	__errno_location@plt
-	movl	$EAGAIN, (%eax)
-#endif
-	orl	$-1, %eax
-	ret
-	.size	__new_sem_trywait,.-__new_sem_trywait
-	.symver	__new_sem_trywait, sem_trywait@@GLIBC_2.1
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-	.global	__old_sem_trywait
-__old_sem_trywait = __new_sem_trywait
-	.symver	__old_sem_trywait, sem_trywait@GLIBC_2.0
-#endif
-
-
-	.globl	sem_timedwait
-	.type	sem_timedwait,@function
-	.align	16
-sem_timedwait:
-	movl	4(%esp), %ecx
-
-	movl	(%ecx), %eax
-2:	testl	%eax, %eax
-	je,pn	1f
-
-	leal	-1(%eax), %edx
-	LOCK
-	cmpxchgl %edx, (%ecx)
-	jne,pn	2b
-
-	xorl	%eax, %eax
-	ret
-
-	/* Check whether the timeout value is valid.  */
-1:	pushl	%esi
-	pushl	%edi
-	pushl	%ebx
-	subl	$8, %esp
-
-	movl	%esp, %esi
-	movl	28(%esp), %edi
-
-	/* Check for invalid nanosecond field.  */
-	cmpl	$1000000000, 4(%edi)
-	movl	$EINVAL, %eax
-	jae	6f
-
-7:	xorl	%ecx, %ecx
-	movl	%esp, %ebx
-	movl	%ecx, %edx
-	movl	$SYS_gettimeofday, %eax
-	ENTER_KERNEL
-
-	/* Compute relative timeout.  */
-	movl	4(%esp), %eax
-	movl	$1000, %edx
-	mul	%edx		/* Milli seconds to nano seconds.  */
-	movl	(%edi), %ecx
-	movl	4(%edi), %edx
-	subl	(%esp), %ecx
-	subl	%eax, %edx
-	jns	5f
-	addl	$1000000000, %edx
-	decl	%ecx
-5:	testl	%ecx, %ecx
-	movl	$ETIMEDOUT, %eax
-	js	6f		/* Time is already up.  */
-
-	movl	%ecx, (%esp)	/* Store relative timeout.  */
-	movl	%edx, 4(%esp)
-	movl	24(%esp), %ebx
-	xorl	%ecx, %ecx
-	movl	$SYS_futex, %eax
-	xorl	%edx, %edx
-	ENTER_KERNEL
-
-	testl	%eax, %eax
-	je,pt	9f
-	cmpl	$-EWOULDBLOCK, %eax
-	jne	3f
-
-9:	movl	(%ebx), %eax
-8:	testl	%eax, %eax
-	je	7b
-
-	leal	-1(%eax), %ecx
-	LOCK
-	cmpxchgl %ecx, (%ebx)
-	jne,pn	8b
-
-	addl	$8, %esp
-	xorl	%eax, %eax
-	popl	%ebx
-	popl	%edi
-	popl	%esi
-	ret
-
-3:	negl	%eax
-6:
-#ifdef PIC
-	call	__i686.get_pc_thunk.bx
-#else
-	movl	$4f, %ebx
-4:
-#endif
-	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
-#if USE___THREAD
-	movl	%gs:0, %edx
-	subl	errno@gottpoff(%ebx), %edx
-	movl	%eax, (%edx)
-#else
-	movl	%eax, %edx
-	call	__errno_location@plt
-	movl	%edx, (%eax)
-#endif
-
-	addl	$8, %esp
-	orl	$-1, %eax
-	popl	%ebx
-	popl	%edi
-	popl	%esi
-	ret
-	.size	sem_timedwait,.-sem_timedwait
-
-
-	.globl	__new_sem_post
-	.type	__new_sem_post,@function
-	.align	16
-__new_sem_post:
-	pushl	%esi
-	pushl	%ebx
-
-	movl	12(%esp), %ebx
-	movl	$1, %edx
-	LOCK
-	xaddl	%edx, (%ebx)
-
-	xorl	%esi, %esi
-	movl	$SYS_futex, %eax
-	movl	$FUTEX_WAKE, %ecx
-	incl	%edx
-	ENTER_KERNEL
-
-	testl	%eax, %eax
-	js	1f
-
-	xorl	%eax, %eax
-	popl	%ebx
-	popl	%esi
-	ret
-
-1:
-#ifdef PIC
-	call	__i686.get_pc_thunk.bx
-#else
-	movl	$4f, %ebx
-4:
-#endif
-	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
-#if USE___THREAD
-	movl	%gs:0, %edx
-	subl	errno@gottpoff(%ebx), %edx
-	movl	$EINVAL, (%edx)
-#else
-	call	__errno_location@plt
-	movl	$EAGAIN, (%eax)
-#endif
-
-	orl	$-1, %eax
-	popl	%ebx
-	popl	%esi
-	ret
-	.size	__new_sem_post,.-__new_sem_post
-	.symver	__new_sem_post, sem_post@@GLIBC_2.1
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-	.global	__old_sem_post
-__old_sem_post = __new_sem_post
-	.symver	__old_sem_post, sem_post@GLIBC_2.0
-#endif
-
-
-#ifdef PIC
-	.section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-	.globl	__i686.get_pc_thunk.bx
-	.hidden	__i686.get_pc_thunk.bx
-	.type	__i686.get_pc_thunk.bx,@function
-__i686.get_pc_thunk.bx:
-	movl (%esp), %ebx;
-	ret
-	.size	__i686.get_pc_thunk.bx,.-__i686.get_pc_thunk.bx
-
-
-	.section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits
-	.globl	__i686.get_pc_thunk.cx
-	.hidden	__i686.get_pc_thunk.cx
-	.type	__i686.get_pc_thunk.cx,@function
-__i686.get_pc_thunk.cx:
-	movl (%esp), %ecx;
-	ret
-	.size	__i686.get_pc_thunk.cx,.-__i686.get_pc_thunk.cx
-#endif