[Midnightbsd-cvs] src: libc/arm: Remove arm, ia64, powerpc code

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Wed Oct 1 21:14:31 EDT 2008


Log Message:
-----------
Remove arm, ia64, powerpc code

Removed Files:
-------------
    src/lib/libc/arm:
        Makefile.inc
        SYS.h
        _fpmath.h
        arith.h
    src/lib/libc/arm/gen:
        Makefile.inc
        _ctx_start.S
        _set_tp.c
        _setjmp.S
        alloca.S
        divsi3.S
        fabs.c
        infinity.c
        makecontext.c
        modf.c
        setjmp.S
        signalcontext.c
        sigsetjmp.S
    src/lib/libc/arm/net:
        Makefile.inc
        htonl.S
        htons.S
        ntohl.S
        ntohs.S
    src/lib/libc/arm/softfloat:
        arm-gcc.h
        milieu.h
        softfloat.h
    src/lib/libc/arm/stdlib:
        Makefile.inc
    src/lib/libc/arm/string:
        Makefile.inc
        bcopy.S
        bzero.S
        ffs.S
        memcmp.S
        memcpy.S
        memcpy_arm.S
        memcpy_xscale.S
        memmove.S
        memset.S
        strcmp.S
        strncmp.S
    src/lib/libc/arm/sys:
        Makefile.inc
        Ovfork.S
        brk.S
        cerror.S
        fork.S
        pipe.S
        ptrace.S
        sbrk.S
        shmat.S
        sigreturn.S
        syscall.S
    src/lib/libc/ia64:
        Makefile.inc
        SYS.h
        _fpmath.h
        arith.h
    src/lib/libc/ia64/gen:
        Makefile.inc
        __divdf3.S
        __divdi3.S
        __divsf3.S
        __divsi3.S
        __moddi3.S
        __modsi3.S
        __udivdi3.S
        __udivsi3.S
        __umoddi3.S
        __umodsi3.S
        _mcount.S
        _set_tp.c
        _setjmp.S
        fabs.S
        flt_rounds.c
        fpgetmask.c
        fpgetround.c
        fpsetmask.c
        fpsetround.c
        infinity.c
        makecontext.c
        modf.c
        setjmp.S
        signalcontext.c
        sigsetjmp.S
        unwind.c
    src/lib/libc/ia64/net:
        Makefile.inc
        byte_swap_2.S
        byte_swap_4.S
        htonl.S
        htons.S
        ntohl.S
        ntohs.S
    src/lib/libc/ia64/stdlib:
        Makefile.inc
    src/lib/libc/ia64/string:
        Makefile.inc
        bcopy.S
        bzero.S
        ffs.S
        memcpy.S
        memmove.S
    src/lib/libc/ia64/sys:
        Makefile.inc
        Ovfork.S
        brk.S
        cerror.S
        exect.S
        fork.S
        getcontext.S
        pipe.S
        ptrace.S
        sbrk.S
        setlogin.S
        sigreturn.S
        swapcontext.S
    src/lib/libc_r/arch/ia64:
        _atomic_lock.S
    src/lib/libpthread/arch/arm:
        Makefile.inc
    src/lib/libpthread/arch/arm/arm:
        context.S
        pthread_md.c
    src/lib/libpthread/arch/arm/include:
        atomic_ops.h
        pthread_md.h
    src/lib/libpthread/arch/ia64:
        Makefile.inc
    src/lib/libpthread/arch/ia64/ia64:
        context.S
        enter_uts.S
        pthread_md.c
    src/lib/libpthread/arch/ia64/include:
        atomic_ops.h
        pthread_md.h
    src/lib/libthr/arch/arm:
        Makefile.inc
    src/lib/libthr/arch/arm/arm:
        pthread_md.c
    src/lib/libthr/arch/arm/include:
        pthread_md.h
    src/lib/libthr/arch/ia64:
        Makefile.inc
    src/lib/libthr/arch/ia64/ia64:
        pthread_md.c
    src/lib/libthr/arch/ia64/include:
        pthread_md.h
    src/lib/libthr/arch/powerpc:
        Makefile.inc
    src/lib/libthr/arch/powerpc/include:
        pthread_md.h
    src/lib/libthr/arch/powerpc/powerpc:
        pthread_md.c

-------------- next part --------------
--- lib/libc/arm/string/bzero.S
+++ /dev/null
@@ -1,44 +0,0 @@
-/*	$NetBSD: bzero.S,v 1.3 2003/10/14 07:51:45 scw Exp $	*/
-
-/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Neil A. Carson and Mark Brinicombe
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the NetBSD
- *	Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/bzero.S,v 1.1 2004/05/14 12:04:31 cognet Exp $");
-
-#define _BZERO
-#include "memset.S"
--- lib/libc/arm/string/strncmp.S
+++ /dev/null
@@ -1,51 +0,0 @@
-/*      $NetBSD: strncmp.S,v 1.2 2003/04/05 23:08:52 bjh21 Exp $ */
-
-/*
- * Copyright (c) 2002 ARM Ltd
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the company may not be used to endorse or promote
- *    products derived from this software without specific prior written
- *    permission.
- *
- * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/strncmp.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-
-ENTRY(strncmp)
-/* if ((len - 1) < 0) return 0 */
-	subs	r2, r2, #1
-	movmi	r0, #0
-	movmi	pc, lr
-
-/* ip == last src address to compare */
-	add	ip, r0, r2
-1:
-	ldrb	r2, [r0], #1
-	ldrb	r3, [r1], #1
-	cmp	ip, r0
-	cmpcs	r2, #1
-	cmpcs	r2, r3
-	beq	1b
-	sub	r0, r2, r3
-	RET
--- lib/libc/arm/string/memmove.S
+++ /dev/null
@@ -1,589 +0,0 @@
-/*	$NetBSD: memmove.S,v 1.4 2003/10/14 07:51:45 scw Exp $	*/
-
-/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Neil A. Carson and Mark Brinicombe
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the NetBSD
- *	Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/memmove.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-
-#ifndef _BCOPY
-/* LINTSTUB: Func: void *memmove(void *, const void *, size_t) */
-ENTRY(memmove)
-#else
-/* bcopy = memcpy/memmove with arguments reversed. */
-/* LINTSTUB: Func: void bcopy(void *, void *, size_t) */
-ENTRY(bcopy)
-	/* switch the source and destination registers */
-	eor     r0, r1, r0 
-	eor     r1, r0, r1 
-	eor     r0, r1, r0 
-#endif
-	/* Do the buffers overlap? */
-	cmp	r0, r1
-	RETeq		/* Bail now if src/dst are the same */
-	subcc	r3, r0, r1	/* if (dst > src) r3 = dst - src */
-	subcs	r3, r1, r0	/* if (src > dsr) r3 = src - dst */
-	cmp	r3, r2		/* if (r3 < len) we have an overlap */
-	bcc	PIC_SYM(_C_LABEL(memcpy), PLT)
-
-	/* Determine copy direction */
-	cmp	r1, r0
-	bcc	.Lmemmove_backwards
-
-	moveq	r0, #0			/* Quick abort for len=0 */
-	RETeq
-
-	stmdb	sp!, {r0, lr}		/* memmove() returns dest addr */
-	subs	r2, r2, #4
-	blt	.Lmemmove_fl4		/* less than 4 bytes */
-	ands	r12, r0, #3
-	bne	.Lmemmove_fdestul	/* oh unaligned destination addr */
-	ands	r12, r1, #3
-	bne	.Lmemmove_fsrcul		/* oh unaligned source addr */
-
-.Lmemmove_ft8:
-	/* We have aligned source and destination */
-	subs	r2, r2, #8
-	blt	.Lmemmove_fl12		/* less than 12 bytes (4 from above) */
-	subs	r2, r2, #0x14         
-	blt	.Lmemmove_fl32		/* less than 32 bytes (12 from above) */
-	stmdb	sp!, {r4}		/* borrow r4 */
-
-	/* blat 32 bytes at a time */
-	/* XXX for really big copies perhaps we should use more registers */
-.Lmemmove_floop32:	
-	ldmia	r1!, {r3, r4, r12, lr}
-	stmia	r0!, {r3, r4, r12, lr}
-	ldmia	r1!, {r3, r4, r12, lr}
-	stmia	r0!, {r3, r4, r12, lr}
-	subs	r2, r2, #0x20         
-	bge	.Lmemmove_floop32
-
-	cmn	r2, #0x10
-	ldmgeia	r1!, {r3, r4, r12, lr}	/* blat a remaining 16 bytes */
-	stmgeia	r0!, {r3, r4, r12, lr}
-	subge	r2, r2, #0x10         
-	ldmia	sp!, {r4}		/* return r4 */
-
-.Lmemmove_fl32:
-	adds	r2, r2, #0x14         
-
-	/* blat 12 bytes at a time */
-.Lmemmove_floop12:
-	ldmgeia	r1!, {r3, r12, lr}
-	stmgeia	r0!, {r3, r12, lr}
-	subges	r2, r2, #0x0c         
-	bge	.Lmemmove_floop12
-
-.Lmemmove_fl12:
-	adds	r2, r2, #8
-	blt	.Lmemmove_fl4
-
-	subs	r2, r2, #4
-	ldrlt	r3, [r1], #4
-	strlt	r3, [r0], #4
-	ldmgeia	r1!, {r3, r12}
-	stmgeia	r0!, {r3, r12}
-	subge	r2, r2, #4
-
-.Lmemmove_fl4:
-	/* less than 4 bytes to go */
-	adds	r2, r2, #4
-	ldmeqia	sp!, {r0, pc}		/* done */
-
-	/* copy the crud byte at a time */
-	cmp	r2, #2
-	ldrb	r3, [r1], #1
-	strb	r3, [r0], #1
-	ldrgeb	r3, [r1], #1
-	strgeb	r3, [r0], #1
-	ldrgtb	r3, [r1], #1
-	strgtb	r3, [r0], #1
-	ldmia	sp!, {r0, pc}
-
-	/* erg - unaligned destination */
-.Lmemmove_fdestul:
-	rsb	r12, r12, #4
-	cmp	r12, #2
-
-	/* align destination with byte copies */
-	ldrb	r3, [r1], #1
-	strb	r3, [r0], #1
-	ldrgeb	r3, [r1], #1
-	strgeb	r3, [r0], #1
-	ldrgtb	r3, [r1], #1
-	strgtb	r3, [r0], #1
-	subs	r2, r2, r12
-	blt	.Lmemmove_fl4		/* less the 4 bytes */
-
-	ands	r12, r1, #3
-	beq	.Lmemmove_ft8		/* we have an aligned source */
-
-	/* erg - unaligned source */
-	/* This is where it gets nasty ... */
-.Lmemmove_fsrcul:
-	bic	r1, r1, #3
-	ldr	lr, [r1], #4
-	cmp	r12, #2
-	bgt	.Lmemmove_fsrcul3
-	beq	.Lmemmove_fsrcul2
-	cmp	r2, #0x0c            
-	blt	.Lmemmove_fsrcul1loop4
-	sub	r2, r2, #0x0c         
-	stmdb	sp!, {r4, r5}
-
-.Lmemmove_fsrcul1loop16:
-#ifdef __ARMEB__
-	mov	r3, lr, lsl #8
-#else
-	mov	r3, lr, lsr #8
-#endif
-	ldmia	r1!, {r4, r5, r12, lr}
-#ifdef __ARMEB__
-	orr	r3, r3, r4, lsr #24
-	mov	r4, r4, lsl #8
-	orr	r4, r4, r5, lsr #24
-	mov	r5, r5, lsl #8
-	orr	r5, r5, r12, lsr #24
-	mov	r12, r12, lsl #8
-	orr	r12, r12, lr, lsr #24
-#else
-	orr	r3, r3, r4, lsl #24
-	mov	r4, r4, lsr #8
-	orr	r4, r4, r5, lsl #24
-	mov	r5, r5, lsr #8
-	orr	r5, r5, r12, lsl #24
-	mov	r12, r12, lsr #8
-	orr	r12, r12, lr, lsl #24
-#endif
-	stmia	r0!, {r3-r5, r12}
-	subs	r2, r2, #0x10         
-	bge	.Lmemmove_fsrcul1loop16
-	ldmia	sp!, {r4, r5}
-	adds	r2, r2, #0x0c         
-	blt	.Lmemmove_fsrcul1l4
-
-.Lmemmove_fsrcul1loop4:
-#ifdef __ARMEB__
-	mov	r12, lr, lsl #8
-#else
-	mov	r12, lr, lsr #8
-#endif
-	ldr	lr, [r1], #4
-#ifdef __ARMEB__
-	orr	r12, r12, lr, lsr #24
-#else
-	orr	r12, r12, lr, lsl #24
-#endif
-	str	r12, [r0], #4
-	subs	r2, r2, #4
-	bge	.Lmemmove_fsrcul1loop4
-
-.Lmemmove_fsrcul1l4:
-	sub	r1, r1, #3
-	b	.Lmemmove_fl4
-
-.Lmemmove_fsrcul2:
-	cmp	r2, #0x0c            
-	blt	.Lmemmove_fsrcul2loop4
-	sub	r2, r2, #0x0c         
-	stmdb	sp!, {r4, r5}
-
-.Lmemmove_fsrcul2loop16:
-#ifdef __ARMEB__
-	mov	r3, lr, lsl #16
-#else
-	mov	r3, lr, lsr #16
-#endif
-	ldmia	r1!, {r4, r5, r12, lr}
-#ifdef __ARMEB__
-	orr	r3, r3, r4, lsr #16
-	mov	r4, r4, lsl #16
-	orr	r4, r4, r5, lsr #16
-	mov	r5, r5, lsl #16
-	orr	r5, r5, r12, lsr #16
-	mov	r12, r12, lsl #16
-	orr	r12, r12, lr, lsr #16
-#else
-	orr	r3, r3, r4, lsl #16
-	mov	r4, r4, lsr #16
-	orr	r4, r4, r5, lsl #16
-	mov	r5, r5, lsr #16
-	orr	r5, r5, r12, lsl #16
-	mov	r12, r12, lsr #16
-	orr	r12, r12, lr, lsl #16
-#endif
-	stmia	r0!, {r3-r5, r12}
-	subs	r2, r2, #0x10         
-	bge	.Lmemmove_fsrcul2loop16
-	ldmia	sp!, {r4, r5}
-	adds	r2, r2, #0x0c         
-	blt	.Lmemmove_fsrcul2l4
-
-.Lmemmove_fsrcul2loop4:
-#ifdef __ARMEB__
-	mov	r12, lr, lsl #16
-#else
-	mov	r12, lr, lsr #16
-#endif
-	ldr	lr, [r1], #4
-#ifdef __ARMEB__
-	orr	r12, r12, lr, lsr #16
-#else
-	orr	r12, r12, lr, lsl #16
-#endif
-	str	r12, [r0], #4
-	subs	r2, r2, #4
-	bge	.Lmemmove_fsrcul2loop4
-
-.Lmemmove_fsrcul2l4:
-	sub	r1, r1, #2
-	b	.Lmemmove_fl4
-
-.Lmemmove_fsrcul3:
-	cmp	r2, #0x0c            
-	blt	.Lmemmove_fsrcul3loop4
-	sub	r2, r2, #0x0c         
-	stmdb	sp!, {r4, r5}
-
-.Lmemmove_fsrcul3loop16:
-#ifdef __ARMEB__
-	mov	r3, lr, lsl #24
-#else
-	mov	r3, lr, lsr #24
-#endif
-	ldmia	r1!, {r4, r5, r12, lr}
-#ifdef __ARMEB__
-	orr	r3, r3, r4, lsr #8
-	mov	r4, r4, lsl #24
-	orr	r4, r4, r5, lsr #8
-	mov	r5, r5, lsl #24
-	orr	r5, r5, r12, lsr #8
-	mov	r12, r12, lsl #24
-	orr	r12, r12, lr, lsr #8
-#else
-	orr	r3, r3, r4, lsl #8
-	mov	r4, r4, lsr #24
-	orr	r4, r4, r5, lsl #8
-	mov	r5, r5, lsr #24
-	orr	r5, r5, r12, lsl #8
-	mov	r12, r12, lsr #24
-	orr	r12, r12, lr, lsl #8
-#endif
-	stmia	r0!, {r3-r5, r12}
-	subs	r2, r2, #0x10         
-	bge	.Lmemmove_fsrcul3loop16
-	ldmia	sp!, {r4, r5}
-	adds	r2, r2, #0x0c         
-	blt	.Lmemmove_fsrcul3l4
-
-.Lmemmove_fsrcul3loop4:
-#ifdef __ARMEB__
-	mov	r12, lr, lsl #24
-#else
-	mov	r12, lr, lsr #24
-#endif
-	ldr	lr, [r1], #4
-#ifdef __ARMEB__
-	orr	r12, r12, lr, lsr #8
-#else
-	orr	r12, r12, lr, lsl #8
-#endif
-	str	r12, [r0], #4
-	subs	r2, r2, #4
-	bge	.Lmemmove_fsrcul3loop4
-
-.Lmemmove_fsrcul3l4:
-	sub	r1, r1, #1
-	b	.Lmemmove_fl4
-
-.Lmemmove_backwards:
-	add	r1, r1, r2
-	add	r0, r0, r2
-	subs	r2, r2, #4
-	blt	.Lmemmove_bl4		/* less than 4 bytes */
-	ands	r12, r0, #3
-	bne	.Lmemmove_bdestul	/* oh unaligned destination addr */
-	ands	r12, r1, #3
-	bne	.Lmemmove_bsrcul		/* oh unaligned source addr */
-
-.Lmemmove_bt8:
-	/* We have aligned source and destination */
-	subs	r2, r2, #8
-	blt	.Lmemmove_bl12		/* less than 12 bytes (4 from above) */
-	stmdb	sp!, {r4, lr}
-	subs	r2, r2, #0x14		/* less than 32 bytes (12 from above) */
-	blt	.Lmemmove_bl32
-
-	/* blat 32 bytes at a time */
-	/* XXX for really big copies perhaps we should use more registers */
-.Lmemmove_bloop32:
-	ldmdb	r1!, {r3, r4, r12, lr}
-	stmdb	r0!, {r3, r4, r12, lr}
-	ldmdb	r1!, {r3, r4, r12, lr}
-	stmdb	r0!, {r3, r4, r12, lr}
-	subs	r2, r2, #0x20         
-	bge	.Lmemmove_bloop32
-
-.Lmemmove_bl32:
-	cmn	r2, #0x10            
-	ldmgedb	r1!, {r3, r4, r12, lr}	/* blat a remaining 16 bytes */
-	stmgedb	r0!, {r3, r4, r12, lr}
-	subge	r2, r2, #0x10         
-	adds	r2, r2, #0x14         
-	ldmgedb	r1!, {r3, r12, lr}	/* blat a remaining 12 bytes */
-	stmgedb	r0!, {r3, r12, lr}
-	subge	r2, r2, #0x0c         
-	ldmia	sp!, {r4, lr}
-
-.Lmemmove_bl12:
-	adds	r2, r2, #8
-	blt	.Lmemmove_bl4
-	subs	r2, r2, #4
-	ldrlt	r3, [r1, #-4]!
-	strlt	r3, [r0, #-4]!
-	ldmgedb	r1!, {r3, r12}
-	stmgedb	r0!, {r3, r12}
-	subge	r2, r2, #4
-
-.Lmemmove_bl4:
-	/* less than 4 bytes to go */
-	adds	r2, r2, #4
-	RETeq			/* done */
-
-	/* copy the crud byte at a time */
-	cmp	r2, #2
-	ldrb	r3, [r1, #-1]!
-	strb	r3, [r0, #-1]!
-	ldrgeb	r3, [r1, #-1]!
-	strgeb	r3, [r0, #-1]!
-	ldrgtb	r3, [r1, #-1]!
-	strgtb	r3, [r0, #-1]!
-	RET
-
-	/* erg - unaligned destination */
-.Lmemmove_bdestul:
-	cmp	r12, #2
-
-	/* align destination with byte copies */
-	ldrb	r3, [r1, #-1]!
-	strb	r3, [r0, #-1]!
-	ldrgeb	r3, [r1, #-1]!
-	strgeb	r3, [r0, #-1]!
-	ldrgtb	r3, [r1, #-1]!
-	strgtb	r3, [r0, #-1]!
-	subs	r2, r2, r12
-	blt	.Lmemmove_bl4		/* less than 4 bytes to go */
-	ands	r12, r1, #3
-	beq	.Lmemmove_bt8		/* we have an aligned source */
-
-	/* erg - unaligned source */
-	/* This is where it gets nasty ... */
-.Lmemmove_bsrcul:
-	bic	r1, r1, #3
-	ldr	r3, [r1, #0]
-	cmp	r12, #2
-	blt	.Lmemmove_bsrcul1
-	beq	.Lmemmove_bsrcul2
-	cmp	r2, #0x0c            
-	blt	.Lmemmove_bsrcul3loop4
-	sub	r2, r2, #0x0c         
-	stmdb	sp!, {r4, r5, lr}
-
-.Lmemmove_bsrcul3loop16:
-#ifdef __ARMEB__
-	mov	lr, r3, lsr #8
-#else
-	mov	lr, r3, lsl #8
-#endif
-	ldmdb	r1!, {r3-r5, r12}
-#ifdef __ARMEB__
-	orr	lr, lr, r12, lsl #24
-	mov	r12, r12, lsr #8
-	orr	r12, r12, r5, lsl #24
-	mov	r5, r5, lsr #8
-	orr	r5, r5, r4, lsl #24
-	mov	r4, r4, lsr #8
-	orr	r4, r4, r3, lsl #24
-#else
-	orr	lr, lr, r12, lsr #24
-	mov	r12, r12, lsl #8
-	orr	r12, r12, r5, lsr #24
-	mov	r5, r5, lsl #8
-	orr	r5, r5, r4, lsr #24
-	mov	r4, r4, lsl #8
-	orr	r4, r4, r3, lsr #24
-#endif
-	stmdb	r0!, {r4, r5, r12, lr}
-	subs	r2, r2, #0x10         
-	bge	.Lmemmove_bsrcul3loop16
-	ldmia	sp!, {r4, r5, lr}
-	adds	r2, r2, #0x0c         
-	blt	.Lmemmove_bsrcul3l4
-
-.Lmemmove_bsrcul3loop4:
-#ifdef __ARMEB__
-	mov	r12, r3, lsr #8
-#else
-	mov	r12, r3, lsl #8
-#endif
-	ldr	r3, [r1, #-4]!
-#ifdef __ARMEB__
-	orr	r12, r12, r3, lsl #24
-#else
-	orr	r12, r12, r3, lsr #24
-#endif
-	str	r12, [r0, #-4]!
-	subs	r2, r2, #4
-	bge	.Lmemmove_bsrcul3loop4
-
-.Lmemmove_bsrcul3l4:
-	add	r1, r1, #3
-	b	.Lmemmove_bl4
-
-.Lmemmove_bsrcul2:
-	cmp	r2, #0x0c            
-	blt	.Lmemmove_bsrcul2loop4
-	sub	r2, r2, #0x0c         
-	stmdb	sp!, {r4, r5, lr}
-
-.Lmemmove_bsrcul2loop16:
-#ifdef __ARMEB__
-	mov	lr, r3, lsr #16
-#else
-	mov	lr, r3, lsl #16
-#endif
-	ldmdb	r1!, {r3-r5, r12}
-#ifdef __ARMEB__
-	orr	lr, lr, r12, lsl #16
-	mov	r12, r12, lsr #16
-	orr	r12, r12, r5, lsl #16
-	mov	r5, r5, lsr #16
-	orr	r5, r5, r4, lsl #16
-	mov	r4, r4, lsr #16
-	orr	r4, r4, r3, lsl #16
-#else
-	orr	lr, lr, r12, lsr #16
-	mov	r12, r12, lsl #16
-	orr	r12, r12, r5, lsr #16
-	mov	r5, r5, lsl #16
-	orr	r5, r5, r4, lsr #16
-	mov	r4, r4, lsl #16
-	orr	r4, r4, r3, lsr #16
-#endif
-	stmdb	r0!, {r4, r5, r12, lr}
-	subs	r2, r2, #0x10         
-	bge	.Lmemmove_bsrcul2loop16
-	ldmia	sp!, {r4, r5, lr}
-	adds	r2, r2, #0x0c         
-	blt	.Lmemmove_bsrcul2l4
-
-.Lmemmove_bsrcul2loop4:
-#ifdef __ARMEB__
-	mov	r12, r3, lsr #16
-#else
-	mov	r12, r3, lsl #16
-#endif
-	ldr	r3, [r1, #-4]!
-#ifdef __ARMEB__
-	orr	r12, r12, r3, lsl #16
-#else
-	orr	r12, r12, r3, lsr #16
-#endif
-	str	r12, [r0, #-4]!
-	subs	r2, r2, #4
-	bge	.Lmemmove_bsrcul2loop4
-
-.Lmemmove_bsrcul2l4:
-	add	r1, r1, #2
-	b	.Lmemmove_bl4
-
-.Lmemmove_bsrcul1:
-	cmp	r2, #0x0c            
-	blt	.Lmemmove_bsrcul1loop4
-	sub	r2, r2, #0x0c         
-	stmdb	sp!, {r4, r5, lr}
-
-.Lmemmove_bsrcul1loop32:
-#ifdef __ARMEB__
-	mov	lr, r3, lsr #24
-#else
-	mov	lr, r3, lsl #24
-#endif
-	ldmdb	r1!, {r3-r5, r12}
-#ifdef __ARMEB__
-	orr	lr, lr, r12, lsl #8
-	mov	r12, r12, lsr #24
-	orr	r12, r12, r5, lsl #8
-	mov	r5, r5, lsr #24
-	orr	r5, r5, r4, lsl #8
-	mov	r4, r4, lsr #24
-	orr	r4, r4, r3, lsl #8
-#else
-	orr	lr, lr, r12, lsr #8
-	mov	r12, r12, lsl #24
-	orr	r12, r12, r5, lsr #8
-	mov	r5, r5, lsl #24
-	orr	r5, r5, r4, lsr #8
-	mov	r4, r4, lsl #24
-	orr	r4, r4, r3, lsr #8
-#endif
-	stmdb	r0!, {r4, r5, r12, lr}
-	subs	r2, r2, #0x10         
-	bge	.Lmemmove_bsrcul1loop32
-	ldmia	sp!, {r4, r5, lr}
-	adds	r2, r2, #0x0c         
-	blt	.Lmemmove_bsrcul1l4
-
-.Lmemmove_bsrcul1loop4:
-#ifdef __ARMEB__
-	mov	r12, r3, lsr #24
-#else
-	mov	r12, r3, lsl #24
-#endif
-	ldr	r3, [r1, #-4]!
-#ifdef __ARMEB__
-	orr	r12, r12, r3, lsl #8
-#else
-	orr	r12, r12, r3, lsr #8
-#endif
-	str	r12, [r0, #-4]!
-	subs	r2, r2, #4
-	bge	.Lmemmove_bsrcul1loop4
-
-.Lmemmove_bsrcul1l4:
-	add	r1, r1, #1
-	b	.Lmemmove_bl4
--- lib/libc/arm/string/memcpy_arm.S
+++ /dev/null
@@ -1,339 +0,0 @@
-/*	$NetBSD: memcpy_arm.S,v 1.1 2003/10/14 07:51:45 scw Exp $	*/
-
-/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Neil A. Carson and Mark Brinicombe
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *        This product includes software developed by the NetBSD
- *        Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/memcpy_arm.S,v 1.1 2004/05/14 12:04:31 cognet Exp $");
-/*
- * This is one fun bit of code ...
- * Some easy listening music is suggested while trying to understand this
- * code e.g. Iron Maiden
- *
- * For anyone attempting to understand it :
- *
- * The core code is implemented here with simple stubs for memcpy().
- *
- * All local labels are prefixed with Lmemcpy_
- * Following the prefix a label starting f is used in the forward copy code
- * while a label using b is used in the backwards copy code
- * The source and destination addresses determine whether a forward or
- * backward copy is performed.
- * Separate bits of code are used to deal with the following situations
- * for both the forward and backwards copy.
- * unaligned source address
- * unaligned destination address
- * Separate copy routines are used to produce an optimised result for each
- * of these cases.
- * The copy code will use LDM/STM instructions to copy up to 32 bytes at
- * a time where possible.
- *
- * Note: r12 (aka ip) can be trashed during the function along with
- * r0-r3 although r0-r2 have defined uses i.e. src, dest, len through out.
- * Additional registers are preserved prior to use i.e. r4, r5 & lr
- *
- * Apologies for the state of the comments ;-)
- */
-/* LINTSTUB: Func: void *memcpy(void *dst, const void *src, size_t len) */
-ENTRY(memcpy)
-	/* save leaf functions having to store this away */
-	stmdb	sp!, {r0, lr}		/* memcpy() returns dest addr */
-
-	subs	r2, r2, #4
-	blt	.Lmemcpy_l4		/* less than 4 bytes */
-	ands	r12, r0, #3
-	bne	.Lmemcpy_destul		/* oh unaligned destination addr */
-	ands	r12, r1, #3
-	bne	.Lmemcpy_srcul		/* oh unaligned source addr */
-
-.Lmemcpy_t8:
-	/* We have aligned source and destination */
-	subs	r2, r2, #8
-	blt	.Lmemcpy_l12		/* less than 12 bytes (4 from above) */
-	subs	r2, r2, #0x14         
-	blt	.Lmemcpy_l32		/* less than 32 bytes (12 from above) */
-	stmdb	sp!, {r4}		/* borrow r4 */
-
-	/* blat 32 bytes at a time */
-	/* XXX for really big copies perhaps we should use more registers */
-.Lmemcpy_loop32:	
-	ldmia	r1!, {r3, r4, r12, lr}
-	stmia	r0!, {r3, r4, r12, lr}
-	ldmia	r1!, {r3, r4, r12, lr}
-	stmia	r0!, {r3, r4, r12, lr}
-	subs	r2, r2, #0x20         
-	bge	.Lmemcpy_loop32
-
-	cmn	r2, #0x10
-	ldmgeia	r1!, {r3, r4, r12, lr}	/* blat a remaining 16 bytes */
-	stmgeia	r0!, {r3, r4, r12, lr}
-	subge	r2, r2, #0x10         
-	ldmia	sp!, {r4}		/* return r4 */
-
-.Lmemcpy_l32:
-	adds	r2, r2, #0x14         
-
-	/* blat 12 bytes at a time */
-.Lmemcpy_loop12:
-	ldmgeia	r1!, {r3, r12, lr}
-	stmgeia	r0!, {r3, r12, lr}
-	subges	r2, r2, #0x0c         
-	bge	.Lmemcpy_loop12
-
-.Lmemcpy_l12:
-	adds	r2, r2, #8
-	blt	.Lmemcpy_l4
-
-	subs	r2, r2, #4
-	ldrlt	r3, [r1], #4
-	strlt	r3, [r0], #4
-	ldmgeia	r1!, {r3, r12}
-	stmgeia	r0!, {r3, r12}
-	subge	r2, r2, #4
-
-.Lmemcpy_l4:
-	/* less than 4 bytes to go */
-	adds	r2, r2, #4
-#ifdef __APCS_26_
-	ldmeqia sp!, {r0, pc}^		/* done */
-#else
-	ldmeqia	sp!, {r0, pc}		/* done */
-#endif
-	/* copy the crud byte at a time */
-	cmp	r2, #2
-	ldrb	r3, [r1], #1
-	strb	r3, [r0], #1
-	ldrgeb	r3, [r1], #1
-	strgeb	r3, [r0], #1
-	ldrgtb	r3, [r1], #1
-	strgtb	r3, [r0], #1
-	ldmia	sp!, {r0, pc}
-
-	/* erg - unaligned destination */
-.Lmemcpy_destul:
-	rsb	r12, r12, #4
-	cmp	r12, #2
-
-	/* align destination with byte copies */
-	ldrb	r3, [r1], #1
-	strb	r3, [r0], #1
-	ldrgeb	r3, [r1], #1
-	strgeb	r3, [r0], #1
-	ldrgtb	r3, [r1], #1
-	strgtb	r3, [r0], #1
-	subs	r2, r2, r12
-	blt	.Lmemcpy_l4		/* less the 4 bytes */
-
-	ands	r12, r1, #3
-	beq	.Lmemcpy_t8		/* we have an aligned source */
-
-	/* erg - unaligned source */
-	/* This is where it gets nasty ... */
-.Lmemcpy_srcul:
-	bic	r1, r1, #3
-	ldr	lr, [r1], #4
-	cmp	r12, #2
-	bgt	.Lmemcpy_srcul3
-	beq	.Lmemcpy_srcul2
-	cmp	r2, #0x0c            
-	blt	.Lmemcpy_srcul1loop4
-	sub	r2, r2, #0x0c         
-	stmdb	sp!, {r4, r5}
-
-.Lmemcpy_srcul1loop16:
-#ifdef __ARMEB__
-	mov	r3, lr, lsl #8
-#else
-	mov	r3, lr, lsr #8
-#endif
-	ldmia	r1!, {r4, r5, r12, lr}
-#ifdef __ARMEB__
-	orr	r3, r3, r4, lsr #24
-	mov	r4, r4, lsl #8
-	orr	r4, r4, r5, lsr #24
-	mov	r5, r5, lsl #8
-	orr	r5, r5, r12, lsr #24
-	mov	r12, r12, lsl #8
-	orr	r12, r12, lr, lsr #24
-#else
-	orr	r3, r3, r4, lsl #24
-	mov	r4, r4, lsr #8
-	orr	r4, r4, r5, lsl #24
-	mov	r5, r5, lsr #8
-	orr	r5, r5, r12, lsl #24
-	mov	r12, r12, lsr #8
-	orr	r12, r12, lr, lsl #24
-#endif
-	stmia	r0!, {r3-r5, r12}
-	subs	r2, r2, #0x10         
-	bge	.Lmemcpy_srcul1loop16
-	ldmia	sp!, {r4, r5}
-	adds	r2, r2, #0x0c         
-	blt	.Lmemcpy_srcul1l4
-
-.Lmemcpy_srcul1loop4:
-#ifdef __ARMEB__
-	mov	r12, lr, lsl #8
-#else
-	mov	r12, lr, lsr #8
-#endif
-	ldr	lr, [r1], #4
-#ifdef __ARMEB__
-	orr	r12, r12, lr, lsr #24
-#else
-	orr	r12, r12, lr, lsl #24
-#endif
-	str	r12, [r0], #4
-	subs	r2, r2, #4
-	bge	.Lmemcpy_srcul1loop4
-
-.Lmemcpy_srcul1l4:
-	sub	r1, r1, #3
-	b	.Lmemcpy_l4
-
-.Lmemcpy_srcul2:
-	cmp	r2, #0x0c            
-	blt	.Lmemcpy_srcul2loop4
-	sub	r2, r2, #0x0c         
-	stmdb	sp!, {r4, r5}
-
-.Lmemcpy_srcul2loop16:
-#ifdef __ARMEB__
-	mov	r3, lr, lsl #16
-#else
-	mov	r3, lr, lsr #16
-#endif
-	ldmia	r1!, {r4, r5, r12, lr}
-#ifdef __ARMEB__
-	orr	r3, r3, r4, lsr #16
-	mov	r4, r4, lsl #16
-	orr	r4, r4, r5, lsr #16
-	mov	r5, r5, lsl #16
-	orr	r5, r5, r12, lsr #16
-	mov	r12, r12, lsl #16
-	orr	r12, r12, lr, lsr #16
-#else
-	orr	r3, r3, r4, lsl #16
-	mov	r4, r4, lsr #16
-	orr	r4, r4, r5, lsl #16
-	mov	r5, r5, lsr #16
-	orr	r5, r5, r12, lsl #16
-	mov	r12, r12, lsr #16
-	orr	r12, r12, lr, lsl #16
-#endif
-	stmia	r0!, {r3-r5, r12}
-	subs	r2, r2, #0x10         
-	bge	.Lmemcpy_srcul2loop16
-	ldmia	sp!, {r4, r5}
-	adds	r2, r2, #0x0c         
-	blt	.Lmemcpy_srcul2l4
-
-.Lmemcpy_srcul2loop4:
-#ifdef __ARMEB__
-	mov	r12, lr, lsl #16
-#else
-	mov	r12, lr, lsr #16
-#endif
-	ldr	lr, [r1], #4
-#ifdef __ARMEB__
-	orr	r12, r12, lr, lsr #16
-#else
-	orr	r12, r12, lr, lsl #16
-#endif
-	str	r12, [r0], #4
-	subs	r2, r2, #4
-	bge	.Lmemcpy_srcul2loop4
-
-.Lmemcpy_srcul2l4:
-	sub	r1, r1, #2
-	b	.Lmemcpy_l4
-
-.Lmemcpy_srcul3:
-	cmp	r2, #0x0c            
-	blt	.Lmemcpy_srcul3loop4
-	sub	r2, r2, #0x0c         
-	stmdb	sp!, {r4, r5}
-
-.Lmemcpy_srcul3loop16:
-#ifdef __ARMEB__
-	mov	r3, lr, lsl #24
-#else
-	mov	r3, lr, lsr #24
-#endif
-	ldmia	r1!, {r4, r5, r12, lr}
-#ifdef __ARMEB__
-	orr	r3, r3, r4, lsr #8
-	mov	r4, r4, lsl #24
-	orr	r4, r4, r5, lsr #8
-	mov	r5, r5, lsl #24
-	orr	r5, r5, r12, lsr #8
-	mov	r12, r12, lsl #24
-	orr	r12, r12, lr, lsr #8
-#else
-	orr	r3, r3, r4, lsl #8
-	mov	r4, r4, lsr #24
-	orr	r4, r4, r5, lsl #8
-	mov	r5, r5, lsr #24
-	orr	r5, r5, r12, lsl #8
-	mov	r12, r12, lsr #24
-	orr	r12, r12, lr, lsl #8
-#endif
-	stmia	r0!, {r3-r5, r12}
-	subs	r2, r2, #0x10         
-	bge	.Lmemcpy_srcul3loop16
-	ldmia	sp!, {r4, r5}
-	adds	r2, r2, #0x0c         
-	blt	.Lmemcpy_srcul3l4
-
-.Lmemcpy_srcul3loop4:
-#ifdef __ARMEB__
-	mov	r12, lr, lsl #24
-#else
-	mov	r12, lr, lsr #24
-#endif
-	ldr	lr, [r1], #4
-#ifdef __ARMEB__
-	orr	r12, r12, lr, lsr #8
-#else
-	orr	r12, r12, lr, lsl #8
-#endif
-	str	r12, [r0], #4
-	subs	r2, r2, #4
-	bge	.Lmemcpy_srcul3loop4
-
-.Lmemcpy_srcul3l4:
-	sub	r1, r1, #1
-	b	.Lmemcpy_l4
--- lib/libc/arm/string/memcpy_xscale.S
+++ /dev/null
@@ -1,1783 +0,0 @@
-/*	$NetBSD: memcpy_xscale.S,v 1.1 2003/10/14 07:51:45 scw Exp $	*/
-
-/*
- * Copyright 2003 Wasabi Systems, Inc.
- * All rights reserved.
- *
- * Written by Steve C. Woodford for Wasabi Systems, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed for the NetBSD Project by
- *      Wasabi Systems, Inc.
- * 4. The name of Wasabi Systems, Inc. may not be used to endorse
- *    or promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASABI SYSTEMS, INC
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/memcpy_xscale.S,v 1.2 2004/09/23 23:11:32 cognet Exp $");
-
-/* LINTSTUB: Func: void *memcpy(void *dst, const void *src, size_t len) */
-ENTRY(memcpy)
-	pld	[r1]
-	cmp	r2, #0x0c
-	ble	.Lmemcpy_short		/* <= 12 bytes */
-	mov	r3, r0			/* We must not clobber r0 */
-
-	/* Word-align the destination buffer */
-	ands	ip, r3, #0x03		/* Already word aligned? */
-	beq	.Lmemcpy_wordaligned	/* Yup */
-	cmp	ip, #0x02
-	ldrb	ip, [r1], #0x01
-	sub	r2, r2, #0x01
-	strb	ip, [r3], #0x01
-	ldrleb	ip, [r1], #0x01
-	suble	r2, r2, #0x01
-	strleb	ip, [r3], #0x01
-	ldrltb	ip, [r1], #0x01
-	sublt	r2, r2, #0x01
-	strltb	ip, [r3], #0x01
-
-	/* Destination buffer is now word aligned */
-.Lmemcpy_wordaligned:
-	ands	ip, r1, #0x03		/* Is src also word-aligned? */
-	bne	.Lmemcpy_bad_align	/* Nope. Things just got bad */
-
-	/* Quad-align the destination buffer */
-	tst	r3, #0x07		/* Already quad aligned? */
-	ldrne	ip, [r1], #0x04
-	stmfd	sp!, {r4-r9}		/* Free up some registers */
-	subne	r2, r2, #0x04
-	strne	ip, [r3], #0x04
-
-	/* Destination buffer quad aligned, source is at least word aligned */
-	subs	r2, r2, #0x80
-	blt	.Lmemcpy_w_lessthan128
-
-	/* Copy 128 bytes at a time */
-.Lmemcpy_w_loop128:
-	ldr	r4, [r1], #0x04		/* LD:00-03 */
-	ldr	r5, [r1], #0x04		/* LD:04-07 */
-	pld	[r1, #0x18]		/* Prefetch 0x20 */
-	ldr	r6, [r1], #0x04		/* LD:08-0b */
-	ldr	r7, [r1], #0x04		/* LD:0c-0f */
-	ldr	r8, [r1], #0x04		/* LD:10-13 */
-	ldr	r9, [r1], #0x04		/* LD:14-17 */
-	strd	r4, [r3], #0x08		/* ST:00-07 */
-	ldr	r4, [r1], #0x04		/* LD:18-1b */
-	ldr	r5, [r1], #0x04		/* LD:1c-1f */
-	strd	r6, [r3], #0x08		/* ST:08-0f */
-	ldr	r6, [r1], #0x04		/* LD:20-23 */
-	ldr	r7, [r1], #0x04		/* LD:24-27 */
-	pld	[r1, #0x18]		/* Prefetch 0x40 */
-	strd	r8, [r3], #0x08		/* ST:10-17 */
-	ldr	r8, [r1], #0x04		/* LD:28-2b */
-	ldr	r9, [r1], #0x04		/* LD:2c-2f */
-	strd	r4, [r3], #0x08		/* ST:18-1f */
-	ldr	r4, [r1], #0x04		/* LD:30-33 */
-	ldr	r5, [r1], #0x04		/* LD:34-37 */
-	strd	r6, [r3], #0x08		/* ST:20-27 */
-	ldr	r6, [r1], #0x04		/* LD:38-3b */
-	ldr	r7, [r1], #0x04		/* LD:3c-3f */
-	strd	r8, [r3], #0x08		/* ST:28-2f */
-	ldr	r8, [r1], #0x04		/* LD:40-43 */
-	ldr	r9, [r1], #0x04		/* LD:44-47 */
-	pld	[r1, #0x18]		/* Prefetch 0x60 */
-	strd	r4, [r3], #0x08		/* ST:30-37 */
-	ldr	r4, [r1], #0x04		/* LD:48-4b */
-	ldr	r5, [r1], #0x04		/* LD:4c-4f */
-	strd	r6, [r3], #0x08		/* ST:38-3f */
-	ldr	r6, [r1], #0x04		/* LD:50-53 */
-	ldr	r7, [r1], #0x04		/* LD:54-57 */
-	strd	r8, [r3], #0x08		/* ST:40-47 */
-	ldr	r8, [r1], #0x04		/* LD:58-5b */
-	ldr	r9, [r1], #0x04		/* LD:5c-5f */
-	strd	r4, [r3], #0x08		/* ST:48-4f */
-	ldr	r4, [r1], #0x04		/* LD:60-63 */
-	ldr	r5, [r1], #0x04		/* LD:64-67 */
-	pld	[r1, #0x18]		/* Prefetch 0x80 */
-	strd	r6, [r3], #0x08		/* ST:50-57 */
-	ldr	r6, [r1], #0x04		/* LD:68-6b */
-	ldr	r7, [r1], #0x04		/* LD:6c-6f */
-	strd	r8, [r3], #0x08		/* ST:58-5f */
-	ldr	r8, [r1], #0x04		/* LD:70-73 */
-	ldr	r9, [r1], #0x04		/* LD:74-77 */
-	strd	r4, [r3], #0x08		/* ST:60-67 */
-	ldr	r4, [r1], #0x04		/* LD:78-7b */
-	ldr	r5, [r1], #0x04		/* LD:7c-7f */
-	strd	r6, [r3], #0x08		/* ST:68-6f */
-	strd	r8, [r3], #0x08		/* ST:70-77 */
-	subs	r2, r2, #0x80
-	strd	r4, [r3], #0x08		/* ST:78-7f */
-	bge	.Lmemcpy_w_loop128
-
-.Lmemcpy_w_lessthan128:
-	adds	r2, r2, #0x80		/* Adjust for extra sub */
-	ldmeqfd	sp!, {r4-r9}
-	bxeq	lr			/* Return now if done */
-	subs	r2, r2, #0x20
-	blt	.Lmemcpy_w_lessthan32
-
-	/* Copy 32 bytes at a time */
-.Lmemcpy_w_loop32:
-	ldr	r4, [r1], #0x04
-	ldr	r5, [r1], #0x04
-	pld	[r1, #0x18]
-	ldr	r6, [r1], #0x04
-	ldr	r7, [r1], #0x04
-	ldr	r8, [r1], #0x04
-	ldr	r9, [r1], #0x04
-	strd	r4, [r3], #0x08
-	ldr	r4, [r1], #0x04
-	ldr	r5, [r1], #0x04
-	strd	r6, [r3], #0x08
-	strd	r8, [r3], #0x08
-	subs	r2, r2, #0x20
-	strd	r4, [r3], #0x08
-	bge	.Lmemcpy_w_loop32
-
-.Lmemcpy_w_lessthan32:
-	adds	r2, r2, #0x20		/* Adjust for extra sub */
-	ldmeqfd	sp!, {r4-r9}
-	bxeq	lr			/* Return now if done */
-
-	and	r4, r2, #0x18
-	rsbs	r4, r4, #0x18
-	addne	pc, pc, r4, lsl #1
-	nop
-
-	/* At least 24 bytes remaining */
-	ldr	r4, [r1], #0x04
-	ldr	r5, [r1], #0x04
-	sub	r2, r2, #0x08
-	strd	r4, [r3], #0x08
-
-	/* At least 16 bytes remaining */
-	ldr	r4, [r1], #0x04
-	ldr	r5, [r1], #0x04
-	sub	r2, r2, #0x08
-	strd	r4, [r3], #0x08
-
-	/* At least 8 bytes remaining */
-	ldr	r4, [r1], #0x04
-	ldr	r5, [r1], #0x04
-	subs	r2, r2, #0x08
-	strd	r4, [r3], #0x08
-
-	/* Less than 8 bytes remaining */
-	ldmfd	sp!, {r4-r9}
-	bxeq	lr			/* Return now if done */
-	subs	r2, r2, #0x04
-	ldrge	ip, [r1], #0x04
-	strge	ip, [r3], #0x04
-	bxeq	lr			/* Return now if done */
-	addlt	r2, r2, #0x04
-	ldrb	ip, [r1], #0x01
-	cmp	r2, #0x02
-	ldrgeb	r2, [r1], #0x01
-	strb	ip, [r3], #0x01
-	ldrgtb	ip, [r1]
-	strgeb	r2, [r3], #0x01
-	strgtb	ip, [r3]
-	bx	lr
-
-
-/*
- * At this point, it has not been possible to word align both buffers.
- * The destination buffer is word aligned, but the source buffer is not.
- */
-.Lmemcpy_bad_align:
-	stmfd	sp!, {r4-r7}
-	bic	r1, r1, #0x03
-	cmp	ip, #2
-	ldr	ip, [r1], #0x04
-	bgt	.Lmemcpy_bad3
-	beq	.Lmemcpy_bad2
-	b	.Lmemcpy_bad1
-
-.Lmemcpy_bad1_loop16:
-#ifdef __ARMEB__
-	mov	r4, ip, lsl #8
-#else
-	mov	r4, ip, lsr #8
-#endif
-	ldr	r5, [r1], #0x04
-	pld	[r1, #0x018]
-	ldr	r6, [r1], #0x04
-	ldr	r7, [r1], #0x04
-	ldr	ip, [r1], #0x04
-#ifdef __ARMEB__
-	orr	r4, r4, r5, lsr #24
-	mov	r5, r5, lsl #8
-	orr	r5, r5, r6, lsr #24
-	mov	r6, r6, lsl #8
-	orr	r6, r6, r7, lsr #24
-	mov	r7, r7, lsl #8
-	orr	r7, r7, ip, lsr #24
-#else
-	orr	r4, r4, r5, lsl #24
-	mov	r5, r5, lsr #8
-	orr	r5, r5, r6, lsl #24
-	mov	r6, r6, lsr #8
-	orr	r6, r6, r7, lsl #24
-	mov	r7, r7, lsr #8
-	orr	r7, r7, ip, lsl #24
-#endif
-	str	r4, [r3], #0x04
-	str	r5, [r3], #0x04
-	str	r6, [r3], #0x04
-	str	r7, [r3], #0x04
-.Lmemcpy_bad1:
-	subs	r2, r2, #0x10         
-	bge	.Lmemcpy_bad1_loop16
-
-	adds	r2, r2, #0x10         
-	ldmeqfd	sp!, {r4-r7}
-	bxeq	lr			/* Return now if done */
-	subs	r2, r2, #0x04
-	sublt	r1, r1, #0x03
-	blt	.Lmemcpy_bad_done
-
-.Lmemcpy_bad1_loop4:
-#ifdef __ARMEB__
-	mov	r4, ip, lsl #8
-#else
-	mov	r4, ip, lsr #8
-#endif
-	ldr	ip, [r1], #0x04
-	subs	r2, r2, #0x04
-#ifdef __ARMEB__
-	orr	r4, r4, ip, lsr #24
-#else
-	orr	r4, r4, ip, lsl #24
-#endif
-	str	r4, [r3], #0x04
-	bge	.Lmemcpy_bad1_loop4
-	sub	r1, r1, #0x03
-	b	.Lmemcpy_bad_done
-
-.Lmemcpy_bad2_loop16:
-#ifdef __ARMEB__
-	mov	r4, ip, lsl #16
-#else
-	mov	r4, ip, lsr #16
-#endif
-	ldr	r5, [r1], #0x04
-	pld	[r1, #0x018]
-	ldr	r6, [r1], #0x04
-	ldr	r7, [r1], #0x04
-	ldr	ip, [r1], #0x04
-#ifdef __ARMEB__
-	orr	r4, r4, r5, lsr #16
-	mov	r5, r5, lsl #16
-	orr	r5, r5, r6, lsr #16
-	mov	r6, r6, lsl #16
-	orr	r6, r6, r7, lsr #16
-	mov	r7, r7, lsl #16
-	orr	r7, r7, ip, lsr #16
-#else
-	orr	r4, r4, r5, lsl #16
-	mov	r5, r5, lsr #16
-	orr	r5, r5, r6, lsl #16
-	mov	r6, r6, lsr #16
-	orr	r6, r6, r7, lsl #16
-	mov	r7, r7, lsr #16
-	orr	r7, r7, ip, lsl #16
-#endif
-	str	r4, [r3], #0x04
-	str	r5, [r3], #0x04
-	str	r6, [r3], #0x04
-	str	r7, [r3], #0x04
-.Lmemcpy_bad2:
-	subs	r2, r2, #0x10         
-	bge	.Lmemcpy_bad2_loop16
-
-	adds	r2, r2, #0x10         
-	ldmeqfd	sp!, {r4-r7}
-	bxeq	lr			/* Return now if done */
-	subs	r2, r2, #0x04
-	sublt	r1, r1, #0x02
-	blt	.Lmemcpy_bad_done
-
-.Lmemcpy_bad2_loop4:
-#ifdef __ARMEB__
-	mov	r4, ip, lsl #16
-#else
-	mov	r4, ip, lsr #16
-#endif
-	ldr	ip, [r1], #0x04
-	subs	r2, r2, #0x04
-#ifdef __ARMEB__
-	orr	r4, r4, ip, lsr #16
-#else
-	orr	r4, r4, ip, lsl #16
-#endif
-	str	r4, [r3], #0x04
-	bge	.Lmemcpy_bad2_loop4
-	sub	r1, r1, #0x02
-	b	.Lmemcpy_bad_done
-
-.Lmemcpy_bad3_loop16:
-#ifdef __ARMEB__
-	mov	r4, ip, lsl #24
-#else
-	mov	r4, ip, lsr #24
-#endif
-	ldr	r5, [r1], #0x04
-	pld	[r1, #0x018]
-	ldr	r6, [r1], #0x04
-	ldr	r7, [r1], #0x04
-	ldr	ip, [r1], #0x04
-#ifdef __ARMEB__
-	orr	r4, r4, r5, lsr #8
-	mov	r5, r5, lsl #24
-	orr	r5, r5, r6, lsr #8
-	mov	r6, r6, lsl #24
-	orr	r6, r6, r7, lsr #8
-	mov	r7, r7, lsl #24
-	orr	r7, r7, ip, lsr #8
-#else
-	orr	r4, r4, r5, lsl #8
-	mov	r5, r5, lsr #24
-	orr	r5, r5, r6, lsl #8
-	mov	r6, r6, lsr #24
-	orr	r6, r6, r7, lsl #8
-	mov	r7, r7, lsr #24
-	orr	r7, r7, ip, lsl #8
-#endif
-	str	r4, [r3], #0x04
-	str	r5, [r3], #0x04
-	str	r6, [r3], #0x04
-	str	r7, [r3], #0x04
-.Lmemcpy_bad3:
-	subs	r2, r2, #0x10         
-	bge	.Lmemcpy_bad3_loop16
-
-	adds	r2, r2, #0x10         
-	ldmeqfd	sp!, {r4-r7}
-	bxeq	lr			/* Return now if done */
-	subs	r2, r2, #0x04
-	sublt	r1, r1, #0x01
-	blt	.Lmemcpy_bad_done
-
-.Lmemcpy_bad3_loop4:
-#ifdef __ARMEB__
-	mov	r4, ip, lsl #24
-#else
-	mov	r4, ip, lsr #24
-#endif
-	ldr	ip, [r1], #0x04
-	subs	r2, r2, #0x04
-#ifdef __ARMEB__
-	orr	r4, r4, ip, lsr #8
-#else
-	orr	r4, r4, ip, lsl #8
-#endif
-	str	r4, [r3], #0x04
-	bge	.Lmemcpy_bad3_loop4
-	sub	r1, r1, #0x01
-
-.Lmemcpy_bad_done:
-	ldmfd	sp!, {r4-r7}
-	adds	r2, r2, #0x04
-	bxeq	lr
-	ldrb	ip, [r1], #0x01
-	cmp	r2, #0x02
-	ldrgeb	r2, [r1], #0x01
-	strb	ip, [r3], #0x01
-	ldrgtb	ip, [r1]
-	strgeb	r2, [r3], #0x01
-	strgtb	ip, [r3]
-	bx	lr
-
-
-/*
- * Handle short copies (less than 16 bytes), possibly misaligned.
- * Some of these are *very* common, thanks to the network stack,
- * and so are handled specially.
- */
-.Lmemcpy_short:
-#ifndef _STANDALONE
-	add	pc, pc, r2, lsl #2
-	nop
-	bx	lr			/* 0x00 */
-	b	.Lmemcpy_bytewise	/* 0x01 */
-	b	.Lmemcpy_bytewise	/* 0x02 */
-	b	.Lmemcpy_bytewise	/* 0x03 */
-	b	.Lmemcpy_4		/* 0x04 */
-	b	.Lmemcpy_bytewise	/* 0x05 */
-	b	.Lmemcpy_6		/* 0x06 */
-	b	.Lmemcpy_bytewise	/* 0x07 */
-	b	.Lmemcpy_8		/* 0x08 */
-	b	.Lmemcpy_bytewise	/* 0x09 */
-	b	.Lmemcpy_bytewise	/* 0x0a */
-	b	.Lmemcpy_bytewise	/* 0x0b */
-	b	.Lmemcpy_c		/* 0x0c */
-#endif
-.Lmemcpy_bytewise:
-	mov	r3, r0			/* We must not clobber r0 */
-	ldrb	ip, [r1], #0x01
-1:	subs	r2, r2, #0x01
-	strb	ip, [r3], #0x01
-	ldrneb	ip, [r1], #0x01
-	bne	1b
-	bx	lr
-
-#ifndef _STANDALONE
-/******************************************************************************
- * Special case for 4 byte copies
- */
-#define	LMEMCPY_4_LOG2	6	/* 64 bytes */
-#define	LMEMCPY_4_PAD	.align LMEMCPY_4_LOG2
-	LMEMCPY_4_PAD
-.Lmemcpy_4:
-	and	r2, r1, #0x03
-	orr	r2, r2, r0, lsl #2
-	ands	r2, r2, #0x0f
-	sub	r3, pc, #0x14
-	addne	pc, r3, r2, lsl #LMEMCPY_4_LOG2
-
-/*
- * 0000: dst is 32-bit aligned, src is 32-bit aligned
- */
-	ldr	r2, [r1]
-	str	r2, [r0]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 0001: dst is 32-bit aligned, src is 8-bit aligned
- */
-	ldr	r3, [r1, #-1]		/* BE:r3 = x012  LE:r3 = 210x */
-	ldr	r2, [r1, #3]		/* BE:r2 = 3xxx  LE:r2 = xxx3 */
-#ifdef __ARMEB__
-	mov	r3, r3, lsl #8		/* r3 = 012. */
-	orr	r3, r3, r2, lsr #24	/* r3 = 0123 */
-#else
-	mov	r3, r3, lsr #8		/* r3 = .210 */
-	orr	r3, r3, r2, lsl #24	/* r3 = 3210 */
-#endif
-	str	r3, [r0]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 0010: dst is 32-bit aligned, src is 16-bit aligned
- */
-#ifdef __ARMEB__
-	ldrh	r3, [r1]
-	ldrh	r2, [r1, #0x02]
-#else
-	ldrh	r3, [r1, #0x02]
-	ldrh	r2, [r1]
-#endif
-	orr	r3, r2, r3, lsl #16
-	str	r3, [r0]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 0011: dst is 32-bit aligned, src is 8-bit aligned
- */
-	ldr	r3, [r1, #-3]		/* BE:r3 = xxx0  LE:r3 = 0xxx */
-	ldr	r2, [r1, #1]		/* BE:r2 = 123x  LE:r2 = x321 */
-#ifdef __ARMEB__
-	mov	r3, r3, lsl #24		/* r3 = 0... */
-	orr	r3, r3, r2, lsr #8	/* r3 = 0123 */
-#else
-	mov	r3, r3, lsr #24		/* r3 = ...0 */
-	orr	r3, r3, r2, lsl #8	/* r3 = 3210 */
-#endif
-	str	r3, [r0]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 0100: dst is 8-bit aligned, src is 32-bit aligned
- */
-	ldr	r2, [r1]
-#ifdef __ARMEB__
-	strb	r2, [r0, #0x03]
-	mov	r3, r2, lsr #8
-	mov	r1, r2, lsr #24
-	strb	r1, [r0]
-#else
-	strb	r2, [r0]
-	mov	r3, r2, lsr #8
-	mov	r1, r2, lsr #24
-	strb	r1, [r0, #0x03]
-#endif
-	strh	r3, [r0, #0x01]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 0101: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldrh	r3, [r1, #0x01]
-	ldrb	r1, [r1, #0x03]
-	strb	r2, [r0]
-	strh	r3, [r0, #0x01]
-	strb	r1, [r0, #0x03]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 0110: dst is 8-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	ldrh	r3, [r1, #0x02]		/* LE:r3 = ..23  LE:r3 = ..32 */
-#ifdef __ARMEB__
-	mov	r1, r2, lsr #8		/* r1 = ...0 */
-	strb	r1, [r0]
-	mov	r2, r2, lsl #8		/* r2 = .01. */
-	orr	r2, r2, r3, lsr #8	/* r2 = .012 */
-#else
-	strb	r2, [r0]
-	mov	r2, r2, lsr #8		/* r2 = ...1 */
-	orr	r2, r2, r3, lsl #8	/* r2 = .321 */
-	mov	r3, r3, lsr #8		/* r3 = ...3 */
-#endif
-	strh	r2, [r0, #0x01]
-	strb	r3, [r0, #0x03]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 0111: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldrh	r3, [r1, #0x01]
-	ldrb	r1, [r1, #0x03]
-	strb	r2, [r0]
-	strh	r3, [r0, #0x01]
-	strb	r1, [r0, #0x03]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 1000: dst is 16-bit aligned, src is 32-bit aligned
- */
-	ldr	r2, [r1]
-#ifdef __ARMEB__
-	strh	r2, [r0, #0x02]
-	mov	r3, r2, lsr #16
-	strh	r3, [r0]
-#else
-	strh	r2, [r0]
-	mov	r3, r2, lsr #16
-	strh	r3, [r0, #0x02]
-#endif
-	bx	 lr
-	LMEMCPY_4_PAD
-
-/*
- * 1001: dst is 16-bit aligned, src is 8-bit aligned
- */
-	ldr	r2, [r1, #-1]		/* BE:r2 = x012  LE:r2 = 210x */
-	ldr	r3, [r1, #3]		/* BE:r3 = 3xxx  LE:r3 = xxx3 */
-	mov	r1, r2, lsr #8		/* BE:r1 = .x01  LE:r1 = .210 */
-	strh	r1, [r0]
-#ifdef __ARMEB__
-	mov	r2, r2, lsl #8		/* r2 = 012. */
-	orr	r2, r2, r3, lsr #24	/* r2 = 0123 */
-#else
-	mov	r2, r2, lsr #24		/* r2 = ...2 */
-	orr	r2, r2, r3, lsl #8	/* r2 = xx32 */
-#endif
-	strh	r2, [r0, #0x02]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 1010: dst is 16-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]
-	ldrh	r3, [r1, #0x02]
-	strh	r2, [r0]
-	strh	r3, [r0, #0x02]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 1011: dst is 16-bit aligned, src is 8-bit aligned
- */
-	ldr	r3, [r1, #1]		/* BE:r3 = 123x  LE:r3 = x321 */
-	ldr	r2, [r1, #-3]		/* BE:r2 = xxx0  LE:r2 = 0xxx */
-	mov	r1, r3, lsr #8		/* BE:r1 = .123  LE:r1 = .x32 */
-	strh	r1, [r0, #0x02]
-#ifdef __ARMEB__
-	mov	r3, r3, lsr #24		/* r3 = ...1 */
-	orr	r3, r3, r2, lsl #8	/* r3 = xx01 */
-#else
-	mov	r3, r3, lsl #8		/* r3 = 321. */
-	orr	r3, r3, r2, lsr #24	/* r3 = 3210 */
-#endif
-	strh	r3, [r0]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 1100: dst is 8-bit aligned, src is 32-bit aligned
- */
-	ldr	r2, [r1]		/* BE:r2 = 0123  LE:r2 = 3210 */
-#ifdef __ARMEB__
-	strb	r2, [r0, #0x03]
-	mov	r3, r2, lsr #8
-	mov	r1, r2, lsr #24
-	strh	r3, [r0, #0x01]
-	strb	r1, [r0]
-#else
-	strb	r2, [r0]
-	mov	r3, r2, lsr #8
-	mov	r1, r2, lsr #24
-	strh	r3, [r0, #0x01]
-	strb	r1, [r0, #0x03]
-#endif
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 1101: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldrh	r3, [r1, #0x01]
-	ldrb	r1, [r1, #0x03]
-	strb	r2, [r0]
-	strh	r3, [r0, #0x01]
-	strb	r1, [r0, #0x03]
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 1110: dst is 8-bit aligned, src is 16-bit aligned
- */
-#ifdef __ARMEB__
-	ldrh	r3, [r1, #0x02]		/* BE:r3 = ..23  LE:r3 = ..32 */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	strb	r3, [r0, #0x03]
-	mov	r3, r3, lsr #8		/* r3 = ...2 */
-	orr	r3, r3, r2, lsl #8	/* r3 = ..12 */
-	strh	r3, [r0, #0x01]
-	mov	r2, r2, lsr #8		/* r2 = ...0 */
-	strb	r2, [r0]
-#else
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	ldrh	r3, [r1, #0x02]		/* BE:r3 = ..23  LE:r3 = ..32 */
-	strb	r2, [r0]
-	mov	r2, r2, lsr #8		/* r2 = ...1 */
-	orr	r2, r2, r3, lsl #8	/* r2 = .321 */
-	strh	r2, [r0, #0x01]
-	mov	r3, r3, lsr #8		/* r3 = ...3 */
-	strb	r3, [r0, #0x03]
-#endif
-	bx	lr
-	LMEMCPY_4_PAD
-
-/*
- * 1111: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldrh	r3, [r1, #0x01]
-	ldrb	r1, [r1, #0x03]
-	strb	r2, [r0]
-	strh	r3, [r0, #0x01]
-	strb	r1, [r0, #0x03]
-	bx	lr
-	LMEMCPY_4_PAD
-
-
-/******************************************************************************
- * Special case for 6 byte copies
- */
-#define	LMEMCPY_6_LOG2	6	/* 64 bytes */
-#define	LMEMCPY_6_PAD	.align LMEMCPY_6_LOG2
-	LMEMCPY_6_PAD
-.Lmemcpy_6:
-	and	r2, r1, #0x03
-	orr	r2, r2, r0, lsl #2
-	ands	r2, r2, #0x0f
-	sub	r3, pc, #0x14
-	addne	pc, r3, r2, lsl #LMEMCPY_6_LOG2
-
-/*
- * 0000: dst is 32-bit aligned, src is 32-bit aligned
- */
-	ldr	r2, [r1]
-	ldrh	r3, [r1, #0x04]
-	str	r2, [r0]
-	strh	r3, [r0, #0x04]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 0001: dst is 32-bit aligned, src is 8-bit aligned
- */
-	ldr	r2, [r1, #-1]		/* BE:r2 = x012  LE:r2 = 210x */
-	ldr	r3, [r1, #0x03]		/* BE:r3 = 345x  LE:r3 = x543 */
-#ifdef __ARMEB__
-	mov	r2, r2, lsl #8		/* r2 = 012. */
-	orr	r2, r2, r3, lsr #24	/* r2 = 0123 */
-#else
-	mov	r2, r2, lsr #8		/* r2 = .210 */
-	orr	r2, r2, r3, lsl #24	/* r2 = 3210 */
-#endif
-	mov	r3, r3, lsr #8		/* BE:r3 = .345  LE:r3 = .x54 */
-	str	r2, [r0]
-	strh	r3, [r0, #0x04]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 0010: dst is 32-bit aligned, src is 16-bit aligned
- */
-	ldr	r3, [r1, #0x02]		/* BE:r3 = 2345  LE:r3 = 5432 */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-#ifdef __ARMEB__
-	mov	r1, r3, lsr #16		/* r1 = ..23 */
-	orr	r1, r1, r2, lsl #16	/* r1 = 0123 */
-	str	r1, [r0]
-	strh	r3, [r0, #0x04]
-#else
-	mov	r1, r3, lsr #16		/* r1 = ..54 */
-	orr	r2, r2, r3, lsl #16	/* r2 = 3210 */
-	str	r2, [r0]
-	strh	r1, [r0, #0x04]
-#endif
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 0011: dst is 32-bit aligned, src is 8-bit aligned
- */
-	ldr	r2, [r1, #-3]		/* BE:r2 = xxx0  LE:r2 = 0xxx */
-	ldr	r3, [r1, #1]		/* BE:r3 = 1234  LE:r3 = 4321 */
-	ldr	r1, [r1, #5]		/* BE:r1 = 5xxx  LE:r3 = xxx5 */
-#ifdef __ARMEB__
-	mov	r2, r2, lsl #24		/* r2 = 0... */
-	orr	r2, r2, r3, lsr #8	/* r2 = 0123 */
-	mov	r3, r3, lsl #8		/* r3 = 234. */
-	orr	r1, r3, r1, lsr #24	/* r1 = 2345 */
-#else
-	mov	r2, r2, lsr #24		/* r2 = ...0 */
-	orr	r2, r2, r3, lsl #8	/* r2 = 3210 */
-	mov	r1, r1, lsl #8		/* r1 = xx5. */
-	orr	r1, r1, r3, lsr #24	/* r1 = xx54 */
-#endif
-	str	r2, [r0]
-	strh	r1, [r0, #0x04]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 0100: dst is 8-bit aligned, src is 32-bit aligned
- */
-	ldr	r3, [r1]		/* BE:r3 = 0123  LE:r3 = 3210 */
-	ldrh	r2, [r1, #0x04]		/* BE:r2 = ..45  LE:r2 = ..54 */
-	mov	r1, r3, lsr #8		/* BE:r1 = .012  LE:r1 = .321 */
-	strh	r1, [r0, #0x01]
-#ifdef __ARMEB__
-	mov	r1, r3, lsr #24		/* r1 = ...0 */
-	strb	r1, [r0]
-	mov	r3, r3, lsl #8		/* r3 = 123. */
-	orr	r3, r3, r2, lsr #8	/* r3 = 1234 */
-#else
-	strb	r3, [r0]
-	mov	r3, r3, lsr #24		/* r3 = ...3 */
-	orr	r3, r3, r2, lsl #8	/* r3 = .543 */
-	mov	r2, r2, lsr #8		/* r2 = ...5 */
-#endif
-	strh	r3, [r0, #0x03]
-	strb	r2, [r0, #0x05]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 0101: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldrh	r3, [r1, #0x01]
-	ldrh	ip, [r1, #0x03]
-	ldrb	r1, [r1, #0x05]
-	strb	r2, [r0]
-	strh	r3, [r0, #0x01]
-	strh	ip, [r0, #0x03]
-	strb	r1, [r0, #0x05]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 0110: dst is 8-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	ldr	r1, [r1, #0x02]		/* BE:r1 = 2345  LE:r1 = 5432 */
-#ifdef __ARMEB__
-	mov	r3, r2, lsr #8		/* r3 = ...0 */
-	strb	r3, [r0]
-	strb	r1, [r0, #0x05]
-	mov	r3, r1, lsr #8		/* r3 = .234 */
-	strh	r3, [r0, #0x03]
-	mov	r3, r2, lsl #8		/* r3 = .01. */
-	orr	r3, r3, r1, lsr #24	/* r3 = .012 */
-	strh	r3, [r0, #0x01]
-#else
-	strb	r2, [r0]
-	mov	r3, r1, lsr #24
-	strb	r3, [r0, #0x05]
-	mov	r3, r1, lsr #8		/* r3 = .543 */
-	strh	r3, [r0, #0x03]
-	mov	r3, r2, lsr #8		/* r3 = ...1 */
-	orr	r3, r3, r1, lsl #8	/* r3 = 4321 */
-	strh	r3, [r0, #0x01]
-#endif
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 0111: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldrh	r3, [r1, #0x01]
-	ldrh	ip, [r1, #0x03]
-	ldrb	r1, [r1, #0x05]
-	strb	r2, [r0]
-	strh	r3, [r0, #0x01]
-	strh	ip, [r0, #0x03]
-	strb	r1, [r0, #0x05]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 1000: dst is 16-bit aligned, src is 32-bit aligned
- */
-#ifdef __ARMEB__
-	ldr	r2, [r1]		/* r2 = 0123 */
-	ldrh	r3, [r1, #0x04]		/* r3 = ..45 */
-	mov	r1, r2, lsr #16		/* r1 = ..01 */
-	orr	r3, r3, r2, lsl#16	/* r3 = 2345 */
-	strh	r1, [r0]
-	str	r3, [r0, #0x02]
-#else
-	ldrh	r2, [r1, #0x04]		/* r2 = ..54 */
-	ldr	r3, [r1]		/* r3 = 3210 */
-	mov	r2, r2, lsl #16		/* r2 = 54.. */
-	orr	r2, r2, r3, lsr #16	/* r2 = 5432 */
-	strh	r3, [r0]
-	str	r2, [r0, #0x02]
-#endif
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 1001: dst is 16-bit aligned, src is 8-bit aligned
- */
-	ldr	r3, [r1, #-1]		/* BE:r3 = x012  LE:r3 = 210x */
-	ldr	r2, [r1, #3]		/* BE:r2 = 345x  LE:r2 = x543 */
-	mov	r1, r3, lsr #8		/* BE:r1 = .x01  LE:r1 = .210 */
-#ifdef __ARMEB__
-	mov	r2, r2, lsr #8		/* r2 = .345 */
-	orr	r2, r2, r3, lsl #24	/* r2 = 2345 */
-#else
-	mov	r2, r2, lsl #8		/* r2 = 543. */
-	orr	r2, r2, r3, lsr #24	/* r2 = 5432 */
-#endif
-	strh	r1, [r0]
-	str	r2, [r0, #0x02]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 1010: dst is 16-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]
-	ldr	r3, [r1, #0x02]
-	strh	r2, [r0]
-	str	r3, [r0, #0x02]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 1011: dst is 16-bit aligned, src is 8-bit aligned
- */
-	ldrb	r3, [r1]		/* r3 = ...0 */
-	ldr	r2, [r1, #0x01]		/* BE:r2 = 1234  LE:r2 = 4321 */
-	ldrb	r1, [r1, #0x05]		/* r1 = ...5 */
-#ifdef __ARMEB__
-	mov	r3, r3, lsl #8		/* r3 = ..0. */
-	orr	r3, r3, r2, lsr #24	/* r3 = ..01 */
-	orr	r1, r1, r2, lsl #8	/* r1 = 2345 */
-#else
-	orr	r3, r3, r2, lsl #8	/* r3 = 3210 */
-	mov	r1, r1, lsl #24		/* r1 = 5... */
-	orr	r1, r1, r2, lsr #8	/* r1 = 5432 */
-#endif
-	strh	r3, [r0]
-	str	r1, [r0, #0x02]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 1100: dst is 8-bit aligned, src is 32-bit aligned
- */
-	ldr	r2, [r1]		/* BE:r2 = 0123  LE:r2 = 3210 */
-	ldrh	r1, [r1, #0x04]		/* BE:r1 = ..45  LE:r1 = ..54 */
-#ifdef __ARMEB__
-	mov	r3, r2, lsr #24		/* r3 = ...0 */
-	strb	r3, [r0]
-	mov	r2, r2, lsl #8		/* r2 = 123. */
-	orr	r2, r2, r1, lsr #8	/* r2 = 1234 */
-#else
-	strb	r2, [r0]
-	mov	r2, r2, lsr #8		/* r2 = .321 */
-	orr	r2, r2, r1, lsl #24	/* r2 = 4321 */
-	mov	r1, r1, lsr #8		/* r1 = ...5 */
-#endif
-	str	r2, [r0, #0x01]
-	strb	r1, [r0, #0x05]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 1101: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldrh	r3, [r1, #0x01]
-	ldrh	ip, [r1, #0x03]
-	ldrb	r1, [r1, #0x05]
-	strb	r2, [r0]
-	strh	r3, [r0, #0x01]
-	strh	ip, [r0, #0x03]
-	strb	r1, [r0, #0x05]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 1110: dst is 8-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	ldr	r1, [r1, #0x02]		/* BE:r1 = 2345  LE:r1 = 5432 */
-#ifdef __ARMEB__
-	mov	r3, r2, lsr #8		/* r3 = ...0 */
-	strb	r3, [r0]
-	mov	r2, r2, lsl #24		/* r2 = 1... */
-	orr	r2, r2, r1, lsr #8	/* r2 = 1234 */
-#else
-	strb	r2, [r0]
-	mov	r2, r2, lsr #8		/* r2 = ...1 */
-	orr	r2, r2, r1, lsl #8	/* r2 = 4321 */
-	mov	r1, r1, lsr #24		/* r1 = ...5 */
-#endif
-	str	r2, [r0, #0x01]
-	strb	r1, [r0, #0x05]
-	bx	lr
-	LMEMCPY_6_PAD
-
-/*
- * 1111: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldr	r3, [r1, #0x01]
-	ldrb	r1, [r1, #0x05]
-	strb	r2, [r0]
-	str	r3, [r0, #0x01]
-	strb	r1, [r0, #0x05]
-	bx	lr
-	LMEMCPY_6_PAD
-
-
-/******************************************************************************
- * Special case for 8 byte copies
- */
-#define	LMEMCPY_8_LOG2	6	/* 64 bytes */
-#define	LMEMCPY_8_PAD	.align LMEMCPY_8_LOG2
-	LMEMCPY_8_PAD
-.Lmemcpy_8:
-	and	r2, r1, #0x03
-	orr	r2, r2, r0, lsl #2
-	ands	r2, r2, #0x0f
-	sub	r3, pc, #0x14
-	addne	pc, r3, r2, lsl #LMEMCPY_8_LOG2
-
-/*
- * 0000: dst is 32-bit aligned, src is 32-bit aligned
- */
-	ldr	r2, [r1]
-	ldr	r3, [r1, #0x04]
-	str	r2, [r0]
-	str	r3, [r0, #0x04]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 0001: dst is 32-bit aligned, src is 8-bit aligned
- */
-	ldr	r3, [r1, #-1]		/* BE:r3 = x012  LE:r3 = 210x */
-	ldr	r2, [r1, #0x03]		/* BE:r2 = 3456  LE:r2 = 6543 */
-	ldrb	r1, [r1, #0x07]		/* r1 = ...7 */
-#ifdef __ARMEB__
-	mov	r3, r3, lsl #8		/* r3 = 012. */
-	orr	r3, r3, r2, lsr #24	/* r3 = 0123 */
-	orr	r2, r1, r2, lsl #8	/* r2 = 4567 */
-#else
-	mov	r3, r3, lsr #8		/* r3 = .210 */
-	orr	r3, r3, r2, lsl #24	/* r3 = 3210 */
-	mov	r1, r1, lsl #24		/* r1 = 7... */
-	orr	r2, r1, r2, lsr #8	/* r2 = 7654 */
-#endif
-	str	r3, [r0]
-	str	r2, [r0, #0x04]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 0010: dst is 32-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	ldr	r3, [r1, #0x02]		/* BE:r3 = 2345  LE:r3 = 5432 */
-	ldrh	r1, [r1, #0x06]		/* BE:r1 = ..67  LE:r1 = ..76 */
-#ifdef __ARMEB__
-	mov	r2, r2, lsl #16		/* r2 = 01.. */
-	orr	r2, r2, r3, lsr #16	/* r2 = 0123 */
-	orr	r3, r1, r3, lsl #16	/* r3 = 4567 */
-#else
-	orr	r2, r2, r3, lsl #16	/* r2 = 3210 */
-	mov	r3, r3, lsr #16		/* r3 = ..54 */
-	orr	r3, r3, r1, lsl #16	/* r3 = 7654 */
-#endif
-	str	r2, [r0]
-	str	r3, [r0, #0x04]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 0011: dst is 32-bit aligned, src is 8-bit aligned
- */
-	ldrb	r3, [r1]		/* r3 = ...0 */
-	ldr	r2, [r1, #0x01]		/* BE:r2 = 1234  LE:r2 = 4321 */
-	ldr	r1, [r1, #0x05]		/* BE:r1 = 567x  LE:r1 = x765 */
-#ifdef __ARMEB__
-	mov	r3, r3, lsl #24		/* r3 = 0... */
-	orr	r3, r3, r2, lsr #8	/* r3 = 0123 */
-	mov	r2, r2, lsl #24		/* r2 = 4... */
-	orr	r2, r2, r1, lsr #8	/* r2 = 4567 */
-#else
-	orr	r3, r3, r2, lsl #8	/* r3 = 3210 */
-	mov	r2, r2, lsr #24		/* r2 = ...4 */
-	orr	r2, r2, r1, lsl #8	/* r2 = 7654 */
-#endif
-	str	r3, [r0]
-	str	r2, [r0, #0x04]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 0100: dst is 8-bit aligned, src is 32-bit aligned
- */
-	ldr	r3, [r1]		/* BE:r3 = 0123  LE:r3 = 3210 */
-	ldr	r2, [r1, #0x04]		/* BE:r2 = 4567  LE:r2 = 7654 */
-#ifdef __ARMEB__
-	mov	r1, r3, lsr #24		/* r1 = ...0 */
-	strb	r1, [r0]
-	mov	r1, r3, lsr #8		/* r1 = .012 */
-	strb	r2, [r0, #0x07]
-	mov	r3, r3, lsl #24		/* r3 = 3... */
-	orr	r3, r3, r2, lsr #8	/* r3 = 3456 */
-#else
-	strb	r3, [r0]
-	mov	r1, r2, lsr #24		/* r1 = ...7 */
-	strb	r1, [r0, #0x07]
-	mov	r1, r3, lsr #8		/* r1 = .321 */
-	mov	r3, r3, lsr #24		/* r3 = ...3 */
-	orr	r3, r3, r2, lsl #8	/* r3 = 6543 */
-#endif
-	strh	r1, [r0, #0x01]
-	str	r3, [r0, #0x03]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 0101: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldrh	r3, [r1, #0x01]
-	ldr	ip, [r1, #0x03]
-	ldrb	r1, [r1, #0x07]
-	strb	r2, [r0]
-	strh	r3, [r0, #0x01]
-	str	ip, [r0, #0x03]
-	strb	r1, [r0, #0x07]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 0110: dst is 8-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	ldr	r3, [r1, #0x02]		/* BE:r3 = 2345  LE:r3 = 5432 */
-	ldrh	r1, [r1, #0x06]		/* BE:r1 = ..67  LE:r1 = ..76 */
-#ifdef __ARMEB__
-	mov	ip, r2, lsr #8		/* ip = ...0 */
-	strb	ip, [r0]
-	mov	ip, r2, lsl #8		/* ip = .01. */
-	orr	ip, ip, r3, lsr #24	/* ip = .012 */
-	strb	r1, [r0, #0x07]
-	mov	r3, r3, lsl #8		/* r3 = 345. */
-	orr	r3, r3, r1, lsr #8	/* r3 = 3456 */
-#else
-	strb	r2, [r0]		/* 0 */
-	mov	ip, r1, lsr #8		/* ip = ...7 */
-	strb	ip, [r0, #0x07]		/* 7 */
-	mov	ip, r2, lsr #8		/* ip = ...1 */
-	orr	ip, ip, r3, lsl #8	/* ip = 4321 */
-	mov	r3, r3, lsr #8		/* r3 = .543 */
-	orr	r3, r3, r1, lsl #24	/* r3 = 6543 */
-#endif
-	strh	ip, [r0, #0x01]
-	str	r3, [r0, #0x03]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 0111: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r3, [r1]		/* r3 = ...0 */
-	ldr	ip, [r1, #0x01]		/* BE:ip = 1234  LE:ip = 4321 */
-	ldrh	r2, [r1, #0x05]		/* BE:r2 = ..56  LE:r2 = ..65 */
-	ldrb	r1, [r1, #0x07]		/* r1 = ...7 */
-	strb	r3, [r0]
-	mov	r3, ip, lsr #16		/* BE:r3 = ..12  LE:r3 = ..43 */
-#ifdef __ARMEB__
-	strh	r3, [r0, #0x01]
-	orr	r2, r2, ip, lsl #16	/* r2 = 3456 */
-#else
-	strh	ip, [r0, #0x01]
-	orr	r2, r3, r2, lsl #16	/* r2 = 6543 */
-#endif
-	str	r2, [r0, #0x03]
-	strb	r1, [r0, #0x07]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 1000: dst is 16-bit aligned, src is 32-bit aligned
- */
-	ldr	r2, [r1]		/* BE:r2 = 0123  LE:r2 = 3210 */
-	ldr	r3, [r1, #0x04]		/* BE:r3 = 4567  LE:r3 = 7654 */
-	mov	r1, r2, lsr #16		/* BE:r1 = ..01  LE:r1 = ..32 */
-#ifdef __ARMEB__
-	strh	r1, [r0]
-	mov	r1, r3, lsr #16		/* r1 = ..45 */
-	orr	r2, r1 ,r2, lsl #16	/* r2 = 2345 */
-#else
-	strh	r2, [r0]
-	orr	r2, r1, r3, lsl #16	/* r2 = 5432 */
-	mov	r3, r3, lsr #16		/* r3 = ..76 */
-#endif
-	str	r2, [r0, #0x02]
-	strh	r3, [r0, #0x06]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 1001: dst is 16-bit aligned, src is 8-bit aligned
- */
-	ldr	r2, [r1, #-1]		/* BE:r2 = x012  LE:r2 = 210x */
-	ldr	r3, [r1, #0x03]		/* BE:r3 = 3456  LE:r3 = 6543 */
-	ldrb	ip, [r1, #0x07]		/* ip = ...7 */
-	mov	r1, r2, lsr #8		/* BE:r1 = .x01  LE:r1 = .210 */
-	strh	r1, [r0]
-#ifdef __ARMEB__
-	mov	r1, r2, lsl #24		/* r1 = 2... */
-	orr	r1, r1, r3, lsr #8	/* r1 = 2345 */
-	orr	r3, ip, r3, lsl #8	/* r3 = 4567 */
-#else
-	mov	r1, r2, lsr #24		/* r1 = ...2 */
-	orr	r1, r1, r3, lsl #8	/* r1 = 5432 */
-	mov	r3, r3, lsr #24		/* r3 = ...6 */
-	orr	r3, r3, ip, lsl #8	/* r3 = ..76 */
-#endif
-	str	r1, [r0, #0x02]
-	strh	r3, [r0, #0x06]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 1010: dst is 16-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]
-	ldr	ip, [r1, #0x02]
-	ldrh	r3, [r1, #0x06]
-	strh	r2, [r0]
-	str	ip, [r0, #0x02]
-	strh	r3, [r0, #0x06]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 1011: dst is 16-bit aligned, src is 8-bit aligned
- */
-	ldr	r3, [r1, #0x05]		/* BE:r3 = 567x  LE:r3 = x765 */
-	ldr	r2, [r1, #0x01]		/* BE:r2 = 1234  LE:r2 = 4321 */
-	ldrb	ip, [r1]		/* ip = ...0 */
-	mov	r1, r3, lsr #8		/* BE:r1 = .567  LE:r1 = .x76 */
-	strh	r1, [r0, #0x06]
-#ifdef __ARMEB__
-	mov	r3, r3, lsr #24		/* r3 = ...5 */
-	orr	r3, r3, r2, lsl #8	/* r3 = 2345 */
-	mov	r2, r2, lsr #24		/* r2 = ...1 */
-	orr	r2, r2, ip, lsl #8	/* r2 = ..01 */
-#else
-	mov	r3, r3, lsl #24		/* r3 = 5... */
-	orr	r3, r3, r2, lsr #8	/* r3 = 5432 */
-	orr	r2, ip, r2, lsl #8	/* r2 = 3210 */
-#endif
-	str	r3, [r0, #0x02]
-	strh	r2, [r0]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 1100: dst is 8-bit aligned, src is 32-bit aligned
- */
-	ldr	r3, [r1, #0x04]		/* BE:r3 = 4567  LE:r3 = 7654 */
-	ldr	r2, [r1]		/* BE:r2 = 0123  LE:r2 = 3210 */
-	mov	r1, r3, lsr #8		/* BE:r1 = .456  LE:r1 = .765 */
-	strh	r1, [r0, #0x05]
-#ifdef __ARMEB__
-	strb	r3, [r0, #0x07]
-	mov	r1, r2, lsr #24		/* r1 = ...0 */
-	strb	r1, [r0]
-	mov	r2, r2, lsl #8		/* r2 = 123. */
-	orr	r2, r2, r3, lsr #24	/* r2 = 1234 */
-	str	r2, [r0, #0x01]
-#else
-	strb	r2, [r0]
-	mov	r1, r3, lsr #24		/* r1 = ...7 */
-	strb	r1, [r0, #0x07]
-	mov	r2, r2, lsr #8		/* r2 = .321 */
-	orr	r2, r2, r3, lsl #24	/* r2 = 4321 */
-	str	r2, [r0, #0x01]
-#endif
-	bx	 lr
-	LMEMCPY_8_PAD
-
-/*
- * 1101: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r3, [r1]		/* r3 = ...0 */
-	ldrh	r2, [r1, #0x01]		/* BE:r2 = ..12  LE:r2 = ..21 */
-	ldr	ip, [r1, #0x03]		/* BE:ip = 3456  LE:ip = 6543 */
-	ldrb	r1, [r1, #0x07]		/* r1 = ...7 */
-	strb	r3, [r0]
-	mov	r3, ip, lsr #16		/* BE:r3 = ..34  LE:r3 = ..65 */
-#ifdef __ARMEB__
-	strh	ip, [r0, #0x05]
-	orr	r2, r3, r2, lsl #16	/* r2 = 1234 */
-#else
-	strh	r3, [r0, #0x05]
-	orr	r2, r2, ip, lsl #16	/* r2 = 4321 */
-#endif
-	str	r2, [r0, #0x01]
-	strb	r1, [r0, #0x07]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 1110: dst is 8-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	ldr	r3, [r1, #0x02]		/* BE:r3 = 2345  LE:r3 = 5432 */
-	ldrh	r1, [r1, #0x06]		/* BE:r1 = ..67  LE:r1 = ..76 */
-#ifdef __ARMEB__
-	mov	ip, r2, lsr #8		/* ip = ...0 */
-	strb	ip, [r0]
-	mov	ip, r2, lsl #24		/* ip = 1... */
-	orr	ip, ip, r3, lsr #8	/* ip = 1234 */
-	strb	r1, [r0, #0x07]
-	mov	r1, r1, lsr #8		/* r1 = ...6 */
-	orr	r1, r1, r3, lsl #8	/* r1 = 3456 */
-#else
-	strb	r2, [r0]
-	mov	ip, r2, lsr #8		/* ip = ...1 */
-	orr	ip, ip, r3, lsl #8	/* ip = 4321 */
-	mov	r2, r1, lsr #8		/* r2 = ...7 */
-	strb	r2, [r0, #0x07]
-	mov	r1, r1, lsl #8		/* r1 = .76. */
-	orr	r1, r1, r3, lsr #24	/* r1 = .765 */
-#endif
-	str	ip, [r0, #0x01]
-	strh	r1, [r0, #0x05]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/*
- * 1111: dst is 8-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]
-	ldr	ip, [r1, #0x01]
-	ldrh	r3, [r1, #0x05]
-	ldrb	r1, [r1, #0x07]
-	strb	r2, [r0]
-	str	ip, [r0, #0x01]
-	strh	r3, [r0, #0x05]
-	strb	r1, [r0, #0x07]
-	bx	lr
-	LMEMCPY_8_PAD
-
-/******************************************************************************
- * Special case for 12 byte copies
- */
-#define	LMEMCPY_C_LOG2	7	/* 128 bytes */
-#define	LMEMCPY_C_PAD	.align LMEMCPY_C_LOG2
-	LMEMCPY_C_PAD
-.Lmemcpy_c:
-	and	r2, r1, #0x03
-	orr	r2, r2, r0, lsl #2
-	ands	r2, r2, #0x0f
-	sub	r3, pc, #0x14
-	addne	pc, r3, r2, lsl #LMEMCPY_C_LOG2
-
-/*
- * 0000: dst is 32-bit aligned, src is 32-bit aligned
- */
-	ldr	r2, [r1]
-	ldr	r3, [r1, #0x04]
-	ldr	r1, [r1, #0x08]
-	str	r2, [r0]
-	str	r3, [r0, #0x04]
-	str	r1, [r0, #0x08]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 0001: dst is 32-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1, #0xb]		/* r2 = ...B */
-	ldr	ip, [r1, #0x07]		/* BE:ip = 789A  LE:ip = A987 */
-	ldr	r3, [r1, #0x03]		/* BE:r3 = 3456  LE:r3 = 6543 */
-	ldr	r1, [r1, #-1]		/* BE:r1 = x012  LE:r1 = 210x */
-#ifdef __ARMEB__
-	orr	r2, r2, ip, lsl #8	/* r2 = 89AB */
-	str	r2, [r0, #0x08]
-	mov	r2, ip, lsr #24		/* r2 = ...7 */
-	orr	r2, r2, r3, lsl #8	/* r2 = 4567 */
-	mov	r1, r1, lsl #8		/* r1 = 012. */
-	orr	r1, r1, r3, lsr #24	/* r1 = 0123 */
-#else
-	mov	r2, r2, lsl #24		/* r2 = B... */
-	orr	r2, r2, ip, lsr #8	/* r2 = BA98 */
-	str	r2, [r0, #0x08]
-	mov	r2, ip, lsl #24		/* r2 = 7... */
-	orr	r2, r2, r3, lsr #8	/* r2 = 7654 */
-	mov	r1, r1, lsr #8		/* r1 = .210 */
-	orr	r1, r1, r3, lsl #24	/* r1 = 3210 */
-#endif
-	str	r2, [r0, #0x04]
-	str	r1, [r0]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 0010: dst is 32-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	ldr	r3, [r1, #0x02]		/* BE:r3 = 2345  LE:r3 = 5432 */
-	ldr	ip, [r1, #0x06]		/* BE:ip = 6789  LE:ip = 9876 */
-	ldrh	r1, [r1, #0x0a]		/* BE:r1 = ..AB  LE:r1 = ..BA */
-#ifdef __ARMEB__
-	mov	r2, r2, lsl #16		/* r2 = 01.. */
-	orr	r2, r2, r3, lsr #16	/* r2 = 0123 */
-	str	r2, [r0]
-	mov	r3, r3, lsl #16		/* r3 = 45.. */
-	orr	r3, r3, ip, lsr #16	/* r3 = 4567 */
-	orr	r1, r1, ip, lsl #16	/* r1 = 89AB */
-#else
-	orr	r2, r2, r3, lsl #16	/* r2 = 3210 */
-	str	r2, [r0]
-	mov	r3, r3, lsr #16		/* r3 = ..54 */
-	orr	r3, r3, ip, lsl #16	/* r3 = 7654 */
-	mov	r1, r1, lsl #16		/* r1 = BA.. */
-	orr	r1, r1, ip, lsr #16	/* r1 = BA98 */
-#endif
-	str	r3, [r0, #0x04]
-	str	r1, [r0, #0x08]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 0011: dst is 32-bit aligned, src is 8-bit aligned
- */
-	ldrb	r2, [r1]		/* r2 = ...0 */
-	ldr	r3, [r1, #0x01]		/* BE:r3 = 1234  LE:r3 = 4321 */
-	ldr	ip, [r1, #0x05]		/* BE:ip = 5678  LE:ip = 8765 */
-	ldr	r1, [r1, #0x09]		/* BE:r1 = 9ABx  LE:r1 = xBA9 */
-#ifdef __ARMEB__
-	mov	r2, r2, lsl #24		/* r2 = 0... */
-	orr	r2, r2, r3, lsr #8	/* r2 = 0123 */
-	str	r2, [r0]
-	mov	r3, r3, lsl #24		/* r3 = 4... */
-	orr	r3, r3, ip, lsr #8	/* r3 = 4567 */
-	mov	r1, r1, lsr #8		/* r1 = .9AB */
-	orr	r1, r1, ip, lsl #24	/* r1 = 89AB */
-#else
-	orr	r2, r2, r3, lsl #8	/* r2 = 3210 */
-	str	r2, [r0]
-	mov	r3, r3, lsr #24		/* r3 = ...4 */
-	orr	r3, r3, ip, lsl #8	/* r3 = 7654 */
-	mov	r1, r1, lsl #8		/* r1 = BA9. */
-	orr	r1, r1, ip, lsr #24	/* r1 = BA98 */
-#endif
-	str	r3, [r0, #0x04]
-	str	r1, [r0, #0x08]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 0100: dst is 8-bit aligned (byte 1), src is 32-bit aligned
- */
-	ldr	r2, [r1]		/* BE:r2 = 0123  LE:r2 = 3210 */
-	ldr	r3, [r1, #0x04]		/* BE:r3 = 4567  LE:r3 = 7654 */
-	ldr	ip, [r1, #0x08]		/* BE:ip = 89AB  LE:ip = BA98 */
-	mov	r1, r2, lsr #8		/* BE:r1 = .012  LE:r1 = .321 */
-	strh	r1, [r0, #0x01]
-#ifdef __ARMEB__
-	mov	r1, r2, lsr #24		/* r1 = ...0 */
-	strb	r1, [r0]
-	mov	r1, r2, lsl #24		/* r1 = 3... */
-	orr	r2, r1, r3, lsr #8	/* r1 = 3456 */
-	mov	r1, r3, lsl #24		/* r1 = 7... */
-	orr	r1, r1, ip, lsr #8	/* r1 = 789A */
-#else
-	strb	r2, [r0]
-	mov	r1, r2, lsr #24		/* r1 = ...3 */
-	orr	r2, r1, r3, lsl #8	/* r1 = 6543 */
-	mov	r1, r3, lsr #24		/* r1 = ...7 */
-	orr	r1, r1, ip, lsl #8	/* r1 = A987 */
-	mov	ip, ip, lsr #24		/* ip = ...B */
-#endif
-	str	r2, [r0, #0x03]
-	str	r1, [r0, #0x07]
-	strb	ip, [r0, #0x0b]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 0101: dst is 8-bit aligned (byte 1), src is 8-bit aligned (byte 1)
- */
-	ldrb	r2, [r1]
-	ldrh	r3, [r1, #0x01]
-	ldr	ip, [r1, #0x03]
-	strb	r2, [r0]
-	ldr	r2, [r1, #0x07]
-	ldrb	r1, [r1, #0x0b]
-	strh	r3, [r0, #0x01]
-	str	ip, [r0, #0x03]
-	str	r2, [r0, #0x07]
-	strb	r1, [r0, #0x0b]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 0110: dst is 8-bit aligned (byte 1), src is 16-bit aligned
- */
-	ldrh	r2, [r1]		/* BE:r2 = ..01  LE:r2 = ..10 */
-	ldr	r3, [r1, #0x02]		/* BE:r3 = 2345  LE:r3 = 5432 */
-	ldr	ip, [r1, #0x06]		/* BE:ip = 6789  LE:ip = 9876 */
-	ldrh	r1, [r1, #0x0a]		/* BE:r1 = ..AB  LE:r1 = ..BA */
-#ifdef __ARMEB__
-	mov	r2, r2, ror #8		/* r2 = 1..0 */
-	strb	r2, [r0]
-	mov	r2, r2, lsr #16		/* r2 = ..1. */
-	orr	r2, r2, r3, lsr #24	/* r2 = ..12 */
-	strh	r2, [r0, #0x01]
-	mov	r2, r3, lsl #8		/* r2 = 345. */
-	orr	r3, r2, ip, lsr #24	/* r3 = 3456 */
-	mov	r2, ip, lsl #8		/* r2 = 789. */
-	orr	r2, r2, r1, lsr #8	/* r2 = 789A */
-#else
-	strb	r2, [r0]
-	mov	r2, r2, lsr #8		/* r2 = ...1 */
-	orr	r2, r2, r3, lsl #8	/* r2 = 4321 */
-	strh	r2, [r0, #0x01]
-	mov	r2, r3, lsr #8		/* r2 = .543 */
-	orr	r3, r2, ip, lsl #24	/* r3 = 6543 */
-	mov	r2, ip, lsr #8		/* r2 = .987 */
-	orr	r2, r2, r1, lsl #24	/* r2 = A987 */
-	mov	r1, r1, lsr #8		/* r1 = ...B */
-#endif
-	str	r3, [r0, #0x03]
-	str	r2, [r0, #0x07]
-	strb	r1, [r0, #0x0b]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 0111: dst is 8-bit aligned (byte 1), src is 8-bit aligned (byte 3)
- */
-	ldrb	r2, [r1]
-	ldr	r3, [r1, #0x01]		/* BE:r3 = 1234  LE:r3 = 4321 */
-	ldr	ip, [r1, #0x05]		/* BE:ip = 5678  LE:ip = 8765 */
-	ldr	r1, [r1, #0x09]		/* BE:r1 = 9ABx  LE:r1 = xBA9 */
-	strb	r2, [r0]
-#ifdef __ARMEB__
-	mov	r2, r3, lsr #16		/* r2 = ..12 */
-	strh	r2, [r0, #0x01]
-	mov	r3, r3, lsl #16		/* r3 = 34.. */
-	orr	r3, r3, ip, lsr #16	/* r3 = 3456 */
-	mov	ip, ip, lsl #16		/* ip = 78.. */
-	orr	ip, ip, r1, lsr #16	/* ip = 789A */
-	mov	r1, r1, lsr #8		/* r1 = .9AB */
-#else
-	strh	r3, [r0, #0x01]
-	mov	r3, r3, lsr #16		/* r3 = ..43 */
-	orr	r3, r3, ip, lsl #16	/* r3 = 6543 */
-	mov	ip, ip, lsr #16		/* ip = ..87 */
-	orr	ip, ip, r1, lsl #16	/* ip = A987 */
-	mov	r1, r1, lsr #16		/* r1 = ..xB */
-#endif
-	str	r3, [r0, #0x03]
-	str	ip, [r0, #0x07]
-	strb	r1, [r0, #0x0b]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 1000: dst is 16-bit aligned, src is 32-bit aligned
- */
-	ldr	ip, [r1]		/* BE:ip = 0123  LE:ip = 3210 */
-	ldr	r3, [r1, #0x04]		/* BE:r3 = 4567  LE:r3 = 7654 */
-	ldr	r2, [r1, #0x08]		/* BE:r2 = 89AB  LE:r2 = BA98 */
-	mov	r1, ip, lsr #16		/* BE:r1 = ..01  LE:r1 = ..32 */
-#ifdef __ARMEB__
-	strh	r1, [r0]
-	mov	r1, ip, lsl #16		/* r1 = 23.. */
-	orr	r1, r1, r3, lsr #16	/* r1 = 2345 */
-	mov	r3, r3, lsl #16		/* r3 = 67.. */
-	orr	r3, r3, r2, lsr #16	/* r3 = 6789 */
-#else
-	strh	ip, [r0]
-	orr	r1, r1, r3, lsl #16	/* r1 = 5432 */
-	mov	r3, r3, lsr #16		/* r3 = ..76 */
-	orr	r3, r3, r2, lsl #16	/* r3 = 9876 */
-	mov	r2, r2, lsr #16		/* r2 = ..BA */
-#endif
-	str	r1, [r0, #0x02]
-	str	r3, [r0, #0x06]
-	strh	r2, [r0, #0x0a]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 1001: dst is 16-bit aligned, src is 8-bit aligned (byte 1)
- */
-	ldr	r2, [r1, #-1]		/* BE:r2 = x012  LE:r2 = 210x */
-	ldr	r3, [r1, #0x03]		/* BE:r3 = 3456  LE:r3 = 6543 */
-	mov	ip, r2, lsr #8		/* BE:ip = .x01  LE:ip = .210 */
-	strh	ip, [r0]
-	ldr	ip, [r1, #0x07]		/* BE:ip = 789A  LE:ip = A987 */
-	ldrb	r1, [r1, #0x0b]		/* r1 = ...B */
-#ifdef __ARMEB__
-	mov	r2, r2, lsl #24		/* r2 = 2... */
-	orr	r2, r2, r3, lsr #8	/* r2 = 2345 */
-	mov	r3, r3, lsl #24		/* r3 = 6... */
-	orr	r3, r3, ip, lsr #8	/* r3 = 6789 */
-	orr	r1, r1, ip, lsl #8	/* r1 = 89AB */
-#else
-	mov	r2, r2, lsr #24		/* r2 = ...2 */
-	orr	r2, r2, r3, lsl #8	/* r2 = 5432 */
-	mov	r3, r3, lsr #24		/* r3 = ...6 */
-	orr	r3, r3, ip, lsl #8	/* r3 = 9876 */
-	mov	r1, r1, lsl #8		/* r1 = ..B. */
-	orr	r1, r1, ip, lsr #24	/* r1 = ..BA */
-#endif
-	str	r2, [r0, #0x02]
-	str	r3, [r0, #0x06]
-	strh	r1, [r0, #0x0a]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 1010: dst is 16-bit aligned, src is 16-bit aligned
- */
-	ldrh	r2, [r1]
-	ldr	r3, [r1, #0x02]
-	ldr	ip, [r1, #0x06]
-	ldrh	r1, [r1, #0x0a]
-	strh	r2, [r0]
-	str	r3, [r0, #0x02]
-	str	ip, [r0, #0x06]
-	strh	r1, [r0, #0x0a]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 1011: dst is 16-bit aligned, src is 8-bit aligned (byte 3)
- */
-	ldr	r2, [r1, #0x09]		/* BE:r2 = 9ABx  LE:r2 = xBA9 */
-	ldr	r3, [r1, #0x05]		/* BE:r3 = 5678  LE:r3 = 8765 */
-	mov	ip, r2, lsr #8		/* BE:ip = .9AB  LE:ip = .xBA */
-	strh	ip, [r0, #0x0a]
-	ldr	ip, [r1, #0x01]		/* BE:ip = 1234  LE:ip = 4321 */
-	ldrb	r1, [r1]		/* r1 = ...0 */
-#ifdef __ARMEB__
-	mov	r2, r2, lsr #24		/* r2 = ...9 */
-	orr	r2, r2, r3, lsl #8	/* r2 = 6789 */
-	mov	r3, r3, lsr #24		/* r3 = ...5 */
-	orr	r3, r3, ip, lsl #8	/* r3 = 2345 */
-	mov	r1, r1, lsl #8		/* r1 = ..0. */
-	orr	r1, r1, ip, lsr #24	/* r1 = ..01 */
-#else
-	mov	r2, r2, lsl #24		/* r2 = 9... */
-	orr	r2, r2, r3, lsr #8	/* r2 = 9876 */
-	mov	r3, r3, lsl #24		/* r3 = 5... */
-	orr	r3, r3, ip, lsr #8	/* r3 = 5432 */
-	orr	r1, r1, ip, lsl #8	/* r1 = 3210 */
-#endif
-	str	r2, [r0, #0x06]
-	str	r3, [r0, #0x02]
-	strh	r1, [r0]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 1100: dst is 8-bit aligned (byte 3), src is 32-bit aligned
- */
-	ldr	r2, [r1]		/* BE:r2 = 0123  LE:r2 = 3210 */
-	ldr	ip, [r1, #0x04]		/* BE:ip = 4567  LE:ip = 7654 */
-	ldr	r1, [r1, #0x08]		/* BE:r1 = 89AB  LE:r1 = BA98 */
-#ifdef __ARMEB__
-	mov	r3, r2, lsr #24		/* r3 = ...0 */
-	strb	r3, [r0]
-	mov	r2, r2, lsl #8		/* r2 = 123. */
-	orr	r2, r2, ip, lsr #24	/* r2 = 1234 */
-	str	r2, [r0, #0x01]
-	mov	r2, ip, lsl #8		/* r2 = 567. */
-	orr	r2, r2, r1, lsr #24	/* r2 = 5678 */
-	str	r2, [r0, #0x05]
-	mov	r2, r1, lsr #8		/* r2 = ..9A */
-	strh	r2, [r0, #0x09]
-	strb	r1, [r0, #0x0b]
-#else
-	strb	r2, [r0]
-	mov	r3, r2, lsr #8		/* r3 = .321 */
-	orr	r3, r3, ip, lsl #24	/* r3 = 4321 */
-	str	r3, [r0, #0x01]
-	mov	r3, ip, lsr #8		/* r3 = .765 */
-	orr	r3, r3, r1, lsl #24	/* r3 = 8765 */
-	str	r3, [r0, #0x05]
-	mov	r1, r1, lsr #8		/* r1 = .BA9 */
-	strh	r1, [r0, #0x09]
-	mov	r1, r1, lsr #16		/* r1 = ...B */
-	strb	r1, [r0, #0x0b]
-#endif
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 1101: dst is 8-bit aligned (byte 3), src is 8-bit aligned (byte 1)
- */
-	ldrb	r2, [r1, #0x0b]		/* r2 = ...B */
-	ldr	r3, [r1, #0x07]		/* BE:r3 = 789A  LE:r3 = A987 */
-	ldr	ip, [r1, #0x03]		/* BE:ip = 3456  LE:ip = 6543 */
-	ldr	r1, [r1, #-1]		/* BE:r1 = x012  LE:r1 = 210x */
-	strb	r2, [r0, #0x0b]
-#ifdef __ARMEB__
-	strh	r3, [r0, #0x09]
-	mov	r3, r3, lsr #16		/* r3 = ..78 */
-	orr	r3, r3, ip, lsl #16	/* r3 = 5678 */
-	mov	ip, ip, lsr #16		/* ip = ..34 */
-	orr	ip, ip, r1, lsl #16	/* ip = 1234 */
-	mov	r1, r1, lsr #16		/* r1 = ..x0 */
-#else
-	mov	r2, r3, lsr #16		/* r2 = ..A9 */
-	strh	r2, [r0, #0x09]
-	mov	r3, r3, lsl #16		/* r3 = 87.. */
-	orr	r3, r3, ip, lsr #16	/* r3 = 8765 */
-	mov	ip, ip, lsl #16		/* ip = 43.. */
-	orr	ip, ip, r1, lsr #16	/* ip = 4321 */
-	mov	r1, r1, lsr #8		/* r1 = .210 */
-#endif
-	str	r3, [r0, #0x05]
-	str	ip, [r0, #0x01]
-	strb	r1, [r0]
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 1110: dst is 8-bit aligned (byte 3), src is 16-bit aligned
- */
-#ifdef __ARMEB__
-	ldrh	r2, [r1, #0x0a]		/* r2 = ..AB */
-	ldr	ip, [r1, #0x06]		/* ip = 6789 */
-	ldr	r3, [r1, #0x02]		/* r3 = 2345 */
-	ldrh	r1, [r1]		/* r1 = ..01 */
-	strb	r2, [r0, #0x0b]
-	mov	r2, r2, lsr #8		/* r2 = ...A */
-	orr	r2, r2, ip, lsl #8	/* r2 = 789A */
-	mov	ip, ip, lsr #8		/* ip = .678 */
-	orr	ip, ip, r3, lsl #24	/* ip = 5678 */
-	mov	r3, r3, lsr #8		/* r3 = .234 */
-	orr	r3, r3, r1, lsl #24	/* r3 = 1234 */
-	mov	r1, r1, lsr #8		/* r1 = ...0 */
-	strb	r1, [r0]
-	str	r3, [r0, #0x01]
-	str	ip, [r0, #0x05]
-	strh	r2, [r0, #0x09]
-#else
-	ldrh	r2, [r1]		/* r2 = ..10 */
-	ldr	r3, [r1, #0x02]		/* r3 = 5432 */
-	ldr	ip, [r1, #0x06]		/* ip = 9876 */
-	ldrh	r1, [r1, #0x0a]		/* r1 = ..BA */
-	strb	r2, [r0]
-	mov	r2, r2, lsr #8		/* r2 = ...1 */
-	orr	r2, r2, r3, lsl #8	/* r2 = 4321 */
-	mov	r3, r3, lsr #24		/* r3 = ...5 */
-	orr	r3, r3, ip, lsl #8	/* r3 = 8765 */
-	mov	ip, ip, lsr #24		/* ip = ...9 */
-	orr	ip, ip, r1, lsl #8	/* ip = .BA9 */
-	mov	r1, r1, lsr #8		/* r1 = ...B */
-	str	r2, [r0, #0x01]
-	str	r3, [r0, #0x05]
-	strh	ip, [r0, #0x09]
-	strb	r1, [r0, #0x0b]
-#endif
-	bx	lr
-	LMEMCPY_C_PAD
-
-/*
- * 1111: dst is 8-bit aligned (byte 3), src is 8-bit aligned (byte 3)
- */
-	ldrb	r2, [r1]
-	ldr	r3, [r1, #0x01]
-	ldr	ip, [r1, #0x05]
-	strb	r2, [r0]
-	ldrh	r2, [r1, #0x09]
-	ldrb	r1, [r1, #0x0b]
-	str	r3, [r0, #0x01]
-	str	ip, [r0, #0x05]
-	strh	r2, [r0, #0x09]
-	strb	r1, [r0, #0x0b]
-	bx	lr
-#endif	/* !_STANDALONE */
--- lib/libc/arm/string/memcpy.S
+++ /dev/null
@@ -1,9 +0,0 @@
-/*	$NetBSD: memcpy.S,v 1.4 2003/10/14 07:51:45 scw Exp $	*/
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/memcpy.S,v 1.1 2004/05/14 12:04:31 cognet Exp $");
-#if !defined(__XSCALE__) || defined(_STANDALONE)
-#include "memcpy_arm.S"
-#else
-#include "memcpy_xscale.S"
-#endif
--- lib/libc/arm/string/bcopy.S
+++ /dev/null
@@ -1,6 +0,0 @@
-/*	$NetBSD: bcopy.S,v 1.3 2003/10/14 07:51:45 scw Exp $	*/
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/bcopy.S,v 1.1 2004/05/14 12:04:31 cognet Exp $");
-#define _BCOPY
-#include "memmove.S"
--- lib/libc/arm/string/ffs.S
+++ /dev/null
@@ -1,82 +0,0 @@
-/*	$NetBSD: ffs.S,v 1.5 2003/04/05 23:08:52 bjh21 Exp $	*/
-/*
- * Copyright (c) 2001 Christopher Gilbert
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the company nor the name of the author may be used to
- *    endorse or promote products derived from this software without specific
- *    prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/ffs.S,v 1.3 2004/11/09 16:49:14 cognet Exp $");
-
-/*
- * ffs - find first set bit, this algorithm isolates the first set
- * bit, then multiplies the number by 0x0450fbaf which leaves the top
- * 6 bits as an index into the table.  This algorithm should be a win
- * over the checking each bit in turn as per the C compiled version.
- *
- * under ARMv5 there's an instruction called CLZ (count leading Zero's) that
- * could be used
- *
- * This is the ffs algorithm devised by d.seal and posted to comp.sys.arm on
- * 16 Feb 1994.
- */
-
-ENTRY(ffs)
-	/* Standard trick to isolate bottom bit in r0 or 0 if r0 = 0 on entry */
- 	rsb     r1, r0, #0
- 	ands    r0, r0, r1
-#ifndef __XSCALE__
-	/*
-	 * now r0 has at most one set bit, call this X
-	 * if X = 0, all further instructions are skipped
-	 */
-	adrne   r2, .L_ffs_table
-	orrne   r0, r0, r0, lsl #4  /* r0 = X * 0x11 */ 
-	orrne   r0, r0, r0, lsl #6  /* r0 = X * 0x451 */
-	rsbne   r0, r0, r0, lsl #16 /* r0 = X * 0x0450fbaf */
-              
-	/* now lookup in table indexed on top 6 bits of r0 */
-	ldrneb  r0, [ r2, r0, lsr #26 ]
-
-        RET
-.text;
-.type .L_ffs_table, _ASM_TYPE_OBJECT;
-.L_ffs_table:
-/*               0   1   2   3   4   5   6   7           */
-	.byte	 0,  1,  2, 13,  3,  7,  0, 14  /*  0- 7 */
-	.byte	 4,  0,  8,  0,  0,  0,  0, 15  /*  8-15 */
-	.byte	11,  5,  0,  0,  9,  0,  0, 26  /* 16-23 */
-	.byte	 0,  0,  0,  0,  0, 22, 28, 16  /* 24-31 */
-	.byte	32, 12,  6,  0,  0,  0,  0,  0	/* 32-39 */
-	.byte	10,  0,  0, 25,  0,  0, 21, 27  /* 40-47 */
-	.byte	31,  0,  0,  0,  0, 24,  0, 20  /* 48-55 */
-	.byte   30,  0, 23, 19, 29, 18, 17,  0  /* 56-63 */
-#else
-	clzne	r0, r0
-	rsbne	r0, r0, #32
-	RET
-#endif
--- lib/libc/arm/string/Makefile.inc
+++ /dev/null
@@ -1,7 +0,0 @@
-#	@(#)Makefile.inc	8.1 (Berkeley) 6/4/93
-# $FreeBSD: src/lib/libc/arm/string/Makefile.inc,v 1.1 2004/05/14 12:04:31 cognet Exp $
-
-MDSRCS+=bcmp.c bcopy.S bzero.S ffs.S index.c memchr.c memcmp.S memcpy.S \
-	memmove.S memset.S rindex.c strcat.c strchr.c strcmp.S strcpy.c \
-	strlen.c strncmp.S strrchr.c swab.c wcschr.c wcscmp.c wcslen.c \
-	wmemchr.c
--- lib/libc/arm/string/memset.S
+++ /dev/null
@@ -1,236 +0,0 @@
-/*	$NetBSD: memset.S,v 1.4 2003/10/14 07:51:45 scw Exp $	*/
-
-/*
- * Copyright 2003 Wasabi Systems, Inc.
- * All rights reserved.
- *
- * Written by Steve C. Woodford for Wasabi Systems, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed for the NetBSD Project by
- *      Wasabi Systems, Inc.
- * 4. The name of Wasabi Systems, Inc. may not be used to endorse
- *    or promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASABI SYSTEMS, INC
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * Copyright (c) 1995 Mark Brinicombe.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by Mark Brinicombe.
- * 4. The name of the company nor the name of the author may be used to
- *    endorse or promote products derived from this software without specific
- *    prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/memset.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-
-/*
- * memset: Sets a block of memory to the specified value
- *
- * On entry:
- *   r0 - dest address
- *   r1 - byte to write
- *   r2 - number of bytes to write
- *
- * On exit:
- *   r0 - dest address
- */
-#ifdef _BZERO
-/* LINTSTUB: Func: void bzero(void *, size_t) */
-ENTRY(bzero)
-	mov	r3, #0x00
-#else
-/* LINTSTUB: Func: void *memset(void *, int, size_t) */
-ENTRY(memset)
-	and	r3, r1, #0xff		/* We deal with bytes */
-	mov	r1, r2
-#endif
-	cmp	r1, #0x04		/* Do we have less than 4 bytes */
-	mov	ip, r0
-	blt	.Lmemset_lessthanfour
-
-	/* Ok first we will word align the address */
-	ands	r2, ip, #0x03		/* Get the bottom two bits */
-	bne	.Lmemset_wordunaligned	/* The address is not word aligned */
-
-	/* We are now word aligned */
-.Lmemset_wordaligned:
-#ifndef _BZERO
-	orr	r3, r3, r3, lsl #8	/* Extend value to 16-bits */
-#endif
-#ifdef __XSCALE__
-	tst	ip, #0x04		/* Quad-align for Xscale */
-#else
-	cmp	r1, #0x10
-#endif
-#ifndef _BZERO
-	orr	r3, r3, r3, lsl #16	/* Extend value to 32-bits */
-#endif
-#ifdef __XSCALE__
-	subne	r1, r1, #0x04		/* Quad-align if necessary */
-	strne	r3, [ip], #0x04
-	cmp	r1, #0x10
-#endif
-	blt	.Lmemset_loop4		/* If less than 16 then use words */
-	mov	r2, r3			/* Duplicate data */
-	cmp	r1, #0x80		/* If < 128 then skip the big loop */
-	blt	.Lmemset_loop32
-
-	/* Do 128 bytes at a time */
-.Lmemset_loop128:
-	subs	r1, r1, #0x80
-#ifdef __XSCALE__
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-#else
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-#endif
-	bgt	.Lmemset_loop128
-	RETeq			/* Zero length so just exit */
-
-	add	r1, r1, #0x80		/* Adjust for extra sub */
-
-	/* Do 32 bytes at a time */
-.Lmemset_loop32:
-	subs	r1, r1, #0x20
-#ifdef __XSCALE__
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-#else
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-#endif
-	bgt	.Lmemset_loop32
-	RETeq			/* Zero length so just exit */
-
-	adds	r1, r1, #0x10		/* Partially adjust for extra sub */
-
-	/* Deal with 16 bytes or more */
-#ifdef __XSCALE__
-	strged	r2, [ip], #0x08
-	strged	r2, [ip], #0x08
-#else
-	stmgeia	ip!, {r2-r3}
-	stmgeia	ip!, {r2-r3}
-#endif
-	RETeq			/* Zero length so just exit */
-
-	addlt	r1, r1, #0x10		/* Possibly adjust for extra sub */
-
-	/* We have at least 4 bytes so copy as words */
-.Lmemset_loop4:
-	subs	r1, r1, #0x04
-	strge	r3, [ip], #0x04
-	bgt	.Lmemset_loop4
-	RETeq			/* Zero length so just exit */
-
-#ifdef __XSCALE__
-	/* Compensate for 64-bit alignment check */
-	adds	r1, r1, #0x04
-	RETeq
-	cmp	r1, #2
-#else
-	cmp	r1, #-2
-#endif
-
-	strb	r3, [ip], #0x01		/* Set 1 byte */
-	strgeb	r3, [ip], #0x01		/* Set another byte */
-	strgtb	r3, [ip]		/* and a third */
-	RET			/* Exit */
-
-.Lmemset_wordunaligned:
-	rsb	r2, r2, #0x004
-	strb	r3, [ip], #0x01		/* Set 1 byte */
-	cmp	r2, #0x02
-	strgeb	r3, [ip], #0x01		/* Set another byte */
-	sub	r1, r1, r2
-	strgtb	r3, [ip], #0x01		/* and a third */
-	cmp	r1, #0x04		/* More than 4 bytes left? */
-	bge	.Lmemset_wordaligned	/* Yup */
-
-.Lmemset_lessthanfour:
-	cmp	r1, #0x00
-	RETeq			/* Zero length so exit */
-	strb	r3, [ip], #0x01		/* Set 1 byte */
-	cmp	r1, #0x02
-	strgeb	r3, [ip], #0x01		/* Set another byte */
-	strgtb	r3, [ip]		/* and a third */
-	RET			/* Exit */
--- lib/libc/arm/string/memcmp.S
+++ /dev/null
@@ -1,180 +0,0 @@
-/*      $NetBSD: memcmp.S,v 1.3 2003/10/14 07:51:45 scw Exp $ */
-
-/*
- * Copyright 2003 Wasabi Systems, Inc.
- * All rights reserved.
- *
- * Written by Steve C. Woodford for Wasabi Systems, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed for the NetBSD Project by
- *      Wasabi Systems, Inc.
- * 4. The name of Wasabi Systems, Inc. may not be used to endorse
- *    or promote products derived from this software without specific prior
- *    written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASABI SYSTEMS, INC
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * Copyright (c) 2002 ARM Ltd
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the company may not be used to endorse or promote
- *    products derived from this software without specific prior written
- *    permission.
- *
- * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/memcmp.S,v 1.3 2004/11/09 16:49:14 cognet Exp $");
-
-ENTRY(memcmp)
-	mov	ip, r0
-#if defined(_KERNEL) && !defined(_STANDALONE)
-	cmp	r2, #0x06
-	beq	.Lmemcmp_6bytes
-#endif
-	mov	r0, #0x00
-
-	/* Are both addresses aligned the same way? */
-	cmp	r2, #0x00
-	eornes	r3, ip, r1
-	RETeq			/* len == 0, or same addresses! */
-	tst	r3, #0x03
-	subne	r2, r2, #0x01
-	bne	.Lmemcmp_bytewise2	/* Badly aligned. Do it the slow way */
-
-	/* Word-align the addresses, if necessary */
-	sub	r3, r1, #0x05
-	ands	r3, r3, #0x03
-	add	r3, r3, r3, lsl #1
-	addne	pc, pc, r3, lsl #3
-	nop
-
-	/* Compare up to 3 bytes */
-	ldrb	r0, [ip], #0x01
-	ldrb	r3, [r1], #0x01
-	subs	r0, r0, r3
-	RETne
-	subs	r2, r2, #0x01
-	RETeq
-
-	/* Compare up to 2 bytes */
-	ldrb	r0, [ip], #0x01
-	ldrb	r3, [r1], #0x01
-	subs	r0, r0, r3
-	RETne
-	subs	r2, r2, #0x01
-	RETeq
-
-	/* Compare 1 byte */
-	ldrb	r0, [ip], #0x01
-	ldrb	r3, [r1], #0x01
-	subs	r0, r0, r3
-	RETne
-	subs	r2, r2, #0x01
-	RETeq
-
-	/* Compare 4 bytes at a time, if possible */
-	subs	r2, r2, #0x04
-	bcc	.Lmemcmp_bytewise
-.Lmemcmp_word_aligned:
-	ldr	r0, [ip], #0x04
-	ldr	r3, [r1], #0x04
-	subs	r2, r2, #0x04
-	cmpcs	r0, r3
-	beq	.Lmemcmp_word_aligned
-	sub	r0, r0, r3
-
-	/* Correct for extra subtraction, and check if done */
-	adds	r2, r2, #0x04
-	cmpeq	r0, #0x00		/* If done, did all bytes match? */
-	RETeq			/* Yup. Just return */
-
-	/* Re-do the final word byte-wise */
-	sub	ip, ip, #0x04
-	sub	r1, r1, #0x04
-
-.Lmemcmp_bytewise:
-	add	r2, r2, #0x03
-.Lmemcmp_bytewise2:
-	ldrb	r0, [ip], #0x01
-	ldrb	r3, [r1], #0x01
-	subs	r2, r2, #0x01
-	cmpcs	r0, r3
-	beq	.Lmemcmp_bytewise2
-	sub	r0, r0, r3
-	RET
-
-#if defined(_KERNEL) && !defined(_STANDALONE)
-	/*
-	 * 6 byte compares are very common, thanks to the network stack.
-	 * This code is hand-scheduled to reduce the number of stalls for
-	 * load results. Everything else being equal, this will be ~32%
-	 * faster than a byte-wise memcmp.
-	 */
-	.align	5
-.Lmemcmp_6bytes:
-	ldrb	r3, [r1, #0x00]		/* r3 = b2#0 */
-	ldrb	r0, [ip, #0x00]		/* r0 = b1#0 */
-	ldrb	r2, [r1, #0x01]		/* r2 = b2#1 */
-	subs	r0, r0, r3		/* r0 = b1#0 - b2#0 */
-	ldreqb	r3, [ip, #0x01]		/* r3 = b1#1 */
-	RETne			/* Return if mismatch on #0 */
-	subs	r0, r3, r2		/* r0 = b1#1 - b2#1 */
-	ldreqb	r3, [r1, #0x02]		/* r3 = b2#2 */
-	ldreqb	r0, [ip, #0x02]		/* r0 = b1#2 */
-	RETne			/* Return if mismatch on #1 */
-	ldrb	r2, [r1, #0x03]		/* r2 = b2#3 */
-	subs	r0, r0, r3		/* r0 = b1#2 - b2#2 */
-	ldreqb	r3, [ip, #0x03]		/* r3 = b1#3 */
-	RETne			/* Return if mismatch on #2 */
-	subs	r0, r3, r2		/* r0 = b1#3 - b2#3 */
-	ldreqb	r3, [r1, #0x04]		/* r3 = b2#4 */
-	ldreqb	r0, [ip, #0x04]		/* r0 = b1#4 */
-	RETne			/* Return if mismatch on #3 */
-	ldrb	r2, [r1, #0x05]		/* r2 = b2#5 */
-	subs	r0, r0, r3		/* r0 = b1#4 - b2#4 */
-	ldreqb	r3, [ip, #0x05]		/* r3 = b1#5 */
-	RETne			/* Return if mismatch on #4 */
-	sub	r0, r3, r2		/* r0 = b1#5 - b2#5 */
-	RET
-#endif
--- lib/libc/arm/string/strcmp.S
+++ /dev/null
@@ -1,43 +0,0 @@
-/*      $NetBSD: strcmp.S,v 1.3 2003/04/05 23:08:52 bjh21 Exp $ */
-
-/*
- * Copyright (c) 2002 ARM Ltd
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the company may not be used to endorse or promote
- *    products derived from this software without specific prior written
- *    permission.
- *
- * THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-
-__FBSDID("$FreeBSD: src/lib/libc/arm/string/strcmp.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-
-ENTRY(strcmp)
-1:
-	ldrb	r2, [r0], #1
-	ldrb	r3, [r1], #1
-	cmp	r2, #1
-	cmpcs	r2, r3
-	beq	1b
-	sub	r0, r2, r3
-	RET
--- lib/libc/arm/gen/_ctx_start.S
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <machine/asm.h>
-
-.ident	"$FreeBSD: src/lib/libc/arm/gen/_ctx_start.S,v 1.2 2004/11/05 23:53:02 cognet Exp $"
-ENTRY(_ctx_start)
-	mov	lr, pc
-	mov	pc, r4
-	mov	r0, r5
-	bl	_C_LABEL(ctx_done)
-	bl	_C_LABEL(abort)
--- lib/libc/arm/gen/makecontext.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*	$NetBSD: makecontext.c,v 1.2 2003/01/18 11:06:24 thorpej Exp $	*/
-
-/*-
- * Copyright (c) 2001 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Klaus Klein.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *        This product includes software developed by the NetBSD
- *        Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/makecontext.c,v 1.2 2004/11/05 23:53:02 cognet Exp $");
-
-#include <stdlib.h>
-#include <stddef.h>
-#include <inttypes.h>
-#include <ucontext.h>
-
-#include <stdarg.h>
-
-extern void _ctx_start(void);
-
-void
-ctx_done(ucontext_t *ucp)
-{       
-	        
-	if (ucp->uc_link == NULL)
-		exit(0);
-	else {  
-		setcontext((const ucontext_t *)ucp->uc_link);
-		abort();
-	}                                                      
-}   
-
-__weak_reference(__makecontext, makecontext);
-
-void
-__makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...)
-{
-	__greg_t *gr = ucp->uc_mcontext.__gregs;
-	int i;
-	unsigned int *sp;
-	va_list ap;
-
-	/* Compute and align stack pointer. */
-	sp = (unsigned int *)
-	    (((uintptr_t)ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size -
-	      sizeof(double)) & ~7);
-	/* Allocate necessary stack space for arguments exceeding r0-3. */
-	if (argc > 4)
-		sp -= argc - 4;
-	gr[_REG_SP] = (__greg_t)sp;
-	/* Wipe out frame pointer. */
-	gr[_REG_FP] = 0;
-	/* Arrange for return via the trampoline code. */
-	gr[_REG_PC] = (__greg_t)_ctx_start;
-	gr[_REG_R4] = (__greg_t)func;
-	gr[_REG_R5] = (__greg_t)ucp;
-
-	va_start(ap, argc);
-	/* Pass up to four arguments in r0-3. */
-	for (i = 0; i < argc && i < 4; i++)
-		gr[_REG_R0 + i] = va_arg(ap, int);
-	/* Pass any additional arguments on the stack. */
-	for (argc -= i; argc > 0; argc--)
-		*sp++ = va_arg(ap, int);
-	va_end(ap);
-}
--- lib/libc/arm/gen/_setjmp.S
+++ /dev/null
@@ -1,106 +0,0 @@
-/*	$NetBSD: _setjmp.S,v 1.5 2003/04/05 23:08:51 bjh21 Exp $	*/
-
-/*
- * Copyright (c) 1997 Mark Brinicombe
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by Mark Brinicombe
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/_setjmp.S,v 1.3 2004/11/09 16:49:14 cognet Exp $");
-
-/*
- * C library -- _setjmp, _longjmp
- *
- *	_longjmp(a,v)
- * will generate a "return(v)" from the last call to
- *	_setjmp(a)
- * by restoring registers from the stack.
- * The previous signal state is NOT restored.
- *
- * Note: r0 is the return value
- *       r1-r3 are scratch registers in functions
- */
-
-ENTRY(_setjmp)
-	ldr	r1, .L_setjmp_magic
-	str	r1, [r0], #4
-#ifdef SOFTFLOAT
-	add	r0, r0, #52
-#else
-	/* Store fp registers */
-	sfm	f4, 4, [r0], #48
-	/* Store fpsr */
-	rfs	r1
-	str	r1, [r0], #0x0004
-#endif	/* SOFTFLOAT */
-	/* Store integer registers */
-        stmia	r0, {r4-r14}
-
-        mov	r0, #0x00000000
-	RET
-
-.L_setjmp_magic:
-	.word	_JB_MAGIC__SETJMP
-
-WEAK_ALIAS(___longjmp, _longjmp)
-ENTRY(_longjmp)
-	ldr	r2, .L_setjmp_magic
-	ldr	r3, [r0], #4
-	teq	r2, r3
-	bne	botch
-
-#ifdef SOFTFLOAT
-	add	r0, r0, #52
-#else
-	/* Restore fp registers */
-	lfm	f4, 4, [r0], #48
-	/* Restore fpsr */
-	ldr	r4, [r0], #0x0004
-	wfs	r4
-#endif	/* SOFTFLOAT */
-       	/* Restore integer registers */
-        ldmia	r0, {r4-r14}
-
-	/* Validate sp and r14 */
-	teq	sp, #0
-	teqne	r14, #0
-	beq	botch
-
-	/* Set return value */
-	mov	r0, r1
-	teq	r0, #0x00000000
-	moveq	r0, #0x00000001
-	RET
-
-	/* validation failed, die die die. */
-botch:
-	bl	PIC_SYM(_C_LABEL(longjmperror), PLT)
-	bl	PIC_SYM(_C_LABEL(abort), PLT)
-	b	. - 8		/* Cannot get here */
--- lib/libc/arm/gen/fabs.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*	$NetBSD: fabs.c,v 1.2 2002/05/26 11:48:01 wiz Exp $	*/
-
-/*
- * Copyright (c) 1996 Mark Brinicombe
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by Mark Brinicombe
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * fabs(x) returns the absolute value of x.
- */
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/fabs.c,v 1.1 2004/05/14 12:04:30 cognet Exp $");
-
-double
-fabs(double x)
-{
-	if (x < 0)
-		x = -x;
-	return(x);
-}
--- lib/libc/arm/gen/_set_tp.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*-
- * Copyright (c) 2004 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	$FreeBSD: src/lib/libc/arm/gen/_set_tp.c,v 1.1 2004/09/23 23:12:57 cognet Exp $
- */
-
-#include <string.h>
-#include <stdint.h>
-
-void
-_set_tp(void *tp)
-{
-}
--- lib/libc/arm/gen/infinity.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * infinity.c
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/infinity.c,v 1.1 2004/05/14 12:04:30 cognet Exp $");
-
-#include <math.h>
-
-/* bytes for +Infinity on a 387 */
-const union __infinity_un __infinity = { 
-#if BYTE_ORDER == BIG_ENDIAN
-	{ 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 }
-#else
-	{ 0, 0, 0, 0, 0, 0, 0xf0, 0x7f }
-#endif
-};
-
-/* bytes for NaN */
-const union __nan_un __nan = {
-#if BYTE_ORDER == BIG_ENDIAN
-	{0xff, 0xc0, 0, 0}
-#else
-	{ 0, 0, 0xc0, 0xff }
-#endif
-};
--- lib/libc/arm/gen/sigsetjmp.S
+++ /dev/null
@@ -1,62 +0,0 @@
-/*	$NetBSD: sigsetjmp.S,v 1.3 2002/08/17 19:54:30 thorpej Exp $	*/
-
-/*
- * Copyright (c) 1997 Mark Brinicombe
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by Mark Brinicombe
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/sigsetjmp.S,v 1.2 2004/11/09 16:44:57 cognet Exp $");
-
-/*
- * C library -- sigsetjmp, siglongjmp
- *
- *	longjmp(a,v)
- * will generate a "return(v)" from the last call to
- *	setjmp(a, m)
- * by restoring registers from the stack.
- * The previous signal state is restored.
- */
-
-ENTRY(sigsetjmp)
-	teq	r1, #0
-	beq	PIC_SYM(_C_LABEL(_setjmp), PLT)
-	b	PIC_SYM(_C_LABEL(setjmp), PLT)
-
-.L_setjmp_magic:
-	.word	_JB_MAGIC__SETJMP
-WEAK_ALIAS(__siglongjmp, siglongjmp)
-
-ENTRY(siglongjmp)
-	ldr	r2, .L_setjmp_magic
-	ldr	r3, [r0]
-	teq	r2, r3
-	beq	PIC_SYM(_C_LABEL(_longjmp), PLT)
-	b	PIC_SYM(_C_LABEL(longjmp), PLT)
--- lib/libc/arm/gen/setjmp.S
+++ /dev/null
@@ -1,129 +0,0 @@
-/*	$NetBSD: setjmp.S,v 1.5 2003/04/05 23:08:51 bjh21 Exp $	*/
-
-/*
- * Copyright (c) 1997 Mark Brinicombe
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by Mark Brinicombe
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/setjmp.S,v 1.4 2004/11/09 16:49:14 cognet Exp $");
-/*
- * C library -- setjmp, longjmp
- *
- *	longjmp(a,v)
- * will generate a "return(v)" from the last call to
- *	setjmp(a)
- * by restoring registers from the stack.
- * The previous signal state is restored.
- */
-
-ENTRY(setjmp)
-	/* Block all signals and retrieve the old signal mask */
-	stmfd	sp!, {r0, r14}
-	add	r2, r0, #(25 * 4) /* oset */
-	mov	r0, #0x00000001 /* SIG_BLOCK */
-	mov	r1, #0 /* set */
-
-	bl	PIC_SYM(_C_LABEL(sigprocmask), PLT)
-
-	ldmfd	sp!, {r0, r14}
-
-	ldr	r1, .Lsetjmp_magic
-	str	r1, [r0], #4
-
-#ifdef SOFTFLOAT
-	add	r0, r0, #52
-#else
-	/* Store fp registers */
-	sfm	f4, 4, [r0], #48
-	/* Store fpsr */
-	rfs	r1
-	str	r1, [r0], #0x0004
-#endif	/*SOFTFLOAT*/
-	/* Store integer registers */
-        stmia	r0, {r4-r14}
-        mov	r0, #0x00000000
-	RET
-
-.Lsetjmp_magic:
-	.word	_JB_MAGIC_SETJMP
-
-
-.weak _C_LABEL(longjmp)
-.set _C_LABEL(longjmp), _C_LABEL(__longjmp)
-ENTRY(__longjmp)
-	ldr	r2, .Lsetjmp_magic
-	ldr	r3, [r0]
-	teq	r2, r3
-	bne	botch
-
-
-	/* Set signal mask */
-	stmfd	sp!, {r0, r1, r14}
-	sub	sp, sp, #4	/* align the stack */
-
-	add	r1, r0, #(25 * 4) /* Signal mask */
-	mov	r0, #3 /* SIG_SETMASK */
-	mov	r2, #0
-	bl	PIC_SYM(_C_LABEL(sigprocmask), PLT)
-
-	add	sp, sp, #4	/* unalign the stack */
-	ldmfd	sp!, {r0, r1, r14} 
-
-	add	r0, r0, #4
-#ifdef SOFTFLOAT
-	add	r0, r0, #52
-#else
-	/* Restore fp registers */
-	lfm	f4, 4, [r0], #48
-	/* Restore FPSR */
-	ldr	r4, [r0], #0x0004
-	wfs	r4
-#endif	/* SOFTFLOAT */
-	/* Restore integer registers */
-        ldmia	r0, {r4-r14}
-
-	/* Validate sp and r14 */
-	teq	sp, #0
-	teqne	r14, #0
-	beq	botch
-
-	/* Set return value */
-
-	mov	r0, r1
-	teq	r0, #0x00000000
-	moveq	r0, #0x00000001
-	RET
-
-	/* validation failed, die die die. */
-botch:
-	bl	PIC_SYM(_C_LABEL(longjmperror), PLT)
-	bl	PIC_SYM(_C_LABEL(abort), PLT)
-	b	. - 8		/* Cannot get here */
--- lib/libc/arm/gen/Makefile.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-#	@(#)Makefile.inc	8.1 (Berkeley) 6/4/93
-# $FreeBSD: src/lib/libc/arm/gen/Makefile.inc,v 1.4 2004/09/23 23:12:57 cognet Exp $
-
-SRCS+=	_ctx_start.S _setjmp.S _set_tp.c alloca.S fabs.c \
-	infinity.c ldexp.c makecontext.c modf.c \
-	setjmp.S signalcontext.c sigsetjmp.S divsi3.S
--- lib/libc/arm/gen/divsi3.S
+++ /dev/null
@@ -1,387 +0,0 @@
-/*	$NetBSD: divsi3.S,v 1.4 2003/04/05 23:27:15 bjh21 Exp $	*/
-
-/*
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/divsi3.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-
-/* 
- * stack is aligned as there's a possibility of branching to L_overflow
- * which makes a C call
- */
-
-ENTRY(__umodsi3)
-	stmfd	sp!, {lr}
-	sub	sp, sp, #4	/* align stack */
-	bl	.L_udivide
-	add	sp, sp, #4	/* unalign stack */
-	mov	r0, r1
-	ldmfd	sp!, {pc}
-
-ENTRY(__modsi3)
-	stmfd	sp!, {lr}
-	sub	sp, sp, #4	/* align stack */
-	bl	.L_divide
-	add	sp, sp, #4	/* unalign stack */
-	mov	r0, r1
-	ldmfd	sp!, {pc}
-
-.L_overflow:
-#if !defined(_KERNEL) && !defined(_STANDALONE)
-	mov	r0, #8			/* SIGFPE */
-	bl	PIC_SYM(_C_LABEL(raise), PLT)	/* raise it */
-	mov	r0, #0
-#else
-	/* XXX should cause a fatal error */
-	mvn	r0, #0
-#endif
-	RET
-
-ENTRY(__udivsi3)
-.L_udivide:				/* r0 = r0 / r1; r1 = r0 % r1 */
-	eor     r0, r1, r0 
-	eor     r1, r0, r1 
-	eor     r0, r1, r0 
-					/* r0 = r1 / r0; r1 = r1 % r0 */
-	cmp	r0, #1
-	bcc	.L_overflow
-	beq	.L_divide_l0
-	mov	ip, #0
-	movs	r1, r1
-	bpl	.L_divide_l1
-	orr	ip, ip, #0x20000000	/* ip bit 0x20000000 = -ve r1 */
-	movs	r1, r1, lsr #1
-	orrcs	ip, ip, #0x10000000	/* ip bit 0x10000000 = bit 0 of r1 */
-	b	.L_divide_l1
-
-.L_divide_l0:				/* r0 == 1 */
-	mov	r0, r1
-	mov	r1, #0
-	RET
-
-ENTRY(__divsi3)
-.L_divide:				/* r0 = r0 / r1; r1 = r0 % r1 */
-	eor     r0, r1, r0 
-	eor     r1, r0, r1 
-	eor     r0, r1, r0 
-					/* r0 = r1 / r0; r1 = r1 % r0 */
-	cmp	r0, #1
-	bcc	.L_overflow
-	beq	.L_divide_l0
-	ands	ip, r0, #0x80000000
-	rsbmi	r0, r0, #0
-	ands	r2, r1, #0x80000000
-	eor	ip, ip, r2
-	rsbmi	r1, r1, #0
-	orr	ip, r2, ip, lsr #1	/* ip bit 0x40000000 = -ve division */
-					/* ip bit 0x80000000 = -ve remainder */
-
-.L_divide_l1:
-	mov	r2, #1
-	mov	r3, #0
-
-	/*
-	 * If the highest bit of the dividend is set, we have to be
-	 * careful when shifting the divisor. Test this. 
-	 */
-	movs	r1,r1
-	bpl	.L_old_code
-
-	/*
-	 * At this point, the highest bit of r1 is known to be set.
-	 * We abuse this below in the tst instructions.
-	 */
-	tst	r1, r0 /*, lsl #0 */
-	bmi	.L_divide_b1
-	tst	r1, r0, lsl #1
-	bmi	.L_divide_b2
-	tst	r1, r0, lsl #2
-	bmi	.L_divide_b3
-	tst	r1, r0, lsl #3
-	bmi	.L_divide_b4
-	tst	r1, r0, lsl #4
-	bmi	.L_divide_b5
-	tst	r1, r0, lsl #5
-	bmi	.L_divide_b6
-	tst	r1, r0, lsl #6
-	bmi	.L_divide_b7
-	tst	r1, r0, lsl #7
-	bmi	.L_divide_b8
-	tst	r1, r0, lsl #8
-	bmi	.L_divide_b9
-	tst	r1, r0, lsl #9
-	bmi	.L_divide_b10
-	tst	r1, r0, lsl #10
-	bmi	.L_divide_b11
-	tst	r1, r0, lsl #11
-	bmi	.L_divide_b12
-	tst	r1, r0, lsl #12
-	bmi	.L_divide_b13
-	tst	r1, r0, lsl #13
-	bmi	.L_divide_b14
-	tst	r1, r0, lsl #14
-	bmi	.L_divide_b15
-	tst	r1, r0, lsl #15
-	bmi	.L_divide_b16
-	tst	r1, r0, lsl #16
-	bmi	.L_divide_b17
-	tst	r1, r0, lsl #17
-	bmi	.L_divide_b18
-	tst	r1, r0, lsl #18
-	bmi	.L_divide_b19
-	tst	r1, r0, lsl #19
-	bmi	.L_divide_b20
-	tst	r1, r0, lsl #20
-	bmi	.L_divide_b21
-	tst	r1, r0, lsl #21
-	bmi	.L_divide_b22
-	tst	r1, r0, lsl #22
-	bmi	.L_divide_b23
-	tst	r1, r0, lsl #23
-	bmi	.L_divide_b24
-	tst	r1, r0, lsl #24
-	bmi	.L_divide_b25
-	tst	r1, r0, lsl #25
-	bmi	.L_divide_b26
-	tst	r1, r0, lsl #26
-	bmi	.L_divide_b27
-	tst	r1, r0, lsl #27
-	bmi	.L_divide_b28
-	tst	r1, r0, lsl #28
-	bmi	.L_divide_b29
-	tst	r1, r0, lsl #29
-	bmi	.L_divide_b30
-	tst	r1, r0, lsl #30
-	bmi	.L_divide_b31
-/*
- * instead of:
- *	tst	r1, r0, lsl #31
- *	bmi	.L_divide_b32
- */
-	b	.L_divide_b32
-
-.L_old_code:
-	cmp	r1, r0
-	bcc	.L_divide_b0
-	cmp	r1, r0, lsl #1
-	bcc	.L_divide_b1
-	cmp	r1, r0, lsl #2
-	bcc	.L_divide_b2
-	cmp	r1, r0, lsl #3
-	bcc	.L_divide_b3
-	cmp	r1, r0, lsl #4
-	bcc	.L_divide_b4
-	cmp	r1, r0, lsl #5
-	bcc	.L_divide_b5
-	cmp	r1, r0, lsl #6
-	bcc	.L_divide_b6
-	cmp	r1, r0, lsl #7
-	bcc	.L_divide_b7
-	cmp	r1, r0, lsl #8
-	bcc	.L_divide_b8
-	cmp	r1, r0, lsl #9
-	bcc	.L_divide_b9
-	cmp	r1, r0, lsl #10
-	bcc	.L_divide_b10
-	cmp	r1, r0, lsl #11
-	bcc	.L_divide_b11
-	cmp	r1, r0, lsl #12
-	bcc	.L_divide_b12
-	cmp	r1, r0, lsl #13
-	bcc	.L_divide_b13
-	cmp	r1, r0, lsl #14
-	bcc	.L_divide_b14
-	cmp	r1, r0, lsl #15
-	bcc	.L_divide_b15
-	cmp	r1, r0, lsl #16
-	bcc	.L_divide_b16
-	cmp	r1, r0, lsl #17
-	bcc	.L_divide_b17
-	cmp	r1, r0, lsl #18
-	bcc	.L_divide_b18
-	cmp	r1, r0, lsl #19
-	bcc	.L_divide_b19
-	cmp	r1, r0, lsl #20
-	bcc	.L_divide_b20
-	cmp	r1, r0, lsl #21
-	bcc	.L_divide_b21
-	cmp	r1, r0, lsl #22
-	bcc	.L_divide_b22
-	cmp	r1, r0, lsl #23
-	bcc	.L_divide_b23
-	cmp	r1, r0, lsl #24
-	bcc	.L_divide_b24
-	cmp	r1, r0, lsl #25
-	bcc	.L_divide_b25
-	cmp	r1, r0, lsl #26
-	bcc	.L_divide_b26
-	cmp	r1, r0, lsl #27
-	bcc	.L_divide_b27
-	cmp	r1, r0, lsl #28
-	bcc	.L_divide_b28
-	cmp	r1, r0, lsl #29
-	bcc	.L_divide_b29
-	cmp	r1, r0, lsl #30
-	bcc	.L_divide_b30
-.L_divide_b32:
-	cmp	r1, r0, lsl #31
-	subhs	r1, r1,r0, lsl #31
-	addhs	r3, r3,r2, lsl #31
-.L_divide_b31:
-	cmp	r1, r0, lsl #30
-	subhs	r1, r1,r0, lsl #30
-	addhs	r3, r3,r2, lsl #30
-.L_divide_b30:
-	cmp	r1, r0, lsl #29
-	subhs	r1, r1,r0, lsl #29
-	addhs	r3, r3,r2, lsl #29
-.L_divide_b29:
-	cmp	r1, r0, lsl #28
-	subhs	r1, r1,r0, lsl #28
-	addhs	r3, r3,r2, lsl #28
-.L_divide_b28:
-	cmp	r1, r0, lsl #27
-	subhs	r1, r1,r0, lsl #27
-	addhs	r3, r3,r2, lsl #27
-.L_divide_b27:
-	cmp	r1, r0, lsl #26
-	subhs	r1, r1,r0, lsl #26
-	addhs	r3, r3,r2, lsl #26
-.L_divide_b26:
-	cmp	r1, r0, lsl #25
-	subhs	r1, r1,r0, lsl #25
-	addhs	r3, r3,r2, lsl #25
-.L_divide_b25:
-	cmp	r1, r0, lsl #24
-	subhs	r1, r1,r0, lsl #24
-	addhs	r3, r3,r2, lsl #24
-.L_divide_b24:
-	cmp	r1, r0, lsl #23
-	subhs	r1, r1,r0, lsl #23
-	addhs	r3, r3,r2, lsl #23
-.L_divide_b23:
-	cmp	r1, r0, lsl #22
-	subhs	r1, r1,r0, lsl #22
-	addhs	r3, r3,r2, lsl #22
-.L_divide_b22:
-	cmp	r1, r0, lsl #21
-	subhs	r1, r1,r0, lsl #21
-	addhs	r3, r3,r2, lsl #21
-.L_divide_b21:
-	cmp	r1, r0, lsl #20
-	subhs	r1, r1,r0, lsl #20
-	addhs	r3, r3,r2, lsl #20
-.L_divide_b20:
-	cmp	r1, r0, lsl #19
-	subhs	r1, r1,r0, lsl #19
-	addhs	r3, r3,r2, lsl #19
-.L_divide_b19:
-	cmp	r1, r0, lsl #18
-	subhs	r1, r1,r0, lsl #18
-	addhs	r3, r3,r2, lsl #18
-.L_divide_b18:
-	cmp	r1, r0, lsl #17
-	subhs	r1, r1,r0, lsl #17
-	addhs	r3, r3,r2, lsl #17
-.L_divide_b17:
-	cmp	r1, r0, lsl #16
-	subhs	r1, r1,r0, lsl #16
-	addhs	r3, r3,r2, lsl #16
-.L_divide_b16:
-	cmp	r1, r0, lsl #15
-	subhs	r1, r1,r0, lsl #15
-	addhs	r3, r3,r2, lsl #15
-.L_divide_b15:
-	cmp	r1, r0, lsl #14
-	subhs	r1, r1,r0, lsl #14
-	addhs	r3, r3,r2, lsl #14
-.L_divide_b14:
-	cmp	r1, r0, lsl #13
-	subhs	r1, r1,r0, lsl #13
-	addhs	r3, r3,r2, lsl #13
-.L_divide_b13:
-	cmp	r1, r0, lsl #12
-	subhs	r1, r1,r0, lsl #12
-	addhs	r3, r3,r2, lsl #12
-.L_divide_b12:
-	cmp	r1, r0, lsl #11
-	subhs	r1, r1,r0, lsl #11
-	addhs	r3, r3,r2, lsl #11
-.L_divide_b11:
-	cmp	r1, r0, lsl #10
-	subhs	r1, r1,r0, lsl #10
-	addhs	r3, r3,r2, lsl #10
-.L_divide_b10:
-	cmp	r1, r0, lsl #9
-	subhs	r1, r1,r0, lsl #9
-	addhs	r3, r3,r2, lsl #9
-.L_divide_b9:
-	cmp	r1, r0, lsl #8
-	subhs	r1, r1,r0, lsl #8
-	addhs	r3, r3,r2, lsl #8
-.L_divide_b8:
-	cmp	r1, r0, lsl #7
-	subhs	r1, r1,r0, lsl #7
-	addhs	r3, r3,r2, lsl #7
-.L_divide_b7:
-	cmp	r1, r0, lsl #6
-	subhs	r1, r1,r0, lsl #6
-	addhs	r3, r3,r2, lsl #6
-.L_divide_b6:
-	cmp	r1, r0, lsl #5
-	subhs	r1, r1,r0, lsl #5
-	addhs	r3, r3,r2, lsl #5
-.L_divide_b5:
-	cmp	r1, r0, lsl #4
-	subhs	r1, r1,r0, lsl #4
-	addhs	r3, r3,r2, lsl #4
-.L_divide_b4:
-	cmp	r1, r0, lsl #3
-	subhs	r1, r1,r0, lsl #3
-	addhs	r3, r3,r2, lsl #3
-.L_divide_b3:
-	cmp	r1, r0, lsl #2
-	subhs	r1, r1,r0, lsl #2
-	addhs	r3, r3,r2, lsl #2
-.L_divide_b2:
-	cmp	r1, r0, lsl #1
-	subhs	r1, r1,r0, lsl #1
-	addhs	r3, r3,r2, lsl #1
-.L_divide_b1:
-	cmp	r1, r0
-	subhs	r1, r1, r0
-	addhs	r3, r3, r2
-.L_divide_b0:
-
-	tst	ip, #0x20000000
-	bne	.L_udivide_l1
-	mov	r0, r3
-	cmp	ip, #0
-	rsbmi	r1, r1, #0
-	movs	ip, ip, lsl #1
-	bicmi	r0, r0, #0x80000000	/* Fix incase we divided 0x80000000 */
-	rsbmi	r0, r0, #0
-	RET
-
-.L_udivide_l1:
-	tst	ip, #0x10000000
-	mov	r1, r1, lsl #1
-	orrne	r1, r1, #1
-	mov	r3, r3, lsl #1
-	cmp	r1, r0
-	subhs	r1, r1, r0
-	addhs	r3, r3, r2
-	mov	r0, r3
-	RET
--- lib/libc/arm/gen/modf.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- *
- *	$NetBSD: modf.c,v 1.1 1995/02/10 17:50:25 cgd Exp $
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/modf.c,v 1.1 2004/05/14 12:04:30 cognet Exp $");
-
-#include <sys/types.h>
-#include <errno.h>
-#include <math.h>
-#include <machine/ieee.h>
-
-/*
- * double modf(double val, double *iptr)
- * returns: f and i such that |f| < 1.0, (f + i) = val, and
- *	sign(f) == sign(i) == sign(val).
- *
- * Beware signedness when doing subtraction, and also operand size!
- */
-double
-modf(val, iptr)
-	double val, *iptr;
-{
-	union doub {
-		double v;
-		struct ieee_double s;
-	} u, v;
-	u_int64_t frac;
-
-	/*
-	 * If input is Inf or NaN, return it and leave i alone.
-	 */
-	u.v = val;
-	if (u.s.dbl_exp == DBL_EXP_INFNAN)
-		return (u.v);
-
-	/*
-	 * If input can't have a fractional part, return
-	 * (appropriately signed) zero, and make i be the input.
-	 */
-	if ((int)u.s.dbl_exp - DBL_EXP_BIAS > DBL_FRACBITS - 1) {
-		*iptr = u.v;
-		v.v = 0.0;
-		v.s.dbl_sign = u.s.dbl_sign;
-		return (v.v);
-	}
-
-	/*
-	 * If |input| < 1.0, return it, and set i to the appropriately
-	 * signed zero.
-	 */
-	if (u.s.dbl_exp < DBL_EXP_BIAS) {
-		v.v = 0.0;
-		v.s.dbl_sign = u.s.dbl_sign;
-		*iptr = v.v;
-		return (u.v);
-	}
-
-	/*
-	 * There can be a fractional part of the input.
-	 * If you look at the math involved for a few seconds, it's
-	 * plain to see that the integral part is the input, with the
-	 * low (DBL_FRACBITS - (exponent - DBL_EXP_BIAS)) bits zeroed,
-	 * the the fractional part is the part with the rest of the
-	 * bits zeroed.  Just zeroing the high bits to get the
-	 * fractional part would yield a fraction in need of
-	 * normalization.  Therefore, we take the easy way out, and
-	 * just use subtraction to get the fractional part.
-	 */
-	v.v = u.v;
-	/* Zero the low bits of the fraction, the sleazy way. */
-	frac = ((u_int64_t)v.s.dbl_frach << 32) + v.s.dbl_fracl;
-	frac >>= DBL_FRACBITS - (u.s.dbl_exp - DBL_EXP_BIAS);
-	frac <<= DBL_FRACBITS - (u.s.dbl_exp - DBL_EXP_BIAS);
-	v.s.dbl_fracl = frac & 0xffffffff;
-	v.s.dbl_frach = frac >> 32;
-	*iptr = v.v;
-
-	u.v -= v.v;
-	u.s.dbl_sign = v.s.dbl_sign;
-	return (u.v);
-}
--- lib/libc/arm/gen/alloca.S
+++ /dev/null
@@ -1,45 +0,0 @@
-/*	$NetBSD: alloca.S,v 1.3 2003/04/05 23:08:51 bjh21 Exp $	*/
-
-/*
- * Copyright (c) 1995 Mark Brinicombe
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by Mark Brinicombe
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* like alloc, but automatic automatic free in return */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/alloca.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-
-ENTRY(alloca)
-	add	r0, r0, #0x00000007	/* round up to next 8 byte alignment */
-	bic	r0, r0, #0x00000007
-	sub	sp, sp, r0		/* Adjust the stack pointer */
-	mov	r0, sp			/* r0 = base of new space */
-	RET
--- lib/libc/arm/gen/signalcontext.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*-
- * Copyright (c) 2004 Olivier Houchard
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/gen/signalcontext.c,v 1.2 2004/11/05 23:53:02 cognet Exp $");
-
-#include <sys/param.h>
-#include <sys/signal.h>
-#include <sys/ucontext.h>
-
-#include <machine/frame.h>
-#include <machine/sigframe.h>
-
-#include <errno.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <strings.h>
-#include <signal.h>
-
-__weak_reference(__signalcontext, signalcontext);
-
-extern void _ctx_start(void);
-
-int
-__signalcontext(ucontext_t *ucp, int sig, __sighandler_t *func)
-{
-	struct sigframe *sfp;
-	__greg_t *gr = ucp->uc_mcontext.__gregs;
-	unsigned int *sp;
-
-	sp = (unsigned int *)gr[_REG_SP];
-
-	sfp = (struct sigframe *)sp - 1;
-	
-	bzero(sfp, sizeof(*sfp));
-	bcopy(ucp, &sfp->sf_uc, sizeof(*ucp));
-	sfp->sf_si.si_signo = sig;
-
-	gr[_REG_SP] = (__greg_t)sfp;
-	/* Wipe out frame pointer. */
-	gr[_REG_FP] = 0;
-	/* Arrange for return via the trampoline code. */
-	gr[_REG_PC] = (__greg_t)_ctx_start;
-	gr[_REG_R4] = (__greg_t)func;
-	gr[_REG_R5] = (__greg_t)ucp;
-	gr[_REG_R0] = (__greg_t)sig;
-	gr[_REG_R1] = (__greg_t)&sfp->sf_si;
-	gr[_REG_R2] = (__greg_t)&sfp->sf_uc;
-
-	ucp->uc_link = &sfp->sf_uc;
-	sigdelset(&ucp->uc_sigmask, sig);
-
-	return (0);
-}
--- lib/libc/arm/net/ntohl.S
+++ /dev/null
@@ -1,48 +0,0 @@
-/*	$NetBSD: byte_swap_4.S,v 1.2 2003/04/05 23:08:51 bjh21 Exp $	*/
-
-/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Neil A. Carson
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the NetBSD
- *	Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/net/ntohl.S,v 1.1 2004/05/14 12:04:30 cognet Exp $");
-
-_ENTRY(_C_LABEL(ntohl))
-_PROF_PROLOGUE
-	eor		r1, r0, r0, ror #16
-	bic		r1, r1, #0x00FF0000
-	mov		r0, r0, ror #8
-	eor		r0, r0, r1, lsr #8
-	mov		pc, lr
--- lib/libc/arm/net/htons.S
+++ /dev/null
@@ -1,47 +0,0 @@
-/*	$NetBSD: byte_swap_2.S,v 1.3 2003/04/05 23:08:51 bjh21 Exp $	*/
-
-/*-
- * Copyright (c) 1999 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Charles M. Hannum.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the NetBSD
- *	Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/net/htons.S,v 1.1 2004/05/14 12:04:30 cognet Exp $");
-
-_ENTRY(_C_LABEL(htons))
-_PROF_PROLOGUE
-	and		r1, r0, #0xff
-	mov		r0, r0, lsr #8
-	orr		r0, r0, r1, lsl #8
-	mov		pc, lr  
--- lib/libc/arm/net/Makefile.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-#	@(#)Makefile.inc	8.1 (Berkeley) 6/4/93
-# $FreeBSD: src/lib/libc/arm/net/Makefile.inc,v 1.1 2004/05/14 12:04:30 cognet Exp $
-
-SRCS+=	ntohl.S ntohs.S htonl.S htons.S
--- lib/libc/arm/net/ntohs.S
+++ /dev/null
@@ -1,47 +0,0 @@
-/*	$NetBSD: byte_swap_2.S,v 1.3 2003/04/05 23:08:51 bjh21 Exp $	*/
-
-/*-
- * Copyright (c) 1999 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Charles M. Hannum.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the NetBSD
- *	Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/net/ntohs.S,v 1.1 2004/05/14 12:04:30 cognet Exp $");
-
-_ENTRY(_C_LABEL(ntohs))
-_PROF_PROLOGUE
-	and		r1, r0, #0xff
-	mov		r0, r0, lsr #8
-	orr		r0, r0, r1, lsl #8
-	mov		pc, lr  
--- lib/libc/arm/net/htonl.S
+++ /dev/null
@@ -1,48 +0,0 @@
-/*	$NetBSD: byte_swap_4.S,v 1.2 2003/04/05 23:08:51 bjh21 Exp $	*/
-
-/*-
- * Copyright (c) 1997 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Neil A. Carson
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the NetBSD
- *	Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/net/htonl.S,v 1.1 2004/05/14 12:04:30 cognet Exp $");
-
-_ENTRY(_C_LABEL(htonl))
-_PROF_PROLOGUE
-	eor		r1, r0, r0, ror #16
-	bic		r1, r1, #0x00FF0000
-	mov		r0, r0, ror #8
-	eor		r0, r0, r1, lsr #8
-	mov		pc, lr
--- lib/libc/arm/softfloat/milieu.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* $NetBSD: milieu.h,v 1.1 2000/12/29 20:13:54 bjh21 Exp $ */
-/* $FreeBSD: src/lib/libc/arm/softfloat/milieu.h,v 1.1 2004/05/14 12:04:30 cognet Exp $ */
-
-/*
-===============================================================================
-
-This C header file is part of the SoftFloat IEC/IEEE Floating-point
-Arithmetic Package, Release 2a.
-
-Written by John R. Hauser.  This work was made possible in part by the
-International Computer Science Institute, located at Suite 600, 1947 Center
-Street, Berkeley, California 94704.  Funding was partially provided by the
-National Science Foundation under grant MIP-9311980.  The original version
-of this code was written as part of a project to build a fixed-point vector
-processor in collaboration with the University of California at Berkeley,
-overseen by Profs. Nelson Morgan and John Wawrzynek.  More information
-is available through the Web page `http://HTTP.CS.Berkeley.EDU/~jhauser/
-arithmetic/SoftFloat.html'.
-
-THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE.  Although reasonable effort
-has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
-TIMES RESULT IN INCORRECT BEHAVIOR.  USE OF THIS SOFTWARE IS RESTRICTED TO
-PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY
-AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.
-
-Derivative works are acceptable, even for commercial purposes, so long as
-(1) they include prominent notice that the work is derivative, and (2) they
-include prominent notice akin to these four paragraphs for those parts of
-this code that are retained.
-
-===============================================================================
-*/
-
-/*
--------------------------------------------------------------------------------
-Include common integer types and flags.
--------------------------------------------------------------------------------
-*/
-#include "arm-gcc.h"
-
-/*
--------------------------------------------------------------------------------
-Symbolic Boolean literals.
--------------------------------------------------------------------------------
-*/
-enum {
-    FALSE = 0,
-    TRUE  = 1
-};
--- lib/libc/arm/softfloat/arm-gcc.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* $NetBSD: arm-gcc.h,v 1.2 2001/02/21 18:09:25 bjh21 Exp $ */
-/* $FreeBSD: src/lib/libc/arm/softfloat/arm-gcc.h,v 1.1 2004/05/14 12:04:30 cognet Exp $ */
-
-/*
--------------------------------------------------------------------------------
-One of the macros `BIGENDIAN' or `LITTLEENDIAN' must be defined.
--------------------------------------------------------------------------------
-*/
-#ifdef __ARMEB__
-#define BIGENDIAN
-#else
-#define LITTLEENDIAN
-#endif
-
-/*
--------------------------------------------------------------------------------
-The macro `BITS64' can be defined to indicate that 64-bit integer types are
-supported by the compiler.
--------------------------------------------------------------------------------
-*/
-#define BITS64
-
-/*
--------------------------------------------------------------------------------
-Each of the following `typedef's defines the most convenient type that holds
-integers of at least as many bits as specified.  For example, `uint8' should
-be the most convenient type that can hold unsigned integers of as many as
-8 bits.  The `flag' type must be able to hold either a 0 or 1.  For most
-implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed
-to the same as `int'.
--------------------------------------------------------------------------------
-*/
-typedef int flag;
-typedef int uint8;
-typedef int int8;
-typedef int uint16;
-typedef int int16;
-typedef unsigned int uint32;
-typedef signed int int32;
-#ifdef BITS64
-typedef unsigned long long int uint64;
-typedef signed long long int int64;
-#endif
-
-/*
--------------------------------------------------------------------------------
-Each of the following `typedef's defines a type that holds integers
-of _exactly_ the number of bits specified.  For instance, for most
-implementation of C, `bits16' and `sbits16' should be `typedef'ed to
-`unsigned short int' and `signed short int' (or `short int'), respectively.
--------------------------------------------------------------------------------
-*/
-typedef unsigned char bits8;
-typedef signed char sbits8;
-typedef unsigned short int bits16;
-typedef signed short int sbits16;
-typedef unsigned int bits32;
-typedef signed int sbits32;
-#ifdef BITS64
-typedef unsigned long long int bits64;
-typedef signed long long int sbits64;
-#endif
-
-#ifdef BITS64
-/*
--------------------------------------------------------------------------------
-The `LIT64' macro takes as its argument a textual integer literal and
-if necessary ``marks'' the literal as having a 64-bit integer type.
-For example, the GNU C Compiler (`gcc') requires that 64-bit literals be
-appended with the letters `LL' standing for `long long', which is `gcc's
-name for the 64-bit integer type.  Some compilers may allow `LIT64' to be
-defined as the identity macro:  `#define LIT64( a ) a'.
--------------------------------------------------------------------------------
-*/
-#define LIT64( a ) a##LL
-#endif
-
-/*
--------------------------------------------------------------------------------
-The macro `INLINE' can be used before functions that should be inlined.  If
-a compiler does not support explicit inlining, this macro should be defined
-to be `static'.
--------------------------------------------------------------------------------
-*/
-#define INLINE static __inline
-
-/*
--------------------------------------------------------------------------------
-The ARM FPA is odd in that it stores doubles high-order word first, no matter
-what the endianness of the CPU.  VFP is sane.
--------------------------------------------------------------------------------
-*/
-#if defined(SOFTFLOAT_FOR_GCC)
-#if defined(__VFP_FP__) || defined(__ARMEB__)
-#define FLOAT64_DEMANGLE(a)	(a)
-#define FLOAT64_MANGLE(a)	(a)
-#else
-#define FLOAT64_DEMANGLE(a)	(((a) << 32) | ((a) >> 32))
-#define FLOAT64_MANGLE(a)	FLOAT64_DEMANGLE(a)
-#endif
-#endif
--- lib/libc/arm/softfloat/softfloat.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/*	$NetBSD: softfloat.h,v 1.6 2002/05/12 13:12:46 bjh21 Exp $	*/
-/* $FreeBSD: src/lib/libc/arm/softfloat/softfloat.h,v 1.1 2004/05/14 12:04:30 cognet Exp $ */
-
-/* This is a derivative work. */
-
-/*
-===============================================================================
-
-This C header file is part of the SoftFloat IEC/IEEE Floating-point
-Arithmetic Package, Release 2a.
-
-Written by John R. Hauser.  This work was made possible in part by the
-International Computer Science Institute, located at Suite 600, 1947 Center
-Street, Berkeley, California 94704.  Funding was partially provided by the
-National Science Foundation under grant MIP-9311980.  The original version
-of this code was written as part of a project to build a fixed-point vector
-processor in collaboration with the University of California at Berkeley,
-overseen by Profs. Nelson Morgan and John Wawrzynek.  More information
-is available through the Web page `http://HTTP.CS.Berkeley.EDU/~jhauser/
-arithmetic/SoftFloat.html'.
-
-THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE.  Although reasonable effort
-has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT
-TIMES RESULT IN INCORRECT BEHAVIOR.  USE OF THIS SOFTWARE IS RESTRICTED TO
-PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY
-AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.
-
-Derivative works are acceptable, even for commercial purposes, so long as
-(1) they include prominent notice that the work is derivative, and (2) they
-include prominent notice akin to these four paragraphs for those parts of
-this code that are retained.
-
-===============================================================================
-*/
-
-/*
--------------------------------------------------------------------------------
-The macro `FLOATX80' must be defined to enable the extended double-precision
-floating-point format `floatx80'.  If this macro is not defined, the
-`floatx80' type will not be defined, and none of the functions that either
-input or output the `floatx80' type will be defined.  The same applies to
-the `FLOAT128' macro and the quadruple-precision format `float128'.
--------------------------------------------------------------------------------
-*/
-/* #define FLOATX80 */
-/* #define FLOAT128 */
-
-#include <machine/ieeefp.h>
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE floating-point types.
--------------------------------------------------------------------------------
-*/
-typedef unsigned int float32;
-typedef unsigned long long float64;
-#ifdef FLOATX80
-typedef struct {
-    unsigned short high;
-    unsigned long long low;
-} floatx80;
-#endif
-#ifdef FLOAT128
-typedef struct {
-    unsigned long long high, low;
-} float128;
-#endif
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE floating-point underflow tininess-detection mode.
--------------------------------------------------------------------------------
-*/
-extern int float_detect_tininess;
-enum {
-    float_tininess_after_rounding  = 0,
-    float_tininess_before_rounding = 1
-};
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE floating-point rounding mode.
--------------------------------------------------------------------------------
-*/
-extern fp_rnd_t float_rounding_mode;
-enum {
-    float_round_nearest_even = FP_RN,
-    float_round_to_zero      = FP_RZ,
-    float_round_down         = FP_RM,
-    float_round_up           = FP_RP
-};
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE floating-point exception flags.
--------------------------------------------------------------------------------
-*/
-extern fp_except float_exception_flags;
-extern fp_except float_exception_mask;
-enum {
-    float_flag_inexact   = FP_X_IMP,
-    float_flag_underflow = FP_X_UFL,
-    float_flag_overflow  = FP_X_OFL,
-    float_flag_divbyzero = FP_X_DZ,
-    float_flag_invalid   = FP_X_INV
-};
-
-/*
--------------------------------------------------------------------------------
-Routine to raise any or all of the software IEC/IEEE floating-point
-exception flags.
--------------------------------------------------------------------------------
-*/
-void float_raise( fp_except );
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE integer-to-floating-point conversion routines.
--------------------------------------------------------------------------------
-*/
-float32 int32_to_float32( int );
-float64 int32_to_float64( int );
-#ifdef FLOATX80
-floatx80 int32_to_floatx80( int );
-#endif
-#ifdef FLOAT128
-float128 int32_to_float128( int );
-#endif
-#ifndef SOFTFLOAT_FOR_GCC /* __floatdi?f is in libgcc2.c */
-float32 int64_to_float32( long long );
-float64 int64_to_float64( long long );
-#ifdef FLOATX80
-floatx80 int64_to_floatx80( long long );
-#endif
-#ifdef FLOAT128
-float128 int64_to_float128( long long );
-#endif
-#endif
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE single-precision conversion routines.
--------------------------------------------------------------------------------
-*/
-int float32_to_int32( float32 );
-int float32_to_int32_round_to_zero( float32 );
-#if defined(SOFTFLOAT_FOR_GCC) && defined(SOFTFLOAT_NEED_FIXUNS)
-unsigned int float32_to_uint32_round_to_zero( float32 );
-#endif
-#ifndef SOFTFLOAT_FOR_GCC /* __fix?fdi provided by libgcc2.c */
-long long float32_to_int64( float32 );
-long long float32_to_int64_round_to_zero( float32 );
-#endif
-float64 float32_to_float64( float32 );
-#ifdef FLOATX80
-floatx80 float32_to_floatx80( float32 );
-#endif
-#ifdef FLOAT128
-float128 float32_to_float128( float32 );
-#endif
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE single-precision operations.
--------------------------------------------------------------------------------
-*/
-float32 float32_round_to_int( float32 );
-float32 float32_add( float32, float32 );
-float32 float32_sub( float32, float32 );
-float32 float32_mul( float32, float32 );
-float32 float32_div( float32, float32 );
-float32 float32_rem( float32, float32 );
-float32 float32_sqrt( float32 );
-int float32_eq( float32, float32 );
-int float32_le( float32, float32 );
-int float32_lt( float32, float32 );
-int float32_eq_signaling( float32, float32 );
-int float32_le_quiet( float32, float32 );
-int float32_lt_quiet( float32, float32 );
-#ifndef SOFTFLOAT_FOR_GCC
-int float32_is_signaling_nan( float32 );
-#endif
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE double-precision conversion routines.
--------------------------------------------------------------------------------
-*/
-int float64_to_int32( float64 );
-int float64_to_int32_round_to_zero( float64 );
-#if defined(SOFTFLOAT_FOR_GCC) && defined(SOFTFLOAT_NEED_FIXUNS)
-unsigned int float64_to_uint32_round_to_zero( float64 );
-#endif
-#ifndef SOFTFLOAT_FOR_GCC /* __fix?fdi provided by libgcc2.c */
-long long float64_to_int64( float64 );
-long long float64_to_int64_round_to_zero( float64 );
-#endif
-float32 float64_to_float32( float64 );
-#ifdef FLOATX80
-floatx80 float64_to_floatx80( float64 );
-#endif
-#ifdef FLOAT128
-float128 float64_to_float128( float64 );
-#endif
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE double-precision operations.
--------------------------------------------------------------------------------
-*/
-float64 float64_round_to_int( float64 );
-float64 float64_add( float64, float64 );
-float64 float64_sub( float64, float64 );
-float64 float64_mul( float64, float64 );
-float64 float64_div( float64, float64 );
-float64 float64_rem( float64, float64 );
-float64 float64_sqrt( float64 );
-int float64_eq( float64, float64 );
-int float64_le( float64, float64 );
-int float64_lt( float64, float64 );
-int float64_eq_signaling( float64, float64 );
-int float64_le_quiet( float64, float64 );
-int float64_lt_quiet( float64, float64 );
-#ifndef SOFTFLOAT_FOR_GCC
-int float64_is_signaling_nan( float64 );
-#endif
-
-#ifdef FLOATX80
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE extended double-precision conversion routines.
--------------------------------------------------------------------------------
-*/
-int floatx80_to_int32( floatx80 );
-int floatx80_to_int32_round_to_zero( floatx80 );
-long long floatx80_to_int64( floatx80 );
-long long floatx80_to_int64_round_to_zero( floatx80 );
-float32 floatx80_to_float32( floatx80 );
-float64 floatx80_to_float64( floatx80 );
-#ifdef FLOAT128
-float128 floatx80_to_float128( floatx80 );
-#endif
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE extended double-precision rounding precision.  Valid
-values are 32, 64, and 80.
--------------------------------------------------------------------------------
-*/
-extern int floatx80_rounding_precision;
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE extended double-precision operations.
--------------------------------------------------------------------------------
-*/
-floatx80 floatx80_round_to_int( floatx80 );
-floatx80 floatx80_add( floatx80, floatx80 );
-floatx80 floatx80_sub( floatx80, floatx80 );
-floatx80 floatx80_mul( floatx80, floatx80 );
-floatx80 floatx80_div( floatx80, floatx80 );
-floatx80 floatx80_rem( floatx80, floatx80 );
-floatx80 floatx80_sqrt( floatx80 );
-int floatx80_eq( floatx80, floatx80 );
-int floatx80_le( floatx80, floatx80 );
-int floatx80_lt( floatx80, floatx80 );
-int floatx80_eq_signaling( floatx80, floatx80 );
-int floatx80_le_quiet( floatx80, floatx80 );
-int floatx80_lt_quiet( floatx80, floatx80 );
-int floatx80_is_signaling_nan( floatx80 );
-
-#endif
-
-#ifdef FLOAT128
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE quadruple-precision conversion routines.
--------------------------------------------------------------------------------
-*/
-int float128_to_int32( float128 );
-int float128_to_int32_round_to_zero( float128 );
-long long float128_to_int64( float128 );
-long long float128_to_int64_round_to_zero( float128 );
-float32 float128_to_float32( float128 );
-float64 float128_to_float64( float128 );
-#ifdef FLOATX80
-floatx80 float128_to_floatx80( float128 );
-#endif
-
-/*
--------------------------------------------------------------------------------
-Software IEC/IEEE quadruple-precision operations.
--------------------------------------------------------------------------------
-*/
-float128 float128_round_to_int( float128 );
-float128 float128_add( float128, float128 );
-float128 float128_sub( float128, float128 );
-float128 float128_mul( float128, float128 );
-float128 float128_div( float128, float128 );
-float128 float128_rem( float128, float128 );
-float128 float128_sqrt( float128 );
-int float128_eq( float128, float128 );
-int float128_le( float128, float128 );
-int float128_lt( float128, float128 );
-int float128_eq_signaling( float128, float128 );
-int float128_le_quiet( float128, float128 );
-int float128_lt_quiet( float128, float128 );
-int float128_is_signaling_nan( float128 );
-
-#endif
-
--- lib/libc/arm/SYS.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*	$NetBSD: SYS.h,v 1.8 2003/08/07 16:42:02 agc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * William Jolitz.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)SYS.h	5.5 (Berkeley) 5/7/91
- * $FreeBSD: src/lib/libc/arm/SYS.h,v 1.2 2004/11/09 16:49:13 cognet Exp $
- */
-
-#include <machine/asm.h>
-#include <sys/syscall.h>
-#include <machine/swi.h>
-
-#ifdef __STDC__
-#define SYSTRAP(x)	swi 0 | SYS_ ## x
-#else
-#define SYSTRAP(x)	swi 0 | SYS_/**/x
-#endif
-
-#ifdef __ELF__
-#define	CERROR		_C_LABEL(cerror)
-#define	CURBRK		_C_LABEL(curbrk)
-#else
-#define	CERROR		_ASM_LABEL(cerror)
-#define	CURBRK		_ASM_LABEL(curbrk)
-#endif
-
-#define _SYSCALL_NOERROR(x)						\
-	ENTRY(__CONCAT(__sys_, x));					\
-	.weak _C_LABEL(x);						\
-	.set _C_LABEL(x), _C_LABEL(__CONCAT(__sys_,x));			\
-	.weak _C_LABEL(__CONCAT(_,x));					\
-	.set _C_LABEL(__CONCAT(_,x)),_C_LABEL(__CONCAT(__sys_,x));	\
-	SYSTRAP(x)
-
-#define _SYSCALL(x)							\
-	_SYSCALL_NOERROR(x);						\
-	bcs PIC_SYM(CERROR, PLT)
-
-#define SYSCALL_NOERROR(x)						\
-	_SYSCALL_NOERROR(x)
-
-#define SYSCALL(x)							\
-	_SYSCALL(x)
-
-
-#define PSEUDO_NOERROR(x)						\
-	_SYSCALL_NOERROR(x);						\
-	RET
-
-#define PSEUDO(x)							\
-	_SYSCALL(x);							\
-	RET
-
-
-#define RSYSCALL_NOERROR(x)						\
-	PSEUDO_NOERROR(x)
-
-#define RSYSCALL(x)							\
-	PSEUDO(x)
-
-	.globl  CERROR
--- lib/libc/arm/Makefile.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-# $FreeBSD: src/lib/libc/arm/Makefile.inc,v 1.3 2005/03/20 00:53:52 cognet Exp $
-#
-# Machine dependent definitions for the arm architecture.
-#
-
-SOFTFLOAT_BITS=32
-
-CFLAGS+=-DSOFTFLOAT
-
-# Long double is just double precision.
-MDSRCS+=machdep_ldisd.c
--- lib/libc/arm/_fpmath.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*-
- * Copyright (c) 2002, 2003 David Schultz <das at FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc/arm/_fpmath.h,v 1.4 2005/03/20 00:53:52 cognet Exp $
- */
-
-union IEEEl2bits {
-	long double	e;
-	struct {
-#ifndef __ARMEB__
-		unsigned int	manl	:32;
-		unsigned int	manh	:20;
-		unsigned int	exp	:11;
-		unsigned int	sign	:1;
-#else
-		unsigned int		sign	:1;
-		unsigned int		exp	:11;
-		unsigned int		manh	:20;
-		unsigned int		manl	:32;
-#endif
-	} bits;
-};
-
-#define	LDBL_NBIT	0
-#define	mask_nbit_l(u)	((void)0)
-
-#define	LDBL_MANH_SIZE	32
-#define	LDBL_MANL_SIZE	32
-
-#define	LDBL_TO_ARRAY32(u, a) do {			\
-	(a)[0] = (uint32_t)(u).bits.manl;		\
-	(a)[1] = (uint32_t)(u).bits.manh;		\
-} while(0)
--- lib/libc/arm/arith.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * MD header for contrib/gdtoa
- *
- * $FreeBSD: src/lib/libc/arm/arith.h,v 1.1 2004/05/14 12:04:29 cognet Exp $
- */
-
-/*
- * NOTE: The definitions in this file must be correct or strtod(3) and
- * floating point formats in printf(3) will break!  The file can be
- * generated by running contrib/gdtoa/arithchk.c on the target
- * architecture.  See contrib/gdtoa/gdtoaimp.h for details.
- */
-
-#define IEEE_8087
-#define Arith_Kind_ASL 1
-#define Sudden_Underflow
--- lib/libc_r/arch/ia64/_atomic_lock.S
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2002 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#if defined(LIBC_RCS) && !defined(lint)
-	.text
-	.asciz "$FreeBSD: src/lib/libc_r/arch/ia64/_atomic_lock.S,v 1.3 2004/02/10 20:45:28 cperciva Exp $"
-#endif /* LIBC_RCS and not lint */
-
-#include <machine/asm.h>
-
-/*
- * Atomicly lock a location with an identifier provided the location
- * is not currently locked.
- *
- * long _atomic_lock(long *);
- */
-ENTRY(_atomic_lock, 1)
-	mov		ar.ccv = r0
-	add		r14 = 1, r0
-	nop		0
-	;;
-	cmpxchg8.acq	r8 = [r32], r14, ar.ccv
-	br.ret.sptk	rp
-END(_atomic_lock)
--- lib/libc/arm/sys/ptrace.S
+++ /dev/null
@@ -1,77 +0,0 @@
-/*	$NetBSD: ptrace.S,v 1.7 2003/08/07 16:42:04 agc Exp $ */
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)ptrace.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/ptrace.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-#include "SYS.h"
-
-ENTRY(ptrace)
-#ifdef _REENTRANT
-	stmfd	sp!, {r0-r3, lr}
-	sub	sp, sp, #4	/* align stack */
-	bl	PIC_SYM(_C_LABEL(__errno), PLT)
-	add	sp, sp, #4	/* unalign stack */
-	mov	r1, #0x00000000
-	str	r1, [r0]
-	ldmfd	sp!, {r0-r3, lr}
-#else
-	stmfd	sp!, {r0, r1}
-#ifdef PIC
-	/* Setup the GOT */
-	ldr	r0, .Lgot
-	add	r0, pc, r0
-.L1:
-	ldr	r1, .Lerrno
-	ldr	r1, [r0, r1]
-#else
-	ldr	r1, .Lerrno
-#endif /* PIC */
-	mov	r0, #0x00000000
-	str	r0, [r1]
-	ldmfd	sp!, {r0, r1}
-#endif /* _REENTRANT */
-
-	SYSTRAP(ptrace)
-	bcs	PIC_SYM(CERROR, PLT)
-	RET
-
-#ifndef _REENTRANT
-#ifdef PIC
-	.align	0
-.Lgot:
-	.word	_C_LABEL(_GLOBAL_OFFSET_TABLE_) + (. - (.L1+4))
-#endif /* PIC */
-
-.Lerrno:
-	.word	PIC_SYM(_C_LABEL(errno), GOT)
-#endif /* !_REENTRANT */
--- lib/libc/arm/sys/brk.S
+++ /dev/null
@@ -1,100 +0,0 @@
-/*	$NetBSD: brk.S,v 1.6 2003/08/07 16:42:04 agc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)brk.s	5.2 (Berkeley) 12/17/90
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/brk.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-#include "SYS.h"
-
-	.globl	_C_LABEL(end)
-	.globl	CURBRK
-
-#ifdef WEAK_ALIAS
-WEAK_ALIAS(brk, _brk)
-#endif
-
-	.data
-	.align	0
-	.globl	_C_LABEL(minbrk)
-	.type	_C_LABEL(minbrk),#object
-_C_LABEL(minbrk):
-	.word	_C_LABEL(end)
-
-/*
- * Change the data segment size
- */
-ENTRY(_brk)
-#ifdef PIC
-	/* Setup the GOT */
-	ldr	r3, .Lgot
-	add	r3, pc, r3
-.L1:
-	ldr	r1, .Lminbrk
-	ldr	r1, [r3, r1]
-#else
-	ldr	r1, .Lminbrk
-#endif
-	/* Get the minimum allowable brk address */
-	ldr	r1, [r1]
-
-	/*
-	 * Valid the address specified and set to the minimum
-	 * if the address is below minbrk.
-	 */
-	cmp	r0, r1
-	movlt	r0, r1
-	mov	r2, r0
-	SYSTRAP(break)
-	bcs	PIC_SYM(CERROR, PLT)
-
-#ifdef PIC
-	ldr	r1, .Lcurbrk
-	ldr	r1, [r3, r1]
-#else
-	ldr	r1, .Lcurbrk
-#endif
-	/* Store the new address in curbrk */
-	str	r2, [r1]
-
-	/* Return 0 for success */
-	mov	r0, #0x00000000
-	RET
-
-	.align	2
-#ifdef PIC
-.Lgot:
-	.word	_GLOBAL_OFFSET_TABLE_ - (.L1+4)
-#endif
-.Lminbrk:
-	.word	PIC_SYM(_C_LABEL(minbrk), GOT)
-.Lcurbrk:
-	.word	PIC_SYM(CURBRK, GOT)
--- lib/libc/arm/sys/fork.S
+++ /dev/null
@@ -1,49 +0,0 @@
-/*	$NetBSD: fork.S,v 1.5 2003/08/07 16:42:04 agc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)fork.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/fork.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-#include "SYS.h"
-
-/*
- * pid = fork();
- *
- * On return from the SWI:
- * r1 == 0 in parent process, r1 == 1 in child process.
- * r0 == pid of child in parent, r0 == pid of parent in child.
- */
-
-_SYSCALL(fork)
-	sub	r1, r1, #1	/* r1 == 0xffffffff if parent, 0 if child */
-	and	r0, r0, r1	/* r0 == 0 if child, else unchanged */
-	RET
--- lib/libc/arm/sys/shmat.S
+++ /dev/null
@@ -1,7 +0,0 @@
-/*	$NetBSD: shmat.S,v 1.1 2000/12/29 20:14:04 bjh21 Exp $	*/
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/shmat.S,v 1.1 2004/05/14 12:04:31 cognet Exp $");
-#include "SYS.h"
-
-RSYSCALL(shmat)
--- lib/libc/arm/sys/syscall.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/*	$NetBSD: syscall.S,v 1.4 2003/08/07 16:42:05 agc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)syscall.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/syscall.S,v 1.1 2004/05/14 12:04:31 cognet Exp $");
-#include "SYS.h"
-
-RSYSCALL(syscall)
--- lib/libc/arm/sys/cerror.S
+++ /dev/null
@@ -1,76 +0,0 @@
-/*	$NetBSD: cerror.S,v 1.5 2003/08/07 16:42:04 agc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)cerror.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/cerror.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-#include "SYS.h"
-
-.globl  _C_LABEL(__error)
-.type   _C_LABEL(__error),%function
-		
-ASENTRY(CERROR)
-#if 1
-	stmfd	sp!, {r4, lr}
-	mov	r4, r0
-	bl	PIC_SYM(_C_LABEL(__error), PLT)
-	str	r4, [r0]
-	mvn	r0, #0x00000000
-	mvn	r1, #0x00000000
-	ldmfd	sp!, {r4, pc}
-#else
-#ifdef PIC
-	/* Setup the GOT */
-	ldr	r3, .Lgot
-	add	r3, pc, r3
-.L1:
-	ldr	r1, .Lerrno
-	ldr	r1, [r3, r1]
-#else
-	ldr	r1, .Lerrno
-#endif /* PIC */
-	str	r0, [r1]
-	mvn	r0, #0x00000000
-	mvn	r1, #0x00000000
-	RET
-
-#if 0
-	.align	0
-.Lgot:
-	.word	_C_LABEL(_GLOBAL_OFFSET_TABLE_) + (. - (.L1+4))
-#endif /* PIC */
-
-	.globl	_C_LABEL(errno)
-
-.Lerrno:
-	.word	PIC_SYM(_C_LABEL(errno), GOT)
-#endif /* _REENTRANT */
--- lib/libc/arm/sys/Makefile.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-# $FreeBSD: src/lib/libc/arm/sys/Makefile.inc,v 1.2 2004/11/05 23:52:05 cognet Exp $
-
-MDASM= Ovfork.S brk.S cerror.S pipe.S ptrace.S sbrk.S shmat.S sigreturn.S syscall.S
-
-# Don't generate default code for these syscalls:
-NOASM=	break.o exit.o ftruncate.o getdomainname.o getlogin.o \
-	lseek.o mmap.o openbsd_poll.o pread.o \
-	pwrite.o setdomainname.o sstk.o truncate.o uname.o vfork.o yield.o
-PSEUDO= _exit.o _getlogin.o
--- lib/libc/arm/sys/sbrk.S
+++ /dev/null
@@ -1,88 +0,0 @@
-/*	$NetBSD: sbrk.S,v 1.7 2003/08/07 16:42:05 agc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)sbrk.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/sbrk.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-#include "SYS.h"
-
-	.globl	_C_LABEL(end)
-
-#ifdef WEAK_ALIAS
-WEAK_ALIAS(sbrk, _sbrk)
-#endif
-
-	.data
-	.align	0
-	.globl	CURBRK
-	.type	CURBRK,#object
-CURBRK:
-	.word	_C_LABEL(end)
-
-/*
- * Change the data segment size
- */
-ENTRY(_sbrk)
-#ifdef PIC
-	/* Setup the GOT */
-	ldr	r3, .Lgot
-	add	r3, pc, r3
-.L1:
-	ldr	r2, .Lcurbrk
-	ldr	r2, [r3, r2]
-#else
-	ldr	r2, .Lcurbrk
-#endif
-	/* Get the current brk address */
-	ldr	r1, [r2]
-
-	/* Calculate new value */
-	mov	r3, r0
-	add	r0, r0, r1
-	SYSTRAP(break)
-	bcs	PIC_SYM(CERROR, PLT)
-
-	/* Store new curbrk value */
-	ldr	r0, [r2]
-	add	r1, r0, r3
-	str	r1, [r2]
-
-	/* Return old curbrk value */
-	RET
-
-	.align	0
-#ifdef PIC
-.Lgot:
-	.word	_GLOBAL_OFFSET_TABLE_ - (.L1+4)
-#endif
-.Lcurbrk:
-	.word	PIC_SYM(CURBRK, GOT)
--- lib/libc/arm/sys/sigreturn.S
+++ /dev/null
@@ -1,42 +0,0 @@
-/*	$NetBSD: __sigreturn14.S,v 1.3 2003/08/07 16:42:03 agc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)sigreturn.s	5.2 (Berkeley) 12/17/90"
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/sigreturn.S,v 1.1 2004/05/14 12:04:31 cognet Exp $");
-#include "SYS.h"
-
-/*
- * We must preserve the state of the registers as the user has set them up.
- */
-
-RSYSCALL(sigreturn)
--- lib/libc/arm/sys/Ovfork.S
+++ /dev/null
@@ -1,57 +0,0 @@
-/*	$NetBSD: Ovfork.S,v 1.6 2003/08/07 16:42:03 agc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)Ovfork.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/Ovfork.S,v 1.1 2004/05/14 12:04:31 cognet Exp $");
-#include "SYS.h"
-
-WARN_REFERENCES(vfork, \
-    "warning: reference to compatibility vfork(); include <unistd.h> for correct reference")
-
-/*
- * pid = vfork();
- *
- * On return from the SWI:
- * r1 == 0 in parent process, r1 == 1 in child process.
- * r0 == pid of child in parent, r0 == pid of parent in child.
- */
-	.text
-	.align	0
-
-ENTRY(vfork)
-	mov	r2, r14
-	SYSTRAP(vfork)
-	bcs	PIC_SYM(CERROR, PLT)
-	sub	r1, r1, #1	/* r1 == 0xffffffff if parent, 0 if child */
-	and	r0, r0, r1	/* r0 == 0 if child, else unchanged */
-	mov	r15, r2
--- lib/libc/arm/sys/pipe.S
+++ /dev/null
@@ -1,50 +0,0 @@
-/*	$NetBSD: pipe.S,v 1.5 2003/08/07 16:42:04 agc Exp $	*/
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	from: @(#)pipe.s	5.1 (Berkeley) 4/23/90
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/arm/sys/pipe.S,v 1.2 2004/11/09 16:49:14 cognet Exp $");
-#include "SYS.h"
-
-#ifdef WEAK_ALIAS
-WEAK_ALIAS(pipe, _pipe)
-WEAK_ALIAS(__sys_pipe, _pipe)
-#endif
-
-ENTRY(_pipe)
-	mov	r2, r0
-	SYSTRAP(pipe)
-	bcs	PIC_SYM(CERROR, PLT)
-	str	r0, [r2, #0x0000]
-	str	r1, [r2, #0x0004]
-	mov	r0, #0x00000000
-	RET
--- lib/libthr/arch/arm/arm/pthread_md.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * Copyright (C) 2005 David Xu <davidxu at freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libthr/arch/arm/arm/pthread_md.c,v 1.1 2005/04/02 01:19:57 davidxu Exp $
- */
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <rtld_tls.h>
-
-#include "pthread_md.h"
-
-struct umtx arm_umtx = {
-	.u_owner = UMTX_UNOWNED
-};
-
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
-	struct tcb *tcb;
-
-	tcb = malloc(sizeof(struct tcb));
-	if (tcb)
-		tcb->tcb_thread = thread;
-	return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
-	free(tcb);
-}
--- lib/libc/arm/stdlib/Makefile.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-#	@(#)Makefile.inc	8.1 (Berkeley) 6/4/93
-# $FreeBSD: src/lib/libc/arm/stdlib/Makefile.inc,v 1.1 2004/05/14 12:04:31 cognet Exp $
-
-MDSRCS+=abs.c div.c labs.c ldiv.c
--- lib/libc/ia64/SYS.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*	$NetBSD: SYS.h,v 1.5 1997/05/02 18:15:15 kleink Exp $ */
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- *
- * $FreeBSD: src/lib/libc/ia64/SYS.h,v 1.4 2002/03/22 23:41:46 obrien Exp $
- */
-
-#include <machine/asm.h>
-#include <sys/syscall.h>
-
-#define	CALLSYS_ERROR(name)					\
-	CALLSYS_NOERROR(name);					\
-	cmp.ne	p6,p0=r0,r10;					\
-(p6)	br.cond.sptk.few .cerror
-
-
-#define	SYSCALL(name)						\
-ENTRY(__sys_ ## name,0);		/* XXX # of args? */	\
-	WEAK_ALIAS(name, __sys_ ## name);			\
-	WEAK_ALIAS(_ ## name, __sys_ ## name);			\
-	CALLSYS_ERROR(name)
-
-#define	SYSCALL_NOERROR(name)					\
-ENTRY(__sys_ ## name,0);		/* XXX # of args? */	\
-	WEAK_ALIAS(name, __sys_ ## name);			\
-	WEAK_ALIAS(_ ## name, __sys_ ## name);			\
-	CALLSYS_NOERROR(name)
-
-
-#define RSYSCALL(name)						\
-	SYSCALL(name);						\
-	br.ret.sptk.few rp;					\
-END(__sys_ ## name)
-
-#define RSYSCALL_NOERROR(name)					\
-	SYSCALL_NOERROR(name);					\
-	br.ret.sptk.few rp;					\
-END(__sys_ ## name)
-
-
-#define	PSEUDO(name)						\
-ENTRY(__sys_ ## name,0);	/* XXX # of args? */		\
-	WEAK_ALIAS(_ ## name, __sys_ ## name);			\
-	CALLSYS_ERROR(name);					\
-	br.ret.sptk.few rp;					\
-END(__sys_ ## name);
-
-#define	PSEUDO_NOERROR(name)					\
-ENTRY(__sys_ ## name,0);		/* XXX # of args? */	\
-	WEAK_ALIAS(_ ## name, __sys_ ## name);			\
-	CALLSYS_NOERROR(name);					\
-	br.ret.sptk.few rp;					\
-END(__sys_ ## name);
--- lib/libc/ia64/Makefile.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-# $FreeBSD: src/lib/libc/ia64/Makefile.inc,v 1.4 2005/01/15 05:23:58 das Exp $
-#
-# Machine dependent definitions for the alpha architecture.
-#
-
-#
-# IA-64 is 64-bit, so it doesn't need quad functions:
-#
-NO_QUAD=
-
-# Long double is 80 bits
-GDTOASRCS+=strtopx.c
-MDSRCS+=machdep_ldisx.c
--- lib/libc/ia64/_fpmath.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*-
- * Copyright (c) 2003 Mike Barcroft <mike at FreeBSD.org>
- * Copyright (c) 2002, 2003 David Schultz <das at FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc/ia64/_fpmath.h,v 1.6 2005/03/07 04:55:40 das Exp $
- */
-
-#include <sys/endian.h>
-
-union IEEEl2bits {
-	long double	e;
-	struct {
-#if _BYTE_ORDER == _LITTLE_ENDIAN
-		unsigned int	manl	:32;
-		unsigned int	manh	:32;
-		unsigned int	exp	:15;
-		unsigned int	sign	:1;
-		unsigned long	junk	:48;
-#else /* _BIG_ENDIAN */
-		unsigned long	junk	:48;
-		unsigned int	sign	:1;
-		unsigned int	exp	:15;
-		unsigned int	manh	:32;
-		unsigned int	manl	:32;
-#endif
-	} bits;
-};
-
-#if _BYTE_ORDER == _LITTLE_ENDIAN
-#define	LDBL_NBIT	0x80000000
-#define	mask_nbit_l(u)	((u).bits.manh &= ~LDBL_NBIT)
-#else /* _BIG_ENDIAN */
-/*
- * XXX This doesn't look right.  Very few machines have a different
- *     endianness for integers and floating-point, and in nextafterl()
- *     we assume that none do.  If you have an environment for testing
- *     this, please let me know. --das
- */
-#define	LDBL_NBIT	0x80
-#define	mask_nbit_l(u)	((u).bits.manh &= ~LDBL_NBIT)
-#endif
-
-#define	LDBL_MANH_SIZE	32
-#define	LDBL_MANL_SIZE	32
-
-#define	LDBL_TO_ARRAY32(u, a) do {			\
-	(a)[0] = (uint32_t)(u).bits.manl;		\
-	(a)[1] = (uint32_t)(u).bits.manh;		\
-} while(0)
--- lib/libc/ia64/arith.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * MD header for contrib/gdtoa
- *
- * $FreeBSD: src/lib/libc/ia64/arith.h,v 1.2 2003/05/08 13:50:43 das Exp $
- */
-
-/*
- * NOTE: The definitions in this file must be correct or strtod(3) and
- * floating point formats in printf(3) will break!  The file can be
- * generated by running contrib/gdtoa/arithchk.c on the target
- * architecture.  See contrib/gdtoa/gdtoaimp.h for details.
- */
-
-#include <machine/endian.h>
-
-#if _BYTE_ORDER == _LITTLE_ENDIAN
-
-#define IEEE_8087
-#define Arith_Kind_ASL 1
-#define Long int
-#define Intcast (int)(long)
-#define Double_Align
-#define X64_bit_pointers
-
-#else /* _BYTE_ORDER == _LITTLE_ENDIAN */
-
-#define IEEE_MC68k
-#define Arith_Kind_ASL 2
-#define Long int
-#define Intcast (int)(long)
-#define Double_Align
-#define X64_bit_pointers
-#ifdef gcc_bug	/* XXX Why does arithchk report sudden underflow here? */
-#define Sudden_Underflow
-#endif
-
-#endif
--- lib/libc/ia64/stdlib/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-# $FreeBSD: src/lib/libc/ia64/stdlib/Makefile.inc,v 1.1 2000/10/14 17:01:12 dfr Exp $
-
-MDSRCS+=	abs.c div.c labs.c ldiv.c
--- lib/libthr/arch/ia64/ia64/pthread_md.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2003 Daniel Eischen <deischen at freebsd.org>
- * Copyright (c) 2005 David Xu <davidxu at freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libthr/arch/ia64/ia64/pthread_md.c,v 1.1 2005/04/02 01:19:58 davidxu Exp $
- */
-
-#include <sys/types.h>
-#include <rtld_tls.h>
-
-#include "pthread_md.h"
-
-/*
- * The constructors.
- */
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
-	struct tcb *tcb;
-	void *oldtls;
-
-	if (initial)
-		oldtls = _tp;
-	else
-		oldtls = NULL;
-	tcb = _rtld_allocate_tls(oldtls, sizeof(struct tcb), 16);
-	if (tcb)
-		tcb->tcb_thread = thread;
-	return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
-	_rtld_free_tls(tcb, sizeof(tcb), 16);
-}
--- lib/libc/ia64/gen/fpgetmask.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-
- * Copyright (c) 2001 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/fpgetmask.c,v 1.4 2003/10/22 09:00:07 marcel Exp $");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-
-fp_except_t
-fpgetmask(void)
-{
-	u_int64_t fpsr;
-
-	__asm __volatile("mov %0=ar.fpsr" : "=r" (fpsr));
-	return (~fpsr & 0x3d);
-}
--- lib/libc/ia64/gen/__divsf3.S
+++ /dev/null
@@ -1,116 +0,0 @@
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__divsf3.S,v 1.2 2003/03/03 01:09:45 obrien Exp $");
-
-ENTRY(__divsf3, 0)
-{ .mfi
-  // a is in f8
-  // b is in f9
-
-  // general registers used: r31, r32, r33, r34
-  // predicate registers used: p6
-  // floating-point registers used: f6, f7, f8
-
-  nop.m 0
-  // load a, the first argument, in f6
-  mov f6=f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // load b, the second argument, in f7
-  mov f7=f9
-  nop.i 0;;
-} { .mfi
-
-  // BEGIN SINGLE PRECISION LATENCY-OPTIMIZED DIVIDE ALGORITHM
-
-  nop.m 0
-  // Step (1)
-  // y0 = 1 / b in f8
-  frcpa.s0 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (2)
-  // q0 = a * y0 in f6
-  (p6) fma.s1 f6=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (3)
-  // e0 = 1 - b * y0 in f7
-  (p6) fnma.s1 f7=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (4)
-  // q1 = q0 + e0 * q0 in f6
-  (p6) fma.s1 f6=f7,f6,f6
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (5)
-  // e1 = e0 * e0 in f7
-  (p6) fma.s1 f7=f7,f7,f0
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (6)
-  // q2 = q1 + e1 * q1 in f6
-  (p6) fma.s1 f6=f7,f6,f6
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (7)
-  // e2 = e1 * e1 in f7
-  (p6) fma.s1 f7=f7,f7,f0
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (8)
-  // q3 = q2 + e2 * q2 in f6
-  (p6) fma.d.s1 f6=f7,f6,f6
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (9)
-  // q3' = q3 in f8
-  (p6) fma.s.s0 f8=f6,f1,f0
-  nop.i 0;;
-
-  // END SINGLE PRECISION LATENCY-OPTIMIZED DIVIDE ALGORITHM
-
-} { .mmb
-  nop.m 0
-  nop.m 0
-  // return
-  br.ret.sptk b0;;
-}
-
-END(__divsf3)
--- lib/libc/ia64/gen/__divsi3.S
+++ /dev/null
@@ -1,125 +0,0 @@
-.file "__divsi3.s"
-
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__divsi3.S,v 1.2 2003/03/03 01:09:45 obrien Exp $");
-
-.section .text
-
-// 32-bit signed integer divide
-
-.proc __divsi3#
-.align 32
-.global __divsi3#
-.align 32
-
-__divsi3:
-
-{ .mii
-  alloc r31=ar.pfs,2,0,0,0
-  nop.i 0
-  nop.i 0;;
-} { .mii
-  nop.m 0
-
-  // 32-BIT SIGNED INTEGER DIVIDE BEGINS HERE
-
-  // general register used:
-  //    r32 - 32-bit signed integer dividend
-  //    r33 - 32-bit signed integer divisor
-  //    r8 - 32-bit signed integer result
-  //    r2 - scratch register
-  // floating-point registers used: f6, f7, f8, f9
-  // predicate registers used: p6
-
-  sxt4 r32=r32
-  sxt4 r33=r33;;
-} { .mmb
-  setf.sig f6=r32
-  setf.sig f7=r33
-  nop.b 0;;
-} { .mfi
-  nop.m 0
-  fcvt.xf f6=f6
-  nop.i 0
-} { .mfi
-  nop.m 0
-  fcvt.xf f7=f7
-  mov r2 = 0x0ffdd;;
-} { .mfi
-  setf.exp f9 = r2
-  // (1) y0
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-}  { .mfi
-  nop.m 0
-  // (2) q0 = a * y0
-  (p6) fma.s1 f6=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // (3) e0 = 1 - b * y0
-  (p6) fnma.s1 f7=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (4) q1 = q0 + e0 * q0
-  (p6) fma.s1 f6=f7,f6,f6
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // (5) e1 = e0 * e0 + 2^-34
-  (p6) fma.s1 f7=f7,f7,f9
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (6) q2 = q1 + e1 * q1
-  (p6) fma.s1 f8=f7,f6,f6
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (7) q = trunc(q2)
-  fcvt.fx.trunc.s1 f8=f8
-  nop.i 0;;
-} { .mmi
-  // quotient will be in the least significant 32 bits of r8 (if b != 0)
-  getf.sig r8=f8
-  nop.m 0
-  nop.i 0;;
-}
-
-  // 32-BIT SIGNED INTEGER DIVIDE ENDS HERE
-
-{ .mmb
-  nop.m 0
-  nop.m 0
-  br.ret.sptk b0;;
-}
-
-.endp __divsi3
--- lib/libc/ia64/gen/_setjmp.S
+++ /dev/null
@@ -1,310 +0,0 @@
-//
-// Copyright (c) 1999, 2000
-// Intel Corporation.
-// All rights reserved.
-// 
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-// 
-// 1. Redistributions of source code must retain the above copyright
-//    notice, this list of conditions and the following disclaimer.
-// 
-// 2. Redistributions in binary form must reproduce the above copyright
-//   notice, this list of conditions and the following disclaimer in the
-//    documentation and/or other materials provided with the distribution.
-// 
-// 3. All advertising materials mentioning features or use of this software
-//    must display the following acknowledgement:
-// 
-//    This product includes software developed by Intel Corporation and
-//    its contributors.
-// 
-// 4. Neither the name of Intel Corporation or its contributors may be
-//    used to endorse or promote products derived from this software
-//    without specific prior written permission.
-// 
-// THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION AND CONTRIBUTORS ``AS IS''
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED.  IN NO EVENT SHALL INTEL CORPORATION OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-// THE POSSIBILITY OF SUCH DAMAGE.
-// 
-//
-
-//
-// Module Name:
-//
-//  setjmp.s
-//
-// Abstract:
-//
-//  Contains an implementation of setjmp and longjmp for the
-//  IA-64 architecture.
-
-    .file   "setjmp.s"
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/_setjmp.S,v 1.11 2003/07/25 22:36:48 marcel Exp $");
-
-#define     LOCORE
-#include    <machine/setjmp.h>
-
-// int _setjmp(struct jmp_buffer *)
-//
-//  Setup a non-local goto.
-//
-// Description:
-//
-//  SetJump stores the current register set in the area pointed to
-//  by "save".  It returns zero.  Subsequent calls to "LongJump" will
-//  restore the registers and return non-zero to the same location.
-//
-// On entry, r32 contains the pointer to the jmp_buffer
-//
-
-ENTRY(_setjmp, 1)
-    add     r10 = J_PREDS, r32  // skip Unats & pfs save area
-    add     r11 = J_BSP, r32
-    //
-    //  save immediate context
-    //
-    mov     r2 = ar.bsp         // save backing store pointer
-    mov     r3 = pr             // save predicates
-    flushrs
-    ;;
-    //
-    // save user Unat register
-    //
-    mov     r16 = ar.lc         // save loop count register
-    mov     r14 = ar.unat       // save user Unat register
-
-    st8     [r10] = r3, J_LC-J_PREDS
-    st8     [r11] = r2, J_R4-J_BSP
-    ;;
-    st8     [r10] = r16, J_R5-J_LC
-    st8     [r32] = r14, J_NATS // Note: Unat at the 
-                                // beginning of the save area
-    mov     r15 = ar.pfs
-    ;;
-    //
-    //  save preserved general registers & NaT's
-    //
-    .mem.offset 0,0
-    st8.spill   [r11] = r4, J_R6-J_R4
-    .mem.offset 8,0
-    st8.spill   [r10] = r5, J_R7-J_R5
-    ;;
-    .mem.offset 16,0
-    st8.spill   [r11] = r6, J_SP-J_R6
-    .mem.offset 24,0
-    st8.spill   [r10] = r7, J_F3-J_R7 
-    ;;
-    st8.spill   [r11] = sp, J_F2-J_SP
-    mov	    r16 = ar.rsc
-    ;;
-    //
-    // save spilled Unat and pfs registers
-    //
-    mov     r2 = ar.unat        // save Unat register after spill
-    mov	ar.rsc = r0
-    ;;
-    st8     [r32] = r2, J_PFS-J_NATS    // save unat for spilled regs
-    mov     r17 = ar.rnat
-    ;;
-    st8     [r32] = r15, J_RNAT-J_PFS	// save pfs
-    mov	    ar.rsc = r16
-    //
-    //  save floating registers 
-    //
-    stf.spill   [r11] = f2, J_F4-J_F2
-    stf.spill   [r10] = f3, J_F5-J_F3 
-    ;;
-    stf.spill   [r11] = f4, J_F16-J_F4
-    stf.spill   [r10] = f5, J_F17-J_F5 
-    ;;
-    stf.spill   [r11] = f16, J_F18-J_F16
-    stf.spill   [r10] = f17, J_F19-J_F17 
-    ;;
-    stf.spill   [r11] = f18, J_F20-J_F18
-    stf.spill   [r10] = f19, J_F21-J_F19 
-    ;;
-    stf.spill   [r11] = f20, J_F22-J_F20
-    stf.spill   [r10] = f21, J_F23-J_F21 
-    ;;
-    stf.spill   [r11] = f22, J_F24-J_F22
-    stf.spill   [r10] = f23, J_F25-J_F23 
-    ;;
-    stf.spill   [r11] = f24, J_F26-J_F24
-    stf.spill   [r10] = f25, J_F27-J_F25 
-    ;;
-    stf.spill   [r11] = f26, J_F28-J_F26
-    stf.spill   [r10] = f27, J_F29-J_F27 
-    ;;
-    stf.spill   [r11] = f28, J_F30-J_F28
-    stf.spill   [r10] = f29, J_F31-J_F29 
-    ;;
-    stf.spill   [r11] = f30, J_FPSR-J_F30
-    stf.spill   [r10] = f31, J_B0-J_F31     // size of f31 + fpsr
-    ;;
-    st8     [r32] = r17
-    //
-    // save FPSR register & branch registers
-    //
-    mov     r2 = ar.fpsr    // save fpsr register
-    mov     r3 = b0 
-    ;;
-    st8     [r11] = r2, J_B1-J_FPSR
-    st8     [r10] = r3, J_B2-J_B0
-    mov     r2 = b1
-    mov     r3 = b2 
-    ;;
-    st8     [r11] = r2, J_B3-J_B1
-    st8     [r10] = r3, J_B4-J_B2
-    mov     r2 = b3
-    mov     r3 = b4 
-    ;;
-    st8     [r11] = r2, J_B5-J_B3
-    st8     [r10] = r3
-    mov     r2 = b5 
-    ;;
-    st8     [r11] = r2
-    ;;
-    //
-    // return
-    //
-    mov     r8 = r0         // return 0 from setjmp
-    mov     ar.unat = r14   // restore unat
-    br.ret.sptk b0
-
-END(_setjmp)
-
-
-//
-// void _longjmp(struct jmp_buffer *, int val)
-//
-//  Perform a non-local goto.
-//
-// Description:
-//
-//  LongJump initializes the register set to the values saved by a
-//  previous 'SetJump' and jumps to the return location saved by that
-//  'SetJump'.  This has the effect of unwinding the stack and returning
-//  for a second time to the 'SetJump'.
-//
-
-	WEAK_ALIAS(_longjmp,___longjmp)
-ENTRY(___longjmp, 2)
-    mov     r14 = ar.rsc        // get user RSC conf
-    mov     r8 = r33            // return value
-    add     r10 = J_PFS, r32    // get address of pfs
-    ;;
-    mov     ar.rsc = r0
-    add     r11 = J_NATS, r32
-    add     r17 = J_RNAT, r32
-    ;;
-    ld8     r15 = [r10], J_BSP-J_PFS    // get pfs
-    ld8     r2 = [r11], J_LC-J_NATS     // get unat for spilled regs
-    mov     r31 = r32
-    ;;
-    loadrs
-    mov     ar.unat = r2
-    cmp.eq  p6,p0=0,r8			// Return value 0?
-    ;;
-    ld8     r16 = [r10], J_PREDS-J_BSP  // get backing store pointer
-    ld8     r17 = [r17]			// ar.rnat
-    mov     ar.pfs = r15
-    ;;
-    mov     ar.bspstore = r16
-(p6) add    r8 = 1, r0
-    ;;
-    mov     ar.rnat = r17
-    mov     ar.rsc = r14        // restore RSC conf
-
-    ld8     r3 = [r11], J_R4-J_LC       // get lc register
-    ld8     r2 = [r10], J_R5-J_PREDS    // get predicates
-    ;;
-    mov     pr = r2, -1
-    mov     ar.lc = r3
-    //
-    //  restore preserved general registers & NaT's
-    //
-    ld8.fill    r4 = [r11], J_R6-J_R4
-    ;;
-    ld8.fill    r5 = [r10], J_R7-J_R5 
-    ld8.fill    r6 = [r11], J_SP-J_R6
-    ;;
-    ld8.fill    r7 = [r10], J_F2-J_R7
-    ld8.fill    sp = [r11], J_F3-J_SP
-    ;;
-    //
-    //  restore floating registers 
-    //
-    ldf.fill    f2 = [r10], J_F4-J_F2
-    ldf.fill    f3 = [r11], J_F5-J_F3 
-    ;;
-    ldf.fill    f4 = [r10], J_F16-J_F4
-    ldf.fill    f5 = [r11], J_F17-J_F5 
-    ;;
-    ldf.fill    f16 = [r10], J_F18-J_F16
-    ldf.fill    f17 = [r11], J_F19-J_F17
-    ;;
-    ldf.fill    f18 = [r10], J_F20-J_F18
-    ldf.fill    f19 = [r11], J_F21-J_F19
-    ;;
-    ldf.fill    f20 = [r10], J_F22-J_F20
-    ldf.fill    f21 = [r11], J_F23-J_F21
-    ;;
-    ldf.fill    f22 = [r10], J_F24-J_F22
-    ldf.fill    f23 = [r11], J_F25-J_F23 
-    ;;
-    ldf.fill    f24 = [r10], J_F26-J_F24
-    ldf.fill    f25 = [r11], J_F27-J_F25
-    ;;
-    ldf.fill    f26 = [r10], J_F28-J_F26
-    ldf.fill    f27 = [r11], J_F29-J_F27
-    ;;
-    ldf.fill    f28 = [r10], J_F30-J_F28
-    ldf.fill    f29 = [r11], J_F31-J_F29 
-    ;;
-    ldf.fill    f30 = [r10], J_FPSR-J_F30
-    ldf.fill    f31 = [r11], J_B0-J_F31 ;;
-
-    //
-    // restore branch registers and fpsr
-    //
-    ld8     r16 = [r10], J_B1-J_FPSR    // get fpsr
-    ld8     r17 = [r11], J_B2-J_B0      // get return pointer
-    ;;
-    mov     ar.fpsr = r16
-    mov     b0 = r17
-    ld8     r2 = [r10], J_B3-J_B1
-    ld8     r3 = [r11], J_B4-J_B2
-    ;;
-    mov     b1 = r2
-    mov     b2 = r3
-    ld8     r2 = [r10], J_B5-J_B3
-    ld8     r3 = [r11]
-    ;;
-    mov     b3 = r2
-    mov     b4 = r3
-    ld8     r2 = [r10]
-    ld8     r21 = [r31]         // get user unat
-    ;;
-    mov     b5 = r2
-    mov     ar.unat = r21
-
-    //
-    // invalidate ALAT
-    //
-    invala ;;
-
-    br.ret.sptk b0
-
-END(___longjmp)
--- lib/libc/ia64/gen/infinity.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*	$NetBSD: infinity.c,v 1.1 1995/02/10 17:50:23 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/infinity.c,v 1.7 2003/02/26 16:04:34 mike Exp $");
-
-#include <sys/endian.h>
-#include <math.h>
-
-/* bytes for +Infinity on an ia64 (IEEE double format) */
-#if _BYTE_ORDER == _LITTLE_ENDIAN
-const union __infinity_un __infinity = { { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f } };
-#else /* _BIG_ENDIAN */
-const union __infinity_un __infinity = { { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 } };
-#endif
-
-/* bytes for NaN */
-#if _BYTE_ORDER == _LITTLE_ENDIAN
-const union __nan_un __nan = { { 0, 0, 0xc0, 0xff } };
-#else /* _BIG_ENDIAN */
-const union __nan_un __nan = { { 0xff, 0xc0, 0, 0 } };
-#endif
--- lib/libc/ia64/gen/sigsetjmp.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/*	$NetBSD: sigsetjmp.S,v 1.2 1996/10/17 03:08:07 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/sigsetjmp.S,v 1.7 2003/03/03 01:09:45 obrien Exp $");
-
-#define LOCORE
-#include <machine/setjmp.h>
-
-/*
- * C library -- sigsetjmp, siglongjmp
- *
- *	siglongjmp(a,v)
- * will generate a "return(v)" from
- * the last call to
- *	sigsetjmp(a, mask)
- * by restoring registers from the stack.
- * If `mask' is non-zero, the previous signal
- * state will be restored.
- */
-
-ENTRY(sigsetjmp, 2)
-	add	r14=J_SIGMASK,in0		// place to save mask
-	cmp.ne	p6,p7=0,in1			// save signal state?
-	;;
-	st8	[r14]=in1			// save mask value
-(p6)	br.cond.dptk.many setjmp
-(p7)	br.cond.dpnt.many _setjmp		
-END(sigsetjmp)
-
-	WEAK_ALIAS(siglongjmp,__siglongjmp)
-ENTRY(__siglongjmp, 2)
-	add	r14=J_SIGMASK,in0		// address of mask value
-	;;
-	ld8	r14=[r14]
-	;;
-	cmp.ne	p6,p7=0,r14			// did we save signals?
-(p6)	br.cond.dptk.many longjmp
-(p7)	br.cond.dpnt.many _longjmp		
-END(__siglongjmp)
--- lib/libc/ia64/gen/setjmp.S
+++ /dev/null
@@ -1,82 +0,0 @@
-/*	$NetBSD: setjmp.S,v 1.3 1997/12/05 02:06:27 thorpej Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/setjmp.S,v 1.10 2003/03/05 03:30:54 marcel Exp $");
-
-#define     LOCORE
-#include    <machine/setjmp.h>
-
-/*
- * C library -- setjmp, longjmp
- *
- *	longjmp(a,v)
- * will generate a "return(v)" from
- * the last call to
- *	setjmp(a)
- * by restoring registers from the stack,
- * and the previous signal state.
- */
-
-ENTRY(setjmp, 1)
-	alloc	loc0=ar.pfs,1,2,3,0
-	mov	loc1=rp
-	;;
-	mov	out0=1				// how = SIG_BLOCK
-	mov	out1=0				// set = NULL
-	add	out2=J_SIGSET,in0		// oset = &jb[J_SIGSET]
-	br.call.sptk.few rp=__sys_sigprocmask
-	;;
-	mov	rp=loc1
-	mov	r14=loc0
-	;;
-	alloc	r15=ar.pfs,1,0,0,0		// drop register frame
-	;;
-	mov	ar.pfs=r14			// restore ar.pfs
-	br.sptk.many _setjmp			// finish saving state
-END(setjmp)
-
-	WEAK_ALIAS(longjmp,__longjmp)
-ENTRY(__longjmp, 2)
-	alloc	loc0=ar.pfs,2,2,3,0
-	mov	loc1=rp
-	;; 
-	mov	out0=3				// how = SIG_SETMASK
-	add	out1=J_SIGSET,in0		// set = &jb[J_SIGSET]
-	mov	out2=0				// oset = NULL
-	br.call.sptk.few rp=__sys_sigprocmask
-	;;
-	mov	rp=loc1
-	mov	r14=loc0
-	;;
-	alloc	r15=ar.pfs,2,0,0,0		// drop register frame
-	;;
-	mov	ar.pfs=r14			// restore ar.pfs
-	br.sptk.many _longjmp			// finish restoring state
-END(__longjmp)
--- lib/libc/ia64/gen/flt_rounds.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Written by J.T. Conklin, Apr 10, 1995
- * Public domain.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/flt_rounds.c,v 1.1 2004/07/19 08:17:24 das Exp $");
-
-#include <float.h>
-
-static const int map[] = {
-	1,	/* round to nearest */
-	3,	/* round to zero */
-	2,	/* round to negative infinity */
-	0	/* round to positive infinity */
-};
-
-int
-__flt_rounds(void)
-{
-	int x;
-
-	__asm("mov %0=ar.fpsr" : "=r" (x));
-        return (map[(x >> 10) & 0x03]);
-}
--- lib/libc/ia64/gen/__umoddi3.S
+++ /dev/null
@@ -1,156 +0,0 @@
-.file "__umoddi3.s"
-
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__umoddi3.S,v 1.3 2003/03/03 01:09:45 obrien Exp $");
-
-.section .text
-
-  // 64-bit unsigned integer remainder
-
-.proc __umoddi3#
-.align 32
-.global __umoddi3#
-.align 32
-
-__umoddi3:
-
-{ .mii
-  alloc r31=ar.pfs,3,0,0,0
-  nop.i 0
-  nop.i 0
-} { .mmb
-
-  // 64-BIT UNSIGNED INTEGER REMAINDER BEGINS HERE
-
-  // general register used:
-  //    r32 - 64-bit unsigned integer dividend
-  //    r33 - 64-bit unsigned integer divisor
-  //    r8 - 64-bit unsigned integer result
-  // floating-point registers used: f6, f7, f8, f9, f10, f11, f12
-  // predicate registers used: p6
-
-  setf.sig f12=r32  // holds an in integer form
-  setf.sig f7=r33
-  nop.b 0;;
-} { .mfi
-  // get 2's complement of b
-  sub r33=r0,r33
-  fcvt.xuf.s1 f6=f12
-  nop.i 0
-} { .mfi
-  nop.m 0
-  fcvt.xuf.s1 f7=f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (1)
-  // y0 = 1 / b in f8
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (2)
-  // q0 = a * y0 in f10
-  (p6) fma.s1 f10=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (3)
-  // e0 = 1 - b * y0 in f9
-  (p6) fnma.s1 f9=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (4)
-  // q1 = q0 + e0 * q0 in f10
-  (p6) fma.s1 f10=f9,f10,f10
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (5)
-  // e1 = e0 * e0 in f11
-  (p6) fma.s1 f11=f9,f9,f0
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (6)
-  // y1 = y0 + e0 * y0 in f8
-  (p6) fma.s1 f8=f9,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (7)
-  // q2 = q1 + e1 * q1 in f9
-  (p6) fma.s1 f9=f11,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (8)
-  // y2 = y1 + e1 * y1 in f8
-  (p6) fma.s1 f8=f11,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (9)
-  // r2 = a - b * q2 in f10
-  (p6) fnma.s1 f10=f7,f9,f6
-  nop.i 0;;
-} { .mfi
-  // f7=-b
-  setf.sig f7=r33
-  // Step (10)
-  // q3 = q2 + r2 * y2 in f8
-  (p6) fma.s1 f8=f10,f8,f9
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (11) q = trunc(q3)
-  fcvt.fxu.trunc.s1 f8=f8
-  nop.i 0;;
-}  { .mfi
-  nop.m 0
-  // (12) r = a + (-b) * q
-  xma.l f8=f8,f7,f12
-  nop.i 0;;
-}  { .mib
-  getf.sig r8=f8
-  nop.i 0
-  nop.b 0
-}
-
-  // 64-BIT UNSIGNED INTEGER REMAINDER ENDS HERE
-
-{ .mib
-  nop.m 0
-  nop.i 0
-  br.ret.sptk b0;;
-}
-
-.endp __umoddi3
--- lib/libc/ia64/gen/__udivdi3.S
+++ /dev/null
@@ -1,144 +0,0 @@
-.file "__udivdi3.s"
-
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__udivdi3.S,v 1.2 2003/03/03 01:09:45 obrien Exp $");
-
-.section .text
-.proc __udivdi3#
-.align 32
-.global __udivdi3#
-.align 32
-
-// 64-bit unsigned integer divide
-
-__udivdi3:
-
-{ .mii
-  alloc r31=ar.pfs,2,0,0,0
-  nop.i 0
-  nop.i 0;;
-}
-
-{ .mmi
-
-  // 64-BIT UNSIGNED INTEGER DIVIDE BEGINS HERE
-
-  setf.sig f8=r32
-  setf.sig f9=r33
-  nop.i 0;;
-} { .mfb
-  nop.m 0
-  fma.s1 f6=f8,f1,f0
-  nop.b 0
-} { .mfb
-  nop.m 0
-  fma.s1 f7=f9,f1,f0
-  nop.b 0;;
-} { .mfi
-  nop.m 0
-  // Step (1)
-  // y0 = 1 / b in f8
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (2)
-  // e0 = 1 - b * y0 in f9
-  (p6) fnma.s1 f9=f7,f8,f1
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (3)
-  // q0 = a * y0 in f10
-  (p6) fma.s1 f10=f6,f8,f0
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (4)
-  // e1 = e0 * e0 in f11
-  (p6) fma.s1 f11=f9,f9,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (5)
-  // q1 = q0 + e0 * q0 in f10
-  (p6) fma.s1 f10=f9,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (6)
-  // y1 = y0 + e0 * y0 in f8
-  (p6) fma.s1 f8=f9,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (7)
-  // q2 = q1 + e1 * q1 in f9
-  (p6) fma.s1 f9=f11,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (8)
-  // y2 = y1 + e1 * y1 in f8
-  (p6) fma.s1 f8=f11,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (9)
-  // r2 = a - b * q2 in f10
-  (p6) fnma.s1 f10=f7,f9,f6
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (10)
-  // q3 = q2 + r2 * y2 in f8
-  (p6) fma.s1 f8=f10,f8,f9
-  nop.i 0;;
-} { .mfb
-  nop.m 0
-  // (11) q = trunc(q3)
-  fcvt.fxu.trunc.s1 f8=f8
-  nop.b 0;;
-} { .mmi
-  // quotient will be in r8 (if b != 0)
-  getf.sig r8=f8
-  nop.m 0
-  nop.i 0;;
-}
-
-  // 64-BIT UNSIGNED INTEGER DIVIDE ENDS HERE
-
-{ .mmb
-  nop.m 0
-  nop.m 0
-  br.ret.sptk b0;;
-}
-
-.endp __udivdi3
--- lib/libc/ia64/gen/__modsi3.S
+++ /dev/null
@@ -1,132 +0,0 @@
-.file "__modsi3.s"
-
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__modsi3.S,v 1.2 2003/03/03 01:09:45 obrien Exp $");
-
-.section .text
-
-// 32-bit signed integer remainder
-
-.proc __modsi3#
-.align 32
-.global __modsi3#
-.align 32
-
-__modsi3:
-
-{ .mii
-  alloc r31=ar.pfs,2,0,0,0
-  nop.i 0
-  nop.i 0;;
-} { .mii
-  nop.m 0
-
-  // 32-BIT SIGNED INTEGER REMAINDER BEGINS HERE
-
-  // general register used:
-  //    r32 - 32-bit signed integer dividend
-  //    r33 - 32-bit signed integer divisor
-  //    r8 - 32-bit signed integer result
-  //    r2 - scratch register
-  // floating-point registers used: f6, f7, f8, f9, f10, f11
-  // predicate registers used: p6
-
-  sxt4 r32=r32
-  sxt4 r33=r33;;
-} { .mmb
-  setf.sig f11=r32
-  setf.sig f7=r33
-  nop.b 0;;
-} { .mfi
-  // get 2's complement of b
-  sub r33=r0,r33
-  fcvt.xf f6=f11
-  nop.i 0
-} { .mfi
-  nop.m 0
-  fcvt.xf f7=f7
-  mov r2 = 0x0ffdd;;
-} { .mfi
-  setf.exp f9 = r2
-  // (1) y0
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (2) q0 = a * y0
-  (p6) fma.s1 f10=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // (3) e0 = 1 - b * y0
-  (p6) fnma.s1 f8=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  // 2's complement of b
-  setf.sig f7=r33
-  // (4) q1 = q0 + e0 * q0
-  (p6) fma.s1 f10=f8,f10,f10
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // (5) e1 = e0 * e0 + 2^-34
-  (p6) fma.s1 f8=f8,f8,f9
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (6) q2 = q1 + e1 * q1
-  (p6) fma.s1 f8=f8,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (7) q = trunc(q2)
-  fcvt.fx.trunc.s1 f8=f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (8) r = a + (-b) * q
-  xma.l f8=f8,f7,f11
-  nop.i 0;;
-}  { .mmi
-  // remainder will be in the least significant 32 bits of r8 (if b != 0)
-  getf.sig r8=f8
-  nop.m 0
-  nop.i 0;;
-}
-
-  // 32-BIT SIGNED INTEGER REMAINDER ENDS HERE
-
-{ .mmb
-  nop.m 0
-  nop.m 0
-  br.ret.sptk b0;;
-}
-
-.endp __modsi3
--- lib/libc/ia64/gen/fpsetround.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc/ia64/gen/fpsetround.c,v 1.1 2003/01/11 07:24:54 marcel Exp $
- */
-
-#include <sys/types.h>
-#include <ieeefp.h>
-
-fp_rnd_t
-fpsetround(fp_rnd_t rnd)
-{
-	uint64_t fpsr;
-	fp_rnd_t prev;
-
-	__asm __volatile("mov %0=ar.fpsr" : "=r"(fpsr));
-	prev = (fp_rnd_t)((fpsr >> 10) & 3);
-	fpsr = (fpsr & ~0xC00ULL) | ((unsigned int)rnd << 10);
-	__asm __volatile("mov ar.fpsr=%0" :: "r"(fpsr));
-	return (prev);
-}
--- lib/libc/ia64/gen/fabs.S
+++ /dev/null
@@ -1,33 +0,0 @@
-/*-
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/fabs.S,v 1.2 2003/03/03 01:09:45 obrien Exp $");
-
-ENTRY(fabs, 1)
-	fabs	fret0=farg0
-	br.ret.sptk.few rp
-END(fabs)
--- lib/libc/ia64/gen/signalcontext.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/signalcontext.c,v 1.2 2004/01/06 19:40:28 nectar Exp $");
-
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <machine/fpu.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <strings.h>
-
-struct fdesc {
-	uint64_t ip;
-	uint64_t gp;
-};
-
-typedef void (*handler_t)(uint64_t, uint64_t, uint64_t);
-
-static __inline uint64_t *
-spill(uint64_t *bsp, uint64_t arg)
-{
-	*bsp++ = arg;
-	if (((intptr_t)bsp & 0x1ff) == 0x1f8)
-		*bsp++ = 0;
-	return (bsp);
-}
-
-static void
-ctx_wrapper(ucontext_t *ucp, handler_t func, uint64_t *args)
-{
-
-	(*func)(args[0], args[1], args[2]);
-	if (ucp->uc_link == NULL)
-		exit(0);
-	setcontext((const ucontext_t *)ucp->uc_link);
-	/* should never get here */
-	abort();
-	/* NOTREACHED */
-}
-
-__weak_reference(__signalcontext, signalcontext);
-
-int
-__signalcontext(ucontext_t *ucp, int sig, __sighandler_t *func)
-{
-	uint64_t *args, *bsp;
-	siginfo_t *sig_si;
-	ucontext_t *sig_uc;
-	uint64_t sp;
-
-	/* Bail out if we don't have a valid ucontext pointer. */
-	if (ucp == NULL)
-		abort();
-
-	/*
-	 * Build a signal frame and copy the arguments of signal handler
-	 * 'func' onto the (memory) stack. We only need 3 arguments, but
-	 * we create room for 4 so that we are 16-byte aligned.
-	 */
-	sp = (ucp->uc_mcontext.mc_special.sp - sizeof(ucontext_t)) & ~15UL;
-	sig_uc = (ucontext_t*)sp;
-	bcopy(ucp, sig_uc, sizeof(*sig_uc));
-	sp = (sp - sizeof(siginfo_t)) & ~15UL;
-	sig_si = (siginfo_t*)sp;
-	bzero(sig_si, sizeof(*sig_si));
-	sig_si->si_signo = sig;
-	sp -= 4 * sizeof(uint64_t);
-	args = (uint64_t*)sp;
-	args[0] = sig;
-	args[1] = (intptr_t)sig_si;
-	args[2] = (intptr_t)sig_uc;
-
-	/*
-	 * Push (spill) the arguments of the context wrapper onto the register
-	 * stack. They get loaded by the RSE on a context switch.
-	 */
-	bsp = (uint64_t*)ucp->uc_mcontext.mc_special.bspstore;
-	bsp = spill(bsp, (intptr_t)ucp);
-	bsp = spill(bsp, (intptr_t)func);
-	bsp = spill(bsp, (intptr_t)args);
-
-	/*
-	 * Setup the ucontext of the signal handler.
-	 */
-	memset(&ucp->uc_mcontext, 0, sizeof(ucp->uc_mcontext));
-	ucp->uc_link = sig_uc;
-	sigdelset(&ucp->uc_sigmask, sig);
-	ucp->uc_mcontext.mc_special.sp = (intptr_t)args - 16;
-	ucp->uc_mcontext.mc_special.bspstore = (intptr_t)bsp;
-	ucp->uc_mcontext.mc_special.pfs = (3 << 7) | 3;
-	ucp->uc_mcontext.mc_special.rsc = 0xf;
-	ucp->uc_mcontext.mc_special.rp = ((struct fdesc*)ctx_wrapper)->ip;
-	ucp->uc_mcontext.mc_special.gp = ((struct fdesc*)ctx_wrapper)->gp;
-	ucp->uc_mcontext.mc_special.fpsr = IA64_FPSR_DEFAULT;
-	return (0);
-}
--- lib/libc/ia64/gen/__umodsi3.S
+++ /dev/null
@@ -1,132 +0,0 @@
-.file "__umodsi3.s"
-
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__umodsi3.S,v 1.2 2003/03/03 01:09:45 obrien Exp $");
-
-.section .text
-
-// 32-bit unsigned integer remainder
-
-.proc __umodsi3#
-.align 32
-.global __umodsi3#
-.align 32
-
-__umodsi3:
-
-{ .mii
-  alloc r31=ar.pfs,2,0,0,0
-  nop.i 0
-  nop.i 0;;
-} { .mii
-  nop.m 0
-
-  // 32-BIT UNSIGNED INTEGER REMAINDER BEGINS HERE
-
-  // general register used:
-  //    r32 - 32-bit unsigned integer dividend
-  //    r33 - 32-bit unsigned integer divisor
-  //    r8 - 32-bit unsigned integer result
-  //    r2 - scratch register
-  // floating-point registers used: f6, f7, f8, f9, f10, f11
-  // predicate registers used: p6
-
-  zxt4 r32=r32
-  zxt4 r33=r33;;
-} { .mmb
-  setf.sig f11=r32
-  setf.sig f7=r33
-  nop.b 0;;
-} { .mfi
-  nop.m 0
-  fcvt.xf f6=f11
-  nop.i 0
-} { .mfi
-  // get 2's complement of b
-  sub r33=r0,r33
-  fcvt.xf f7=f7
-  mov r2 = 0x0ffdd;;
-} { .mfi
-  setf.exp f9 = r2
-  // (1) y0
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-}  { .mfi
-  nop.m 0
-  // (2) q0 = a * y0
-  (p6) fma.s1 f10=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // (3) e0 = 1 - b * y0
-  (p6) fnma.s1 f8=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (4) q1 = q0 + e0 * q0
-  (p6) fma.s1 f10=f8,f10,f10
-  nop.i 0
-} { .mfi
-  // get 2's complement of b
-  setf.sig f7=r33
-  // (5) e1 = e0 * e0 + 2^-34
-  (p6) fma.s1 f8=f8,f8,f9
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (6) q2 = q1 + e1 * q1
-  (p6) fma.s1 f8=f8,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (7) q = trunc(q2)
-  fcvt.fxu.trunc.s1 f8=f8
-  nop.i 0;;
-}  { .mfi
-  nop.m 0
-  // (8) r = a + (-b) * q
-  xma.l f8=f8,f7,f11
-  nop.i 0;;
-}  { .mmi
-  // remainder will be in the least significant 32 bits of r8 (if b != 0)
-  getf.sig r8=f8
-  nop.m 0
-  nop.i 0;;
-}
-
-  // 32-BIT UNSIGNED INTEGER REMAINDER ENDS HERE
-
-{ .mmb
-  nop.m 0
-  nop.m 0
-  br.ret.sptk b0;;
-}
-
-.endp __umodsi3
--- lib/libc/ia64/gen/fpgetround.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc/ia64/gen/fpgetround.c,v 1.1 2003/01/11 07:24:54 marcel Exp $
- */
-
-#include <sys/types.h>
-#include <ieeefp.h>
-
-fp_rnd_t
-fpgetround(void)
-{
-	uint64_t fpsr;
-
-	__asm __volatile("mov %0=ar.fpsr" : "=r"(fpsr));
-	return ((fp_rnd_t)((fpsr >> 10) & 3));
-}
--- lib/libc/ia64/gen/makecontext.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/makecontext.c,v 1.3 2004/01/06 19:40:28 nectar Exp $");
-
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <machine/fpu.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-struct fdesc {
-	uint64_t ip;
-	uint64_t gp;
-};
-
-typedef void (*func_t)(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t,
-    uint64_t, uint64_t, uint64_t);
-
-static __inline uint64_t *
-spill(uint64_t *bsp, uint64_t arg)
-{
-	*bsp++ = arg;
-	if (((intptr_t)bsp & 0x1ff) == 0x1f8)
-		*bsp++ = 0;
-	return (bsp);
-}
-
-static void
-ctx_wrapper(ucontext_t *ucp, func_t func, uint64_t *args)
-{
-
-	(*func)(args[0], args[1], args[2], args[3], args[4], args[5], args[6],
-	    args[7]);
-	if (ucp->uc_link == NULL)
-		exit(0);
-	setcontext((const ucontext_t *)ucp->uc_link);
-	/* should never get here */
-	abort();
-	/* NOTREACHED */
-}
-
-__weak_reference(__makecontext, makecontext);
-
-void
-__makecontext(ucontext_t *ucp, void (*func)(void), int argc, ...)
-{
-	uint64_t *args, *bsp;
-	va_list ap;
-	int i;
-
-	/*
-	 * Drop the ball completely if something's not right. We only
-	 * support general registers as arguments and not more than 8
-	 * of them. Things get hairy if we need to support FP registers
-	 * (alignment issues) or more than 8 arguments (stack based).
-	 */
-	if (argc < 0 || argc > 8 || ucp == NULL ||
-	    ucp->uc_stack.ss_sp == NULL || (ucp->uc_stack.ss_size & 15) ||
-	    ((intptr_t)ucp->uc_stack.ss_sp & 15) ||
-	    ucp->uc_stack.ss_size < MINSIGSTKSZ)
-		abort();
-
-	/*
-	 * Copy the arguments of function 'func' onto the (memory) stack.
-	 * Always take up space for 8 arguments.
-	 */
-	va_start(ap, argc);
-	args = (uint64_t*)(ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size) - 8;
-	i = 0;
-	while (i < argc)
-		args[i++] = va_arg(ap, uint64_t);
-	while (i < 8)
-		args[i++] = 0;
-	va_end(ap);
-
-	/*
-	 * Push (spill) the arguments of the context wrapper onto the register
-	 * stack. They get loaded by the RSE on a context switch.
-	 */
-	bsp = (uint64_t*)ucp->uc_stack.ss_sp;
-	bsp = spill(bsp, (intptr_t)ucp);
-	bsp = spill(bsp, (intptr_t)func);
-	bsp = spill(bsp, (intptr_t)args);
-
-	/*
-	 * Setup the MD portion of the context.
-	 */
-	memset(&ucp->uc_mcontext, 0, sizeof(ucp->uc_mcontext));
-	ucp->uc_mcontext.mc_special.sp = (intptr_t)args - 16;
-	ucp->uc_mcontext.mc_special.bspstore = (intptr_t)bsp;
-	ucp->uc_mcontext.mc_special.pfs = (3 << 7) | 3;
-	ucp->uc_mcontext.mc_special.rsc = 0xf;
-	ucp->uc_mcontext.mc_special.rp = ((struct fdesc*)ctx_wrapper)->ip;
-	ucp->uc_mcontext.mc_special.gp = ((struct fdesc*)ctx_wrapper)->gp;
-	ucp->uc_mcontext.mc_special.fpsr = IA64_FPSR_DEFAULT;
-}
--- lib/libc/ia64/gen/__moddi3.S
+++ /dev/null
@@ -1,160 +0,0 @@
-.file "__moddi3.s"
-
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__moddi3.S,v 1.3 2003/03/03 01:09:45 obrien Exp $");
-
-.section .text
-
-// 64-bit signed integer remainder
-
-.proc __moddi3#
-.align 32
-.global __moddi3#
-.align 32
-
-__moddi3:
-
-{ .mii
-  alloc r31=ar.pfs,3,0,0,0
-  nop.i 0
-  nop.i 0
-} { .mmb
-
-  // 64-BIT SIGNED INTEGER REMAINDER BEGINS HERE
-
-  // general register used:
-  //    r32 - 64-bit signed integer dividend
-  //    r33 - 64-bit signed integer divisor
-  //    r8 - 64-bit signed integer result
-  //    r2 - scratch register
-  // floating-point registers used: f6, f7, f8, f9, f10, f11, f12
-  // predicate registers used: p6
-
-  setf.sig f12=r32  // holds an in integer form
-  setf.sig f7=r33
-  nop.b 0
-} { .mlx
-  nop.m 0
-  //movl r2=0x8000000000000000;;
-  movl r2=0xffffffffffffffff;;
-} { .mfi
-  // get the 2's complement of b
-  sub r33=r0,r33
-  fcvt.xf f6=f12
-  nop.i 0
-} { .mfi
-  nop.m 0
-  fcvt.xf f7=f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (1)
-  // y0 = 1 / b in f8
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (2)
-  // q0 = a * y0 in f10
-  (p6) fma.s1 f10=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (3)
-  // e0 = 1 - b * y0 in f9
-  (p6) fnma.s1 f9=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (4)
-  // q1 = q0 + e0 * q0 in f10
-  (p6) fma.s1 f10=f9,f10,f10
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (5)
-  // e1 = e0 * e0 in f11
-  (p6) fma.s1 f11=f9,f9,f0
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (6)
-  // y1 = y0 + e0 * y0 in f8
-  (p6) fma.s1 f8=f9,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (7)
-  // q2 = q1 + e1 * q1 in f9
-  (p6) fma.s1 f9=f11,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (8)
-  // y2 = y1 + e1 * y1 in f8
-  (p6) fma.s1 f8=f11,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (9)
-  // r2 = a - b * q2 in f10
-  (p6) fnma.s1 f10=f7,f9,f6
-  nop.i 0;;
-} { .mfi
-  setf.sig f7=r33
-  // Step (10)
-  // q3 = q2 + r2 * y2 in f8
-  (p6) fma.s1 f8=f10,f8,f9
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (11) q = trunc(q3)
-  fcvt.fx.trunc.s1 f8=f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (12) r = a + (-b) * q
-  xma.l f8=f8,f7,f12
-  nop.i 0;;
-}  { .mib
-  getf.sig r8=f8
-  nop.i 0
-  nop.b 0
-} 
-
-  // 64-BIT SIGNED INTEGER REMAINDER ENDS HERE
-
-{ .mib
-  nop.m 0
-  nop.i 0
-  br.ret.sptk b0;;
-}
-
-.endp __moddi3
--- lib/libc/ia64/gen/_set_tp.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*-
- * Copyright (c) 2004 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	$FreeBSD: src/lib/libc/ia64/gen/_set_tp.c,v 1.1 2004/08/15 16:18:03 dfr Exp $
- */
-
-void
-_set_tp(void *tpval)
-{
-	register void* tp __asm__("r13");
-
-	tp = tpval;
-}
--- lib/libc/ia64/gen/_mcount.S
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2004 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/_mcount.S,v 1.1 2004/08/25 07:42:34 marcel Exp $");
-
-	.text
-
-/*
- * Important registers:
- *	r8	structure return address
- *	r15	static link (nested routines)
- *	rp	our return address
- *	in0	caller's ar.pfs
- *	in1	caller's gp
- *	in2	caller's rp
- *	in3	GOT entry
- *	ar.pfs	our pfs
- */
-ENTRY_NOPROFILE(_mcount, 4)
-	alloc		loc0 = ar.pfs, 4, 4, 2, 0
-	mov		loc1 = r8
-	mov		loc2 = rp
-	mov		loc3 = r15
-	;;
-	mov		out0 = in2
-	mov		out1 = rp
-	br.call.sptk	rp = __mcount
-	;;
-1:
-	mov		gp = in1
-	mov		r14 = ip
-	mov		b7 = loc2
-	;;
-	add		r14 = 2f - 1b, r14
-	mov		ar.pfs = loc0
-	mov		rp = in2
-	;;
-	mov		r15 = loc3
-	mov		b7 = r14
-	mov		b6 = loc2
-	mov		r8 = loc1
-	mov		r14 = in0
-	br.ret.sptk	b7
-	;;
-2:
-	mov		ar.pfs = r14
-	br.sptk		b6
-	;;
-END(_mcount)
-
-WEAK_ALIAS(mcount, _mcount)
--- lib/libc/ia64/gen/__divdi3.S
+++ /dev/null
@@ -1,143 +0,0 @@
-.file "__divdi3.s"
-
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__divdi3.S,v 1.2 2003/03/03 01:09:45 obrien Exp $");
-
-.section .text
-.proc __divdi3#
-.align 32
-.global __divdi3#
-.align 32
-
-// 64-bit signed integer divide
-
-__divdi3:
-
-{ .mii
-  alloc r31=ar.pfs,2,0,0,0
-  nop.i 0
-  nop.i 0;;
-} { .mmi
-
-  // 64-BIT SIGNED INTEGER DIVIDE BEGINS HERE
-
-  setf.sig f8=r32
-  setf.sig f9=r33
-  nop.i 0;;
-} { .mfb
-  nop.m 0
-  fcvt.xf f6=f8
-  nop.b 0
-} { .mfb
-  nop.m 0
-  fcvt.xf f7=f9
-  nop.b 0;;
-} { .mfi
-  nop.m 0
-  // Step (1)
-  // y0 = 1 / b in f8
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (2)
-  // e0 = 1 - b * y0 in f9
-  (p6) fnma.s1 f9=f7,f8,f1
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (3)
-  // q0 = a * y0 in f10
-  (p6) fma.s1 f10=f6,f8,f0
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (4)
-  // e1 = e0 * e0 in f11
-  (p6) fma.s1 f11=f9,f9,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (5)
-  // q1 = q0 + e0 * q0 in f10
-  (p6) fma.s1 f10=f9,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (6)
-  // y1 = y0 + e0 * y0 in f8
-  (p6) fma.s1 f8=f9,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (7)
-  // q2 = q1 + e1 * q1 in f9
-  (p6) fma.s1 f9=f11,f10,f10
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (8)
-  // y2 = y1 + e1 * y1 in f8
-  (p6) fma.s1 f8=f11,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (9)
-  // r2 = a - b * q2 in f10
-  (p6) fnma.s1 f10=f7,f9,f6
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (10)
-  // q3 = q2 + r2 * y2 in f8
-  (p6) fma.s1 f8=f10,f8,f9
-  nop.i 0;;
-} { .mfb
-  nop.m 0
-  // Step (11)
-  // q = trunc (q3)
-  fcvt.fx.trunc.s1 f8=f8
-  nop.b 0;;
-} { .mmi
-  // quotient will be in r8 (if b != 0)
-  getf.sig r8=f8
-  nop.m 0
-  nop.i 0;;
-}
-
-  // 64-BIT SIGNED INTEGER DIVIDE ENDS HERE
-
-{ .mmb
-  nop.m 0
-  nop.m 0
-  br.ret.sptk b0;;
-}
-
-.endp __divdi3
--- lib/libc/ia64/gen/__divdf3.S
+++ /dev/null
@@ -1,142 +0,0 @@
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__divdf3.S,v 1.2 2003/03/03 01:09:45 obrien Exp $");
-
-  .section .text
-
-ENTRY(__divdf3, 0)
-{ .mfi
-  // a is in f8
-  // b is in f9
-
-  // predicate registers used: p6
-  // floating-point registers used: f6, f7, f8, f9, f10, f11
-
-  // load a, the first argument, in f6
-  nop.m 0
-  mov f6=f8
-  nop.i 0
-} { .mfi
-  // load b, the second argument, in f7
-  nop.m 0
-  mov f7=f9
-  nop.i 0;;
-} { .mfi
-
-  // BEGIN DOUBLE PRECISION LATENCY-OPTIMIZED DIVIDE ALGORITHM
-
-  nop.m 0
-  // Step (1)
-  // y0 = 1 / b in f8
-  frcpa.s0 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (2)
-  // q0 = a * y0 in f9
-  (p6) fma.s1 f9=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (3)
-  // e0 = 1 - b * y0 in f10
-  (p6) fnma.s1 f10=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (4)
-  // q1 = q0 + e0 * q0 in f9
-  (p6) fma.s1 f9=f10,f9,f9
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (5)
-  // e1 = e0 * e0 in f11
-  (p6) fma.s1 f11=f10,f10,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (6)
-  // y1 = y0 + e0 * y0 in f8
-  (p6) fma.s1 f8=f10,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (7)
-  // q2 = q1 + e1 * q1 in f9
-  (p6) fma.s1 f9=f11,f9,f9
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (8)
-  // e2 = e1 * e1 in f10
-  (p6) fma.s1 f10=f11,f11,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // Step (9)
-  // y2 = y1 + e1 * y1 in f8
-  (p6) fma.s1 f8=f11,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (10)
-  // q3 = q2 + e2 * q2 in f9
-  (p6) fma.d.s1 f9=f10,f9,f9
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (11)
-  // y3 = y2 + e2 * y2 in f8
-  (p6) fma.s1 f8=f10,f8,f8
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (12)
-  // r0 = a - b * q3 in f6
-  (p6) fnma.d.s1 f6=f7,f9,f6
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // Step (13)
-  // q4 = q3 + r0 * y3 in f8
-  (p6) fma.d.s0 f8=f6,f8,f9
-  nop.i 0;;
-
-  // END DOUBLE PRECISION LATENCY-OPTIMIZED DIVIDE ALGORITHM
-
-} { .mib
-  nop.m 0
-  nop.i 0
-  // return
-  br.ret.sptk b0;;
-}
-
-END(__divdf3)
-
--- lib/libc/ia64/gen/Makefile.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-# $FreeBSD: src/lib/libc/ia64/gen/Makefile.inc,v 1.13 2004/08/25 07:42:34 marcel Exp $
-
-SRCS+=	__divdf3.S __divdi3.S __divsf3.S __divsi3.S __moddi3.S __modsi3.S \
-	__udivdi3.S __udivsi3.S __umoddi3.S __umodsi3.S _mcount.S _set_tp.c \
-	_setjmp.S fabs.S flt_rounds.c fpgetmask.c fpgetround.c fpsetmask.c \
-	fpsetround.c infinity.c ldexp.c makecontext.c modf.c setjmp.S \
-	signalcontext.c sigsetjmp.S
-
-# The following may go away if function _Unwind_FindTableEntry()
-# will be part of GCC.
-SRCS+=	unwind.c
--- lib/libc/ia64/gen/modf.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*	$NetBSD: modf.c,v 1.1 1995/02/10 17:50:25 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/modf.c,v 1.3 2002/03/22 21:52:14 obrien Exp $");
-
-#include <sys/types.h>
-#include <machine/ieee.h>
-#include <math.h>
-
-/*
- * double modf(double val, double *iptr)
- * returns: f and i such that |f| < 1.0, (f + i) = val, and
- *	sign(f) == sign(i) == sign(val).
- *
- * Beware signedness when doing subtraction, and also operand size!
- */
-double
-modf(val, iptr)
-	double val, *iptr;
-{
-	union doub {
-		double v;
-		struct ieee_double s;
-	} u, v;
-	u_int64_t frac;
-
-	/*
-	 * If input is Inf or NaN, return it and leave i alone.
-	 */
-	u.v = val;
-	if (u.s.dbl_exp == DBL_EXP_INFNAN)
-		return (u.v);
-
-	/*
-	 * If input can't have a fractional part, return
-	 * (appropriately signed) zero, and make i be the input.
-	 */
-	if ((int)u.s.dbl_exp - DBL_EXP_BIAS > DBL_FRACBITS - 1) {
-		*iptr = u.v;
-		v.v = 0.0;
-		v.s.dbl_sign = u.s.dbl_sign;
-		return (v.v);
-	}
-
-	/*
-	 * If |input| < 1.0, return it, and set i to the appropriately
-	 * signed zero.
-	 */
-	if (u.s.dbl_exp < DBL_EXP_BIAS) {
-		v.v = 0.0;
-		v.s.dbl_sign = u.s.dbl_sign;
-		*iptr = v.v;
-		return (u.v);
-	}
-
-	/*
-	 * There can be a fractional part of the input.
-	 * If you look at the math involved for a few seconds, it's
-	 * plain to see that the integral part is the input, with the
-	 * low (DBL_FRACBITS - (exponent - DBL_EXP_BIAS)) bits zeroed,
-	 * the the fractional part is the part with the rest of the
-	 * bits zeroed.  Just zeroing the high bits to get the
-	 * fractional part would yield a fraction in need of
-	 * normalization.  Therefore, we take the easy way out, and
-	 * just use subtraction to get the fractional part.
-	 */
-	v.v = u.v;
-	/* Zero the low bits of the fraction, the sleazy way. */
-	frac = ((u_int64_t)v.s.dbl_frach << 32) + v.s.dbl_fracl;
-	frac >>= DBL_FRACBITS - (u.s.dbl_exp - DBL_EXP_BIAS);
-	frac <<= DBL_FRACBITS - (u.s.dbl_exp - DBL_EXP_BIAS);
-	v.s.dbl_fracl = frac & 0xffffffff;
-	v.s.dbl_frach = frac >> 32;
-	*iptr = v.v;
-
-	u.v -= v.v;
-	u.s.dbl_sign = v.s.dbl_sign;
-	return (u.v);
-}
--- lib/libc/ia64/gen/fpsetmask.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * Copyright (c) 2001 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/fpsetmask.c,v 1.4 2003/10/22 09:00:07 marcel Exp $");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-
-fp_except_t
-fpsetmask(fp_except_t mask)
-{
-	u_int64_t fpsr;
-	u_int64_t oldmask;
-
-	__asm __volatile("mov %0=ar.fpsr" : "=r" (fpsr));
-	oldmask = ~fpsr & 0x3d;
-	fpsr = (fpsr & ~0x3d) | (~mask & 0x3d);
-	__asm __volatile("mov ar.fpsr=%0" :: "r" (fpsr));
-	return (oldmask);
-}
--- lib/libc/ia64/gen/unwind.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 2002 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc/ia64/gen/unwind.c,v 1.2 2003/11/08 05:29:49 marcel Exp $
- */
-
-#include <sys/types.h>
-
-#include <assert.h>
-#include <dlfcn.h>
-#include <stdlib.h>
-
-#include <machine/elf.h>
-
-#ifndef PT_IA_64_UNWIND
-#define PT_IA_64_UNWIND         0x70000001
-#endif
-
-#define	SANITY	0
-
-struct ia64_unwind_entry
-{
-	Elf64_Addr start;
-	Elf64_Addr end;
-	Elf64_Addr descr;
-};
-
-struct ia64_unwind_entry *
-_Unwind_FindTableEntry(const void *pc, unsigned long *pseg, unsigned long *pgp)
-{
-	Dl_info info;
-	Elf_Dyn *dyn;
-	Elf_Ehdr *ehdr;
-	Elf_Phdr *phdr;
-	char *p, *p_top;
-	struct ia64_unwind_entry *unw, *res;
-	register unsigned long gp __asm__("gp");	/* XXX assumes gcc */
-	unsigned long reloc, vaddr;
-	size_t l, m, r;
-
-	if (!dladdr(pc, &info))
-		return NULL;
-
-	ehdr = (Elf_Ehdr*)info.dli_fbase;
-
-#if SANITY
-	assert(IS_ELF(*ehdr));
-	assert(ehdr->e_ident[EI_CLASS] == ELFCLASS64);
-	assert(ehdr->e_ident[EI_DATA] == ELFDATA2LSB);
-	assert(ehdr->e_machine == EM_IA_64);
-#endif
-
-	reloc = (ehdr->e_type == ET_DYN) ? (uintptr_t)info.dli_fbase : 0;
-	*pgp = gp;
-	*pseg = 0UL;
-	res = NULL;
-
-	p = (char*)info.dli_fbase + ehdr->e_phoff;
-	p_top = p + ehdr->e_phnum * ehdr->e_phentsize;
-	while (p < p_top) {
-		phdr = (Elf_Phdr*)p;
-		vaddr = phdr->p_vaddr + reloc;
-
-		switch (phdr->p_type) {
-		case PT_DYNAMIC:
-			dyn = (Elf_Dyn*)vaddr;
-			while (dyn->d_tag != DT_NULL) {
-				if (dyn->d_tag == DT_PLTGOT) {
-					*pgp = dyn->d_un.d_ptr + reloc;
-					break;
-				}
-				dyn++;
-			}
-			break;
-		case PT_LOAD:
-			if (pc >= (void*)vaddr &&
-			    pc < (void*)(vaddr + phdr->p_memsz))
-				*pseg = vaddr;
-			break;
-		case PT_IA_64_UNWIND:
-#if SANITY
-			assert(*pseg != 0UL);
-			assert(res == NULL);
-#endif
-			unw = (struct ia64_unwind_entry*)vaddr;
-			l = 0;
-			r = phdr->p_memsz / sizeof(struct ia64_unwind_entry);
-			while (l < r) {
-				m = (l + r) >> 1;
-				res = unw + m;
-				if (pc < (void*)(res->start + *pseg))
-					r = m;
-				else if (pc >= (void*)(res->end + *pseg))
-					l = m + 1;
-				else
-					break;	/* found */
-			}
-			if (l >= r)
-				res = NULL;
-			break;
-		}
-
-		p += ehdr->e_phentsize;
-	}
-
-	return res;
-}
--- lib/libc/ia64/gen/__udivsi3.S
+++ /dev/null
@@ -1,125 +0,0 @@
-.file "__udivsi3.s"
-
-//  
-// Copyright (c) 2000, Intel Corporation
-// All rights reserved.
-//
-// Contributed 2/15/2000 by Marius Cornea, John Harrison, Cristina Iordache, 
-// Ted Kubaska, Bob Norin, and Shane Story of the Computational Software Lab, 
-// Intel Corporation.
-//
-// WARRANTY DISCLAIMER
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Intel Corporation is the author of this code, and requests that all
-// problem reports or change requests be submitted to it directly at
-// http://developer.intel.com/opensource.
-//
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/gen/__udivsi3.S,v 1.2 2003/03/03 01:09:45 obrien Exp $");
-
-.section .text
-
-// 32-bit unsigned integer divide
-
-.proc __udivsi3#
-.align 32
-.global __udivsi3#
-.align 32
-
-__udivsi3:
-
-{ .mii
-  alloc r31=ar.pfs,2,0,0,0
-  nop.i 0
-  nop.i 0;;
-} { .mii
-  nop.m 0
-
-  // 32-BIT UNSIGNED INTEGER DIVIDE BEGINS HERE
-
-  // general register used:
-  //    r32 - 32-bit unsigned integer dividend
-  //    r33 - 32-bit unsigned integer divisor
-  //    r8 - 32-bit unsigned integer result
-  //    r2 - scratch register
-  // floating-point registers used: f6, f7, f8, f9
-  // predicate registers used: p6
-
-  zxt4 r32=r32
-  zxt4 r33=r33;;
-} { .mmb
-  setf.sig f6=r32
-  setf.sig f7=r33
-  nop.b 0;;
-} { .mfi
-  nop.m 0
-  fcvt.xf f6=f6
-  nop.i 0
-} { .mfi
-  nop.m 0
-  fcvt.xf f7=f7
-  mov r2 = 0x0ffdd;;
-} { .mfi
-  setf.exp f9 = r2
-  // (1) y0
-  frcpa.s1 f8,p6=f6,f7
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (2) q0 = a * y0
-  (p6) fma.s1 f6=f6,f8,f0
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // (3) e0 = 1 - b * y0
-  (p6) fnma.s1 f7=f7,f8,f1
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (4) q1 = q0 + e0 * q0
-  (p6) fma.s1 f6=f7,f6,f6
-  nop.i 0
-} { .mfi
-  nop.m 0
-  // (5) e1 = e0 * e0 + 2^-34
-  (p6) fma.s1 f7=f7,f7,f9
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (6) q2 = q1 + e1 * q1
-  (p6) fma.s1 f8=f7,f6,f6
-  nop.i 0;;
-} { .mfi
-  nop.m 0
-  // (7) q = trunc(q2)
-  fcvt.fxu.trunc.s1 f8=f8
-  nop.i 0;;
-} { .mmi
-  // quotient will be in the least significant 32 bits of r8 (if b != 0)
-  getf.sig r8=f8
-  nop.m 0
-  nop.i 0;;
-}
-
-  // 32-BIT UNSIGNED INTEGER DIVIDE ENDS HERE
-
-{ .mmb
-  nop.m 0
-  nop.m 0
-  br.ret.sptk b0;;
-}
-
-.endp __udivsi3
--- lib/libc/ia64/net/ntohl.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/*	$NetBSD: ntohl.S,v 1.1 1996/04/17 22:36:57 cgd Exp $	*/
-
-/*
- * Copyright (c) 1996 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/net/ntohl.S,v 1.4 2003/03/03 01:09:46 obrien Exp $");
-
-#define	ALIAS	ntohl
-#define	NAME	__ntohl
-
-#include "byte_swap_4.S"
--- lib/libc/ia64/net/htons.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/*	$NetBSD: htons.S,v 1.1 1996/04/17 22:36:54 cgd Exp $	*/
-
-/*
- * Copyright (c) 1996 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/net/htons.S,v 1.4 2003/03/03 01:09:46 obrien Exp $");
-
-#define	ALIAS	htons
-#define	NAME	__htons
-
-#include "byte_swap_2.S"
--- lib/libc/ia64/net/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-# $FreeBSD: src/lib/libc/ia64/net/Makefile.inc,v 1.1 2000/10/14 17:01:11 dfr Exp $
-
-SRCS+=  htonl.S htons.S ntohl.S ntohs.S
--- lib/libc/ia64/net/byte_swap_4.S
+++ /dev/null
@@ -1,48 +0,0 @@
-/*	$NetBSD: byte_swap_4.S,v 1.2 1996/10/17 03:08:09 cgd Exp $	*/
-
-/*
- * Copyright (c) 1996 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/net/byte_swap_4.S,v 1.5 2003/03/03 01:09:46 obrien Exp $");
-
-#if !defined(ALIAS) || !defined(NAME)
-#error ALIAS or NAME not defined
-#endif
-
-/*
- * Byte-swap a 4-byte quantity.  (Convert 0x01234567 to 0x67452301.)
- *
- * Argument is an unsigned 4-byte integer (u_int32_t).
- */
-WEAK_ALIAS(ALIAS, NAME)
-ENTRY(NAME, 1)
-	mux1	r16=in0, at rev
-	;;
-	extr.u	r8=r16,32,32
-	br.ret.sptk.few rp
-END(NAME)
--- lib/libc/ia64/net/ntohs.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/*	$NetBSD: ntohs.S,v 1.1 1996/04/17 22:37:02 cgd Exp $	*/
-
-/*
- * Copyright (c) 1996 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/net/ntohs.S,v 1.4 2003/03/03 01:09:46 obrien Exp $");
-
-#define	ALIAS	ntohs
-#define	NAME	__ntohs
-
-#include "byte_swap_2.S"
--- lib/libc/ia64/net/byte_swap_2.S
+++ /dev/null
@@ -1,48 +0,0 @@
-/*	$NetBSD: byte_swap_2.S,v 1.2 1996/10/17 03:08:08 cgd Exp $	*/
-
-/*
- * Copyright (c) 1996 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/net/byte_swap_2.S,v 1.5 2003/03/03 01:09:46 obrien Exp $");
-
-#if !defined(ALIAS) || !defined(NAME)
-#error ALIAS or NAME not defined
-#endif
-
-/*
- * Byte-swap a 2-byte quantity.  (Convert 0x0123 to 0x2301.)
- *
- * Argument is an unsigned 2-byte integer (u_int16_t).
- */
-WEAK_ALIAS(ALIAS, NAME)
-ENTRY(NAME, 1)
-	mux1	r16=in0, at rev
-	;;
-	extr.u	r8=r16,48,16
-	br.ret.sptk.few rp
-END(NAME)
--- lib/libc/ia64/net/htonl.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/*	$NetBSD: htonl.S,v 1.1 1996/04/17 22:36:52 cgd Exp $	*/
-
-/*
- * Copyright (c) 1996 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/net/htonl.S,v 1.4 2003/03/03 01:09:46 obrien Exp $");
-
-#define	ALIAS	htonl
-#define	NAME	__htonl
-
-#include "byte_swap_4.S"
--- lib/libthr/arch/arm/include/pthread_md.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*-
- * Copyright (c) 2005 David Xu <davidxu at freebsd.org>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libthr/arch/arm/include/pthread_md.h,v 1.2 2005/04/07 22:06:05 cognet Exp $
- */
-
-/*
- * Machine-dependent thread prototypes/definitions.
- */
-#ifndef _PTHREAD_MD_H_
-#define	_PTHREAD_MD_H_
-
-#include <sys/types.h>
-#include <machine/sysarch.h>
-#include <stddef.h>
-#include <errno.h>
-
-#include <sys/umtx.h>
-
-#define	DTV_OFFSET		offsetof(struct tcb, tcb_dtv)
-
-/*
- * Variant II tcb, first two members are required by rtld.
- */
-struct tcb {
-	struct tcb              *tcb_self;	/* required by rtld */
-	void                    *tcb_dtv;	/* required by rtld */
-	struct pthread          *tcb_thread;	/* our hook */
-	void			*tcb_spare[1];
-};
-
-/*
- * The tcb constructors.
- */
-struct tcb	*_tcb_ctor(struct pthread *, int);
-void		_tcb_dtor(struct tcb *);
-
-/* Called from the thread to set its private data. */
-static __inline void
-_tcb_set(struct tcb *tcb)
-{
-	*((struct tcb **)ARM_TP_ADDRESS) = tcb;
-}
-
-/*
- * Get the current tcb.
- */
-static __inline struct tcb *
-_tcb_get(void)
-{
-	return (*((struct tcb **)ARM_TP_ADDRESS));
-}
-
-extern struct pthread *_thr_initial;
-
-static __inline struct pthread *
-_get_curthread(void)
-{
-	if (_thr_initial)
-		return (_tcb_get()->tcb_thread);
-	return (NULL);
-}
-
-extern struct umtx arm_umtx;
-
-#endif /* _PTHREAD_MD_H_ */
--- lib/libthr/arch/ia64/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# $FreeBSD: src/lib/libthr/arch/ia64/Makefile.inc,v 1.2 2005/04/02 01:19:58 davidxu Exp $
-
-.PATH:	${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
-
-SRCS+= pthread_md.c
--- lib/libc/ia64/string/ffs.S
+++ /dev/null
@@ -1,99 +0,0 @@
-/*	$NetBSD: ffs.S,v 1.3 1996/10/17 03:08:13 cgd Exp $	*/
-
-/*
- * Copyright (c) 1995 Christopher G. Demetriou
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed by Christopher G. Demetriou
- *	for the NetBSD Project.
- * 4. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/string/ffs.S,v 1.3 2003/03/03 01:09:46 obrien Exp $");
-
-ENTRY(ffs, 1)
-	sxt4	r14=in0 ;;
-	cmp.eq	p6,p0=r14,r0
-(p6)	br.dpnt.few Lallzero
-	
-	/*
-	 * Initialize return value (ret0), and set up r15 so that it
-	 * contains the mask with only the lowest bit set.
-	 */
-	sub	r15=r0,r14
-	mov	ret0=1 ;;
-	and	r15=r14,r15 ;;
-
-	extr.u	r16=r15,0,8 ;;
-	cmp.ne	p6,p0=r0,r16
-(p6)	br.dptk.few Ldo8
-
-	/*
-	 * If lower 16 bits empty, add 16 to result and use upper 16.
-	 */
-	extr.u	r16=r15,0,16 ;;
-	cmp.ne	p6,p0=r0,r16
-(p6)	br.dptk.few Ldo16
-	extr.u	r15=r15,16,16
-	add	ret0=16,ret0 ;;
-	
-Ldo16:
-	/*
-	 * If lower 8 bits empty, add 8 to result and use upper 8.
-	 */
-	extr.u	r16=r15,0,8 ;;
-	cmp.ne	p6,p0=r0,r16
-(p6)	br.dptk.few Ldo8
-	extr.u	r15=r15,8,24
-	add	ret0=8,ret0 ;;
-
-Ldo8:
-	and	r16=0x0f,r15		/* lower 4 of 8 empty? */
-	and	r17=0x33,r15		/* lower 2 of each 4 empty? */
-	and	r18=0x55,r15 ;;		/* lower 1 of each 2 empty? */
-	cmp.ne	p6,p0=r16,r0
-	cmp.ne	p7,p0=r17,r0
-	cmp.ne	p8,p0=r18,r0
-
-	/* If lower 4 bits empty, add 4 to result. */
-(p6)	br.dptk.few Ldo4
-	add	ret0=4,ret0 ;;
-
-Ldo4:	/* If lower 2 bits of each 4 empty, add 2 to result. */
-(p7)	br.dptk.few Ldo2
-	add	ret0=2,ret0 ;;
-
-Ldo2:	/* If lower bit of each 2 empty, add 1 to result. */
-(p8)	br.dptk.few Ldone
-	add	ret0=1,ret0
-
-Ldone:
-	br.ret.sptk.few rp
-
-Lallzero:
-	mov	ret0=0
-	br.ret.sptk.few rp
-END(ffs)
--- lib/libc/ia64/string/bzero.S
+++ /dev/null
@@ -1,81 +0,0 @@
-/*-
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/string/bzero.S,v 1.6 2004/02/10 20:45:28 cperciva Exp $");
-
-ENTRY(bzero, 2)
-	
-	cmp.le	p6,p0=in1,r0			// bail if len <= 0
-(p6)	br.ret.spnt.few rp
-	;; 
-	mov	r14=ar.lc			// save ar.lc
-
-	cmp.ltu	p6,p0=17,in1			// check for small
-(p6)	br.dptk.few 3f	
-
-1:	add	r15=-1,in1 ;;
-	mov	ar.lc=r15 ;;
-2:	st1	[in0]=r0,1			// zero one byte
-	br.cloop.sptk.few 2b			// loop
-
-	;;
-	mov	ar.lc=r14			// done
-	br.ret.sptk.few rp
-
-	// Zero up to 8byte alignment
-	
-3:	tbit.nz	p6,p0=in0,0 ;;
-(p6)	st1	[in0]=r0,1
-(p6)	add	in1=-1,in1 ;;
-
-	tbit.nz	p6,p0=in0,1 ;;
-(p6)	st2	[in0]=r0,2
-(p6)	add	in1=-2,in1 ;;
-
-	tbit.nz	p6,p0=in0,2 ;;
-(p6)	st4	[in0]=r0,4
-(p6)	add	in1=-4,in1
-
-	;;
-	shr.u	r15=in1,3			// word count
-	extr.u	in1=in1,0,3 ;;			// trailing bytes
-	cmp.eq	p6,p0=r15,r0			// check for zero
-	cmp.ne	p7,p0=in1,r0
-(p6)	br.dpnt.few 1b				// zero last bytes
-
-	add	r15=-1,r15 ;;
-	mov	ar.lc=r15 ;;
-4:	st8	[in0]=r0,8
-	br.cloop.sptk.few 4b 
-
-(p7)	br.dpnt.few 1b				// zero last bytes
-
-	;;
-	mov	ar.lc=r14			// done
-	br.ret.sptk.few rp
-
-END(bzero)
--- lib/libc/ia64/string/bcopy.S
+++ /dev/null
@@ -1,95 +0,0 @@
-/*-
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/string/bcopy.S,v 1.3 2004/02/10 20:45:28 cperciva Exp $");
-
-/*
- * Not the fastest bcopy in the world.
- */
-ENTRY(bcopy, 3)
-
-	cmp.le	p6,p0=in2,r0			// bail if len <= 0
-(p6)	br.ret.spnt.few rp
-
-	sub	r14=in1,in0 ;;			// check for overlap
-	cmp.ltu	p6,p0=r14,in2			// dst-src < len
-(p6)	br.cond.spnt.few 5f
-
-	extr.u	r14=in0,0,3			// src & 7
-	extr.u	r15=in1,0,3 ;;			// dst & 7
-	cmp.eq	p6,p0=r14,r15			// different alignment?
-(p6)	br.cond.spnt.few 2f			// branch if same alignment
-
-1:	ld1	r14=[in0],1 ;;			// copy bytewise
-	st1	[in1]=r14,1
-	add	in2=-1,in2 ;;			// len--
-	cmp.ne	p6,p0=r0,in2
-(p6)	br.cond.dptk.few 1b			// loop
-	br.ret.sptk.few rp			// done
-
-2:	cmp.eq	p6,p0=r14,r0			// aligned?
-(p6)	br.cond.sptk.few 4f
-
-3:	ld1	r14=[in0],1 ;;			// copy bytewise
-	st1	[in1]=r14,1
-	extr.u	r15=in0,0,3			// src & 7
-	add	in2=-1,in2 ;;			// len--
-	cmp.eq	p6,p0=r0,in2			// done?
-	cmp.eq	p7,p0=r0,r15 ;;			// aligned now?
-(p6)	br.ret.spnt.few rp			// return if done
-(p7)	br.cond.spnt.few 4f			// go to main copy
-	br.cond.sptk.few 3b			// more bytes to copy
-
-	// At this point, in2 is non-zero
-
-4:	mov	r14=8 ;;
-	cmp.ltu	p6,p0=in2,r14 ;;		// len < 8?
-(p6)	br.cond.spnt.few 1b			// byte copy the end
-	ld8	r15=[in0],8 ;;			// copy word
-	st8	[in1]=r15,8
-	add	in2=-8,in2 ;;			// len -= 8
-	cmp.ne	p6,p0=r0,in2			// done?
-(p6)	br.cond.spnt.few 4b			// again
-
-	br.ret.sptk.few rp			// return
-
-	// Don't bother optimising overlap case
-
-5:	add	in0=in0,in2
-	add	in1=in1,in2 ;;
-	add	in0=-1,in0
-	add	in1=-1,in1 ;;
-
-6:	ld1	r14=[in0],-1 ;;
-	st1	[in1]=r14,-1
-	add	in2=-1,in2 ;;
-	cmp.ne	p6,p0=r0,in2
-(p6)	br.cond.spnt.few 6b
-
-	br.ret.sptk.few rp
-
-END(bcopy)
--- lib/libc/ia64/string/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-# $FreeBSD: src/lib/libc/ia64/string/Makefile.inc,v 1.1 2000/10/14 17:01:12 dfr Exp $
-
-MDSRCS+=	bcopy.S bzero.S ffs.S memcpy.S memmove.S
--- lib/libc/ia64/string/memmove.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/string/memmove.S,v 1.3 2004/09/04 00:23:15 marcel Exp $");
-
-ENTRY(memmove,3)
-	mov	r8 = in0
-	mov	in0 = in1
-	;;
-	mov	in1 = r8
-	br.sptk.few bcopy
-END(memmove)
--- lib/libc/ia64/string/memcpy.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/string/memcpy.S,v 1.3 2004/09/04 00:04:58 marcel Exp $");
-
-ENTRY(memcpy,3)
-	mov	r8 = in0
-	mov	in0 = in1
-	;;
-	mov	in1 = r8
-	br.sptk.few bcopy
-END(memcpy)
--- lib/libthr/arch/ia64/include/pthread_md.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libthr/arch/ia64/include/pthread_md.h,v 1.1 2005/04/02 01:19:58 davidxu Exp $
- */
-
-#ifndef _PTHREAD_MD_H_
-#define	_PTHREAD_MD_H_
-
-#include <stddef.h>
-
-#define	DTV_OFFSET		offsetof(struct tcb, tcb_dtv)
-
-/*
- * Variant I tcb. The structure layout is fixed, don't blindly
- * change it!
- */
-struct tcb {
-	void			*tcb_dtv;
-	struct pthread		*tcb_thread;
-};
-
-register struct tcb *_tp __asm("%r13");
-
-#define _tcb	_tp
-
-/*
- * The tcb constructors.
- */
-struct tcb	*_tcb_ctor(struct pthread *, int);
-void		_tcb_dtor(struct tcb *);
-
-/* Called from the thread to set its private data. */
-static __inline void
-_tcb_set(struct tcb *tcb)
-{
-	_tp = tcb;
-}
-
-static __inline struct tcb *
-_tcb_get(void)
-{
-	return (_tcb);
-}
-
-extern struct pthread *_thr_initial;
-
-static __inline struct pthread *
-_get_curthread(void)
-{
-	if (_thr_initial)
-		return (_tcb->tcb_thread);
-	return (NULL);
-}
-
-#endif /* _PTHREAD_MD_H_ */
--- lib/libthr/arch/powerpc/include/pthread_md.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2004 by Peter Grehan. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libthr/arch/powerpc/include/pthread_md.h,v 1.1 2005/04/02 01:19:59 davidxu Exp $
- */
-
-/*
- * Machine-dependent thread prototypes/definitions.
- */
-#ifndef _PTHREAD_MD_H_
-#define	_PTHREAD_MD_H_
-
-#include <stddef.h>
-#include <sys/types.h>
-
-#define	DTV_OFFSET		offsetof(struct tcb, tcb_dtv)
-
-/*
- * Variant I tcb. The structure layout is fixed, don't blindly
- * change it.
- * %r2 points to end of the structure.
- */
-struct tcb {
-	void			*tcb_dtv;
-	struct pthread		*tcb_thread;
-};
-
-register uint8_t *_tp __asm("%r2");
-
-#define _tcb  ((struct tcb *)(_tp - sizeof(struct tcb)))
-
-struct tcb	*_tcb_ctor(struct pthread *, int);
-void		_tcb_dtor(struct tcb *);
-
-static __inline void
-_tcb_set(struct tcb *tcb)
-{
-	_tp = (uint8_t *)tcb + sizeof(struct tcb);
-}
-
-static __inline struct tcb *
-_tcb_get(void)
-{
-	return (_tcb);
-}
-
-extern struct pthread *_thr_initial;
-
-static __inline struct pthread *
-_get_curthread(void)
-{
-	if (_thr_initial)
-		return (_tcb->tcb_thread);
-	return (NULL);
-}
-
-#endif /* _PTHREAD_MD_H_ */
--- lib/libc/ia64/sys/getcontext.S
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/getcontext.S,v 1.1 2003/08/02 00:49:36 marcel Exp $");
-
-#include "SYS.h"
-
-ENTRY(__sys_getcontext,2)
-	WEAK_ALIAS(getcontext, __sys_getcontext)
-	WEAK_ALIAS(_getcontext, __sys_getcontext)
-	flushrs
-	;;
-	CALLSYS_ERROR(getcontext)
-	br.ret.sptk.few rp
-END(__sys_getcontext)
--- lib/libc/ia64/sys/exect.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/*	$NetBSD: exect.S,v 1.2 1996/10/17 03:08:18 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/exect.S,v 1.2 2003/03/03 01:09:46 obrien Exp $");
-
-#include "SYS.h"
-
-ENTRY(exect, 3)
-	CALLSYS_ERROR(execve)
-	br.ret.sptk.few rp
-END(exect)
--- lib/libc/ia64/sys/ptrace.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/*	$NetBSD: ptrace.S,v 1.4 1996/11/08 00:51:24 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/ptrace.S,v 1.3 2003/03/03 01:09:46 obrien Exp $");
-
-#include "SYS.h"
-
-ENTRY(ptrace, 4)
-	add	r14=@ltoff(errno),gp ;;
-	ld8	r14=[r14] ;;
-	st4	[r14]=r0
-	CALLSYS_ERROR(ptrace)
-	br.ret.sptk.few rp
-END(ptrace)
--- lib/libc/ia64/sys/brk.S
+++ /dev/null
@@ -1,57 +0,0 @@
-/*	$NetBSD: brk.S,v 1.4 1996/10/17 03:08:15 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/brk.S,v 1.4 2003/05/16 21:26:39 marcel Exp $");
-
-#include "SYS.h"
-
-	.globl	_end
-IMPORT(curbrk, 8)
-
-	.data
-EXPORT(minbrk)
-	.quad	_end
-
-	.text
-ENTRY(brk, 1)
-	add	r14=@ltoff(minbrk),gp ;;
-	ld8	r14=[r14] ;;
-	ld8	r14=[r14] ;;
-	cmp.ltu	p6,p0=r32,r14 ;;
-(p6)	mov	r32=r14 ;;
-	st8	[sp]=r32
-	CALLSYS_ERROR(break)
-	ld8	r15=[sp]
-	add	r14=@ltoff(curbrk),gp ;;
-	ld8	r14=[r14] ;;
-	st8	[r14]=r15
-	mov	ret0=0
-	br.ret.sptk.few rp
-END(brk)
--- lib/libc/ia64/sys/fork.S
+++ /dev/null
@@ -1,37 +0,0 @@
-/*-
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/fork.S,v 1.6 2003/08/01 22:17:12 marcel Exp $");
-
-#include "SYS.h"
-
-SYSCALL(fork)
-	cmp.ne	p7,p0=ret1,r0		/* ret1!=0 for child */
-	;;
-(p7)	mov	ret0=r0
-	br.ret.sptk.few rp
-END(__sys_fork)
--- lib/libc/ia64/sys/setlogin.S
+++ /dev/null
@@ -1,42 +0,0 @@
-/*	$NetBSD: setlogin.S,v 1.1 1995/02/10 17:50:39 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/setlogin.S,v 1.4 2003/08/01 22:17:12 marcel Exp $");
-
-#include "SYS.h"
-
-IMPORT(_logname_valid, 4)			/* in getlogin() */
-
-SYSCALL(setlogin)
-	add	r14=@ltoff(_logname_valid),gp ;;
-	ld8	r14=[r14] ;;
-	st4	[r14]=r0			/* clear it */
-	br.ret.sptk.few rp
-END(__sys_setlogin)
--- lib/libc/ia64/sys/cerror.S
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/cerror.S,v 1.2 2003/03/03 01:09:46 obrien Exp $");
-
-
-ENTRY(.cerror, 0)
-	alloc	loc0=ar.pfs,0,3,1,0
-	;;
-	mov	loc1=rp
-	mov	loc2=ret0
-	mov	out0=ret0
-	;;
-	br.call.sptk.few rp=__error
-	st4	[ret0]=loc2
-	;;
-	mov	ret0=-1
-	mov	ar.pfs=loc0
-	mov	rp=loc1
-	;;
-	br.ret.sptk.few rp
-END(.cerror)
--- lib/libc/ia64/sys/Makefile.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-# $FreeBSD: src/lib/libc/ia64/sys/Makefile.inc,v 1.8 2003/08/11 07:14:06 bms Exp $
-
-MDASM+=	Ovfork.S brk.S cerror.S exect.S fork.S getcontext.S pipe.S ptrace.S \
-	sbrk.S setlogin.S sigreturn.S swapcontext.S
-
-# Don't generate default code for these syscalls:
-NOASM=	break.o exit.o ftruncate.o getdomainname.o getlogin.o \
-	lseek.o mmap.o openbsd_poll.o pread.o \
-	pwrite.o setdomainname.o sstk.o truncate.o uname.o vfork.o yield.o
-
-PSEUDO=	_getlogin.o _exit.o
--- lib/libc/ia64/sys/sbrk.S
+++ /dev/null
@@ -1,63 +0,0 @@
-/*	$NetBSD: sbrk.S,v 1.4 1996/10/17 03:08:20 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/sbrk.S,v 1.5 2003/05/16 21:26:39 marcel Exp $");
-
-#include "SYS.h"
-
-	.globl	_end
-
-	.data
-EXPORT(curbrk)
-	.quad	_end
-
-	.text
-ENTRY(sbrk, 1)
-	add	r14 = @ltoff(curbrk), gp
-	;;
-	ld8	r14 = [r14]
-	cmp.eq	p6, p0 = r32, r0
-	;;
-	ld8	ret0 = [r14]
-(p6)	br.ret.sptk.few	rp
-	;;
-	add	r32 = ret0, r32
-	;;
-	st8	[sp] = r32
-	CALLSYS_ERROR(break)
-	ld8	r15 = [sp]
-	add	r14 = @ltoff(curbrk), gp
-	;;
-	ld8	r14 = [r14]
-	;;
-	ld8	ret0 = [r14]
-	st8	[r14] = r15
-	br.ret.sptk.few	rp
-END(sbrk)
--- lib/libc/ia64/sys/swapcontext.S
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/swapcontext.S,v 1.1 2003/08/02 00:49:36 marcel Exp $");
-
-#include "SYS.h"
-
-ENTRY(__sys_swapcontext,2)
-	WEAK_ALIAS(swapcontext, __sys_swapcontext)
-	WEAK_ALIAS(_swapcontext, __sys_swapcontext)
-	flushrs
-	;;
-	CALLSYS_ERROR(swapcontext)
-	br.ret.sptk.few rp
-END(__sys_swapcontext)
--- lib/libc/ia64/sys/sigreturn.S
+++ /dev/null
@@ -1,41 +0,0 @@
-/*	$NetBSD: sigreturn.S,v 1.1 1995/02/10 17:50:42 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/sigreturn.S,v 1.3 2003/03/03 01:09:46 obrien Exp $");
-
-#include "SYS.h"
-
-/*
- * We must preserve the state of the registers as the user has set them up.
- * However, that doesn't involve any special work on the ia64.
- * (XXX PROFILING)
- */
-
-RSYSCALL(sigreturn)
--- lib/libc/ia64/sys/Ovfork.S
+++ /dev/null
@@ -1,37 +0,0 @@
-/*-
- * Copyright (c) 2000 Doug Rabson
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/Ovfork.S,v 1.6 2003/08/01 22:17:12 marcel Exp $");
-
-#include "SYS.h"
-
-SYSCALL(vfork)
-	cmp.ne	p7,p0=ret1,r0		/* ret1!=0 for child */
-	;;
-(p7)	mov	ret0=r0
-	br.ret.sptk.few rp
-END(__sys_vfork)
--- lib/libc/ia64/sys/pipe.S
+++ /dev/null
@@ -1,47 +0,0 @@
-/*	$NetBSD: pipe.S,v 1.1 1995/02/10 17:50:35 cgd Exp $	*/
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- * 
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution at CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/pipe.S,v 1.4 2003/05/16 21:26:39 marcel Exp $");
-
-#include "SYS.h"
-
-ENTRY(__sys_pipe, 1)
-	WEAK_ALIAS(pipe, __sys_pipe)
-	WEAK_ALIAS(_pipe, __sys_pipe)
-	st8		[sp]=r32
-	CALLSYS_ERROR(pipe)
-	ld8		r14=[sp]
-	;;
-	st4		[r14]=ret0,4
-	;;
-	st4		[r14]=ret1
-	mov		ret0=0
-	br.ret.sptk.few rp
-END(__sys_pipe)
--- lib/libthr/arch/powerpc/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# $FreeBSD: src/lib/libthr/arch/powerpc/Makefile.inc,v 1.2 2005/04/02 01:19:59 davidxu Exp $
-
-.PATH:	${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
-
-SRCS+=	pthread_md.c
--- lib/libpthread/arch/arm/Makefile.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-# $MidnightBSD: src/lib/libpthread/arch/arm/Makefile.inc,v 1.2 2008/04/28 15:32:30 laffer1 Exp $
-# $FreeBSD: src/lib/libpthread/arch/arm/Makefile.inc,v 1.2 2005/02/26 19:06:49 cognet Exp $
-
-.PATH:	${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
-
-CFLAGS+=-DSYSTEM_SCOPE_ONLY
-
-SRCS+=	pthread_md.c context.S
--- lib/libpthread/arch/arm/arm/context.S
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) Olivier Houchard
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/arch/arm/arm/context.S,v 1.3 2005/02/26 19:06:49 cognet Exp $");
-
-/*
- * int thr_setcontext(mcontext_t *mcp, intptr_t val, intptr_t *loc)
- *
- * Restores the context in mcp.
- *
- * Returns 0 if there are no errors; -1 otherwise
- */
-      
-.weak _C_LABEL(_thr_setcontext)
-.set _C_LABEL(_thr_setcontext), _C_LABEL(__thr_setcontext)
-
-ENTRY(__thr_setcontext)
-/* Check for NULL pointer. */
-	cmp 	r0, #0
-	moveq 	r0, #-1
-	moveq 	pc, lr
-	cmp	r2, #0
-	strne	r1, [r2]
-	ldr	r1, [r0, #(16 * 4)] /* CPSR */
-	msr	cpsr, r1
-	ldmia	r0, {r0-r15}
-	mov	pc, lr
-	/* XXX: FP bits ? */
-
-/*
- * int thr_getcontext(mcontext_t *mcp);
- *
- * Returns -1 if there is an error, 0 no errors; 1 upon return
- * from a setcontext().
- */
-.weak _C_LABEL(_thr_getcontext)
-.set _C_LABEL(_thr_getcontext), _C_LABEL(__thr_getcontext)
-		     
-ENTRY(__thr_getcontext)
-/* Check for NULL pointer. */
-	cmp	r0, #0
-	moveq	r0, #-1
-	moveq	pc, lr
-	stmia	r0, {r1-r14}
-	mov	r1, #1
-	str	r1, [r0] /* Return 1 from setcontext */
-	str	lr, [r0, #(15 * 4)] /* PC */
-	mrs	r1, cpsr
-	str	r1, [r0, #(16 * 4)] /* CPSR */
-	mov	r0, #0 /* Return 0. */
-	mov	pc, lr
-
-ENTRY(_arm_enter_uts)
-	add	sp, r2, r3 /* Stack addr + size. */
-	mov	pc, r1
--- lib/libpthread/arch/arm/arm/pthread_md.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*-
- * Copyright (C) 2003 Jake Burkholder <jake at freebsd.org>
- * Copyright (C) 2003 David Xu <davidxu at freebsd.org>
- * Copyright (c) 2001,2003 Daniel Eischen <deischen at freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/arch/arm/arm/pthread_md.c,v 1.4 2005/02/26 19:06:49 cognet Exp $");
-
-#include <sys/types.h>
-
-#include <unistd.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ucontext.h>
-
-#include <machine/sysarch.h>
-
-#include "pthread_md.h"
-
-struct arm_tp **arm_tp = (struct arm_tp **)ARM_TP_ADDRESS;
-
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
-	struct tcb *tcb;
-
-	if ((tcb = malloc(sizeof(struct tcb)))) {
-		bzero(tcb, sizeof(struct tcb));
-		tcb->tcb_thread = thread;
-		/* XXX - Allocate tdv/tls */
-	}
-	return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
-
-	free(tcb);
-}
-
-struct kcb *
-_kcb_ctor(struct kse *kse)
-{
-	struct kcb *kcb;
-
-	kcb = malloc(sizeof(struct kcb));
-	if (kcb != NULL) {
-		bzero(kcb, sizeof(struct kcb));
-		kcb->kcb_faketcb.tcb_isfake = 1;
-		kcb->kcb_faketcb.tcb_tmbx.tm_flags = TMF_NOUPCALL;
-		kcb->kcb_curtcb = &kcb->kcb_faketcb;
-		kcb->kcb_kse = kse;
-	}
-	return (kcb);
-}
-
-void
-_kcb_dtor(struct kcb *kcb)
-{
-	free(kcb);
-}
--- lib/libpthread/arch/arm/include/pthread_md.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/*-
- * Copyright (c) 2003 Jake Burkholder <jake at freebsd.org>.
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libpthread/arch/arm/include/pthread_md.h,v 1.8 2005/02/26 19:06:49 cognet Exp $
- */
-
-/*
- * Machine-dependent thread prototypes/definitions for the thread kernel.
- */
-#ifndef _PTHREAD_MD_H_
-#define	_PTHREAD_MD_H_
-
-#include <sys/kse.h>
-#include <stddef.h>
-#include <ucontext.h>
-
-#define	KSE_STACKSIZE		16384
-#define	DTV_OFFSET              offsetof(struct tcb, tcb_tp.tp_tdv)
-
-int _thr_setcontext(mcontext_t *, intptr_t, intptr_t *);
-int _thr_getcontext(mcontext_t *);
-
-#define	THR_GETCONTEXT(ucp)	_thr_getcontext(&(ucp)->uc_mcontext)
-#define	THR_SETCONTEXT(ucp)	_thr_setcontext(&(ucp)->uc_mcontext, 0, NULL)
-
-#define	PER_THREAD
-
-struct kcb;
-struct kse;
-struct pthread;
-struct tcb;
-struct tdv;	/* We don't know what this is yet? */
-
-
-/*
- * %r6 points to one of these. We define the static TLS as an array
- * of long double to enforce 16-byte alignment of the TLS memory.
- *
- * XXX - Both static and dynamic allocation of any of these structures
- *       will result in a valid, well-aligned thread pointer???
- */
-struct arm_tp {
-	struct tdv		*tp_tdv;	/* dynamic TLS */
-};
-
-struct tcb {
-	struct pthread		*tcb_thread;
-	struct kcb		*tcb_curkcb;
-	uint32_t		tcb_isfake;
-	struct kse_thr_mailbox	tcb_tmbx;	/* needs 32-byte alignment */
-	struct arm_tp		tcb_tp;
-};
-
-struct kcb {
-	struct kse_mailbox	kcb_kmbx;
-	struct tcb		kcb_faketcb;
-	struct tcb		*kcb_curtcb;
-	struct kse		*kcb_kse;
-};
-
-extern struct arm_tp **arm_tp;
-#define _tp (*arm_tp)
-
-#define	_tcb	((struct tcb*)((char*)(_tp) - offsetof(struct tcb, tcb_tp)))
-
-/*
- * The kcb and tcb constructors.
- */
-struct tcb	*_tcb_ctor(struct pthread *, int);
-void		_tcb_dtor(struct tcb *);
-struct kcb	*_kcb_ctor(struct kse *kse);
-void		_kcb_dtor(struct kcb *);
-
-static __inline uint32_t
-__kcb_swp(uint32_t val, void *ptr)
-{       
-	
-	__asm __volatile("swp   %0, %1, [%2]"
-	    : "=r" (val) : "r" (val) , "r" (ptr) : "memory");
-    	return (val);
-}
-
-/* Called from the KSE to set its private data. */
-static __inline void
-_kcb_set(struct kcb *kcb)
-{
-	/* There is no thread yet; use the fake tcb. */
-	__kcb_swp((uint32_t)&kcb->kcb_faketcb.tcb_tp, &_tp);
-}
-
-/*
- * Get the current kcb.
- *
- * This can only be called while in a critical region; don't
- * worry about having the kcb changed out from under us.
- */
-static __inline struct kcb *
-_kcb_get(void)
-{
-	return (_tcb->tcb_curkcb);
-}
-
-/*
- * Enter a critical region.
- *
- * Read and clear km_curthread in the kse mailbox.
- */
-static __inline struct kse_thr_mailbox *
-_kcb_critical_enter(void)
-{
-	struct kse_thr_mailbox *crit;
-
-	if (_tcb->tcb_isfake)
-		return (NULL);
-	crit = (struct kse_thr_mailbox *)__kcb_swp((uint32_t)NULL, 
-	    &_tcb->tcb_curkcb->kcb_kmbx.km_curthread);
-	return (crit);
-}
-
-static __inline void
-_kcb_critical_leave(struct kse_thr_mailbox *crit)
-{
-
-	if (_tcb->tcb_isfake == 0)
-		__kcb_swp((uint32_t)crit, 
-		    &_tcb->tcb_curkcb->kcb_kmbx.km_curthread);
-}
-
-static __inline int
-_kcb_in_critical(void)
-{
-	uint32_t flags;
-	int ret;
-
-	return (_tcb->tcb_curkcb->kcb_kmbx.km_curthread == NULL);
-	if (_tcb->tcb_isfake != 0) {
-		/*
-		 * We are in a critical region since there is no
-		 * current thread.
-		 */
-		ret = 1;
-	} else {
-		flags = _tcb->tcb_tmbx.tm_flags;
-		_tcb->tcb_tmbx.tm_flags |= TMF_NOUPCALL;
-		ret = (_tcb->tcb_curkcb->kcb_kmbx.km_curthread == NULL);
-		_tcb->tcb_tmbx.tm_flags = flags;
-	}
-	return (ret);
-}
-
-static __inline void
-_tcb_set(struct kcb *kcb, struct tcb *tcb)
-{
-	if (tcb == NULL) 
-		tcb = &kcb->kcb_faketcb;
-	__kcb_swp((uint32_t)&tcb->tcb_tp, &_tp);
-	kcb->kcb_curtcb = tcb;
-	tcb->tcb_curkcb = kcb;
-}
-
-static __inline struct tcb *
-_tcb_get(void)
-{
-	return (_tcb);
-}
-
-static __inline struct pthread *
-_get_curthread(void)
-{
-	return (_tcb->tcb_thread);
-}
-
-/*
- * Get the current kse.
- *
- * Like _kcb_get(), this can only be called while in a critical region.
- */
-static __inline struct kse *
-_get_curkse(void)
-{
-	return (_tcb->tcb_curkcb->kcb_kse);
-}
-
-void _arm_enter_uts(struct kse_mailbox *km, kse_func_t uts, void *stack,
-    size_t stacksz);
-
-static __inline int
-_thread_enter_uts(struct tcb *tcb, struct kcb *kcb)
-{
-	int ret;
-	
-	if ((ret = _thr_getcontext(&tcb->tcb_tmbx.tm_context.uc_mcontext))
-	    == 0) {
-		kcb->kcb_curtcb = &kcb->kcb_faketcb;
-		__kcb_swp((int)&kcb->kcb_faketcb.tcb_tp, &_tp);
-		_arm_enter_uts(&kcb->kcb_kmbx, kcb->kcb_kmbx.km_func,
-		    kcb->kcb_kmbx.km_stack.ss_sp,
-		    kcb->kcb_kmbx.km_stack.ss_size);
-		/* We should not reach here. */
-		return (-1);
-	} else if (ret < 0)
-		return (-1);
-	return (0);
-}
-
-static __inline int
-_thread_switch(struct kcb *kcb, struct tcb *tcb, int setmbox)
-{
-	extern int _libkse_debug;
-	mcontext_t *mc;
-
-	if (!tcb || !kcb)
-		return (-1);
-	_tcb_set(kcb, tcb);
-	mc = &tcb->tcb_tmbx.tm_context.uc_mcontext;
-	if (_libkse_debug == 0) {
-		tcb->tcb_tmbx.tm_lwp = kcb->kcb_kmbx.km_lwp;
-		if (setmbox)
-			_thr_setcontext(mc, (intptr_t)&tcb->tcb_tmbx,
-				(intptr_t *)&kcb->kcb_kmbx.km_curthread);
-		else
-			_thr_setcontext(mc, 0, NULL);
-	} else {
-		if (setmbox)
-			kse_switchin(&tcb->tcb_tmbx, KSE_SWITCHIN_SETTMBX);
-		else
-			kse_switchin(&tcb->tcb_tmbx, 0);
-	}
-
-	/* We should not reach here. */
-	return (-1);
-}
-
-#endif /* _PTHREAD_MD_H_ */
--- lib/libpthread/arch/arm/include/atomic_ops.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*-
- * Copyright (c) 2001 Daniel Eischen <deischen at FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libpthread/arch/arm/include/atomic_ops.h,v 1.3 2005/04/07 22:05:33 cognet Exp $
- */
-
-#ifndef	_ATOMIC_OPS_H_
-#define	_ATOMIC_OPS_H_
-
-#include <machine/atomic.h>
-#include "thr_private.h"
-
-/*
- * Atomic swap:
- *   Atomic (tmp = *dst, *dst = val), then *res = tmp
- *
- * void atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res);
- */
-static inline void
-atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res)
-{
-	*res = __swp(val, dst);
-}
-
-#define	atomic_swap_ptr(d, v, r) \
-	atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r)
-
-#define	atomic_swap_int(d, v, r) \
-	atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r)
-#endif
-
--- lib/libpthread/arch/ia64/Makefile.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-# $MidnightBSD: src/lib/libpthread/arch/ia64/Makefile.inc,v 1.2 2008/04/28 15:32:30 laffer1 Exp $
-# $FreeBSD: src/lib/libpthread/arch/ia64/Makefile.inc,v 1.4 2003/08/05 22:46:00 deischen Exp $
-
-.PATH:	${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
-
-SRCS+=	context.S enter_uts.S pthread_md.c
--- lib/libpthread/arch/ia64/ia64/context.S
+++ /dev/null
@@ -1,351 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/arch/ia64/ia64/context.S,v 1.5 2003/09/19 22:54:05 marcel Exp $");
-
-#include <sys/syscall.h>
-
-#define	SIZEOF_SPECIAL	(18*8)
-
-/*
- * int _ia64_restore_context(mcontext_t *mc, intptr_t val, intptr_t *loc);
- */
-ENTRY(_ia64_restore_context, 3)
-{	.mmi
-	invala
-	mov		ar.rsc=0xc
-	add		r32=16,r32
-	;;
-}
-{	.mmi
-	loadrs
-	ld8		r12=[r32]		// sp
-	add		r31=8,r32
-	;;
-}
-{	.mii
-	ld8		r16=[r31],16		// unat (before)
-	add		r30=16,r32
-	add		r14=SIZEOF_SPECIAL,r32
-	;;
-}
-{	.mmi
-	ld8		r17=[r30],16		// rp
-	ld8		r18=[r31],16		// pr
-	mov		r2=r33
-	;;
-}
-{	.mmi
-	ld8		r19=[r30],16		// pfs
-	ld8		r20=[r31],32		// bspstore
-	mov		rp=r17
-	;;
-}
-{	.mmi
-	ld8		r21=[r30],32		// rnat
-	ld8		r22=[r31],16		// rsc
-	mov		pr=r18,0x1fffe
-	;;
-}
-{	.mmi
-	ld8		r23=[r30]		// fpsr
-	ld8		r24=[r31]		// psr		-- not used
-	mov		r3=r34
-	;;
-}
-{	.mmi
-	ld8		r17=[r14],8		// unat (after)
-	mov		ar.bspstore=r20
-	cmp.ne		p15,p0=r0,r3
-	;;
-}
-{	.mmi
-	mov		ar.rnat=r21
-	mov		ar.unat=r17
-	add		r15=8,r14
-	;;
-}
-{	.mmi
-	ld8.fill	r4=[r14],16		// r4
-	ld8.fill	r5=[r15],16		// r5
-	mov		ar.pfs=r19
-	;;
-}
-{	.mmi
-	ld8.fill	r6=[r14],16		// r6
-	ld8.fill	r7=[r15],16		// r7
-	nop		0
-	;;
-}
-{	.mmi
-	mov		ar.unat=r16
-	mov		ar.rsc=r22
-	nop		0
-}
-{	.mmi
-	ld8		r17=[r14],16		// b1
-	ld8		r18=[r15],16		// b2
-	nop		0
-	;;
-}
-{	.mmi
-	ld8		r19=[r14],16		// b3
-	ld8		r20=[r15],16		// b4
-	mov		b1=r17
-	;;
-}
-{	.mmi
-	ld8		r16=[r14],24		// b5
-	ld8		r17=[r15],32		// lc
-	mov		b2=r18
-	;;
-}
-{	.mmi
-	ldf.fill	f2=[r14],32
-	ldf.fill	f3=[r15],32
-	mov		b3=r19
-	;;
-}
-{	.mmi
-	ldf.fill	f4=[r14],32
-	ldf.fill	f5=[r15],32
-	mov		b4=r20
-	;;
-}
-{	.mmi
-	ldf.fill	f16=[r14],32
-	ldf.fill	f17=[r15],32
-	mov		b5=r16
-	;;
-}
-{	.mmi
-	ldf.fill	f18=[r14],32
-	ldf.fill	f19=[r15],32
-	mov		ar.lc=r17
-	;;
-}
-	ldf.fill	f20=[r14],32
-	ldf.fill	f21=[r15],32
-	;;
-	ldf.fill	f22=[r14],32
-	ldf.fill	f23=[r15],32
-	;;
-	ldf.fill	f24=[r14],32
-	ldf.fill	f25=[r15],32
-	;;
-	ldf.fill	f26=[r14],32
-	ldf.fill	f27=[r15],32
-	;;
-	ldf.fill	f28=[r14],32
-	ldf.fill	f29=[r15],32
-	;;
-	ldf.fill	f30=[r14],32+24
-	ldf.fill	f31=[r15],24+24
-	;;
-	ld8		r8=[r14],16
-	ld8		r9=[r15],16
-	;;
-	ld8		r10=[r14]
-	ld8		r11=[r15]
-	;;
-{	.mmb
-(p15)	st8		[r3]=r2
-	mov		ar.fpsr=r23
-	br.ret.sptk	rp
-	;;
-}
-END(_ia64_restore_context)
-
-/*
- * int _ia64_save_context(mcontext_t *mc);
- */
-ENTRY(_ia64_save_context, 1)
-{	.mmi
-	mov		r14=ar.rsc
-	mov		r15=ar.fpsr
-	add		r31=8,r32
-	;;
-}
-{	.mmi
-	st8		[r32]=r0,16
-	st8		[r31]=r0,16
-	nop		0
-	;;
-}
-{	.mmi
-	mov		ar.rsc=0xc
-	mov		r16=ar.unat
-	nop		0
-	;;
-}
-{	.mmi
-	flushrs
-	st8		[r32]=sp,16		// sp
-	mov		r17=rp
-	;;
-}
-{	.mmi
-	st8		[r31]=r16,16		// unat (before)
-	st8		[r32]=r17,16		// rp
-	mov		r16=pr
-	;;
-}
-{	.mmi
-	st8		[r31]=r16,16		// pr
-	mov		r17=ar.bsp
-	mov		r16=ar.pfs
-	;;
-}
-{	.mmi
-	st8		[r32]=r16,16		// pfs
-	st8		[r31]=r17,16		// bspstore
-	nop		0
-	;;
-}
-{	.mmi
-	mov		r16=ar.rnat
-	mov		ar.rsc=r14
-	add		r30=SIZEOF_SPECIAL-(6*8),r32
-	;;
-}
-{	.mmi
-	st8		[r32]=r16,16		// rnat
-	st8		[r31]=r0,16		// __spare
-	nop		0
-	;;
-}
-{	.mmi
-	st8		[r32]=r13,16		// tp		-- not used
-	st8		[r31]=r14,16		// rsc
-	mov		r16=b1
-	;;
-}
-{	.mmi
-	st8		[r32]=r15,10*8		// fpr
-	st8		[r31]=r0,8*8		// psr
-	nop		0
-	;;
-}
-	/* callee_saved */
-{	.mmi
-	.mem.offset	8,0
-	st8.spill	[r31]=r4,16		// r4
-	.mem.offset	16,0
-	st8.spill	[r32]=r5,16		// r5
-	mov		r17=b2
-	;;
-}
-{	.mmi
-	.mem.offset	24,0
-	st8.spill	[r31]=r6,16		// r6
-	.mem.offset	32,0
-	st8.spill	[r32]=r7,16		// r7
-	mov		r18=b3
-	;;
-}
-{	.mmi
-	st8		[r31]=r16,16		// b1
-	mov		r16=ar.unat
-	mov		r19=b4
-	;;
-}
-{	.mmi
-	st8		[r30]=r16		// unat (after)
-	st8		[r32]=r17,16		// b2
-	mov		r16=b5
-	;;
-}
-{	.mmi
-	st8		[r31]=r18,16		// b3
-	st8		[r32]=r19,16		// b4
-	mov		r17=ar.lc
-	;;
-}
-	st8		[r31]=r16,16		// b5
-	st8		[r32]=r17,16		// lc
-	;;
-	st8		[r31]=r0,24		// __spare
-	stf.spill	[r32]=f2,32
-	;;
-	stf.spill	[r31]=f3,32
-	stf.spill	[r32]=f4,32
-	;;
-	stf.spill	[r31]=f5,32
-	stf.spill	[r32]=f16,32
-	;;
-	stf.spill	[r31]=f17,32
-	stf.spill	[r32]=f18,32
-	;;
-	stf.spill	[r31]=f19,32
-	stf.spill	[r32]=f20,32
-	;;
-	stf.spill	[r31]=f21,32
-	stf.spill	[r32]=f22,32
-	;;
-	stf.spill	[r31]=f23,32
-	stf.spill	[r32]=f24,32
-	;;
-	stf.spill	[r31]=f25,32
-	stf.spill	[r32]=f26,32
-	;;
-	stf.spill	[r31]=f27,32
-	stf.spill	[r32]=f28,32
-	;;
-{	.mmi
-	stf.spill	[r31]=f29,32
-	stf.spill	[r32]=f30,32+24
-	add		r14=1,r0
-	;;
-}
-{	.mmi
-	stf.spill	[r31]=f31,24+24
-	st8		[r32]=r14,16		// r8
-	add		r8=0,r0
-	;;
-}
-	st8		[r31]=r0,16		// r9
-	st8		[r32]=r0		// r10
-	;;
-{	.mmb
-	st8		[r31]=r0		// r11
-	mf
-	br.ret.sptk	rp
-	;;
-}
-END(_ia64_save_context)
-
-/*
- * void _ia64_break_setcontext(mcontext_t *mc);
- */
-ENTRY(_ia64_break_setcontext, 1)
-{	.mmi
-	mov		r8=r32
-	break		0x180000
-	nop		0
-	;;
-}
-END(_ia64_break_setcontext)
--- lib/libpthread/arch/ia64/ia64/enter_uts.S
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/arch/ia64/ia64/enter_uts.S,v 1.1 2003/06/26 05:40:15 marcel Exp $");
-
-/*
- * void _ia64_enter_uts(kse_func_t uts, struct kse_mailbox *km, void *stack,
- *     size_t stacksz);
- */
-ENTRY(_ia64_enter_uts, 4)
-{	.mmi
-	ld8		r14=[in0],8
-	mov		ar.rsc=0xc
-	add		r15=in2,in3
-	;;
-}
-{	.mmi
-	flushrs
-	ld8		r1=[in0]
-	mov		b7=r14
-	;;
-}
-{	.mii
-	mov		ar.bspstore=in2
-	add		sp=-16,r15
-	mov		rp=r14
-	;;
-}
-{	.mib
-	mov		ar.rsc=0xf
-	mov		in0=in1
-	br.cond.sptk	b7
-	;;
-}
-1:	br.cond.sptk	1b
-END(_ia64_enter_uts)
--- lib/libpthread/arch/ia64/ia64/pthread_md.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2003 Daniel Eischen <deischen at freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libpthread/arch/ia64/ia64/pthread_md.c,v 1.3 2004/08/15 16:28:05 dfr Exp $
- */
-
-#include <stdlib.h>
-#include <strings.h>
-#include "pthread_md.h"
-
-/*
- * The constructors.
- */
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
-	struct tcb *tcb;
-
-	if ((tcb = malloc(sizeof(struct tcb))) != NULL) {
-		bzero(tcb, sizeof(struct tcb));
-		tcb->tcb_thread = thread;
-		/* Allocate TDV */
-	}
-	return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
-	/* Free TDV */
-	free(tcb);
-}
-
-struct kcb *
-_kcb_ctor(struct kse *kse)
-{
-	struct kcb *kcb;
-
-	if ((kcb = malloc(sizeof(struct kcb))) != NULL) {
-		bzero(kcb, sizeof(struct kcb));
-		kcb->kcb_faketcb.tcb_isfake = 1;
-		kcb->kcb_faketcb.tcb_tmbx.tm_flags = TMF_NOUPCALL;
-		kcb->kcb_curtcb = &kcb->kcb_faketcb;
-		kcb->kcb_kse = kse;
-	}
-	return (kcb);
-}
-
-void
-_kcb_dtor(struct kcb *kcb)
-{
-	free(kcb);
-}
--- lib/libpthread/arch/ia64/include/pthread_md.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libpthread/arch/ia64/include/pthread_md.h,v 1.16 2004/08/16 14:07:38 davidxu Exp $
- */
-
-#ifndef _PTHREAD_MD_H_
-#define	_PTHREAD_MD_H_
-
-#include <sys/kse.h>
-#include <stddef.h>
-#include <ucontext.h>
-
-#define	KSE_STACKSIZE		16384
-#define	DTV_OFFSET		offsetof(struct tcb, tcb_tp.tp_tdv)
-
-#define	THR_GETCONTEXT(ucp)	_ia64_save_context(&(ucp)->uc_mcontext)
-#define	THR_SETCONTEXT(ucp)	PANIC("THR_SETCONTEXT() now in use!\n")
-
-#define	PER_THREAD
-
-struct kcb;
-struct kse;
-struct pthread;
-struct tcb;
-struct tdv;	/* We don't know what this is yet? */
-
-/*
- * tp points to one of these. We define the static TLS as an array
- * of long double to enforce 16-byte alignment of the TLS memory,
- * struct ia64_tp, struct tcb and also struct kcb. Both static and
- * dynamic allocation of any of these structures will result in a
- * valid, well-aligned thread pointer.
- */
-struct ia64_tp {
-	struct tdv		*tp_tdv;	/* dynamic TLS */
-	uint64_t		_reserved_;
-	long double		tp_tls[0];	/* static TLS */
-};
-
-struct tcb {
-	struct kse_thr_mailbox	tcb_tmbx;
-	struct pthread		*tcb_thread;
-	struct kcb		*tcb_curkcb;
-	long			tcb_isfake;
-	struct ia64_tp		tcb_tp;
-};
-
-struct kcb {
-	struct kse_mailbox	kcb_kmbx;
-	struct tcb		kcb_faketcb;
-	struct tcb		*kcb_curtcb;
-	struct kse		*kcb_kse;
-};
-
-register struct ia64_tp *_tp __asm("%r13");
-
-#define	_tcb	((struct tcb*)((char*)(_tp) - offsetof(struct tcb, tcb_tp)))
-
-/*
- * The kcb and tcb constructors.
- */
-struct tcb	*_tcb_ctor(struct pthread *, int);
-void		_tcb_dtor(struct tcb *);
-struct kcb	*_kcb_ctor(struct kse *kse);
-void		_kcb_dtor(struct kcb *);
-
-/* Called from the KSE to set its private data. */
-static __inline void
-_kcb_set(struct kcb *kcb)
-{
-	/* There is no thread yet; use the fake tcb. */
-	_tp = &kcb->kcb_faketcb.tcb_tp;
-}
-
-/*
- * Get the current kcb.
- *
- * This can only be called while in a critical region; don't
- * worry about having the kcb changed out from under us.
- */
-static __inline struct kcb *
-_kcb_get(void)
-{
-	return (_tcb->tcb_curkcb);
-}
-
-/*
- * Enter a critical region.
- *
- * Read and clear km_curthread in the kse mailbox.
- */
-static __inline struct kse_thr_mailbox *
-_kcb_critical_enter(void)
-{
-	struct kse_thr_mailbox *crit;
-	uint32_t flags;
-
-	if (_tcb->tcb_isfake != 0) {
-		/*
-		 * We already are in a critical region since
-		 * there is no current thread.
-		 */
-		crit = NULL;
-	} else {
-		flags = _tcb->tcb_tmbx.tm_flags;
-		_tcb->tcb_tmbx.tm_flags |= TMF_NOUPCALL;
-		crit = _tcb->tcb_curkcb->kcb_kmbx.km_curthread;
-		_tcb->tcb_curkcb->kcb_kmbx.km_curthread = NULL;
-		_tcb->tcb_tmbx.tm_flags = flags;
-	}
-	return (crit);
-}
-
-static __inline void
-_kcb_critical_leave(struct kse_thr_mailbox *crit)
-{
-	/* No need to do anything if this is a fake tcb. */
-	if (_tcb->tcb_isfake == 0)
-		_tcb->tcb_curkcb->kcb_kmbx.km_curthread = crit;
-}
-
-static __inline int
-_kcb_in_critical(void)
-{
-	uint32_t flags;
-	int ret;
-
-	if (_tcb->tcb_isfake != 0) {
-		/*
-		 * We are in a critical region since there is no
-		 * current thread.
-		 */
-		ret = 1;
-	} else {
-		flags = _tcb->tcb_tmbx.tm_flags;
-		_tcb->tcb_tmbx.tm_flags |= TMF_NOUPCALL;
-		ret = (_tcb->tcb_curkcb->kcb_kmbx.km_curthread == NULL);
-		_tcb->tcb_tmbx.tm_flags = flags;
-	}
-	return (ret);
-}
-
-static __inline void
-_tcb_set(struct kcb *kcb, struct tcb *tcb)
-{
-	if (tcb == NULL)
-		tcb = &kcb->kcb_faketcb;
-	kcb->kcb_curtcb = tcb;
-	tcb->tcb_curkcb = kcb;
-	_tp = &tcb->tcb_tp;
-}
-
-static __inline struct tcb *
-_tcb_get(void)
-{
-	return (_tcb);
-}
-
-static __inline struct pthread *
-_get_curthread(void)
-{
-	return (_tcb->tcb_thread);
-}
-
-/*
- * Get the current kse.
- *
- * Like _kcb_get(), this can only be called while in a critical region.
- */
-static __inline struct kse *
-_get_curkse(void)
-{
-	return (_tcb->tcb_curkcb->kcb_kse);
-}
-
-void _ia64_break_setcontext(mcontext_t *mc);
-void _ia64_enter_uts(kse_func_t uts, struct kse_mailbox *km, void *stack,
-    size_t stacksz);
-int _ia64_restore_context(mcontext_t *mc, intptr_t val, intptr_t *loc);
-int _ia64_save_context(mcontext_t *mc);
-
-static __inline int
-_thread_enter_uts(struct tcb *tcb, struct kcb *kcb)
-{
-	if (_ia64_save_context(&tcb->tcb_tmbx.tm_context.uc_mcontext) == 0) {
-		/* Make the fake tcb the current thread. */
-		kcb->kcb_curtcb = &kcb->kcb_faketcb;
-		_tp = &kcb->kcb_faketcb.tcb_tp;
-		_ia64_enter_uts(kcb->kcb_kmbx.km_func, &kcb->kcb_kmbx,
-		    kcb->kcb_kmbx.km_stack.ss_sp,
-		    kcb->kcb_kmbx.km_stack.ss_size);
-		/* We should not reach here. */
-		return (-1);
-	}
-	return (0);
-}
-
-static __inline int
-_thread_switch(struct kcb *kcb, struct tcb *tcb, int setmbox)
-{
-	mcontext_t *mc;
-
-	_tcb_set(kcb, tcb);
-	mc = &tcb->tcb_tmbx.tm_context.uc_mcontext;
-	if (mc->mc_flags & _MC_FLAGS_ASYNC_CONTEXT) {
-		if (setmbox) {
-			mc->mc_flags |= _MC_FLAGS_KSE_SET_MBOX;
-			mc->mc_special.ifa =
-			    (intptr_t)&kcb->kcb_kmbx.km_curthread;
-			mc->mc_special.isr = (intptr_t)&tcb->tcb_tmbx;
-		}
-		_ia64_break_setcontext(mc);
-	} else if (mc->mc_flags & _MC_FLAGS_SYSCALL_CONTEXT) {
-		if (setmbox)
-			kse_switchin(&tcb->tcb_tmbx, KSE_SWITCHIN_SETTMBX);
-		else
-			kse_switchin(&tcb->tcb_tmbx, 0);
-	} else {
-		if (setmbox)
-			_ia64_restore_context(mc, (intptr_t)&tcb->tcb_tmbx,
-			    (intptr_t *)&kcb->kcb_kmbx.km_curthread);
-		else
-			_ia64_restore_context(mc, 0, NULL);
-	}
-	/* We should not reach here. */
-	return (-1);
-}
-
-#endif /* _PTHREAD_MD_H_ */
--- lib/libpthread/arch/ia64/include/atomic_ops.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libpthread/arch/ia64/include/atomic_ops.h,v 1.1 2003/06/23 04:44:43 marcel Exp $
- */
-
-#ifndef	_ATOMIC_OPS_H_
-#define	_ATOMIC_OPS_H_
-
-static inline void
-atomic_swap_int(int *dst, int val, int *res)
-{
-	__asm("xchg4	%0=[%2],%1" : "=r"(*res) : "r"(val), "r"(dst));
-}
-
-static inline void
-atomic_swap_long(long *dst, long val, long *res)
-{
-	__asm("xchg8	%0=[%2],%1" : "=r"(*res) : "r"(val), "r"(dst));
-}
-
-#define	atomic_swap_ptr(d,v,r)		\
-	atomic_swap_long((long*)d, (long)v, (long*)r)
-
-#endif /* _ATOMIC_OPS_H_ */
--- lib/libthr/arch/arm/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# $FreeBSD: src/lib/libthr/arch/arm/Makefile.inc,v 1.2 2005/04/07 22:06:05 cognet Exp $
-
-.PATH:	${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
-
-SRCS+=	pthread_md.c
--- lib/libthr/arch/powerpc/powerpc/pthread_md.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2003 Daniel Eischen <deischen at freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libthr/arch/powerpc/powerpc/pthread_md.c,v 1.1 2005/04/02 01:19:59 davidxu Exp $
- */
-
-#include <sys/types.h>
-#include <rtld_tls.h>
-
-#include "pthread_md.h"
-
-/*
- * The constructors.
- */
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
-	struct tcb *tcb;
-	void *oldtls;
-
-	if (initial)
-		oldtls = _tp;
-	else
-		oldtls = NULL;
-	tcb = _rtld_allocate_tls(oldtls, sizeof(struct tcb), 16);
-	if (tcb)
-		tcb->tcb_thread = thread;
-	return (tcb);
-
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
-	_rtld_free_tls(tcb, sizeof(tcb), 16);
-}


More information about the Midnightbsd-cvs mailing list