aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2006-08-22 08:03:01 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2006-08-22 08:03:01 +0000
commit2b46c64c9c1bf1cb194e0f2b7c478f61a0e10cd9 (patch)
tree08203fa78d69de58704db3947da0c5c461233445
parenta18003357c614019a078f1721808877f13c9d04e (diff)
downloadsrc-2b46c64c9c1bf1cb194e0f2b7c478f61a0e10cd9.tar.gz
src-2b46c64c9c1bf1cb194e0f2b7c478f61a0e10cd9.zip
Remove alpha left-overs.
Notes
Notes: svn path=/head/; revision=161526
-rw-r--r--Makefile.inc14
-rw-r--r--ObsoleteFiles.inc4
-rw-r--r--contrib/pnpinfo/pnpinfo.c3
-rw-r--r--lib/Makefile6
-rw-r--r--lib/csu/alpha/Makefile21
-rw-r--r--lib/csu/alpha/crt1.c114
-rw-r--r--lib/csu/alpha/crti.S53
-rw-r--r--lib/csu/alpha/crtn.S45
-rw-r--r--lib/libc/Makefile3
-rw-r--r--lib/libc/alpha/Makefile.inc8
-rw-r--r--lib/libc/alpha/SYS.h74
-rw-r--r--lib/libc/alpha/Symbol.map77
-rw-r--r--lib/libc/alpha/_fpmath.h49
-rw-r--r--lib/libc/alpha/arith.h20
-rw-r--r--lib/libc/alpha/gen/Makefile.inc47
-rw-r--r--lib/libc/alpha/gen/_ctx_start.S45
-rw-r--r--lib/libc/alpha/gen/_set_tp.c40
-rw-r--r--lib/libc/alpha/gen/_setjmp.S127
-rw-r--r--lib/libc/alpha/gen/divrem.m4198
-rw-r--r--lib/libc/alpha/gen/fabs.S36
-rw-r--r--lib/libc/alpha/gen/flt_rounds.c60
-rw-r--r--lib/libc/alpha/gen/fpgetmask.c52
-rw-r--r--lib/libc/alpha/gen/fpgetround.c52
-rw-r--r--lib/libc/alpha/gen/fpgetsticky.c52
-rw-r--r--lib/libc/alpha/gen/fpsetmask.c54
-rw-r--r--lib/libc/alpha/gen/fpsetround.c61
-rw-r--r--lib/libc/alpha/gen/infinity.c39
-rw-r--r--lib/libc/alpha/gen/makecontext.c172
-rw-r--r--lib/libc/alpha/gen/modf.c107
-rw-r--r--lib/libc/alpha/gen/rfork_thread.S66
-rw-r--r--lib/libc/alpha/gen/setjmp.S138
-rw-r--r--lib/libc/alpha/gen/signalcontext.c103
-rw-r--r--lib/libc/alpha/gen/sigsetjmp.S64
-rw-r--r--lib/libc/alpha/net/Makefile.inc3
-rw-r--r--lib/libc/alpha/net/byte_swap_2.S49
-rw-r--r--lib/libc/alpha/net/byte_swap_4.S55
-rw-r--r--lib/libc/alpha/net/htonl.S36
-rw-r--r--lib/libc/alpha/net/htons.S36
-rw-r--r--lib/libc/alpha/net/ntohl.S36
-rw-r--r--lib/libc/alpha/net/ntohs.S36
-rw-r--r--lib/libc/alpha/stdlib/Makefile.inc3
-rw-r--r--lib/libc/alpha/string/Makefile.inc3
-rw-r--r--lib/libc/alpha/string/bcopy.S289
-rw-r--r--lib/libc/alpha/string/bzero.S111
-rw-r--r--lib/libc/alpha/string/ffs.S92
-rw-r--r--lib/libc/alpha/string/memcpy.S8
-rw-r--r--lib/libc/alpha/string/memmove.S7
-rw-r--r--lib/libc/alpha/sys/Makefile.inc12
-rw-r--r--lib/libc/alpha/sys/Ovfork.S38
-rw-r--r--lib/libc/alpha/sys/brk.S53
-rw-r--r--lib/libc/alpha/sys/cerror.S56
-rw-r--r--lib/libc/alpha/sys/exect.S38
-rw-r--r--lib/libc/alpha/sys/fork.S38
-rw-r--r--lib/libc/alpha/sys/pipe.S40
-rw-r--r--lib/libc/alpha/sys/ptrace.S40
-rw-r--r--lib/libc/alpha/sys/sbrk.S53
-rw-r--r--lib/libc/alpha/sys/setlogin.S40
-rw-r--r--lib/libc/alpha/sys/sigreturn.S41
-rw-r--r--lib/libc/stdio/findfp.c2
-rw-r--r--lib/libc_r/Makefile2
-rw-r--r--lib/libc_r/arch/alpha/_atomic_lock.S45
-rw-r--r--lib/libio/Makefile9
-rw-r--r--lib/libio/alpha_sethae.c46
-rw-r--r--lib/libio/bwx.c244
-rw-r--r--lib/libio/io.c173
-rw-r--r--lib/libio/io.h48
-rw-r--r--lib/libio/swiz.c248
-rw-r--r--lib/libkse/Makefile2
-rw-r--r--lib/libpthread/Makefile2
-rw-r--r--lib/libpthread/arch/alpha/Makefile.inc5
-rw-r--r--lib/libpthread/arch/alpha/alpha/context.S353
-rw-r--r--lib/libpthread/arch/alpha/alpha/enter_uts.S42
-rw-r--r--lib/libpthread/arch/alpha/alpha/pthread_md.c76
-rw-r--r--lib/libpthread/arch/alpha/include/atomic_ops.h75
-rw-r--r--lib/libpthread/arch/alpha/include/pthread_md.h247
-rw-r--r--lib/libstand/Makefile50
-rw-r--r--lib/libstand/alpha/_setjmp.S120
-rw-r--r--lib/libthr/Makefile4
-rw-r--r--lib/libthr/arch/alpha/Makefile.inc5
-rw-r--r--lib/libthr/arch/alpha/alpha/pthread_md.c53
-rw-r--r--lib/libthr/arch/alpha/include/pthread_md.h75
-rw-r--r--lib/msun/alpha/Makefile.inc11
-rw-r--r--lib/msun/alpha/Symbol.map13
-rw-r--r--lib/msun/alpha/fenv.c144
-rw-r--r--lib/msun/alpha/fenv.h185
-rw-r--r--lib/msun/alpha/s_copysign.S45
-rw-r--r--lib/msun/alpha/s_copysignf.S45
-rw-r--r--libexec/rtld-elf/alpha/Makefile.inc4
-rw-r--r--libexec/rtld-elf/alpha/ld.so.script135
-rw-r--r--libexec/rtld-elf/alpha/reloc.c531
-rw-r--r--libexec/rtld-elf/alpha/rtld_machdep.h78
-rw-r--r--libexec/rtld-elf/alpha/rtld_start.S211
-rw-r--r--release/Makefile11
-rw-r--r--release/alpha/boot_crunch.conf44
-rw-r--r--release/alpha/mkisoimages.sh72
-rw-r--r--rescue/rescue/Makefile4
-rw-r--r--sbin/bsdlabel/Makefile3
-rw-r--r--sbin/ggate/Makefile2
-rw-r--r--sbin/ping/Makefile3
-rw-r--r--secure/lib/libcrypto/Makefile.inc2
-rw-r--r--secure/lib/libcrypto/opensslconf-alpha.h177
-rw-r--r--share/mk/bsd.cpu.mk25
-rw-r--r--share/mk/bsd.endian.mk3
-rw-r--r--tools/regression/lib/msun/Makefile3
-rw-r--r--usr.sbin/crunch/crunchide/Makefile2
-rw-r--r--usr.sbin/pnpinfo/Makefile5
-rw-r--r--usr.sbin/traceroute/Makefile5
107 files changed, 14 insertions, 6882 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 4c66864be87d..e8379039b4e5 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -926,9 +926,6 @@ _btxld= usr.sbin/btxld
.if ${MK_RESCUE} != "no" || defined(RELEASEDIR)
_crunchide= usr.sbin/crunch/crunchide
.endif
-.if ${TARGET_ARCH} == "alpha"
-_elf2exe= usr.sbin/elf2exe
-.endif
.if ${TARGET_ARCH} == "i386" && defined(RELEASEDIR)
_kgzip= usr.sbin/kgzip
.endif
@@ -941,7 +938,6 @@ cross-tools:
usr.bin/xlint/lint1 usr.bin/xlint/lint2 usr.bin/xlint/xlint \
${_btxld} \
${_crunchide} \
- ${_elf2exe} \
${_kgzip}
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
cd ${.CURDIR}/${_tool}; \
diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index 6fb818c07100..cc65308afce5 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -334,7 +334,7 @@ OLD_FILES+=usr/share/man/man1/sasc.1.gz
OLD_FILES+=usr/share/man/man1/sgsc.1.gz
OLD_FILES+=usr/share/man/man4/i386/stl.4.gz
OLD_FILES+=usr/share/man/man8/raidctl.8.gz
-.if ${TARGET_ARCH} != "alpha" && ${TARGET_ARCH} != "sparc64"
+.if ${TARGET_ARCH} != "sparc64"
# 20040130: libkse renamed to libpthread
OLD_FILES+=usr/lib/libkse.a
OLD_FILES+=usr/lib/libkse.so
@@ -3066,7 +3066,7 @@ OLD_LIBS+=usr/lib/libpcap.so.2
OLD_LIBS+=usr/lib/libisc.so.1
# 200408XX
OLD_LIBS+=usr/lib/snmp_netgraph.so.1
-.if ${TARGET_ARCH} != "alpha" && ${TARGET_ARCH} != "sparc64"
+.if ${TARGET_ARCH} != "sparc64"
# 20040130: libkse renamed to libpthread
OLD_LIBS+=usr/lib/libkse.so.1
.endif
diff --git a/contrib/pnpinfo/pnpinfo.c b/contrib/pnpinfo/pnpinfo.c
index 8bf6fa4f2326..790cfd8028dc 100644
--- a/contrib/pnpinfo/pnpinfo.c
+++ b/contrib/pnpinfo/pnpinfo.c
@@ -593,9 +593,6 @@ main(int argc, char **argv)
if (open("/dev/io", O_RDONLY) < 0)
errx(1, "can't get I/O privilege");
#endif
-#ifdef __alpha__
- ioperm(0x203, 0x400 - 0x203, 1);
-#endif
printf("Checking for Plug-n-Play devices...\n");
diff --git a/lib/Makefile b/lib/Makefile
index 3986218ee8df..bdb367875d5a 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -30,7 +30,7 @@ SUBDIR= ${_csu} libbsm libcom_err libcrypt libkvm msun libmd libncurses \
libbegemot ${_libbluetooth} libbsnmp libbz2 libc ${_libc_r} \
libcalendar libcam libcompat libdevinfo libdevstat libdisk \
libedit libexpat libfetch libform libftpio libgeom ${_libgpib} \
- libgssapi ${_libio} libipsec \
+ libgssapi libipsec \
${_libipx} libkiconv libmagic libmemstat libmenu ${_libmilter} ${_libmp} \
${_libncp} ${_libngatm} libopie libpam libpanel libpcap \
libpmc ${_libpthread} librt ${_libsdp} ${_libsm} ${_libsmb} \
@@ -81,10 +81,6 @@ _libsmb= libsmb
_libc_r=
.endif
-.if ${MACHINE_ARCH} == "alpha"
-_libio= libio
-.endif
-
.if ${MK_SENDMAIL} != "no"
_libmilter= libmilter
_libsm= libsm
diff --git a/lib/csu/alpha/Makefile b/lib/csu/alpha/Makefile
deleted file mode 100644
index 8b81815146c3..000000000000
--- a/lib/csu/alpha/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# $FreeBSD$
-
-.PATH: ${.CURDIR}/../common
-SRCS= crt1.c crti.S crtn.S
-OBJS= ${SRCS:N*.h:R:S/$/.o/g}
-OBJS+= gcrt1.o
-WARNS?= 6
-CFLAGS+= -I${.CURDIR}/../common -I${.CURDIR}/../../libc/include
-
-all: ${OBJS}
-
-CLEANFILES= ${OBJS}
-
-gcrt1.o: crt1.c
- ${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.ALLSRC}
-
-realinstall:
- ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
- ${OBJS} ${DESTDIR}${LIBDIR}
-
-.include <bsd.lib.mk>
diff --git a/lib/csu/alpha/crt1.c b/lib/csu/alpha/crt1.c
deleted file mode 100644
index b8ad3ea10063..000000000000
--- a/lib/csu/alpha/crt1.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* LINTLIBRARY */
-/*-
- * Copyright 2001 David E. O'Brien.
- * All rights reserved.
- * Copyright 1996-1998 John D. Polstra.
- * All rights reserved.
- * 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 for the FreeBSD Project.
- * See http://www.freebsd.org/ for information about FreeBSD.
- * 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.
- */
-
-#ifndef lint
-#ifndef __GNUC__
-#error "GCC is needed to compile this file"
-#endif
-#endif /* lint */
-
-#include <stdlib.h>
-
-#include "libc_private.h"
-#include "crtbrand.c"
-
-struct Struct_Obj_Entry;
-struct ps_strings;
-
-extern int _DYNAMIC;
-#pragma weak _DYNAMIC
-
-extern void _fini(void);
-extern void _init(void);
-extern int main(int, char **, char **);
-extern void _start(char **, void (*)(void), struct Struct_Obj_Entry *,
- struct ps_strings *);
-
-#ifdef GCRT
-extern void _mcleanup(void);
-extern void monstartup(void *, void *);
-extern int eprol;
-extern int etext;
-#endif
-
-char **environ;
-const char *__progname = "";
-
-/* The entry function. */
-/* ARGSUSED */
-void
-_start(char **ap, void (*cleanup)(void), struct Struct_Obj_Entry *obj __unused,
- struct ps_strings *ps_strings __unused)
-{
- int argc;
- char **argv;
- char **env;
- const char *s;
-
- argc = *(long *)(void *)ap;
- argv = ap + 1;
- env = ap + 2 + argc;
- environ = env;
- if (argc > 0 && argv[0] != NULL) {
- __progname = argv[0];
- for (s = __progname; *s != '\0'; s++)
- if (*s == '/')
- __progname = s + 1;
- }
-
- if (&_DYNAMIC != NULL)
- atexit(cleanup);
-
-#ifdef GCRT
- atexit(_mcleanup);
-#endif
- atexit(_fini);
-#ifdef GCRT
- monstartup(&eprol, &etext);
-#endif
- _init();
- exit( main(argc, argv, env) );
-}
-
-#ifdef GCRT
-__asm__(".text");
-__asm__("eprol:");
-__asm__(".previous");
-#endif
-
-__asm__(".ident\t\"$FreeBSD$\"");
diff --git a/lib/csu/alpha/crti.S b/lib/csu/alpha/crti.S
deleted file mode 100644
index 5ecd99c30028..000000000000
--- a/lib/csu/alpha/crti.S
+++ /dev/null
@@ -1,53 +0,0 @@
-/*-
- * Copyright 2000 David O'Brien, John D. Polstra.
- * 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.
- */
-
- .section .init,"ax",@progbits
- .align 5
- .globl _init
-_init:
- ldgp $29,0($27)
-$_init..ng:
- lda $30,-16($30)
- stq $26,0($30)
- stq $15,8($30)
- mov $30,$15
- .align 5
-
-
- .section .fini,"ax",@progbits
- .align 5
- .globl _fini
-_fini:
- ldgp $29,0($27)
-$_fini..ng:
- lda $30,-16($30)
- stq $26,0($30)
- stq $15,8($30)
- mov $30,$15
- .align 5
-
-
- .section .rodata
-.ascii "$FreeBSD$\0"
diff --git a/lib/csu/alpha/crtn.S b/lib/csu/alpha/crtn.S
deleted file mode 100644
index 6928d37c1a29..000000000000
--- a/lib/csu/alpha/crtn.S
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * Copyright 2000 David O'Brien, John D. Polstra.
- * 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.
- */
-
- .section .init,"ax",@progbits
- ldgp $29,0($26)
- mov $15,$30
- ldq $26,0($30)
- ldq $15,8($30)
- lda $30,16($30)
- ret $31,($26),1
-
-
- .section .fini,"ax",@progbits
- ldgp $29,0($26)
- mov $15,$30
- ldq $26,0($30)
- ldq $15,8($30)
- lda $30,16($30)
- ret $31,($26),1
-
-
- .section .rodata
-.ascii "$FreeBSD$\0"
diff --git a/lib/libc/Makefile b/lib/libc/Makefile
index 90dc8807f339..27411135ddb0 100644
--- a/lib/libc/Makefile
+++ b/lib/libc/Makefile
@@ -41,8 +41,7 @@ NOASM=
.include "${.CURDIR}/net/Makefile.inc"
.include "${.CURDIR}/nls/Makefile.inc"
.include "${.CURDIR}/posix1e/Makefile.inc"
-.if ${MACHINE_ARCH} != "alpha" && \
- ${MACHINE_ARCH} != "amd64" && \
+.if ${MACHINE_ARCH} != "amd64" && \
${MACHINE_ARCH} != "ia64" && \
${MACHINE_ARCH} != "sparc64"
.include "${.CURDIR}/quad/Makefile.inc"
diff --git a/lib/libc/alpha/Makefile.inc b/lib/libc/alpha/Makefile.inc
deleted file mode 100644
index 49f6a3e10a06..000000000000
--- a/lib/libc/alpha/Makefile.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-# $FreeBSD$
-#
-# Machine dependent definitions for the alpha architecture.
-#
-
-# On Alpha, long double is just double precision.
-MDSRCS+=machdep_ldisd.c
-SYM_MAPS+=${.CURDIR}/alpha/Symbol.map
diff --git a/lib/libc/alpha/SYS.h b/lib/libc/alpha/SYS.h
deleted file mode 100644
index 5365e670bf8a..000000000000
--- a/lib/libc/alpha/SYS.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* From: 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@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$
- */
-
-#include <machine/asm.h>
-#include <sys/syscall.h>
-
-#define CALLSYS_ERROR(name) \
- CALLSYS_NOERROR(name); \
- br gp, LLABEL(name,0); \
-LLABEL(name,0): \
- LDGP(gp); \
- beq a3, LLABEL(name,1); \
- jmp zero, .cerror; \
-LLABEL(name,1):
-
-
-#define SYSCALL(name) \
-LEAF(__CONCAT(__sys_,name),0); /* XXX # of args? */ \
- WEAK_ALIAS(name, __CONCAT(__sys_,name)); \
- WEAK_ALIAS(__CONCAT(_,name), __CONCAT(__sys_,name)); \
- CALLSYS_ERROR(name)
-
-#define SYSCALL_NOERROR(name) \
-LEAF(__CONCAT(__sys_,name),0); /* XXX # of args? */ \
- WEAK_ALIAS(name, __CONCAT(__sys_,name)); \
- WEAK_ALIAS(__CONCAT(_,name), __CONCAT(__sys_,name)); \
- CALLSYS_NOERROR(name)
-
-
-#define RSYSCALL(name) \
- SYSCALL(name); \
- RET; \
-END(__CONCAT(__sys_,name))
-
-#define RSYSCALL_NOERROR(name) \
- SYSCALL_NOERROR(name); \
- RET; \
-END(__CONCAT(__sys_,name))
-
-
-#define PSEUDO(name) \
-LEAF(__CONCAT(__sys_,name),0); /* XXX # of args? */ \
- WEAK_ALIAS(__CONCAT(_,name), __CONCAT(__sys_, name)); \
- CALLSYS_ERROR(name); \
- RET; \
-END(__CONCAT(__sys_,name))
diff --git a/lib/libc/alpha/Symbol.map b/lib/libc/alpha/Symbol.map
deleted file mode 100644
index 51c81ed9c020..000000000000
--- a/lib/libc/alpha/Symbol.map
+++ /dev/null
@@ -1,77 +0,0 @@
-# $FreeBSD$
-
-#
-# This only needs to contain symbols that are not listed in
-# symbol maps from other parts of libc (i.e., not found in
-# stdlib/Symbol.map, string/Symbol.map, sys/Symbol.map, ...).
-#
-FBSD_1.0 {
- # PSEUDO syscalls
- _exit;
-
- __flt_rounds;
- fpgetmask;
- fpgetround;
- fpgetsticky;
- fpsetmask;
- fpsetround;
- __infinity;
- __nan;
- makecontext;
- modf;
- _setjmp;
- _longjmp;
- fabs;
- rfork_thread;
- setjmp;
- longjmp;
- sigsetjmp;
- siglongjmp;
- __htonl;
- htonl;
- __htons;
- htons;
- __ntohl;
- ntohl;
- __ntohs;
- ntohs;
- vfork;
- exect;
- fork;
- sbrk;
-};
-
-#
-# FreeBSD private ABI
-#
-FBSDprivate {
- # PSEUDO syscalls
- __sys_getlogin;
- _getlogin;
- __sys_exit;
-
- _set_tp;
- __makecontext;
- __signalcontext;
- signalcontext;
- ___longjmp;
- __longjmp;
- __siglongjmp;
- __divqu;
- __divq;
- __divlu;
- __divl;
- __remqu;
- __remq;
- __remlu;
- __reml;
- __sys_vork;
- _vfork;
- __sys_fork;
- _fork;
- _end;
- curbrk;
- minbrk;
- brk;
- .cerror;
-};
diff --git a/lib/libc/alpha/_fpmath.h b/lib/libc/alpha/_fpmath.h
deleted file mode 100644
index 8b6d09ec97b1..000000000000
--- a/lib/libc/alpha/_fpmath.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*-
- * Copyright (c) 2002, 2003 David Schultz <das@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$
- */
-
-union IEEEl2bits {
- long double e;
- struct {
- unsigned int manl :32;
- unsigned int manh :20;
- unsigned int exp :11;
- unsigned int sign :1;
- } bits;
-};
-
-#define mask_nbit_l(u) ((void)0)
-#define LDBL_IMPLICIT_NBIT
-#define LDBL_NBIT 0
-
-#define LDBL_MANH_SIZE 20
-#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)
diff --git a/lib/libc/alpha/arith.h b/lib/libc/alpha/arith.h
deleted file mode 100644
index c8af6de23075..000000000000
--- a/lib/libc/alpha/arith.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * MD header for contrib/netlib/gdtoa
- *
- * $FreeBSD$
- */
-
-/*
- * 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 Long int
-#define Intcast (int)(long)
-#define Double_Align
-#define X64_bit_pointers
-#define Sudden_Underflow
diff --git a/lib/libc/alpha/gen/Makefile.inc b/lib/libc/alpha/gen/Makefile.inc
deleted file mode 100644
index 8f8caf818487..000000000000
--- a/lib/libc/alpha/gen/Makefile.inc
+++ /dev/null
@@ -1,47 +0,0 @@
-# $FreeBSD$
-
-SRCS+= _setjmp.S _set_tp.c fabs.S infinity.c ldexp.c modf.c setjmp.S
-SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
- fpsetround.c
-
-SRCS+= sigsetjmp.S
-SRCS+= __divqu.S __divq.S __divlu.S __divl.S
-SRCS+= __remqu.S __remq.S __remlu.S __reml.S
-SRCS+= rfork_thread.S
-SRCS+= _ctx_start.S makecontext.c signalcontext.c
-
-CLEANFILES+= __divqu.S __divq.S __divlu.S __divl.S
-CLEANFILES+= __remqu.S __remq.S __remlu.S __reml.S
-
-
-__divqu.S: ${.CURDIR}/alpha/gen/divrem.m4
- m4 -DNAME=__divqu -DOP=div -DS=false -DWORDSIZE=64 \
- ${.ALLSRC} > ${.TARGET}
-
-__divq.S: ${.CURDIR}/alpha/gen/divrem.m4
- m4 -DNAME=__divq -DOP=div -DS=true -DWORDSIZE=64 \
- ${.ALLSRC} > ${.TARGET}
-
-__divlu.S: ${.CURDIR}/alpha/gen/divrem.m4
- m4 -DNAME=__divlu -DOP=div -DS=false -DWORDSIZE=32 \
- ${.ALLSRC} > ${.TARGET}
-
-__divl.S: ${.CURDIR}/alpha/gen/divrem.m4
- m4 -DNAME=__divl -DOP=div -DS=true -DWORDSIZE=32 \
- ${.ALLSRC} > ${.TARGET}
-
-__remqu.S: ${.CURDIR}/alpha/gen/divrem.m4
- m4 -DNAME=__remqu -DOP=rem -DS=false -DWORDSIZE=64 \
- ${.ALLSRC} > ${.TARGET}
-
-__remq.S: ${.CURDIR}/alpha/gen/divrem.m4
- m4 -DNAME=__remq -DOP=rem -DS=true -DWORDSIZE=64 \
- ${.ALLSRC} > ${.TARGET}
-
-__remlu.S: ${.CURDIR}/alpha/gen/divrem.m4
- m4 -DNAME=__remlu -DOP=rem -DS=false -DWORDSIZE=32 \
- ${.ALLSRC} > ${.TARGET}
-
-__reml.S: ${.CURDIR}/alpha/gen/divrem.m4
- m4 -DNAME=__reml -DOP=rem -DS=true -DWORDSIZE=32 \
- ${.ALLSRC} > ${.TARGET}
diff --git a/lib/libc/alpha/gen/_ctx_start.S b/lib/libc/alpha/gen/_ctx_start.S
deleted file mode 100644
index 229a6c19bd16..000000000000
--- a/lib/libc/alpha/gen/_ctx_start.S
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2001 Daniel Eischen <deischen@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 <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * A0-A5 are the first 6 arguments to the start routine with the
- * remaining arguments (if any) placed on the stack. S0 is the
- * address of the user-supplied start routine, and S1 is the pointer
- * to the ucontext.
- */
- .set noreorder
-LEAF(_ctx_start,0)
- mov s0, t12
- jsr ra, (s0) /* call start routine; args already set */
- LDGP(ra)
- mov s1, a0 /* load A0 (arg 1) with pointer to ucontext */
- CALL(_ctx_done) /* call context completion routine */
- CALL(abort) /* should never return from above call */
- RET
-END(_ctx_start)
diff --git a/lib/libc/alpha/gen/_set_tp.c b/lib/libc/alpha/gen/_set_tp.c
deleted file mode 100644
index 7aff9f76b09c..000000000000
--- a/lib/libc/alpha/gen/_set_tp.c
+++ /dev/null
@@ -1,40 +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$
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <machine/alpha_cpu.h>
-
-void
-_set_tp(void *tp)
-{
-
- alpha_pal_wrunique((uintptr_t) tp);
-}
diff --git a/lib/libc/alpha/gen/_setjmp.S b/lib/libc/alpha/gen/_setjmp.S
deleted file mode 100644
index 85ed8c7e0831..000000000000
--- a/lib/libc/alpha/gen/_setjmp.S
+++ /dev/null
@@ -1,127 +0,0 @@
-/* $NetBSD: _setjmp.S,v 1.2 1996/10/17 03:08:03 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@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$");
-
-/*
- * 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.
- */
-
- .set noreorder
-
-LEAF(_setjmp, 1)
- LDGP(pv)
- stq ra, (2 * 8)(a0) /* sc_pc = return address */
- stq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
- stq s1, ((10 + 4) * 8)(a0)
- stq s2, ((11 + 4) * 8)(a0)
- stq s3, ((12 + 4) * 8)(a0)
- stq s4, ((13 + 4) * 8)(a0)
- stq s5, ((14 + 4) * 8)(a0)
- stq s6, ((15 + 4) * 8)(a0)
- stq ra, ((26 + 4) * 8)(a0)
- stq t12,((27 + 4) * 8)(a0)
- stq sp, ((30 + 4) * 8)(a0)
- ldiq t0, 0xacedbadd /* sigcontext magic number */
- stq t0, ((31 + 4) * 8)(a0) /* magic in sc_regs[31] */
- /* Too bad we can't check if we actually used FP */
- ldiq t0, 1
- stq t0, (36 * 8)(a0) /* say we've used FP. */
- stt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */
- stt fs1, ((3 + 37) * 8)(a0)
- stt fs2, ((4 + 37) * 8)(a0)
- stt fs3, ((5 + 37) * 8)(a0)
- stt fs4, ((6 + 37) * 8)(a0)
- stt fs5, ((7 + 37) * 8)(a0)
- stt fs6, ((8 + 37) * 8)(a0)
- stt fs7, ((9 + 37) * 8)(a0)
- mf_fpcr ft0 /* get FP control reg */
- stt ft0, (69 * 8)(a0) /* and store it in sc_fpcr */
- stq zero, (70 * 8)(a0) /* FP software control XXX */
- stq zero, (71 * 8)(a0) /* sc_reserved[0] */
- stq zero, (72 * 8)(a0) /* sc_reserved[1] */
- stq zero, (73 * 8)(a0) /* sc_xxx[0] */
- stq zero, (74 * 8)(a0) /* sc_xxx[1] */
- stq zero, (75 * 8)(a0) /* sc_xxx[2] */
- stq zero, (76 * 8)(a0) /* sc_xxx[3] */
- stq zero, (77 * 8)(a0) /* sc_xxx[4] */
- stq zero, (78 * 8)(a0) /* sc_xxx[5] */
- stq zero, (79 * 8)(a0) /* sc_xxx[6] */
- stq zero, (80 * 8)(a0) /* sc_xxx[7] */
-
- mov zero, v0 /* return zero */
- RET
-END(_setjmp)
-
-XLEAF(_longjmp, 2)
-LEAF(___longjmp, 2)
- LDGP(pv)
- ldq t0, ((31 + 4) * 8)(a0) /* magic in sc_regs[31] */
- ldiq t1, 0xacedbadd
- cmpeq t0, t1, t0
- beq t0, botch /* If the magic was bad, punt */
-
- ldq ra, (2 * 8)(a0) /* sc_pc = return address */
- ldq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
- ldq s1, ((10 + 4) * 8)(a0)
- ldq s2, ((11 + 4) * 8)(a0)
- ldq s3, ((12 + 4) * 8)(a0)
- ldq s4, ((13 + 4) * 8)(a0)
- ldq s5, ((14 + 4) * 8)(a0)
- ldq s6, ((15 + 4) * 8)(a0)
- /* ldq ra, ((26 + 4) * 8)(a0) set above */
- ldq t12,((27 + 4) * 8)(a0)
- ldq sp, ((30 + 4) * 8)(a0)
- ldt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */
- ldt fs1, ((3 + 37) * 8)(a0)
- ldt fs2, ((4 + 37) * 8)(a0)
- ldt fs3, ((5 + 37) * 8)(a0)
- ldt fs4, ((6 + 37) * 8)(a0)
- ldt fs5, ((7 + 37) * 8)(a0)
- ldt fs6, ((8 + 37) * 8)(a0)
- ldt fs7, ((9 + 37) * 8)(a0)
- ldt ft0, (69 * 8)(a0) /* get sc_fpcr */
- mt_fpcr ft0 /* and restore it. */
-
- mov a1, v0 /* return second arg */
- RET
-
-botch:
- CALL(longjmperror)
- CALL(abort)
- RET /* "can't" get here... */
-END(___longjmp)
diff --git a/lib/libc/alpha/gen/divrem.m4 b/lib/libc/alpha/gen/divrem.m4
deleted file mode 100644
index 6afa2e107199..000000000000
--- a/lib/libc/alpha/gen/divrem.m4
+++ /dev/null
@@ -1,198 +0,0 @@
-/* $NetBSD: divrem.m4,v 1.7 1996/10/17 03:08:04 cgd Exp $ */
-/* $FreeBSD$ */
-
-/*
- * 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@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.
- */
-
-/*
- * Division and remainder.
- *
- * The use of m4 is modeled after the sparc code, but the algorithm is
- * simple binary long division.
- *
- * Note that the loops could probably benefit from unrolling.
- */
-
-/*
- * M4 Parameters
- * NAME name of function to generate
- * OP OP=div: t10 / t11 -> t12; OP=rem: t10 % t11 -> t12
- * S S=true: signed; S=false: unsigned
- * WORDSIZE total number of bits
- */
-
-define(A, `t10')
-define(B, `t11')
-define(RESULT, `t12')
-
-define(BIT, `t0')
-define(I, `t1')
-define(CC, `t2')
-define(T_0, `t3')
-ifelse(S, `true', `define(NEG, `t4')')
-
-#include <machine/asm.h>
-
-NESTED(NAME, 0, 0, t9, 0, 0) /* Get the right ra */
- lda sp, -64(sp)
- stq BIT, 0(sp)
- stq I, 8(sp)
- stq CC, 16(sp)
- stq T_0, 24(sp)
-ifelse(S, `true',
-` stq NEG, 32(sp)')
- stq A, 40(sp)
- stq B, 48(sp)
- mov zero, RESULT /* Initialize result to zero */
-
-ifelse(S, `true',
-`
- /* Compute sign of result. If either is negative, this is easy. */
- or A, B, NEG /* not the sign, but... */
- srl NEG, WORDSIZE - 1, NEG /* rather, or of high bits */
- blbc NEG, Ldoit /* neither negative? do it! */
-
-ifelse(OP, `div',
-` xor A, B, NEG /* THIS is the sign! */
-', ` mov A, NEG /* sign follows A. */
-')
- srl NEG, WORDSIZE - 1, NEG /* make negation the low bit. */
-
- srl A, WORDSIZE - 1, I /* is A negative? */
- blbc I, LnegB /* no. */
- /* A is negative; flip it. */
-ifelse(WORDSIZE, `32', `
- /* top 32 bits may be random junk */
- zap A, 0xf0, A
-')
- subq zero, A, A
- srl B, WORDSIZE - 1, I /* is B negative? */
- blbc I, Ldoit /* no. */
-LnegB:
- /* B is definitely negative, no matter how we got here. */
-ifelse(WORDSIZE, `32', `
- /* top 32 bits may be random junk */
- zap B, 0xf0, B
-')
- subq zero, B, B
-Ldoit:
-')
-ifelse(WORDSIZE, `32', `
- /*
- * Clear the top 32 bits of each operand, as they may
- * sign extension (if negated above), or random junk.
- */
- zap A, 0xf0, A
- zap B, 0xf0, B
-')
-
- /* kill the special cases. */
- beq B, Ldotrap /* division by zero! */
-
- cmpult A, B, CC /* A < B? */
- /* RESULT is already zero, from above. A is untouched. */
- bne CC, Lret_result
-
- cmpeq A, B, CC /* A == B? */
- cmovne CC, 1, RESULT
- cmovne CC, zero, A
- bne CC, Lret_result
-
- /*
- * Find out how many bits of zeros are at the beginning of the divisor.
- */
-LBbits:
- ldiq T_0, 1 /* I = 0; BIT = 1<<WORDSIZE-1 */
- mov zero, I
- sll T_0, WORDSIZE-1, BIT
-LBloop:
- and B, BIT, CC /* if bit in B is set, done. */
- bne CC, LAbits
- addq I, 1, I /* increment I, shift bit */
- srl BIT, 1, BIT
- cmplt I, WORDSIZE-1, CC /* if I leaves one bit, done. */
- bne CC, LBloop
-
-LAbits:
- beq I, Ldodiv /* If I = 0, divide now. */
- ldiq T_0, 1 /* BIT = 1<<WORDSIZE-1 */
- sll T_0, WORDSIZE-1, BIT
-
-LAloop:
- and A, BIT, CC /* if bit in A is set, done. */
- bne CC, Ldodiv
- subq I, 1, I /* decrement I, shift bit */
- srl BIT, 1, BIT
- bne I, LAloop /* If I != 0, loop again */
-
-Ldodiv:
- sll B, I, B /* B <<= i */
- ldiq T_0, 1
- sll T_0, I, BIT
-
-Ldivloop:
- cmpult A, B, CC
- or RESULT, BIT, T_0
- cmoveq CC, T_0, RESULT
- subq A, B, T_0
- cmoveq CC, T_0, A
- srl BIT, 1, BIT
- srl B, 1, B
- beq A, Lret_result
- bne BIT, Ldivloop
-
-Lret_result:
-ifelse(OP, `div',
-`', ` mov A, RESULT
-')
-ifelse(S, `true',
-`
- /* Check to see if we should negate it. */
- subq zero, RESULT, T_0
- cmovlbs NEG, T_0, RESULT
-')
-
- ldq BIT, 0(sp)
- ldq I, 8(sp)
- ldq CC, 16(sp)
- ldq T_0, 24(sp)
-ifelse(S, `true',
-` ldq NEG, 32(sp)')
- ldq A, 40(sp)
- ldq B, 48(sp)
- lda sp, 64(sp)
- ret zero, (t9), 1
-
-Ldotrap:
- ldiq a0, -2 /* This is the signal to SIGFPE! */
- call_pal PAL_gentrap
-ifelse(OP, `div',
-`', ` mov zero, A /* so that zero will be returned */
-')
- br zero, Lret_result
-
-END(NAME)
diff --git a/lib/libc/alpha/gen/fabs.S b/lib/libc/alpha/gen/fabs.S
deleted file mode 100644
index 5a742fec5e7b..000000000000
--- a/lib/libc/alpha/gen/fabs.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $NetBSD: fabs.S,v 1.2 1996/10/17 03:08:05 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@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$");
-
-LEAF(fabs, 1)
- cpys fzero, fa0, fv0
- RET
-END(fabs)
diff --git a/lib/libc/alpha/gen/flt_rounds.c b/lib/libc/alpha/gen/flt_rounds.c
deleted file mode 100644
index c3219d91bd33..000000000000
--- a/lib/libc/alpha/gen/flt_rounds.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.
- *
- * $NetBSD: flt_rounds.c,v 1.2 1997/07/18 00:30:30 thorpej Exp $
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <machine/float.h>
-
-static const int map[] = {
- 0, /* round to zero */
- 3, /* round to negative infinity */
- 1, /* round to nearest */
- 2 /* round to positive infinity */
-};
-
-int
-__flt_rounds()
-{
- union {
- double fpcrval;
- u_int64_t intval;
- } u;
-
- __asm__("trapb");
- __asm__("mf_fpcr %0" : "=f" (u.fpcrval));
- __asm__("trapb");
-
- return map[(u.intval >> 58) & 0x3];
-}
diff --git a/lib/libc/alpha/gen/fpgetmask.c b/lib/libc/alpha/gen/fpgetmask.c
deleted file mode 100644
index 036a150f7553..000000000000
--- a/lib/libc/alpha/gen/fpgetmask.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.
- *
- * $NetBSD: fpgetmask.c,v 1.1 1995/04/29 05:10:55 cgd Exp $
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/sysarch.h>
-
-struct params {
- u_int64_t mask;
-};
-
-fp_except_t
-fpgetmask()
-{
- struct params p;
-
- sysarch(ALPHA_GET_FPMASK, &p);
- return((fp_except_t) p.mask);
-}
diff --git a/lib/libc/alpha/gen/fpgetround.c b/lib/libc/alpha/gen/fpgetround.c
deleted file mode 100644
index 1fd96b2ec53e..000000000000
--- a/lib/libc/alpha/gen/fpgetround.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.
- *
- * $NetBSD: fpgetround.c,v 1.1 1995/04/29 05:09:55 cgd Exp $
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/fpu.h>
-
-fp_rnd_t
-fpgetround()
-{
- union {
- double fpcrval;
- u_int64_t intval;
- } u;
-
- GET_FPCR(u.fpcrval);
-
- return ((u.intval & FPCR_DYN_MASK) >> FPCR_DYN_SHIFT);
-}
diff --git a/lib/libc/alpha/gen/fpgetsticky.c b/lib/libc/alpha/gen/fpgetsticky.c
deleted file mode 100644
index 7586eb40722f..000000000000
--- a/lib/libc/alpha/gen/fpgetsticky.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.
- *
- * $NetBSD: fpgetsticky.c,v 1.1 1995/04/29 05:10:59 cgd Exp $
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/fpu.h>
-
-fp_except_t
-fpgetsticky()
-{
- union {
- double fpcrval;
- u_int64_t intval;
- } u;
-
- GET_FPCR(u.fpcrval);
- return (((u.intval >> IEEE_STATUS_TO_FPCR_SHIFT) & IEEE_STATUS_MASK)
- >> IEEE_STATUS_TO_EXCSUM_SHIFT);
-}
diff --git a/lib/libc/alpha/gen/fpsetmask.c b/lib/libc/alpha/gen/fpsetmask.c
deleted file mode 100644
index 65da3c511421..000000000000
--- a/lib/libc/alpha/gen/fpsetmask.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.
- *
- * $NetBSD: fpsetmask.c,v 1.1 1995/04/29 05:11:01 cgd Exp $
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/sysarch.h>
-
-struct params {
- u_int64_t mask;
-};
-
-fp_except_t
-fpsetmask(mask)
- fp_except_t mask;
-{
- struct params p;
-
- p.mask = (u_int64_t) mask;
- sysarch(ALPHA_SET_FPMASK, &p);
- return ((fp_except_t) p.mask);
-}
diff --git a/lib/libc/alpha/gen/fpsetround.c b/lib/libc/alpha/gen/fpsetround.c
deleted file mode 100644
index 8e994c74d72a..000000000000
--- a/lib/libc/alpha/gen/fpsetround.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.
- *
- * $NetBSD: fpsetround.c,v 1.1 1995/04/29 05:09:57 cgd Exp $
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/fpu.h>
-
-fp_rnd_t
-fpsetround(rnd_dir)
- fp_rnd_t rnd_dir;
-{
- union {
- double fpcrval;
- u_int64_t intval;
- } u;
- u_int64_t old, new;
-
- GET_FPCR(u.fpcrval);
-
- old = u.intval;
- new = old & (~FPCR_DYN_MASK);
- new |= ((long) rnd_dir << FPCR_DYN_SHIFT) & FPCR_DYN_MASK;
-
- u.intval = new;
- SET_FPCR(u.fpcrval);
-
- return ((old & FPCR_DYN_MASK) >> FPCR_DYN_SHIFT);
-}
diff --git a/lib/libc/alpha/gen/infinity.c b/lib/libc/alpha/gen/infinity.c
deleted file mode 100644
index b10f6d38a6e5..000000000000
--- a/lib/libc/alpha/gen/infinity.c
+++ /dev/null
@@ -1,39 +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@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: infinity.c,v 1.1 1995/02/10 17:50:23 cgd Exp $
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <math.h>
-
-/* bytes for +Infinity on an Alpha (IEEE double format) */
-const union __infinity_un __infinity = { { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f } };
-
-/* bytes for NaN */
-const union __nan_un __nan = { { 0, 0, 0xc0, 0xff } };
diff --git a/lib/libc/alpha/gen/makecontext.c b/lib/libc/alpha/gen/makecontext.c
deleted file mode 100644
index bc8ea037731a..000000000000
--- a/lib/libc/alpha/gen/makecontext.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (c) 2001 Daniel M. Eischen <deischen@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$");
-
-#include <sys/param.h>
-#include <sys/signal.h>
-
-#include <errno.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <ucontext.h>
-#include <unistd.h>
-
-
-/* Prototypes */
-extern void _ctx_start(int argc, ...);
-
-
-__weak_reference(__makecontext, makecontext);
-
-void
-_ctx_done (ucontext_t *ucp)
-{
- if (ucp->uc_link == NULL)
- exit(0);
- else {
- /*
- * Since this context has finished, don't allow it
- * to be restarted without being reinitialized (via
- * setcontext or swapcontext).
- */
- ucp->uc_mcontext.mc_format = 0;
-
- /* Set context to next one in link */
- /* XXX - what to do for error, abort? */
- setcontext((const ucontext_t *)ucp->uc_link);
- abort(); /* should never get here */
- }
-}
-
-void
-__makecontext(ucontext_t *ucp, void (*start)(void), int argc, ...)
-{
- va_list ap;
- char *stack_top;
- intptr_t *argp;
- int i;
-
- if (ucp == NULL)
- return;
- else if ((ucp->uc_stack.ss_sp == NULL) ||
- (ucp->uc_stack.ss_size < MINSIGSTKSZ)) {
- /*
- * This should really return -1 with errno set to ENOMEM
- * or something, but the spec says that makecontext is
- * a void function. At least make sure that the context
- * isn't valid so it can't be used without an error.
- */
- ucp->uc_mcontext.mc_format = 0;
- }
- /* XXX - Do we want to sanity check argc? */
- else if ((argc < 0) || (argc > NCARGS)) {
- ucp->uc_mcontext.mc_format = 0;
- }
- /*
- * Make sure the context is valid. For now, we only allow
- * trapframe format contexts to be used for makecontext.
- */
- else if (ucp->uc_mcontext.mc_format == _MC_REV0_TRAPFRAME) {
- /*
- * Alpha passes the first 6 parameters in registers and
- * remaining parameters on the stack. Set up the context
- * accordingly, with the user start routine in register
- * S0, and the context start wrapper (_ctx_start) in the
- * program counter and return address. The context must
- * be in trapframe format.
- *
- * Note: The context start wrapper needs to retrieve the
- * ucontext pointer. Place this in register S1
- * which must be saved by the callee.
- */
- stack_top = (char *)(ucp->uc_stack.ss_sp +
- ucp->uc_stack.ss_size - sizeof(double));
- stack_top = (char *)ALIGN(stack_top);
-
- /*
- * Adjust top of stack to allow for any additional integer
- * arguments beyond 6.
- */
- if (argc > 6)
- stack_top = stack_top - (sizeof(intptr_t) * (argc - 6));
-
- argp = (intptr_t *)stack_top;
-
- va_start(ap, argc);
- for (i = 0; i < argc; i++) {
- switch (i) {
- case 0: ucp->uc_mcontext.mc_regs[FRAME_A0] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 1: ucp->uc_mcontext.mc_regs[FRAME_A1] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 2: ucp->uc_mcontext.mc_regs[FRAME_A2] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 3: ucp->uc_mcontext.mc_regs[FRAME_A3] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 4: ucp->uc_mcontext.mc_regs[FRAME_A4] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 5: ucp->uc_mcontext.mc_regs[FRAME_A5] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- default:
- *argp = va_arg(ap, intptr_t);
- argp++;
- break;
- }
- }
- va_end(ap);
-
- /*
- * The start routine and ucontext are placed in registers
- * S0 and S1 respectively.
- */
- ucp->uc_mcontext.mc_regs[FRAME_S0] = (unsigned long)start;
- ucp->uc_mcontext.mc_regs[FRAME_S1] = (unsigned long)ucp;
-
- /*
- * Set the machine context to point to the top of the stack,
- * and the program counter and return address to the context
- * start wrapper.
- */
- ucp->uc_mcontext.mc_regs[FRAME_SP] = (unsigned long)stack_top;
- ucp->uc_mcontext.mc_regs[FRAME_PC] = (unsigned long)_ctx_start;
- ucp->uc_mcontext.mc_regs[FRAME_RA] = (unsigned long)_ctx_start;
- ucp->uc_mcontext.mc_regs[FRAME_T12] = (unsigned long)_ctx_start;
- }
-}
diff --git a/lib/libc/alpha/gen/modf.c b/lib/libc/alpha/gen/modf.c
deleted file mode 100644
index 37786dc1e19b..000000000000
--- a/lib/libc/alpha/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@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$");
-
-#include <sys/types.h>
-#include <machine/ieee.h>
-#include <errno.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);
-}
diff --git a/lib/libc/alpha/gen/rfork_thread.S b/lib/libc/alpha/gen/rfork_thread.S
deleted file mode 100644
index 68b0233549ba..000000000000
--- a/lib/libc/alpha/gen/rfork_thread.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-
- * Copyright (c) 2000 Peter Wemm <peter@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.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-#include "SYS.h"
-#include <sys/syscall.h>
-/* #include <machine/pal.h> */
-
-/*
- * This is pretty evil and based mostly on examples from other syscall
- * stubs and code that gcc generated. Correctness is uncertain, but it
- * seems to work quite happily.
- */
-LEAF(rfork_thread, 1)
- br gp,L1 /* XXX profiling */
-L1:
- LDGP(pv)
- lda sp,-16(sp)
- stq ra,0(sp)
- mov a3,a5
- CALLSYS_ERROR(rfork)
- beq v0,$child
- addl v0,zero,v0
- ldq ra,0(sp)
- lda sp,16(sp)
- RET
-$child:
- mov a1,sp
- lda sp,-16(sp)
- stq zero,0(sp)
- mov a5,a0
- mov a2,t12
- jsr ra,(t12),0
- ldgp gp,0(ra)
- mov v0,a0
-#ifdef SYS_exit
- CALLSYS_NOERROR(exit)
-#else
- CALLSYS_NOERROR(sys_exit)
-#endif
-END(rfork_thread)
diff --git a/lib/libc/alpha/gen/setjmp.S b/lib/libc/alpha/gen/setjmp.S
deleted file mode 100644
index 779684d328f3..000000000000
--- a/lib/libc/alpha/gen/setjmp.S
+++ /dev/null
@@ -1,138 +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@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$");
-
-#include "SYS.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.
- */
-
- .set noreorder
-
-LEAF(setjmp, 1)
- LDGP(pv)
- stq ra, (2 * 8)(a0) /* sc_pc = return address */
- stq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
- stq s1, ((10 + 4) * 8)(a0)
- stq s2, ((11 + 4) * 8)(a0)
- stq s3, ((12 + 4) * 8)(a0)
- stq s4, ((13 + 4) * 8)(a0)
- stq s5, ((14 + 4) * 8)(a0)
- stq s6, ((15 + 4) * 8)(a0)
- stq ra, ((26 + 4) * 8)(a0)
- stq t12,((27 + 4) * 8)(a0)
- stq sp, ((30 + 4) * 8)(a0)
-
- /*
- * get signal information
- */
- mov a0, s0 /* squirrel away ptr to sc */
-
- /* see what's blocked */
- lda a2, (71 * 8)(a0) /* oset: sc_reserved */
- mov zero, a1 /* set: NULL */
- addq a1, 1, a0 /* how: SIG_BLOCK */
- CALL(_sigprocmask) /* see what's blocked */
-
- lda sp, -24(sp) /* sizeof struct sigaltstack */
- mov zero, a0
- mov sp, a1
- CALL(_sigaltstack)
- ldl t0, 16(sp) /* offset of ss_flags */
- lda sp, 24(sp) /* sizeof struct sigaltstack */
- ldq ra, ((26 + 4) * 8)(s0) /* restore return address */
- blt v0, botch /* check for error */
- and t0, 0x1, t0 /* get SA_ONSTACK flag */
- stq t0, (0 * 8)(s0) /* and save it in sc_onstack */
- /*
- * Restore old s0 and a0, and continue saving registers
- */
- mov s0, a0
- ldq s0, (( 9 + 4) * 8)(a0)
-
- ldiq t0, 0xacedbadd /* sigcontext magic number */
- stq t0, ((31 + 4) * 8)(a0) /* magic in sc_regs[31] */
- /* Too bad we can't check if we actually used FP */
- ldiq t0, 1
- stq t0, (36 * 8)(a0) /* say we've used FP. */
- stt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */
- stt fs1, ((3 + 37) * 8)(a0)
- stt fs2, ((4 + 37) * 8)(a0)
- stt fs3, ((5 + 37) * 8)(a0)
- stt fs4, ((6 + 37) * 8)(a0)
- stt fs5, ((7 + 37) * 8)(a0)
- stt fs6, ((8 + 37) * 8)(a0)
- stt fs7, ((9 + 37) * 8)(a0)
- mf_fpcr ft0 /* get FP control reg */
- stt ft0, (69 * 8)(a0) /* and store it in sc_fpcr */
- stq zero, (70 * 8)(a0) /* FP software control XXX */
- stq zero, (71 * 8)(a0) /* sc_reserved[0] */
- stq zero, (72 * 8)(a0) /* sc_reserved[1] */
- stq zero, (73 * 8)(a0) /* sc_xxx[0] */
- stq zero, (74 * 8)(a0) /* sc_xxx[1] */
- stq zero, (75 * 8)(a0) /* sc_xxx[2] */
- stq zero, (76 * 8)(a0) /* sc_xxx[3] */
- stq zero, (77 * 8)(a0) /* sc_xxx[4] */
- stq zero, (78 * 8)(a0) /* sc_xxx[5] */
- stq zero, (79 * 8)(a0) /* sc_xxx[6] */
- stq zero, (80 * 8)(a0) /* sc_xxx[7] */
-
- mov zero, v0 /* return zero */
- RET
-END(setjmp)
-
-XLEAF(longjmp, 2)
-LEAF(__longjmp, 2)
- LDGP(pv)
- mov a1, s1 /* save return value */
- mov a0, s0 /* save the sc pointer */
- /* restore the mask */
- mov zero, a2 /* oset: NULL */
- lda a1, (71 * 8)(a0) /* set: sc_reserved */
- addq a2, 3, a0 /* how: SIG_SET */
- CALL(_sigprocmask) /* restore the mask */
- mov s0, a0 /* restore the sc pointer */
- mov s1, a1 /* restore the return value */
- jmp zero, ___longjmp /* use ___longjmp to return */
-
-botch:
- CALL(longjmperror)
- CALL(abort)
- RET /* "can't" get here... */
-END(__longjmp)
diff --git a/lib/libc/alpha/gen/signalcontext.c b/lib/libc/alpha/gen/signalcontext.c
deleted file mode 100644
index a3f639719594..000000000000
--- a/lib/libc/alpha/gen/signalcontext.c
+++ /dev/null
@@ -1,103 +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$");
-
-#include <sys/param.h>
-#include <sys/ucontext.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <strings.h>
-
-typedef void (*handler_t)(uint64_t, uint64_t, uint64_t);
-
-/* Prototypes */
-static void ctx_wrapper(ucontext_t *ucp, handler_t func, uint64_t *args);
-
-__weak_reference(__signalcontext, signalcontext);
-
-int
-__signalcontext(ucontext_t *ucp, int sig, __sighandler_t *func)
-{
- uint64_t *args;
- 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 stack. We only need 3 arguments, but we
- * create room for 4 so that we are 16-byte aligned.
- */
- sp = (ucp->uc_mcontext.mc_regs[FRAME_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;
- args[3] = 0;
-
- /*
- * Setup the ucontext of the signal handler.
- */
- bzero(&ucp->uc_mcontext, sizeof(ucp->uc_mcontext));
- ucp->uc_link = sig_uc;
- sigdelset(&ucp->uc_sigmask, sig);
-
- ucp->uc_mcontext.mc_format = _MC_REV0_TRAPFRAME;
- ucp->uc_mcontext.mc_regs[FRAME_A0] = (register_t)ucp;
- ucp->uc_mcontext.mc_regs[FRAME_A1] = (register_t)func;
- ucp->uc_mcontext.mc_regs[FRAME_A1] = (register_t)args;
- ucp->uc_mcontext.mc_regs[FRAME_SP] = (register_t)sp;
- ucp->uc_mcontext.mc_regs[FRAME_PC] = (register_t)ctx_wrapper;
- ucp->uc_mcontext.mc_regs[FRAME_RA] = (register_t)ctx_wrapper;
- ucp->uc_mcontext.mc_regs[FRAME_T12] = (register_t)ctx_wrapper;
- return (0);
-}
-
-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 */
-}
diff --git a/lib/libc/alpha/gen/sigsetjmp.S b/lib/libc/alpha/gen/sigsetjmp.S
deleted file mode 100644
index 0f7e4008f9a9..000000000000
--- a/lib/libc/alpha/gen/sigsetjmp.S
+++ /dev/null
@@ -1,64 +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@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$");
-
-/*
- * 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.
- */
-
- .set noreorder
-
-LEAF(sigsetjmp, 2)
- LDGP(pv)
- stq a1, (81 * 8)(a0) /* save the mask */
- bne a1, Lsavesig /* if !zero, save signals */
- jmp zero, _setjmp /* else don't. */
-Lsavesig:
- jmp zero, setjmp
-END(sigsetjmp)
-
-XLEAF(siglongjmp, 2)
-LEAF(__siglongjmp, 2)
- LDGP(pv)
- ldq t0, (81 * 8)(a0) /* get the mask */
- bne t0, Lrestoresig /* if !zero, restore signals */
- jmp zero, ___longjmp
-Lrestoresig:
- jmp zero, __longjmp
-END(__siglongjmp)
diff --git a/lib/libc/alpha/net/Makefile.inc b/lib/libc/alpha/net/Makefile.inc
deleted file mode 100644
index b7178133b972..000000000000
--- a/lib/libc/alpha/net/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-# $FreeBSD$
-
-SRCS+= htonl.S htons.S ntohl.S ntohs.S
diff --git a/lib/libc/alpha/net/byte_swap_2.S b/lib/libc/alpha/net/byte_swap_2.S
deleted file mode 100644
index d7933c4aebb2..000000000000
--- a/lib/libc/alpha/net/byte_swap_2.S
+++ /dev/null
@@ -1,49 +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@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$");
-
-#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).
- */
-XLEAF(ALIAS, 1)
-LEAF(NAME, 1) /* a0 contains 0x0123 */
- extbl a0, 0, t0 /* t0 = 0x 23 */
- extbl a0, 1, t1 /* t1 = 0x 01 */
- sll t0, 8, t0 /* t1 = 0x23 */
- or t0, t1, v0 /* v0 = 0x2301 */
- RET
-END(NAME)
diff --git a/lib/libc/alpha/net/byte_swap_4.S b/lib/libc/alpha/net/byte_swap_4.S
deleted file mode 100644
index 04acc85d3aed..000000000000
--- a/lib/libc/alpha/net/byte_swap_4.S
+++ /dev/null
@@ -1,55 +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@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$");
-
-#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).
- */
-XLEAF(ALIAS, 1)
-LEAF(NAME, 1) /* a0 contains 0x01234567 */
- extbl a0, 0, t0 /* t0 = 0x 67 */
- extbl a0, 1, t1 /* t1 = 0x 45 */
- extbl a0, 2, t2 /* t2 = 0x 23 */
- extbl a0, 3, t3 /* t3 = 0x 01 */
- sll t0, 24, t0 /* t0 = 0x67 */
- sll t1, 16, t1 /* t1 = 0x 45 */
- sll t2, 8, t2 /* t2 = 0x 23 */
- or t3, t0, v0 /* v0 = 0x67 01 */
- or t1, t2, t1 /* t1 = 0x 4523 */
- or t1, v0, v0 /* v0 = 0x67452301 */
- RET
-END(NAME)
diff --git a/lib/libc/alpha/net/htonl.S b/lib/libc/alpha/net/htonl.S
deleted file mode 100644
index 05c906c1bbbf..000000000000
--- a/lib/libc/alpha/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@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$");
-
-#define ALIAS htonl
-#define NAME __htonl
-
-#include "byte_swap_4.S"
diff --git a/lib/libc/alpha/net/htons.S b/lib/libc/alpha/net/htons.S
deleted file mode 100644
index 4bd3a8b61b60..000000000000
--- a/lib/libc/alpha/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@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$");
-
-#define ALIAS htons
-#define NAME __htons
-
-#include "byte_swap_2.S"
diff --git a/lib/libc/alpha/net/ntohl.S b/lib/libc/alpha/net/ntohl.S
deleted file mode 100644
index a08a1627e28e..000000000000
--- a/lib/libc/alpha/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@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$");
-
-#define ALIAS ntohl
-#define NAME __ntohl
-
-#include "byte_swap_4.S"
diff --git a/lib/libc/alpha/net/ntohs.S b/lib/libc/alpha/net/ntohs.S
deleted file mode 100644
index 79e6e0c73d09..000000000000
--- a/lib/libc/alpha/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@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$");
-
-#define ALIAS ntohs
-#define NAME __ntohs
-
-#include "byte_swap_2.S"
diff --git a/lib/libc/alpha/stdlib/Makefile.inc b/lib/libc/alpha/stdlib/Makefile.inc
deleted file mode 100644
index dda8c76018d8..000000000000
--- a/lib/libc/alpha/stdlib/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-# $FreeBSD$
-
-MDSRCS+= abs.c div.c labs.c ldiv.c
diff --git a/lib/libc/alpha/string/Makefile.inc b/lib/libc/alpha/string/Makefile.inc
deleted file mode 100644
index 7bbcc8de10e9..000000000000
--- a/lib/libc/alpha/string/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-# $FreeBSD$
-
-MDSRCS+= bcopy.S bzero.S ffs.S memcpy.S memmove.S
diff --git a/lib/libc/alpha/string/bcopy.S b/lib/libc/alpha/string/bcopy.S
deleted file mode 100644
index dc230637fd16..000000000000
--- a/lib/libc/alpha/string/bcopy.S
+++ /dev/null
@@ -1,289 +0,0 @@
-/* $NetBSD: bcopy.S,v 1.3 1996/10/17 03:08:11 cgd Exp $ */
-
-/*
- * Copyright (c) 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Trevor Blackwell. Support for use as memcpy() and memmove()
- * added by Chris 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@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$");
-
-#if defined(MEMCOPY) || defined(MEMMOVE)
-#ifdef MEMCOPY
-#define FUNCTION memcpy
-#else
-#define FUNCTION memmove
-#endif
-#define SRCREG a1
-#define DSTREG a0
-#else /* !(defined(MEMCOPY) || defined(MEMMOVE)) */
-#define FUNCTION bcopy
-#define SRCREG a0
-#define DSTREG a1
-#endif /* !(defined(MEMCOPY) || defined(MEMMOVE)) */
-
-#define SIZEREG a2
-
-/*
- * Copy bytes.
- *
- * void bcopy(char *from, char *to, size_t len);
- * char *memcpy(void *to, const void *from, size_t len);
- * char *memmove(void *to, const void *from, size_t len);
- *
- * No matter how invoked, the source and destination registers
- * for calculation. There's no point in copying them to "working"
- * registers, since the code uses their values "in place," and
- * copying them would be slower.
- */
-
-LEAF(FUNCTION,3)
-
-#if defined(MEMCOPY) || defined(MEMMOVE)
- /* set up return value, while we still can */
- mov DSTREG,v0
-#endif
-
- /* Check for negative length */
- ble SIZEREG,bcopy_done
-
- /* Check for overlap */
- subq DSTREG,SRCREG,t5
- cmpult t5,SIZEREG,t5
- bne t5,bcopy_overlap
-
- /* a3 = end address */
- addq SRCREG,SIZEREG,a3
-
- /* Get the first word */
- ldq_u t2,0(SRCREG)
-
- /* Do they have the same alignment? */
- xor SRCREG,DSTREG,t0
- and t0,7,t0
- and DSTREG,7,t1
- bne t0,bcopy_different_alignment
-
- /* src & dst have same alignment */
- beq t1,bcopy_all_aligned
-
- ldq_u t3,0(DSTREG)
- addq SIZEREG,t1,SIZEREG
- mskqh t2,SRCREG,t2
- mskql t3,SRCREG,t3
- or t2,t3,t2
-
- /* Dst is 8-byte aligned */
-
-bcopy_all_aligned:
- /* If less than 8 bytes,skip loop */
- subq SIZEREG,1,t0
- and SIZEREG,7,SIZEREG
- bic t0,7,t0
- beq t0,bcopy_samealign_lp_end
-
-bcopy_samealign_lp:
- stq_u t2,0(DSTREG)
- addq DSTREG,8,DSTREG
- ldq_u t2,8(SRCREG)
- subq t0,8,t0
- addq SRCREG,8,SRCREG
- bne t0,bcopy_samealign_lp
-
-bcopy_samealign_lp_end:
- /* If we're done, exit */
- bne SIZEREG,bcopy_small_left
- stq_u t2,0(DSTREG)
- RET
-
-bcopy_small_left:
- mskql t2,SIZEREG,t4
- ldq_u t3,0(DSTREG)
- mskqh t3,SIZEREG,t3
- or t4,t3,t4
- stq_u t4,0(DSTREG)
- RET
-
-bcopy_different_alignment:
- /*
- * this is the fun part
- */
- addq SRCREG,SIZEREG,a3
- cmpule SIZEREG,8,t0
- bne t0,bcopy_da_finish
-
- beq t1,bcopy_da_noentry
-
- /* Do the initial partial word */
- subq zero,DSTREG,t0
- and t0,7,t0
- ldq_u t3,7(SRCREG)
- extql t2,SRCREG,t2
- extqh t3,SRCREG,t3
- or t2,t3,t5
- insql t5,DSTREG,t5
- ldq_u t6,0(DSTREG)
- mskql t6,DSTREG,t6
- or t5,t6,t5
- stq_u t5,0(DSTREG)
- addq SRCREG,t0,SRCREG
- addq DSTREG,t0,DSTREG
- subq SIZEREG,t0,SIZEREG
- ldq_u t2,0(SRCREG)
-
-bcopy_da_noentry:
- subq SIZEREG,1,t0
- bic t0,7,t0
- and SIZEREG,7,SIZEREG
- beq t0,bcopy_da_finish2
-
-bcopy_da_lp:
- ldq_u t3,7(SRCREG)
- addq SRCREG,8,SRCREG
- extql t2,SRCREG,t4
- extqh t3,SRCREG,t5
- subq t0,8,t0
- or t4,t5,t5
- stq t5,0(DSTREG)
- addq DSTREG,8,DSTREG
- beq t0,bcopy_da_finish1
- ldq_u t2,7(SRCREG)
- addq SRCREG,8,SRCREG
- extql t3,SRCREG,t4
- extqh t2,SRCREG,t5
- subq t0,8,t0
- or t4,t5,t5
- stq t5,0(DSTREG)
- addq DSTREG,8,DSTREG
- bne t0,bcopy_da_lp
-
-bcopy_da_finish2:
- /* Do the last new word */
- mov t2,t3
-
-bcopy_da_finish1:
- /* Do the last partial word */
- ldq_u t2,-1(a3)
- extql t3,SRCREG,t3
- extqh t2,SRCREG,t2
- or t2,t3,t2
- br zero,bcopy_samealign_lp_end
-
-bcopy_da_finish:
- /* Do the last word in the next source word */
- ldq_u t3,-1(a3)
- extql t2,SRCREG,t2
- extqh t3,SRCREG,t3
- or t2,t3,t2
- insqh t2,DSTREG,t3
- insql t2,DSTREG,t2
- lda t4,-1(zero)
- mskql t4,SIZEREG,t5
- cmovne t5,t5,t4
- insqh t4,DSTREG,t5
- insql t4,DSTREG,t4
- addq DSTREG,SIZEREG,a4
- ldq_u t6,0(DSTREG)
- ldq_u t7,-1(a4)
- bic t6,t4,t6
- bic t7,t5,t7
- and t2,t4,t2
- and t3,t5,t3
- or t2,t6,t2
- or t3,t7,t3
- stq_u t3,-1(a4)
- stq_u t2,0(DSTREG)
- RET
-
-bcopy_overlap:
- /*
- * Basically equivalent to previous case, only backwards.
- * Not quite as highly optimized
- */
- addq SRCREG,SIZEREG,a3
- addq DSTREG,SIZEREG,a4
-
- /* less than 8 bytes - don't worry about overlap */
- cmpule SIZEREG,8,t0
- bne t0,bcopy_ov_short
-
- /* Possibly do a partial first word */
- and a4,7,t4
- beq t4,bcopy_ov_nostart2
- subq a3,t4,a3
- subq a4,t4,a4
- ldq_u t1,0(a3)
- subq SIZEREG,t4,SIZEREG
- ldq_u t2,7(a3)
- ldq t3,0(a4)
- extql t1,a3,t1
- extqh t2,a3,t2
- or t1,t2,t1
- mskqh t3,t4,t3
- mskql t1,t4,t1
- or t1,t3,t1
- stq t1,0(a4)
-
-bcopy_ov_nostart2:
- bic SIZEREG,7,t4
- and SIZEREG,7,SIZEREG
- beq t4,bcopy_ov_lp_end
-
-bcopy_ov_lp:
- /* This could be more pipelined, but it doesn't seem worth it */
- ldq_u t0,-8(a3)
- subq a4,8,a4
- ldq_u t1,-1(a3)
- subq a3,8,a3
- extql t0,a3,t0
- extqh t1,a3,t1
- subq t4,8,t4
- or t0,t1,t0
- stq t0,0(a4)
- bne t4,bcopy_ov_lp
-
-bcopy_ov_lp_end:
- beq SIZEREG,bcopy_done
-
- ldq_u t0,0(SRCREG)
- ldq_u t1,7(SRCREG)
- ldq_u t2,0(DSTREG)
- extql t0,SRCREG,t0
- extqh t1,SRCREG,t1
- or t0,t1,t0
- insql t0,DSTREG,t0
- mskql t2,DSTREG,t2
- or t2,t0,t2
- stq_u t2,0(DSTREG)
-
-bcopy_done:
- RET
-
-bcopy_ov_short:
- ldq_u t2,0(SRCREG)
- br zero,bcopy_da_finish
-
- END(FUNCTION)
diff --git a/lib/libc/alpha/string/bzero.S b/lib/libc/alpha/string/bzero.S
deleted file mode 100644
index dd94200f5c02..000000000000
--- a/lib/libc/alpha/string/bzero.S
+++ /dev/null
@@ -1,111 +0,0 @@
-/* $NetBSD: bzero.S,v 1.2 1996/10/17 03:08:12 cgd Exp $ */
-
-/*
- * Copyright (c) 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Trevor Blackwell
- *
- * 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@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$");
-
-LEAF(bzero,2)
- ble a1,bzero_done
- bic a1,63,t3 /* t3 is # bytes to do 64 bytes at a time */
-
- /* If nothing in first word, ignore it */
- subq zero,a0,t0
- and t0,7,t0 /* t0 = (0-size)%8 */
- beq t0,bzero_nostart1
-
- cmpult a1,t0,t1 /* if size > size%8 goto noshort */
- beq t1,bzero_noshort
-
- /*
- * The whole thing is less than a word.
- * Mask off 1..7 bytes, and finish.
- */
- ldq_u t2,0(a0)
- lda t0,-1(zero) /* t0=-1 */
- mskql t0,a1,t0 /* Get ff in bytes (a0%8)..((a0+a1-1)%8) */
- insql t0,a0,t0
- bic t2,t0,t2 /* zero those bytes in word */
- stq_u t2,0(a0)
- RET
-
-bzero_noshort:
- /* Handle the first partial word */
- ldq_u t2,0(a0)
- subq a1,t0,a1
- mskql t2,a0,t2 /* zero bytes (a0%8)..7 in word */
- stq_u t2,0(a0)
-
- addq a0,t0,a0 /* round a0 up to next word */
- bic a1,63,t3 /* recalc t3 (# bytes to do 64 bytes at a
- time) */
-
-bzero_nostart1:
- /*
- * Loop, zeroing 64 bytes at a time
- */
- beq t3,bzero_lp_done
-bzero_lp:
- stq zero,0(a0)
- stq zero,8(a0)
- stq zero,16(a0)
- stq zero,24(a0)
- subq t3,64,t3
- stq zero,32(a0)
- stq zero,40(a0)
- stq zero,48(a0)
- stq zero,56(a0)
- addq a0,64,a0
- bne t3,bzero_lp
-
-bzero_lp_done:
- /*
- * Handle the last 0..7 words.
- * We mask off the low bits, so we don't need an extra
- * compare instruction for the loop (just a bne. heh-heh)
- */
- and a1,0x38,t4
- beq t4,bzero_finish_lp_done
-bzero_finish_lp:
- stq zero,0(a0)
- subq t4,8,t4
- addq a0,8,a0
- bne t4,bzero_finish_lp
-
- /* Do the last partial word */
-bzero_finish_lp_done:
- and a1,7,t5 /* 0..7 bytes left */
- beq t5,bzero_done /* mskqh won't change t0 if t5==0, but I
- don't want to touch, say, a new VM page */
- ldq t0,0(a0)
- mskqh t0,t5,t0
- stq t0,0(a0)
-bzero_done:
- RET
-
- END(bzero)
diff --git a/lib/libc/alpha/string/ffs.S b/lib/libc/alpha/string/ffs.S
deleted file mode 100644
index 11147d607135..000000000000
--- a/lib/libc/alpha/string/ffs.S
+++ /dev/null
@@ -1,92 +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$");
-
-LEAF(ffs, 1)
- addl a0, 0, t0
- beq t0, Lallzero
-
- /*
- * Initialize return value (v0), and set up t1 so that it
- * contains the mask with only the lowest bit set.
- */
- subl zero, t0, t1
- ldil v0, 1
- and t0, t1, t1
-
- and t1, 0xff, t2
- bne t2, Ldo8
-
- /*
- * If lower 16 bits empty, add 16 to result and use upper 16.
- */
- zapnot t1, 0x03, t3
- bne t3, Ldo16
- sra t1, 16, t1
- addl v0, 16, v0
-
-Ldo16:
- /*
- * If lower 8 bits empty, add 8 to result and use upper 8.
- */
- and t1, 0xff, t4
- bne t4, Ldo8
- sra t1, 8, t1
- addl v0, 8, v0
-
-Ldo8:
- and t1, 0x0f, t5 /* lower 4 of 8 empty? */
- and t1, 0x33, t6 /* lower 2 of each 4 empty? */
- and t1, 0x55, t7 /* lower 1 of each 2 empty? */
-
- /* If lower 4 bits empty, add 4 to result. */
- bne t5, Ldo4
- addl v0, 4, v0
-
-Ldo4: /* If lower 2 bits of each 4 empty, add 2 to result. */
- bne t6, Ldo2
- addl v0, 2, v0
-
-Ldo2: /* If lower bit of each 2 empty, add 1 to result. */
- bne t7, Ldone
- addl v0, 1, v0
-
-Ldone:
- RET
-
-Lallzero:
- bis zero, zero, v0
- RET
-END(ffs)
diff --git a/lib/libc/alpha/string/memcpy.S b/lib/libc/alpha/string/memcpy.S
deleted file mode 100644
index ef50ab162905..000000000000
--- a/lib/libc/alpha/string/memcpy.S
+++ /dev/null
@@ -1,8 +0,0 @@
-/* $NetBSD: memcpy.S,v 1.1 1995/08/13 00:40:47 cgd Exp $ */
-
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-#define MEMCOPY
-#include "bcopy.S"
diff --git a/lib/libc/alpha/string/memmove.S b/lib/libc/alpha/string/memmove.S
deleted file mode 100644
index ad80b1cda1d3..000000000000
--- a/lib/libc/alpha/string/memmove.S
+++ /dev/null
@@ -1,7 +0,0 @@
-/* $NetBSD: memmove.S,v 1.1 1995/08/13 00:40:48 cgd Exp $ */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-#define MEMMOVE
-#include "bcopy.S"
diff --git a/lib/libc/alpha/sys/Makefile.inc b/lib/libc/alpha/sys/Makefile.inc
deleted file mode 100644
index d0b21ed8d2d9..000000000000
--- a/lib/libc/alpha/sys/Makefile.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-# $FreeBSD$
-
-MDASM+= Ovfork.S brk.S cerror.S exect.S fork.S pipe.S ptrace.S \
- sbrk.S setlogin.S sigreturn.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
-
diff --git a/lib/libc/alpha/sys/Ovfork.S b/lib/libc/alpha/sys/Ovfork.S
deleted file mode 100644
index 99663f1e5cb4..000000000000
--- a/lib/libc/alpha/sys/Ovfork.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $NetBSD: Ovfork.S,v 1.1 1995/02/10 17:50:29 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@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$");
-
-#include "SYS.h"
-
-SYSCALL(vfork)
- cmovne a4, zero, v0 /* a4 (rv[1]) != 0, child */
- RET
-END(__sys_vfork)
diff --git a/lib/libc/alpha/sys/brk.S b/lib/libc/alpha/sys/brk.S
deleted file mode 100644
index 9f3385b7bc27..000000000000
--- a/lib/libc/alpha/sys/brk.S
+++ /dev/null
@@ -1,53 +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@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$");
-
-#include "SYS.h"
-
- .globl _end
-IMPORT(curbrk, 8)
-
- .data
-EXPORT(minbrk)
- .quad _end
-
- .text
-LEAF(brk, 1)
- br pv, L1 /* XXX profiling */
-L1: LDGP(pv)
- ldq v0, minbrk
- cmpult a0, v0, t0
- cmovne t0, v0, a0
- CALLSYS_ERROR(break)
- stq a0, curbrk
- mov zero, v0
- RET
-END(brk)
diff --git a/lib/libc/alpha/sys/cerror.S b/lib/libc/alpha/sys/cerror.S
deleted file mode 100644
index 5744129807bf..000000000000
--- a/lib/libc/alpha/sys/cerror.S
+++ /dev/null
@@ -1,56 +0,0 @@
-/* $NetBSD: cerror.S,v 1.4 1996/11/08 00:52:46 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@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$");
-
-#include "SYS.h"
-
-#define FRAME_SIZE 16
-#define FRAME_RA_OFFSET 0
-#define FRAME_V0_OFFSET 8
-
-NESTED(.cerror, 0, FRAME_SIZE, ra, IM_RA|IM_V0, 0)
- br t0, L1
-L1: LDGP(t0)
-
- lda sp, -FRAME_SIZE(sp)
- stq ra, FRAME_RA_OFFSET(sp)
- stq v0, FRAME_V0_OFFSET(sp)
-
- CALL(__error)
-
- ldq t0, FRAME_V0_OFFSET(sp)
- stl t0, 0(v0)
-
- ldiq v0, -1
- ldq ra, FRAME_RA_OFFSET(sp)
- lda sp, FRAME_SIZE(sp)
- RET
-END(.cerror)
diff --git a/lib/libc/alpha/sys/exect.S b/lib/libc/alpha/sys/exect.S
deleted file mode 100644
index 8ad065f69514..000000000000
--- a/lib/libc/alpha/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@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$");
-
-#include "SYS.h"
-
-LEAF(exect, 3)
- CALLSYS_ERROR(execve)
- RET
-END(exect)
diff --git a/lib/libc/alpha/sys/fork.S b/lib/libc/alpha/sys/fork.S
deleted file mode 100644
index 5f408966f2ee..000000000000
--- a/lib/libc/alpha/sys/fork.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $NetBSD: fork.S,v 1.1 1995/02/10 17:50:34 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@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$");
-
-#include "SYS.h"
-
-SYSCALL(fork)
- cmovne a4, zero, v0 /* a4 (rv[1]) != 0, child */
- RET
-END(__sys_fork)
diff --git a/lib/libc/alpha/sys/pipe.S b/lib/libc/alpha/sys/pipe.S
deleted file mode 100644
index e94398e9656c..000000000000
--- a/lib/libc/alpha/sys/pipe.S
+++ /dev/null
@@ -1,40 +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@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$");
-
-#include "SYS.h"
-
-SYSCALL(pipe)
- stl v0, 0(a0)
- stl a4, 4(a0)
- mov zero, v0
- RET
-END(__sys_pipe)
diff --git a/lib/libc/alpha/sys/ptrace.S b/lib/libc/alpha/sys/ptrace.S
deleted file mode 100644
index 8e4c371f7f0c..000000000000
--- a/lib/libc/alpha/sys/ptrace.S
+++ /dev/null
@@ -1,40 +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@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$");
-
-#include "SYS.h"
-
-LEAF(ptrace, 4)
- LDGP(pv)
- stl zero, errno
- CALLSYS_ERROR(ptrace)
- RET
-END(ptrace)
diff --git a/lib/libc/alpha/sys/sbrk.S b/lib/libc/alpha/sys/sbrk.S
deleted file mode 100644
index 4d7990650229..000000000000
--- a/lib/libc/alpha/sys/sbrk.S
+++ /dev/null
@@ -1,53 +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@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$");
-
-#include "SYS.h"
-
- .globl _end
-
- .data
-EXPORT(curbrk)
- .quad _end
-
- .text
-LEAF(sbrk, 1)
- br pv, L1 /* XXX profiling */
-L1: LDGP(pv)
- ldq a1, curbrk
- beq a0, L2
- addq a0, a1, a0
- CALLSYS_ERROR(break)
- stq a0, curbrk
-L2:
- mov a1, v0
- RET
-END(sbrk)
diff --git a/lib/libc/alpha/sys/setlogin.S b/lib/libc/alpha/sys/setlogin.S
deleted file mode 100644
index 00b1d3c8e152..000000000000
--- a/lib/libc/alpha/sys/setlogin.S
+++ /dev/null
@@ -1,40 +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@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$");
-
-#include "SYS.h"
-
-IMPORT(_logname_valid, 4) /* in _getlogin() */
-
-SYSCALL(setlogin)
- stl zero, _logname_valid /* clear it */
- RET
-END(__sys_setlogin)
diff --git a/lib/libc/alpha/sys/sigreturn.S b/lib/libc/alpha/sys/sigreturn.S
deleted file mode 100644
index 9b13d5f1a136..000000000000
--- a/lib/libc/alpha/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@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$");
-
-#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 Alpha.
- * (XXX PROFILING)
- */
-
-RSYSCALL(sigreturn)
diff --git a/lib/libc/stdio/findfp.c b/lib/libc/stdio/findfp.c
index 26d4dcf7797d..740ec98f78f0 100644
--- a/lib/libc/stdio/findfp.c
+++ b/lib/libc/stdio/findfp.c
@@ -86,7 +86,7 @@ FILE __sF[3] = {
* with future versions of libc. Or rather it allows us to work with
* libraries that have been built with a newer libc that defines these
* symbols and expects libc to provide them. We only have need to support
- * i386 and alpha because they are the only "old" systems we have deployed.
+ * i386 because it is the only "old" system we have deployed.
*/
FILE *__stdinp = &__sF[0];
FILE *__stdoutp = &__sF[1];
diff --git a/lib/libc_r/Makefile b/lib/libc_r/Makefile
index bd8a2b505b67..91758151d94d 100644
--- a/lib/libc_r/Makefile
+++ b/lib/libc_r/Makefile
@@ -25,7 +25,7 @@ PRECIOUSLIB=
.include "${.CURDIR}/uthread/Makefile.inc"
.include "${.CURDIR}/sys/Makefile.inc"
-.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "sparc64"
+.if ${MACHINE_ARCH} == "sparc64"
SYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a
.if !defined(NO_PIC)
SYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so
diff --git a/lib/libc_r/arch/alpha/_atomic_lock.S b/lib/libc_r/arch/alpha/_atomic_lock.S
deleted file mode 100644
index 1ddceb0865b9..000000000000
--- a/lib/libc_r/arch/alpha/_atomic_lock.S
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1998 John Birrell <jb@cimlogic.com.au>.
- * All rights reserved.
- * copyright Douglas Santry 1996
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the above copyright is retained
- * in the source form.
- *
- * THIS SOFTWARE IS PROVIDED BY Douglas Santry 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 Douglas Santry 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$
- *
- */
-
-#include <machine/asm.h>
-
-/*
- * Atomicly lock a location with an identifier provided the location
- * is not currently locked.
- *
- * long _atomic_lock(long *);
- * v0 will contain the return value (zero if lock obtained).
- */
-LEAF(_atomic_lock,0)
- LDGP(pv)
-
-0: ldq_l v0, 0(a0) /* read existing lock value */
- mov 1, t0 /* locked value to store */
- stq_c t0, 0(a0) /* attempt to store, status in t0 */
- beq t0, 1f /* branch foward to optimise prediction */
- mb /* sync with other processors */
- RET /* return with v0==0 if lock obtained */
-1: br 0b /* loop to try again */
-END(_atomic_lock)
diff --git a/lib/libio/Makefile b/lib/libio/Makefile
deleted file mode 100644
index bbbd72de52f9..000000000000
--- a/lib/libio/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# $FreeBSD$
-
-LIB= io
-SHLIB_MAJOR= 1
-SRCS= io.c swiz.c bwx.c alpha_sethae.c
-
-CFLAGS+= -Wall -Wa,-mev56
-
-.include <bsd.lib.mk>
diff --git a/lib/libio/alpha_sethae.c b/lib/libio/alpha_sethae.c
deleted file mode 100644
index 206b6ddac4d2..000000000000
--- a/lib/libio/alpha_sethae.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-
- * Copyright (c) 1998 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$");
-
-#include <sys/types.h>
-#include <machine/sysarch.h>
-
-struct parms {
- u_int64_t hae;
-};
-
-int
-alpha_sethae(u_int64_t hae)
-{
- struct parms p;
-
- p.hae = hae;
-
- return (sysarch(ALPHA_SETHAE, &p));
-}
diff --git a/lib/libio/bwx.c b/lib/libio/bwx.c
deleted file mode 100644
index 5b479686f376..000000000000
--- a/lib/libio/bwx.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/*-
- * Copyright (c) 1998 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$");
-
-#include <sys/param.h>
-#include <sys/mman.h>
-#include <sys/fcntl.h>
-#include <sys/sysctl.h>
-#include <err.h>
-#include <paths.h>
-#include <machine/bwx.h>
-#include <machine/sysarch.h>
-#include <stdlib.h>
-#include "io.h"
-
-#define mb() __asm__ __volatile__("mb" : : : "memory")
-#define wmb() __asm__ __volatile__("wmb" : : : "memory")
-
-static int mem_fd; /* file descriptor to /dev/mem */
-static void *bwx_int1_ports; /* mapped int1 io ports */
-static void *bwx_int2_ports; /* mapped int2 io ports */
-static void *bwx_int4_ports; /* mapped int4 io ports */
-static u_int64_t bwx_io_base; /* physical address of ports */
-static u_int64_t bwx_mem_base; /* physical address of bwx mem */
-
-static void
-bwx_init()
-{
- size_t len = sizeof(u_int64_t);
- int error;
-
- mem_fd = open(_PATH_MEM, O_RDWR);
- if (mem_fd < 0)
- err(1, _PATH_MEM);
- bwx_int1_ports = mmap(0, 1L<<32, PROT_READ, MAP_ANON, -1, 0);
- bwx_int2_ports = mmap(0, 1L<<32, PROT_READ, MAP_ANON, -1, 0);
- bwx_int4_ports = mmap(0, 1L<<32, PROT_READ, MAP_ANON, -1, 0);
-
- if ((error = sysctlbyname("hw.chipset.ports", &bwx_io_base, &len,
- 0, 0)) < 0)
- err(1, "hw.chipset.ports");
- if ((error = sysctlbyname("hw.chipset.memory", &bwx_mem_base, &len,
- 0, 0)) < 0)
- err(1, "hw.chipset.memory");
-}
-
-static int
-bwx_ioperm(u_int32_t from, u_int32_t num, int on)
-{
- u_int32_t start, end;
-
- if (!bwx_int1_ports)
- bwx_init();
-
- if (!on)
- return -1; /* XXX can't unmap yet */
-
- start = trunc_page(from);
- end = round_page(from + num);
-
- munmap(bwx_int1_ports + start, end-start);
- munmap(bwx_int2_ports + start, end-start);
- munmap(bwx_int4_ports + start, end-start);
- mmap(bwx_int1_ports + start, end-start, PROT_READ|PROT_WRITE, MAP_SHARED,
- mem_fd, bwx_io_base + BWX_EV56_INT1 + start);
- mmap(bwx_int2_ports + start, end-start, PROT_READ|PROT_WRITE, MAP_SHARED,
- mem_fd, bwx_io_base + BWX_EV56_INT2 + start);
- mmap(bwx_int4_ports + start, end-start, PROT_READ|PROT_WRITE, MAP_SHARED,
- mem_fd, bwx_io_base + BWX_EV56_INT4 + start);
- return 0;
-}
-
-static u_int8_t
-bwx_inb(u_int32_t port)
-{
- mb();
- return ldbu((vm_offset_t)bwx_int1_ports + port);
-}
-
-static u_int16_t
-bwx_inw(u_int32_t port)
-{
- mb();
- return ldwu((vm_offset_t)bwx_int2_ports + port);
-}
-
-static u_int32_t
-bwx_inl(u_int32_t port)
-{
- mb();
- return ldl((vm_offset_t)bwx_int4_ports + port);
-}
-
-static void
-bwx_outb(u_int32_t port, u_int8_t val)
-{
- stb((vm_offset_t)bwx_int1_ports + port, val);
- wmb();
-}
-
-static void
-bwx_outw(u_int32_t port, u_int16_t val)
-{
- stw((vm_offset_t)bwx_int2_ports + port, val);
- wmb();
-}
-
-static void
-bwx_outl(u_int32_t port, u_int32_t val)
-{
- stl((vm_offset_t)bwx_int4_ports + port, val);
- wmb();
-}
-
-struct bwx_mem_handle {
- void *virt1; /* int1 address in user address-space */
- void *virt2; /* int2 address in user address-space */
- void *virt4; /* int4 address in user address-space */
-};
-
-static void *
-bwx_map_memory(u_int32_t address, u_int32_t size)
-{
- struct bwx_mem_handle *h;
- h = malloc(sizeof(struct bwx_mem_handle));
- if (!h) return 0;
- h->virt1 = mmap(0, size << 5, PROT_READ|PROT_WRITE, MAP_SHARED,
- mem_fd, bwx_mem_base + BWX_EV56_INT1 + address);
- if ((long) h->virt1 == -1) {
- free(h);
- return 0;
- }
- h->virt2 = mmap(0, size << 5, PROT_READ|PROT_WRITE, MAP_SHARED,
- mem_fd, bwx_mem_base + BWX_EV56_INT2 + address);
- if ((long) h->virt2 == -1) {
- munmap(h->virt1, size);
- free(h);
- return 0;
- }
- h->virt4 = mmap(0, size << 5, PROT_READ|PROT_WRITE, MAP_SHARED,
- mem_fd, bwx_mem_base + BWX_EV56_INT4 + address);
- if ((long) h->virt4 == -1) {
- munmap(h->virt1, size);
- munmap(h->virt2, size);
- free(h);
- return 0;
- }
- return h;
-}
-
-static void
-bwx_unmap_memory(void *handle, u_int32_t size)
-{
- struct bwx_mem_handle *h = handle;
- munmap(h->virt1, size);
- munmap(h->virt2, size);
- munmap(h->virt4, size);
- free(h);
-}
-
-static u_int8_t
-bwx_readb(void *handle, u_int32_t offset)
-{
- struct bwx_mem_handle *h = handle;
- return ldbu((vm_offset_t)h->virt1 + offset);
-}
-
-static u_int16_t
-bwx_readw(void *handle, u_int32_t offset)
-{
- struct bwx_mem_handle *h = handle;
- return ldwu((vm_offset_t)h->virt2 + offset);
-}
-
-static u_int32_t
-bwx_readl(void *handle, u_int32_t offset)
-{
- struct bwx_mem_handle *h = handle;
- return ldl((vm_offset_t)h->virt4 + offset);
-}
-
-static void
-bwx_writeb(void *handle, u_int32_t offset, u_int8_t val)
-{
- struct bwx_mem_handle *h = handle;
- stb_nb((vm_offset_t)h->virt1 + offset, val);
-}
-
-static void
-bwx_writew(void *handle, u_int32_t offset, u_int16_t val)
-{
- struct bwx_mem_handle *h = handle;
- stw_nb((vm_offset_t)h->virt2 + offset, val);
-}
-
-static void
-bwx_writel(void *handle, u_int32_t offset, u_int32_t val)
-{
- struct bwx_mem_handle *h = handle;
- stl_nb((vm_offset_t)h->virt4 + offset, val);
-}
-
-struct io_ops bwx_io_ops = {
- bwx_ioperm,
- bwx_inb,
- bwx_inw,
- bwx_inl,
- bwx_outb,
- bwx_outw,
- bwx_outl,
- bwx_map_memory,
- bwx_unmap_memory,
- bwx_readb,
- bwx_readw,
- bwx_readl,
- bwx_writeb,
- bwx_writew,
- bwx_writel,
-};
diff --git a/lib/libio/io.c b/lib/libio/io.c
deleted file mode 100644
index a963349f29e1..000000000000
--- a/lib/libio/io.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/*-
- * Copyright (c) 1998 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$");
-
-#include <sys/types.h>
-#include <sys/sysctl.h>
-#include <err.h>
-#include "io.h"
-
-static struct io_ops *ops;
-
-int
-ioperm(unsigned long from, unsigned long num, int on)
-{
- int error;
- int bwx;
- size_t len = sizeof(bwx);
-
- if ((error = sysctlbyname("hw.chipset.bwx", &bwx, &len, 0, 0)) < 0)
- return error;
- if (bwx)
- ops = &bwx_io_ops;
- else
- ops = &swiz_io_ops;
-
- return ops->ioperm(from, num, on);
-}
-
-u_int8_t
-inb(u_int32_t port)
-{
- return ops->inb(port);
-}
-
-u_int16_t
-inw(u_int32_t port)
-{
- return ops->inw(port);
-}
-
-u_int32_t
-inl(u_int32_t port)
-{
- return ops->inl(port);
-}
-
-void
-outb(u_int32_t port, u_int8_t val)
-{
- ops->outb(port, val);
-}
-
-void
-outw(u_int32_t port, u_int16_t val)
-{
- ops->outw(port, val);
-}
-
-void
-outl(u_int32_t port, u_int32_t val)
-{
- ops->outl(port, val);
-}
-
-void *
-map_memory(u_int32_t address, u_int32_t size)
-{
- return ops->map_memory(address, size);
-}
-
-void
-unmap_memory(void *handle, u_int32_t size)
-{
- ops->unmap_memory(handle, size);
-}
-
-u_int8_t
-readb(void *handle, u_int32_t offset)
-{
- return ops->readb(handle, offset);
-}
-
-u_int16_t
-readw(void *handle, u_int32_t offset)
-{
- return ops->readw(handle, offset);
-}
-
-u_int32_t
-readl(void *handle, u_int32_t offset)
-{
- return ops->readl(handle, offset);
-}
-
-void
-writeb(void *handle, u_int32_t offset, u_int8_t val)
-{
- ops->writeb(handle, offset, val);
- __asm__ __volatile__ ("mb");
-}
-
-void
-writew(void *handle, u_int32_t offset, u_int16_t val)
-{
- ops->writew(handle, offset, val);
- __asm__ __volatile__ ("mb");
-}
-
-void
-writel(void *handle, u_int32_t offset, u_int32_t val)
-{
- ops->writel(handle, offset, val);
- __asm__ __volatile__ ("mb");
-}
-
-void
-writeb_nb(void *handle, u_int32_t offset, u_int8_t val)
-{
- return ops->writeb(handle, offset, val);
-}
-
-void
-writew_nb(void *handle, u_int32_t offset, u_int16_t val)
-{
- return ops->writew(handle, offset, val);
-}
-
-void
-writel_nb(void *handle, u_int32_t offset, u_int32_t val)
-{
- return ops->writel(handle, offset, val);
-}
-
-u_int64_t
-dense_base(void)
-{
- static u_int64_t base = 0;
-
- if (base == 0) {
- size_t len = sizeof(base);
- int error;
- if ((error = sysctlbyname("hw.chipset.dense", &base, &len,
- 0, 0)) < 0)
- err(1, "hw.chipset.dense");
- }
-
- return base;
-}
diff --git a/lib/libio/io.h b/lib/libio/io.h
deleted file mode 100644
index 1f4c62034ef3..000000000000
--- a/lib/libio/io.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-
- * Copyright (c) 1998 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$
- */
-
-struct io_ops {
- int (*ioperm)(u_int32_t, u_int32_t, int);
- u_int8_t (*inb)(u_int32_t);
- u_int16_t (*inw)(u_int32_t);
- u_int32_t (*inl)(u_int32_t);
- void (*outb)(u_int32_t, u_int8_t);
- void (*outw)(u_int32_t, u_int16_t);
- void (*outl)(u_int32_t, u_int32_t);
- void * (*map_memory)(u_int32_t, u_int32_t);
- void (*unmap_memory)(void *, u_int32_t);
- u_int8_t (*readb)(void *, u_int32_t);
- u_int16_t (*readw)(void *, u_int32_t);
- u_int32_t (*readl)(void *, u_int32_t);
- void (*writeb)(void *, u_int32_t, u_int8_t);
- void (*writew)(void *, u_int32_t, u_int16_t);
- void (*writel)(void *, u_int32_t, u_int32_t);
-};
-
-extern struct io_ops swiz_io_ops;
-extern struct io_ops bwx_io_ops;
diff --git a/lib/libio/swiz.c b/lib/libio/swiz.c
deleted file mode 100644
index eab2a0380b63..000000000000
--- a/lib/libio/swiz.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/*-
- * Copyright (c) 1998 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$");
-
-#include <sys/param.h>
-#include <sys/mman.h>
-#include <sys/fcntl.h>
-#include <sys/sysctl.h>
-#include <err.h>
-#include <paths.h>
-#include <machine/swiz.h>
-#include <machine/sysarch.h>
-#include <stdlib.h>
-#include "io.h"
-
-#define mb() __asm__ __volatile__("mb" : : : "memory")
-#define wmb() __asm__ __volatile__("wmb" : : : "memory")
-
-static int mem_fd; /* file descriptor to /dev/mem */
-static void *swiz_ports; /* mapped io ports */
-static u_int64_t swiz_io_base; /* physical address of ports */
-static u_int64_t swiz_mem_base; /* physical address of sparse mem */
-static u_int64_t swiz_dense_base; /* physical address of dense mem */
-static u_int64_t swiz_hae_mask; /* mask address bits for hae */
-static u_int32_t swiz_hae; /* cache of current hae */
-
-static void
-swiz_init()
-{
-
- size_t len = sizeof(u_int64_t);
- int error;
-
- mem_fd = open(_PATH_MEM, O_RDWR);
- if (mem_fd < 0)
- err(1, _PATH_MEM);
- swiz_ports = mmap(0, 1L<<32, PROT_READ, MAP_ANON, -1, 0);
-
- if ((error = sysctlbyname("hw.chipset.ports", &swiz_io_base, &len,
- 0, 0)) < 0)
- err(1, "hw.chipset.ports");
- if ((error = sysctlbyname("hw.chipset.memory", &swiz_mem_base, &len,
- 0, 0)) < 0)
- err(1, "hw.chipset.memory");
- if ((error = sysctlbyname("hw.chipset.dense", &swiz_dense_base, &len,
- 0, 0)) < 0)
- err(1, "hw.chipset.memory");
- if ((error = sysctlbyname("hw.chipset.hae_mask", &swiz_hae_mask, &len,
- 0, 0)) < 0)
- err(1, "hw.chipset.memory");
-
-}
-
-static int
-swiz_ioperm(u_int32_t from, u_int32_t num, int on)
-{
- u_int64_t start, end;
- void *addr;
-
- if (!swiz_ports)
- swiz_init();
-
- if (!on)
- return -1; /* XXX can't unmap yet */
-
- start = trunc_page(from << 5);
- end = round_page((from + num) << 5);
- addr = swiz_ports + start;
- munmap(addr, end - start);
- mmap(addr, end - start, PROT_READ|PROT_WRITE, MAP_SHARED,
- mem_fd, swiz_io_base + start);
- return 0;
-}
-
-static u_int8_t
-swiz_inb(u_int32_t port)
-{
- mb();
- return SPARSE_READ_BYTE(swiz_ports, port);
-}
-
-static u_int16_t
-swiz_inw(u_int32_t port)
-{
- mb();
- return SPARSE_READ_WORD(swiz_ports, port);
-}
-
-static u_int32_t
-swiz_inl(u_int32_t port)
-{
- mb();
- return SPARSE_READ_LONG(swiz_ports, port);
-}
-
-static void
-swiz_outb(u_int32_t port, u_int8_t val)
-{
- SPARSE_WRITE_BYTE(swiz_ports, port, val);
- wmb();
-}
-
-static void
-swiz_outw(u_int32_t port, u_int16_t val)
-{
- SPARSE_WRITE_WORD(swiz_ports, port, val);
- wmb();
-}
-
-static void
-swiz_outl(u_int32_t port, u_int32_t val)
-{
- SPARSE_WRITE_LONG(swiz_ports, port, val);
- wmb();
-}
-
-struct swiz_mem_handle {
- u_int32_t phys; /* address in PCI address-space */
- void *virt; /* address in user address-space */
- u_int32_t size; /* size of mapped region */
-};
-
-static void *
-swiz_map_memory(u_int32_t address, u_int32_t size)
-{
- struct swiz_mem_handle *h;
- h = malloc(sizeof(struct swiz_mem_handle));
- if (!h) return 0;
- h->phys = address;
- h->virt = mmap(0, size << 5, PROT_READ|PROT_WRITE, MAP_SHARED,
- mem_fd,
- swiz_mem_base + ((address & ~swiz_hae_mask) << 5));
- if ((long) h->virt == -1) {
- free(h);
- return 0;
- }
- h->size = size << 5;
- return h;
-}
-
-static void
-swiz_unmap_memory(void *handle, u_int32_t size)
-{
- struct swiz_mem_handle *h = handle;
- munmap(h->virt, h->size);
- free(h);
-}
-
-static void
-swiz_sethae(vm_offset_t phys)
-{
- u_int32_t hae = phys & swiz_hae_mask;
- if (hae != swiz_hae) {
- alpha_sethae(hae);
- swiz_hae = hae;
- }
-}
-
-static u_int8_t
-swiz_readb(void *handle, u_int32_t offset)
-{
- struct swiz_mem_handle *h = handle;
- swiz_sethae(h->phys + offset);
- return SPARSE_READ_BYTE(h->virt, offset);
-}
-
-static u_int16_t
-swiz_readw(void *handle, u_int32_t offset)
-{
- struct swiz_mem_handle *h = handle;
- swiz_sethae(h->phys + offset);
- return SPARSE_READ_WORD(h->virt, offset);
-}
-
-static u_int32_t
-swiz_readl(void *handle, u_int32_t offset)
-{
- struct swiz_mem_handle *h = handle;
- swiz_sethae(h->phys + offset);
- return SPARSE_READ_LONG(h->virt, offset);
-}
-
-static void
-swiz_writeb(void *handle, u_int32_t offset, u_int8_t val)
-{
- struct swiz_mem_handle *h = handle;
- swiz_sethae(h->phys + offset);
- SPARSE_WRITE_BYTE(h->virt, offset, val);
-}
-
-static void
-swiz_writew(void *handle, u_int32_t offset, u_int16_t val)
-{
- struct swiz_mem_handle *h = handle;
- swiz_sethae(h->phys + offset);
- SPARSE_WRITE_WORD(h->virt, offset, val);
-}
-
-static void
-swiz_writel(void *handle, u_int32_t offset, u_int32_t val)
-{
- struct swiz_mem_handle *h = handle;
- swiz_sethae(h->phys + offset);
- SPARSE_WRITE_LONG(h->virt, offset, val);
-}
-
-struct io_ops swiz_io_ops = {
- swiz_ioperm,
- swiz_inb,
- swiz_inw,
- swiz_inl,
- swiz_outb,
- swiz_outw,
- swiz_outl,
- swiz_map_memory,
- swiz_unmap_memory,
- swiz_readb,
- swiz_readw,
- swiz_readl,
- swiz_writeb,
- swiz_writew,
- swiz_writel,
-};
diff --git a/lib/libkse/Makefile b/lib/libkse/Makefile
index 17b46b97418e..e043e6dd2c78 100644
--- a/lib/libkse/Makefile
+++ b/lib/libkse/Makefile
@@ -7,7 +7,7 @@
# To included legacy CSRG sccsid strings, add -DLIBC_SCCS and -DSYSLIBC_SCCS
# (for system call stubs) to CFLAGS below. -DSYSLIBC_SCCS affects just the
# system call stubs.
-.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "sparc64"
+.if ${MACHINE_ARCH} == "sparc64"
LIB=kse
.else
LIB=pthread
diff --git a/lib/libpthread/Makefile b/lib/libpthread/Makefile
index 17b46b97418e..e043e6dd2c78 100644
--- a/lib/libpthread/Makefile
+++ b/lib/libpthread/Makefile
@@ -7,7 +7,7 @@
# To included legacy CSRG sccsid strings, add -DLIBC_SCCS and -DSYSLIBC_SCCS
# (for system call stubs) to CFLAGS below. -DSYSLIBC_SCCS affects just the
# system call stubs.
-.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "sparc64"
+.if ${MACHINE_ARCH} == "sparc64"
LIB=kse
.else
LIB=pthread
diff --git a/lib/libpthread/arch/alpha/Makefile.inc b/lib/libpthread/arch/alpha/Makefile.inc
deleted file mode 100644
index 7bb3ad93cbff..000000000000
--- a/lib/libpthread/arch/alpha/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# $FreeBSD$
-
-.PATH: ${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
-
-SRCS+= enter_uts.S context.S pthread_md.c
diff --git a/lib/libpthread/arch/alpha/alpha/context.S b/lib/libpthread/arch/alpha/alpha/context.S
deleted file mode 100644
index 6ef42b629c8b..000000000000
--- a/lib/libpthread/arch/alpha/alpha/context.S
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * Copyright (c) 2001,3 Daniel Eischen <deischen@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.
- */
-/*
- * 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@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$");
-
-/* #include <machine/frame.h> */
-#define FRAME_V0 0
-#define FRAME_T0 1
-#define FRAME_T1 2
-#define FRAME_T2 3
-#define FRAME_T3 4
-#define FRAME_T4 5
-#define FRAME_T5 6
-#define FRAME_T6 7
-#define FRAME_T7 8
-#define FRAME_S0 9
-#define FRAME_S1 10
-#define FRAME_S2 11
-#define FRAME_S3 12
-#define FRAME_S4 13
-#define FRAME_S5 14
-#define FRAME_S6 15
-#define FRAME_A3 16
-#define FRAME_A4 17
-#define FRAME_A5 18
-#define FRAME_RA 23
-#define FRAME_T12 24
-#define FRAME_AT 25
-#define FRAME_SP 26
-#define FRAME_TRAPARG_A0 28
-#define FRAME_TRAPARG_A1 29
-#define FRAME_TRAPARG_A2 30
-#define FRAME_PC (FRAME_TRAPARG_A2 + 1 + 1)
-
-/* #include <machine/reg.h> */
-#define R_V0 0
-#define R_T0 1
-#define R_T1 2
-#define R_T2 3
-#define R_T3 4
-#define R_T4 5
-#define R_T5 6
-#define R_T6 7
-#define R_T7 8
-#define R_S0 9
-#define R_S1 10
-#define R_S2 11
-#define R_S3 12
-#define R_S4 13
-#define R_S5 14
-#define R_S6 15
-#define R_A0 16
-#define R_A1 17
-#define R_A2 18
-#define R_A3 19
-#define R_A4 20
-#define R_A5 21
-#define R_T8 22
-#define R_T9 23
-#define R_T10 24
-#define R_T11 25
-#define R_RA 26
-#define R_T12 27
-#define R_SP 30
-#define R_ZERO 31
-
-/*
- * XXX - The rev id's are defined in <machine/ucontext.h>
- */
-#define MC_FMT_OFFSET 73*8 /* offset to format from mcontext */
-#define REV0_SIGFRAME 0x0001 /* rev R0 sigcontext format */
-#define REV0_TRAPFRAME 0x0002 /* rev R0 trapframe format */
-
-/*
- * int _alpha_restore_context(const mcontext_t *mcp,
- * intptr_t val, intptr_t *loc);
- *
- * The format of the context is verified at the beginning.
- * Returns -1 if invalid format.
- */
- .set noreorder
-LEAF(_alpha_restore_context, 3)
- LDGP(pv)
- bne a0, Lsc1 /* argument null? */
-Lscbad: ldiq v0, -1 /* return -1 */
- br Lscend
-Lsc1: ldq t1, MC_FMT_OFFSET(a0) /* is mcontext valid format? */
- ldiq t0, REV0_TRAPFRAME
- cmpeq t0, t1, t0 /* is it trapframe format? */
- bne t0, Lsc_fp /* if so, check fp state */
- ldiq t0, REV0_SIGFRAME
- cmpeq t0, t1, t0 /* is it sigcontext format? */
- beq t0, Lscbad
- /* supposedly sigcontext format, check magic number */
- ldiq t0, 0xACEDBADE /* check magic number */
- ldq t1, ((R_ZERO + 1) * 8)(a0) /* magic in mc_regs[R_ZERO] */
- cmpeq t0, t1, t0
- beq t0, Lscbad
- /* restore floating point regs first */
-Lsc_fp: ldq t0, ((71 + 1) * 8)(a0) /* if FP regs not saved, */
- beq t0, Lsc2 /* skip setting FP regs */
- ldt $f0, ((37 + 1) * 8)(a0) /* restore FP regs using */
- ldt $f1, ((38 + 1) * 8)(a0) /* hw name */
- ldt $f2, ((39 + 1) * 8)(a0)
- ldt $f3, ((40 + 1) * 8)(a0)
- ldt $f4, ((41 + 1) * 8)(a0)
- ldt $f5, ((42 + 1) * 8)(a0)
- ldt $f6, ((43 + 1) * 8)(a0)
- ldt $f7, ((44 + 1) * 8)(a0)
- ldt $f8, ((45 + 1) * 8)(a0)
- ldt $f9, ((46 + 1) * 8)(a0)
- ldt $f10, ((47 + 1) * 8)(a0)
- ldt $f11, ((48 + 1) * 8)(a0)
- ldt $f12, ((49 + 1) * 8)(a0)
- ldt $f13, ((50 + 1) * 8)(a0)
- ldt $f14, ((51 + 1) * 8)(a0)
- ldt $f15, ((52 + 1) * 8)(a0)
- ldt $f16, ((53 + 1) * 8)(a0)
- ldt $f17, ((54 + 1) * 8)(a0)
- ldt $f18, ((55 + 1) * 8)(a0)
- ldt $f19, ((56 + 1) * 8)(a0)
- ldt $f20, ((57 + 1) * 8)(a0)
- ldt $f21, ((58 + 1) * 8)(a0)
- ldt $f22, ((59 + 1) * 8)(a0)
- ldt $f23, ((60 + 1) * 8)(a0)
- ldt $f24, ((61 + 1) * 8)(a0)
- ldt $f25, ((62 + 1) * 8)(a0)
- ldt $f26, ((63 + 1) * 8)(a0)
- ldt $f27, ((64 + 1) * 8)(a0)
- .set noat
- ldt $f28, ((65 + 1) * 8)(a0)
- .set at
- ldt $f29, ((66 + 1) * 8)(a0)
- ldt $f30, ((67 + 1) * 8)(a0)
- /* $f31 is hardwired zero */
- ldt ft0, ((69 + 1) * 8)(a0) /* restore FP control reg */
- mt_fpcr ft0
-Lsc2: ldiq t0, REV0_SIGFRAME /* check the context format */
- ldq t1, MC_FMT_OFFSET(a0) /* again. */
- cmpeq t0, t1, t0 /* is it sigcontext format? */
- bne t0, Lsc_sc
- /* trapframe format */
- ldq v0, ((FRAME_V0 + 1) * 8)(a0) /* restore v0 */
- ldq t0, ((FRAME_T0 + 1) * 8)(a0) /* restore t0-t7 */
- ldq t1, ((FRAME_T1 + 1) * 8)(a0)
- ldq t2, ((FRAME_T2 + 1) * 8)(a0)
- ldq t3, ((FRAME_T3 + 1) * 8)(a0)
- ldq t4, ((FRAME_T4 + 1) * 8)(a0)
- ldq t5, ((FRAME_T5 + 1) * 8)(a0)
- ldq t6, ((FRAME_T6 + 1) * 8)(a0)
- ldq t7, ((FRAME_T7 + 1) * 8)(a0)
- ldq s0, ((FRAME_S0 + 1) * 8)(a0) /* restore s0-s6 */
- ldq s1, ((FRAME_S1 + 1) * 8)(a0)
- ldq s2, ((FRAME_S2 + 1) * 8)(a0)
- ldq s3, ((FRAME_S3 + 1) * 8)(a0)
- ldq s4, ((FRAME_S4 + 1) * 8)(a0)
- ldq s5, ((FRAME_S5 + 1) * 8)(a0)
- ldq s6, ((FRAME_S6 + 1) * 8)(a0)
- ldq a4, ((FRAME_A4 + 1) * 8)(a0) /* restore a4, a5 */
- ldq a5, ((FRAME_A5 + 1) * 8)(a0)
- ldq ra, ((FRAME_RA + 1) * 8)(a0)
- ldq sp, ((FRAME_SP + 1) * 8)(a0)
- subq sp, 16, sp /* save room on stack */
- ldq a3, ((FRAME_TRAPARG_A1 + 1) * 8)(a0)
- stq a3, 0(a0) /* save a1 on stack */
- ldq a3, ((FRAME_TRAPARG_A2 + 1) * 8)(a0)
- stq a3, 8(a0) /* save a2 on stack */
- .set noat
- ldq at_reg, ((FRAME_PC + 1) * 8)(a0) /* PC at time of trap? */
- .set at
- ldq a3, ((FRAME_A3 + 1) * 8)(a0) /* restore a3 */
- ldq a0, ((FRAME_TRAPARG_A0 + 1) * 8)(a0) /* restore a0 */
- br Lsc3
-Lsc_sc: /* sigcontext format */
- ldq v0, ((R_V0 + 1) * 8)(a0) /* restore v0 */
- ldq t0, ((R_T0 + 1) * 8)(a0) /* restore t0-t7 */
- ldq t1, ((R_T1 + 1) * 8)(a0)
- ldq t2, ((R_T2 + 1) * 8)(a0)
- ldq t3, ((R_T3 + 1) * 8)(a0)
- ldq t4, ((R_T4 + 1) * 8)(a0)
- ldq t5, ((R_T5 + 1) * 8)(a0)
- ldq t6, ((R_T6 + 1) * 8)(a0)
- ldq t7, ((R_T7 + 1) * 8)(a0)
- ldq s0, ((R_S0 + 1) * 8)(a0) /* restore s0-s6 */
- ldq s1, ((R_S1 + 1) * 8)(a0)
- ldq s2, ((R_S2 + 1) * 8)(a0)
- ldq s3, ((R_S3 + 1) * 8)(a0)
- ldq s4, ((R_S4 + 1) * 8)(a0)
- ldq s5, ((R_S5 + 1) * 8)(a0)
- ldq s6, ((R_S6 + 1) * 8)(a0)
- ldq a4, ((R_A4 + 1) * 8)(a0) /* restore a4, a5 */
- ldq a5, ((R_A5 + 1) * 8)(a0)
- ldq ra, ((R_RA + 1) * 8)(a0)
- ldq sp, ((R_SP + 1) * 8)(a0)
- subq sp, 16, sp /* save room on stack */
- ldq a3, ((R_A1 + 1) * 8)(a0) /* get a1 */
- stq a3, 0(a0) /* save a1 on stack */
- ldq a3, ((R_A2 + 1) * 8)(a0) /* get a2 */
- stq a3, 8(a0) /* save a2 on stack */
- ldq a3, ((R_A3 + 1) * 8)(a0) /* restore a3 */
- ldq a0, ((R_A0 + 1) * 8)(a0) /* restore a0 */
-Lsc3: beq a2, Lsc4
- stq a1, 0(a2)
-Lsc4: ldq a1, 0(sp) /* restore a1, a2 */
- ldq a2, 8(sp)
- addq sp, 16, sp /* restore stack */
-Lscend: RET
-END(_alpha_restore_context)
-
-
-/*
- * int _alpha_save_context(mcontext_t *);
- *
- * Always save in trapframe format. Floating point registers are
- * saved but may be optimized away later (see comments below).
- */
-LEAF(_alpha_save_context, 1)
- LDGP(pv)
- bne a0, Lgc1 /* argument null? */
- ldiq v0, -1 /* return -1 */
- br Lgcend
-Lgc1: ldiq v0, 1 /* save_context returns 1, */
- stq v0, ((FRAME_V0 + 1) * 8)(a0) /* so save 1 in v0 */
- stq t0, ((FRAME_T0 + 1) * 8)(a0) /* save t0-t7 */
- stq t1, ((FRAME_T1 + 1) * 8)(a0)
- stq t2, ((FRAME_T2 + 1) * 8)(a0)
- stq t3, ((FRAME_T3 + 1) * 8)(a0)
- stq t4, ((FRAME_T4 + 1) * 8)(a0)
- stq t5, ((FRAME_T5 + 1) * 8)(a0)
- stq t6, ((FRAME_T6 + 1) * 8)(a0)
- stq t7, ((FRAME_T7 + 1) * 8)(a0)
- stq s0, ((FRAME_S0 + 1) * 8)(a0) /* save s0-s6 */
- stq s1, ((FRAME_S1 + 1) * 8)(a0)
- stq s2, ((FRAME_S2 + 1) * 8)(a0)
- stq s3, ((FRAME_S3 + 1) * 8)(a0)
- stq s4, ((FRAME_S4 + 1) * 8)(a0)
- stq s5, ((FRAME_S5 + 1) * 8)(a0)
- stq s6, ((FRAME_S6 + 1) * 8)(a0)
- stq a0, ((FRAME_TRAPARG_A0 + 1) * 8)(a0) /* save a0-a5 */
- stq a1, ((FRAME_TRAPARG_A1 + 1) * 8)(a0)
- stq a2, ((FRAME_TRAPARG_A2 + 1) * 8)(a0)
- stq a3, ((FRAME_A3 + 1) * 8)(a0)
- stq a4, ((FRAME_A4 + 1) * 8)(a0)
- stq a5, ((FRAME_A5 + 1) * 8)(a0)
- stq ra, ((FRAME_RA + 1) * 8)(a0)
- stq sp, ((FRAME_SP + 1) * 8)(a0)
- ldiq t0, REV0_TRAPFRAME /* store trapframe format in */
- stq t0, MC_FMT_OFFSET(a0) /* ucp->uc-rev */
- /*
- * XXX - Do we really need to save floating point registers?
- *
- * This is an explicit call to get the current context, so
- * shouldn't the caller be done with the floating point registers?
- * Contexts formed by involuntary switches, such as signal delivery,
- * should have floating point registers saved by the kernel.
- */
-#if 1
- stq zero, ((71 + 1) * 8)(a0) /* FP regs are not saved */
-#else
- ldiq t0, 1 /* say we've used FP, */
- stq t0, ((71 + 1) * 8)(a0) /* mc_ownedfp = 1 */
- stt $f0, ((37 + 1) * 8)(a0) /* save first register, using */
- stt $f1, ((38 + 1) * 8)(a0) /* hw name etc. */
- stt $f2, ((39 + 1) * 8)(a0)
- stt $f3, ((40 + 1) * 8)(a0)
- stt $f4, ((41 + 1) * 8)(a0)
- stt $f5, ((42 + 1) * 8)(a0)
- stt $f6, ((43 + 1) * 8)(a0)
- stt $f7, ((44 + 1) * 8)(a0)
- stt $f8, ((45 + 1) * 8)(a0)
- stt $f9, ((46 + 1) * 8)(a0)
- stt $f10, ((47 + 1) * 8)(a0)
- stt $f11, ((48 + 1) * 8)(a0)
- stt $f12, ((49 + 1) * 8)(a0)
- stt $f13, ((50 + 1) * 8)(a0)
- stt $f14, ((51 + 1) * 8)(a0)
- stt $f15, ((52 + 1) * 8)(a0)
- stt $f16, ((53 + 1) * 8)(a0)
- stt $f17, ((54 + 1) * 8)(a0)
- stt $f18, ((55 + 1) * 8)(a0)
- stt $f19, ((56 + 1) * 8)(a0)
- stt $f20, ((57 + 1) * 8)(a0)
- stt $f21, ((58 + 1) * 8)(a0)
- stt $f22, ((59 + 1) * 8)(a0)
- stt $f23, ((60 + 1) * 8)(a0)
- stt $f24, ((61 + 1) * 8)(a0)
- stt $f25, ((62 + 1) * 8)(a0)
- stt $f26, ((63 + 1) * 8)(a0)
- stt $f27, ((64 + 1) * 8)(a0)
- .set noat
- stt $f28, ((65 + 1) * 8)(a0)
- .set at
- stt $f29, ((66 + 1) * 8)(a0)
- stt $f30, ((67 + 1) * 8)(a0)
- /* $f31 is hardwired zero */
-#endif
- mf_fpcr ft0 /* get FP control reg */
- stt ft0, ((69 + 1) * 8)(a0) /* and store it in mc_fpcr */
- stq zero, ((70 + 1) * 8)(a0) /* FP software control XXX */
- mov zero, v0 /* return zero */
-Lgcend: RET
-END(_alpha_save_context)
diff --git a/lib/libpthread/arch/alpha/alpha/enter_uts.S b/lib/libpthread/arch/alpha/alpha/enter_uts.S
deleted file mode 100644
index 6de3bd7dbb88..000000000000
--- a/lib/libpthread/arch/alpha/alpha/enter_uts.S
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2003 Daniel Eischen <deischen@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 <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * _alpha_enter_uts(struct kse_mailbox *km, kse_func_t uts, void *stack,
- * long stacksz);
- */
-LEAF(_alpha_enter_uts, 4)
- addq a2, a3, a2
- ldiq a3, ~0xf
- and a2, a3, a2
- mov a2, sp
- mov a1, ra
- mov a1, t12
- RET
- END(_alpha_enter_uts)
diff --git a/lib/libpthread/arch/alpha/alpha/pthread_md.c b/lib/libpthread/arch/alpha/alpha/pthread_md.c
deleted file mode 100644
index c8445b177c54..000000000000
--- a/lib/libpthread/arch/alpha/alpha/pthread_md.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2003 Daniel Eischen <deischen@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.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#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);
-}
diff --git a/lib/libpthread/arch/alpha/include/atomic_ops.h b/lib/libpthread/arch/alpha/include/atomic_ops.h
deleted file mode 100644
index 7c3e62bbb50e..000000000000
--- a/lib/libpthread/arch/alpha/include/atomic_ops.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*-
- * Copyright (c) 2003 Daniel Eischen <deischen@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$
- */
-
-#ifndef _ATOMIC_OPS_H_
-#define _ATOMIC_OPS_H_
-
-/*
- * Atomic swap:
- * Atomic (tmp = *dst, *dst = val), then *res = tmp
- *
- * void atomic_swap_long(long *dst, long val, long *res);
- */
-static inline void
-atomic_swap_long(long *dst, long val, long *res)
-{
- /* $1 and $2 are t0 and t1 respectively. */
- __asm __volatile (
- " ldq $1, %1\n" /* get cache line before lock */
- "1: ldq_l $1, %1\n" /* load *dst asserting lock */
- " mov %2, $2\n" /* save value to be swapped */
- " stq_c $2, %1\n" /* attempt the store; $2 clobbered */
- " beq $2, 1b\n" /* it didn't work, loop */
- " stq $1, %0\n" /* save value of *dst in *res */
- " mb \n"
- : "+m"(*res)
- : "m"(*dst), "r"(val)
- : "memory", "$1", "$2"); /* clobber t0 and t1 */
-}
-
-static inline void
-atomic_swap_int(int *dst, int val, int *res)
-{
- /* $1 and $2 are t0 and t1 respectively. */
- __asm __volatile (
- " ldl $1, %1\n" /* get cache line before lock */
- "1: ldl_l $1, %1\n" /* load *dst asserting lock */
- " mov %2, $2\n" /* save value to be swapped */
- " stl_c $2, %1\n" /* attempt the store; $2 clobbered */
- " beq $2, 1b\n" /* it didn't work, loop */
- " stl $1, %0\n" /* save value of *dst in *res */
- " mb \n"
- : "+m"(*res)
- : "m"(*dst), "r"(val)
- : "memory", "$1", "$2"); /* clobber t0 and t1 */
-}
-
-#define atomic_swap_ptr(d, v, r) \
- atomic_swap_long((long *)(d), (long)(v), (long *)(r))
-
-#endif
diff --git a/lib/libpthread/arch/alpha/include/pthread_md.h b/lib/libpthread/arch/alpha/include/pthread_md.h
deleted file mode 100644
index c7a85f12b31a..000000000000
--- a/lib/libpthread/arch/alpha/include/pthread_md.h
+++ /dev/null
@@ -1,247 +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$
- */
-
-#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) _alpha_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 alpha_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 alpha_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 alpha_tp tcb_tp;
-};
-
-struct kcb {
- struct kse_mailbox kcb_kmbx;
- struct tcb kcb_faketcb;
- struct tcb *kcb_curtcb;
- struct kse *kcb_kse;
-};
-
-#define _tp __builtin_thread_pointer()
-#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. */
- __builtin_set_thread_pointer(&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;
- __builtin_set_thread_pointer(&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 _alpha_enter_uts(struct kse_mailbox *km, kse_func_t uts, void *stack,
- size_t stacksz);
-int _alpha_restore_context(mcontext_t *mc, intptr_t val, intptr_t *loc);
-int _alpha_save_context(mcontext_t *mc);
-
-static __inline int
-_thread_enter_uts(struct tcb *tcb, struct kcb *kcb)
-{
- if (_alpha_save_context(&tcb->tcb_tmbx.tm_context.uc_mcontext) == 0) {
- /* Make the fake tcb the current thread. */
- kcb->kcb_curtcb = &kcb->kcb_faketcb;
- __builtin_set_thread_pointer(&kcb->kcb_faketcb.tcb_tp);
- _alpha_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);
- }
- return (0);
-}
-
-static __inline int
-_thread_switch(struct kcb *kcb, struct tcb *tcb, int setmbox)
-{
- extern int _libkse_debug;
-
- _tcb_set(kcb, tcb);
- if (_libkse_debug == 0) {
- tcb->tcb_tmbx.tm_lwp = kcb->kcb_kmbx.km_lwp;
- if (setmbox != 0)
- _alpha_restore_context(
- &tcb->tcb_tmbx.tm_context.uc_mcontext,
- (intptr_t)&tcb->tcb_tmbx,
- (intptr_t *)&kcb->kcb_kmbx.km_curthread);
- else
- _alpha_restore_context(
- &tcb->tcb_tmbx.tm_context.uc_mcontext,
- 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_ */
diff --git a/lib/libstand/Makefile b/lib/libstand/Makefile
index 56a1923b46d1..c6cee39eab52 100644
--- a/lib/libstand/Makefile
+++ b/lib/libstand/Makefile
@@ -15,9 +15,6 @@ MAN= libstand.3
CFLAGS+= -ffreestanding -Wformat
CFLAGS+= -I${.CURDIR}
-.if ${MACHINE_ARCH} == "alpha"
-CFLAGS+= -mno-fp-regs
-.endif
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64"
CFLAGS+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2
@@ -57,53 +54,6 @@ SRCS+= bcmp.c bcopy.c bzero.c ffs.c index.c memccpy.c memchr.c memcmp.c \
strcmp.c strcpy.c strcspn.c strlen.c strncat.c strncmp.c strncpy.c \
strpbrk.c strrchr.c strsep.c strspn.c strstr.c strtok.c swab.c
.endif
-.if ${MACHINE_ARCH} == "alpha"
-.PATH: ${.CURDIR}/../libc/alpha/string
-SRCS+= bcmp.c bcopy.S bzero.S ffs.S index.c memccpy.c memchr.c memcmp.c \
- memcpy.S memmove.S memset.c rindex.c strcat.c strchr.c \
- strcmp.c strcpy.c strcspn.c strlen.c \
- strncat.c strncmp.c strncpy.c strpbrk.c strrchr.c strsep.c \
- strspn.c strstr.c strtok.c swab.c
-
-SRCS+= __divqu.S __divq.S __divlu.S __divl.S
-SRCS+= __remqu.S __remq.S __remlu.S __reml.S
-
-CLEANFILES+= __divqu.S __divq.S __divlu.S __divl.S
-CLEANFILES+= __remqu.S __remq.S __remlu.S __reml.S
-
-
-__divqu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
- m4 -DNAME=__divqu -DOP=div -DS=false -DWORDSIZE=64 \
- ${.ALLSRC} > ${.TARGET}
-
-__divq.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
- m4 -DNAME=__divq -DOP=div -DS=true -DWORDSIZE=64 \
- ${.ALLSRC} > ${.TARGET}
-
-__divlu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
- m4 -DNAME=__divlu -DOP=div -DS=false -DWORDSIZE=32 \
- ${.ALLSRC} > ${.TARGET}
-
-__divl.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
- m4 -DNAME=__divl -DOP=div -DS=true -DWORDSIZE=32 \
- ${.ALLSRC} > ${.TARGET}
-
-__remqu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
- m4 -DNAME=__remqu -DOP=rem -DS=false -DWORDSIZE=64 \
- ${.ALLSRC} > ${.TARGET}
-
-__remq.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
- m4 -DNAME=__remq -DOP=rem -DS=true -DWORDSIZE=64 \
- ${.ALLSRC} > ${.TARGET}
-
-__remlu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
- m4 -DNAME=__remlu -DOP=rem -DS=false -DWORDSIZE=32 \
- ${.ALLSRC} > ${.TARGET}
-
-__reml.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
- m4 -DNAME=__reml -DOP=rem -DS=true -DWORDSIZE=32 \
- ${.ALLSRC} > ${.TARGET}
-.endif
.if ${MACHINE_ARCH} == "ia64"
.PATH: ${.CURDIR}/../libc/ia64/string
SRCS+= bcmp.c bcopy.S bzero.S ffs.S index.c memccpy.c memchr.c memcmp.c \
diff --git a/lib/libstand/alpha/_setjmp.S b/lib/libstand/alpha/_setjmp.S
deleted file mode 100644
index 15879785a188..000000000000
--- a/lib/libstand/alpha/_setjmp.S
+++ /dev/null
@@ -1,120 +0,0 @@
-/* $NetBSD: _setjmp.S,v 1.2 1996/10/17 03:08:03 cgd Exp $ */
-/* $FreeBSD$ */
-
-/*
- * 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@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>
-
-/*
- * 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.
- */
-
- .set noreorder
-
-LEAF(_setjmp, 1)
- LDGP(pv)
- stq ra, (2 * 8)(a0) /* sc_pc = return address */
- stq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
- stq s1, ((10 + 4) * 8)(a0)
- stq s2, ((11 + 4) * 8)(a0)
- stq s3, ((12 + 4) * 8)(a0)
- stq s4, ((13 + 4) * 8)(a0)
- stq s5, ((14 + 4) * 8)(a0)
- stq s6, ((15 + 4) * 8)(a0)
- stq ra, ((26 + 4) * 8)(a0)
- stq sp, ((30 + 4) * 8)(a0)
- ldiq t0, 0xacedbadd /* sigcontext magic number */
- stq t0, ((31 + 4) * 8)(a0) /* magic in sc_regs[31] */
- /* Too bad we can't check if we actually used FP */
- ldiq t0, 1
- stq t0, (36 * 8)(a0) /* say we've used FP. */
-#if 0
- stt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */
- stt fs1, ((3 + 37) * 8)(a0)
- stt fs2, ((4 + 37) * 8)(a0)
- stt fs3, ((5 + 37) * 8)(a0)
- stt fs4, ((6 + 37) * 8)(a0)
- stt fs5, ((7 + 37) * 8)(a0)
- stt fs6, ((8 + 37) * 8)(a0)
- stt fs7, ((9 + 37) * 8)(a0)
- mf_fpcr ft0 /* get FP control reg */
- stt ft0, (69 * 8)(a0) /* and store it in sc_fpcr */
- stq zero, (70 * 8)(a0) /* FP software control XXX */
-#endif
- stq zero, (71 * 8)(a0) /* sc_reserved[0] */
- stq zero, (72 * 8)(a0) /* sc_reserved[1] */
- stq zero, (73 * 8)(a0) /* sc_xxx[0] */
- stq zero, (74 * 8)(a0) /* sc_xxx[1] */
- stq zero, (75 * 8)(a0) /* sc_xxx[2] */
- stq zero, (76 * 8)(a0) /* sc_xxx[3] */
- stq zero, (77 * 8)(a0) /* sc_xxx[4] */
- stq zero, (78 * 8)(a0) /* sc_xxx[5] */
- stq zero, (79 * 8)(a0) /* sc_xxx[6] */
- stq zero, (80 * 8)(a0) /* sc_xxx[7] */
-
- mov zero, v0 /* return zero */
- RET
-END(_setjmp)
-
-LEAF(_longjmp, 2)
- LDGP(pv)
-
- ldq ra, (2 * 8)(a0) /* sc_pc = return address */
- ldq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
- ldq s1, ((10 + 4) * 8)(a0)
- ldq s2, ((11 + 4) * 8)(a0)
- ldq s3, ((12 + 4) * 8)(a0)
- ldq s4, ((13 + 4) * 8)(a0)
- ldq s5, ((14 + 4) * 8)(a0)
- ldq s6, ((15 + 4) * 8)(a0)
- /* ldq ra, ((26 + 4) * 8)(a0) set above */
- ldq sp, ((30 + 4) * 8)(a0)
-#if 0
- ldt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */
- ldt fs1, ((3 + 37) * 8)(a0)
- ldt fs2, ((4 + 37) * 8)(a0)
- ldt fs3, ((5 + 37) * 8)(a0)
- ldt fs4, ((6 + 37) * 8)(a0)
- ldt fs5, ((7 + 37) * 8)(a0)
- ldt fs6, ((8 + 37) * 8)(a0)
- ldt fs7, ((9 + 37) * 8)(a0)
- ldt ft0, (69 * 8)(a0) /* get sc_fpcr */
- mt_fpcr ft0 /* and restore it. */
-#endif
-
- mov a1, v0 /* return second arg */
- RET
-
-END(_longjmp)
diff --git a/lib/libthr/Makefile b/lib/libthr/Makefile
index 37073ea0b0fd..e21158640e78 100644
--- a/lib/libthr/Makefile
+++ b/lib/libthr/Makefile
@@ -8,7 +8,7 @@
# (for system call stubs) to CFLAGS below. -DSYSLIBC_SCCS affects just the
# system call stubs.
-.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "sparc64"
+.if ${MACHINE_ARCH} == "sparc64"
SHLIBDIR?= /lib
.endif
@@ -42,7 +42,7 @@ PRECIOUSLIB=
.include "${.CURDIR}/sys/Makefile.inc"
.include "${.CURDIR}/thread/Makefile.inc"
-.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "sparc64"
+.if ${MACHINE_ARCH} == "sparc64"
SYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a
.if !defined(NO_PIC)
SYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so
diff --git a/lib/libthr/arch/alpha/Makefile.inc b/lib/libthr/arch/alpha/Makefile.inc
deleted file mode 100644
index 508d2b49a1e5..000000000000
--- a/lib/libthr/arch/alpha/Makefile.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-# $FreeBSD$
-
-.PATH: ${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
-
-SRCS+= pthread_md.c
diff --git a/lib/libthr/arch/alpha/alpha/pthread_md.c b/lib/libthr/arch/alpha/alpha/pthread_md.c
deleted file mode 100644
index 1a82341e92a4..000000000000
--- a/lib/libthr/arch/alpha/alpha/pthread_md.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2003 Daniel Eischen <deischen@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$
- */
-
-#include <stdlib.h>
-#include <string.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) {
- memset(tcb, 0, sizeof(struct tcb));
- tcb->tcb_thread = thread;
- }
- return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
- free(tcb);
-}
diff --git a/lib/libthr/arch/alpha/include/pthread_md.h b/lib/libthr/arch/alpha/include/pthread_md.h
deleted file mode 100644
index 003cba009d10..000000000000
--- a/lib/libthr/arch/alpha/include/pthread_md.h
+++ /dev/null
@@ -1,75 +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$
- */
-
-#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!
- */
-struct tcb {
- void *tcb_dtv;
- struct pthread *tcb_thread;
-};
-
-#define _tp __builtin_thread_pointer()
-#define _tcb ((struct tcb *)_tp)
-
-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)
-{
- __builtin_set_thread_pointer(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_ */
diff --git a/lib/msun/alpha/Makefile.inc b/lib/msun/alpha/Makefile.inc
deleted file mode 100644
index f2fc86a45548..000000000000
--- a/lib/msun/alpha/Makefile.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-# $FreeBSD$
-
-ARCH_SRCS = s_copysign.S s_copysignf.S
-LDBL_PREC = 53
-SYM_MAPS += ${.CURDIR}/alpha/Symbol.map
-
-# XXX Comment from NetBSD/Alpha:
-# XXX LINT SIGFPEs in e_exp.c's strtod(). FP underflow/denorm software
-# handling is broken (doesn't exist!) on the Alpha port.
-# Stock gcc 2.7.2.1 doesn't understand these options.
-#CFLAGS += -mtrap-precision=i -mfp-trap-mode=su
diff --git a/lib/msun/alpha/Symbol.map b/lib/msun/alpha/Symbol.map
deleted file mode 100644
index 1eaba2e4ea27..000000000000
--- a/lib/msun/alpha/Symbol.map
+++ /dev/null
@@ -1,13 +0,0 @@
-# $FreeBSD$
-FBSD_1.0 {
- fegetenv;
- feholdexcept;
- fesetenv;
- feupdateenv;
- __feenableexcept;
- __fedisableexcept;
- __fegetexcept;
- feenableexcept;
- fedisableexcept;
- fegetexcept;
-};
diff --git a/lib/msun/alpha/fenv.c b/lib/msun/alpha/fenv.c
deleted file mode 100644
index 5f0182c696f0..000000000000
--- a/lib/msun/alpha/fenv.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*-
- * Copyright (c) 2004-2005 David Schultz <das@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$
- */
-
-#include <sys/cdefs.h>
-#include <machine/sysarch.h>
-#include <fenv.h>
-
-const fenv_t __fe_dfl_env = 0x680e000000000000ULL;
-
-struct mask_args {
- fenv_t mask;
-};
-
-/*
- * The lower 49 bits of the FPCR are unused by the hardware, so we use
- * the lower order bits to store the kernel's idea of the FP mask as
- * described in the Alpha Architecture Manual.
- */
-int
-fegetenv(fenv_t *envp)
-{
- struct mask_args p;
- union __fpcr r;
-
- /*
- * The syscall acts as an implicit exception barrier, so we
- * only need to issue an excb after the mf_fpcr to ensure that
- * the read is executed before any subsequent FP ops.
- */
- sysarch(ALPHA_GET_FPMASK, (char *)&p);
- __mf_fpcr(&r.__d);
- *envp = r.__bits | p.mask;
- __excb();
- return (0);
-}
-
-int
-feholdexcept(fenv_t *envp)
-{
- struct mask_args p;
- union __fpcr r;
-
- sysarch(ALPHA_GET_FPMASK, (char *)&p);
- __mf_fpcr(&r.__d);
- *envp = r.__bits | p.mask;
- r.__bits &= ~((fenv_t)FE_ALL_EXCEPT << _FPUSW_SHIFT);
- __mt_fpcr(r.__d);
- if (p.mask & FE_ALL_EXCEPT) {
- p.mask = 0;
- sysarch(ALPHA_SET_FPMASK, &p);
- }
- __excb();
- return (0);
-}
-
-int
-fesetenv(const fenv_t *envp)
-{
- struct mask_args p;
- union __fpcr r;
-
- p.mask = *envp & FE_ALL_EXCEPT;
- sysarch(ALPHA_SET_FPMASK, &p);
- r.__bits = *envp & ~FE_ALL_EXCEPT;
- __mt_fpcr(r.__d);
- __excb();
- return (0);
-}
-
-int
-feupdateenv(const fenv_t *envp)
-{
- struct mask_args p;
- union __fpcr oldr, newr;
-
- p.mask = *envp & FE_ALL_EXCEPT;
- sysarch(ALPHA_SET_FPMASK, &p);
- __mf_fpcr(&oldr.__d);
- newr.__bits = *envp & ~FE_ALL_EXCEPT;
- __excb();
- __mt_fpcr(newr.__d);
- feraiseexcept((oldr.__bits >> _FPUSW_SHIFT) & FE_ALL_EXCEPT);
- return (0);
-}
-
-int
-__feenableexcept(int mask)
-{
- struct mask_args p;
-
- sysarch(ALPHA_GET_FPMASK, &p);
- p.mask |= (mask & FE_ALL_EXCEPT);
- sysarch(ALPHA_SET_FPMASK, &p);
- return (p.mask);
-}
-
-int
-__fedisableexcept(int mask)
-{
- struct mask_args p;
-
- sysarch(ALPHA_GET_FPMASK, &p);
- p.mask &= ~(mask & FE_ALL_EXCEPT);
- sysarch(ALPHA_SET_FPMASK, &p);
- return (p.mask);
-}
-
-int
-__fegetexcept(void)
-{
- struct mask_args p;
-
- sysarch(ALPHA_GET_FPMASK, &p);
- return (p.mask);
-}
-
-__weak_reference(__feenableexcept, feenableexcept);
-__weak_reference(__fedisableexcept, fedisableexcept);
-__weak_reference(__fegetexcept, fegetexcept);
diff --git a/lib/msun/alpha/fenv.h b/lib/msun/alpha/fenv.h
deleted file mode 100644
index b940a60eec34..000000000000
--- a/lib/msun/alpha/fenv.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/*-
- * Copyright (c) 2004-2005 David Schultz <das@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$
- */
-
-#ifndef _FENV_H_
-#define _FENV_H_
-
-#include <sys/_types.h>
-
-typedef __uint64_t fenv_t;
-typedef __uint16_t fexcept_t;
-
-/* Exception flags */
-#define FE_INVALID 0x02
-#define FE_DIVBYZERO 0x04
-#define FE_OVERFLOW 0x08
-#define FE_UNDERFLOW 0x10
-#define FE_INEXACT 0x20
-#define FE_INTOVF 0x40 /* not maskable */
-#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INTOVF | \
- FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
-
-/* Rounding modes */
-#define FE_TOWARDZERO 0x00
-#define FE_DOWNWARD 0x01
-#define FE_TONEAREST 0x02
-#define FE_UPWARD 0x03
-#define _ROUND_MASK (FE_TONEAREST | FE_DOWNWARD | \
- FE_UPWARD | FE_TOWARDZERO)
-#define _ROUND_SHIFT 58
-
-#define _FPUSW_SHIFT 51
-
-#define __excb() __asm __volatile("excb")
-#define __mf_fpcr(__cw) __asm __volatile("mf_fpcr %0" : "=f" (*(__cw)))
-#define __mt_fpcr(__cw) __asm __volatile("mt_fpcr %0" : : "f" (__cw))
-
-union __fpcr {
- double __d;
- fenv_t __bits;
-};
-
-__BEGIN_DECLS
-
-/* Default floating-point environment */
-extern const fenv_t __fe_dfl_env;
-#define FE_DFL_ENV (&__fe_dfl_env)
-
-static __inline int
-feclearexcept(int __excepts)
-{
- union __fpcr __r;
-
- __excb();
- __mf_fpcr(&__r.__d);
- __r.__bits &= ~((fenv_t)__excepts << _FPUSW_SHIFT);
- __mt_fpcr(__r.__d);
- __excb();
- return (0);
-}
-
-static __inline int
-fegetexceptflag(fexcept_t *__flagp, int __excepts)
-{
- union __fpcr __r;
-
- __excb();
- __mf_fpcr(&__r.__d);
- __excb();
- *__flagp = (__r.__bits >> _FPUSW_SHIFT) & __excepts;
- return (0);
-}
-
-static __inline int
-fesetexceptflag(const fexcept_t *__flagp, int __excepts)
-{
- union __fpcr __r;
- fenv_t __xflag, __xexcepts;
-
- __xflag = (fenv_t)*__flagp << _FPUSW_SHIFT;
- __xexcepts = (fenv_t)__excepts << _FPUSW_SHIFT;
- __excb();
- __mf_fpcr(&__r.__d);
- __r.__bits &= ~__xexcepts;
- __r.__bits |= __xflag & __xexcepts;
- __mt_fpcr(__r.__d);
- __excb();
- return (0);
-}
-
-static __inline int
-feraiseexcept(int __excepts)
-{
-
- /*
- * XXX Generating exceptions this way does not actually invoke
- * a userland trap handler when enabled, but neither do
- * arithmetic operations as far as I can tell. Perhaps there
- * are more bugs in the kernel trap handler.
- */
- fexcept_t __ex = __excepts;
- fesetexceptflag(&__ex, __excepts);
- return (0);
-}
-
-static __inline int
-fetestexcept(int __excepts)
-{
- union __fpcr __r;
-
- __excb();
- __mf_fpcr(&__r.__d);
- __excb();
- return ((__r.__bits >> _FPUSW_SHIFT) & __excepts);
-}
-
-static __inline int
-fegetround(void)
-{
- union __fpcr __r;
-
- /*
- * No exception barriers should be required here if we assume
- * that only fesetround() can change the rounding mode.
- */
- __mf_fpcr(&__r.__d);
- return ((int)(__r.__bits >> _ROUND_SHIFT) & _ROUND_MASK);
-}
-
-static __inline int
-fesetround(int __round)
-{
- union __fpcr __r;
-
- if (__round & ~_ROUND_MASK)
- return (-1);
- __excb();
- __mf_fpcr(&__r.__d);
- __r.__bits &= ~((fenv_t)_ROUND_MASK << _ROUND_SHIFT);
- __r.__bits |= (fenv_t)__round << _ROUND_SHIFT;
- __mt_fpcr(__r.__d);
- __excb();
- return (0);
-}
-
-int fegetenv(fenv_t *__envp);
-int feholdexcept(fenv_t *__envp);
-int fesetenv(const fenv_t *__envp);
-int feupdateenv(const fenv_t *__envp);
-
-#if __BSD_VISIBLE
-
-int feenableexcept(int __mask);
-int fedisableexcept(int __mask);
-int fegetexcept(void);
-
-#endif /* __BSD_VISIBLE */
-
-__END_DECLS
-
-#endif /* !_FENV_H_ */
diff --git a/lib/msun/alpha/s_copysign.S b/lib/msun/alpha/s_copysign.S
deleted file mode 100644
index 2a724e228c48..000000000000
--- a/lib/msun/alpha/s_copysign.S
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $FreeBSD$ */
-/* From: NetBSD: s_copysign.S,v 1.3 1997/07/30 23:58:38 jtc Exp */
-
-/*-
- * Copyright (c) 1996 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by J.T. Conklin.
- *
- * 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>
-
-LEAF(copysign, 2)
- cpys fa1, fa0, fv0
- RET
-END(copysign)
diff --git a/lib/msun/alpha/s_copysignf.S b/lib/msun/alpha/s_copysignf.S
deleted file mode 100644
index d8a42a464c4c..000000000000
--- a/lib/msun/alpha/s_copysignf.S
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $FreeBSD$ */
-/* From: NetBSD: s_copysignf.S,v 1.3 1997/07/30 23:58:41 jtc Exp */
-
-/*-
- * Copyright (c) 1996 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by J.T. Conklin.
- *
- * 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>
-
-LEAF(copysignf, 2)
- cpys fa1, fa0, fv0
- RET
-END(copysignf)
diff --git a/libexec/rtld-elf/alpha/Makefile.inc b/libexec/rtld-elf/alpha/Makefile.inc
deleted file mode 100644
index 0f34febdf49d..000000000000
--- a/libexec/rtld-elf/alpha/Makefile.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-# $FreeBSD$
-
-CFLAGS+= -mno-fp-regs
-LDFLAGS+= -Wl,--script,${.CURDIR}/alpha/ld.so.script
diff --git a/libexec/rtld-elf/alpha/ld.so.script b/libexec/rtld-elf/alpha/ld.so.script
deleted file mode 100644
index 2b5d535d1adc..000000000000
--- a/libexec/rtld-elf/alpha/ld.so.script
+++ /dev/null
@@ -1,135 +0,0 @@
-/* $NetBSD: ld.so.script,v 1.2 2001/12/13 20:31:31 thorpej Exp $ */
-/* $FreeBSD$ */
-
-OUTPUT_FORMAT("elf64-alpha-freebsd", "elf64-alpha-freebsd",
- "elf64-alpha-freebsd")
-OUTPUT_ARCH(alpha)
-ENTRY(__start)
-/* SEARCH_DIR(/usr/lib); JRT */
-/* Do we need any of these for elf?
- __DYNAMIC = 0; */
-SECTIONS
-{
- /* Read-only sections, merged into text segment: */
- . = 0 + SIZEOF_HEADERS;
- .hash : { *(.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .gnu.version : { *(.gnu.version) }
- .gnu.version_d : { *(.gnu.version_d) }
- .gnu.version_r : { *(.gnu.version_r) }
- .rel.text :
- { *(.rel.text) *(.rel.gnu.linkonce.t*) }
- .rela.text :
- { *(.rela.text) *(.rela.gnu.linkonce.t*) }
- .rel.data :
- { *(.rel.data) *(.rel.gnu.linkonce.d*) }
- .rela.data :
- { *(.rela.data) *(.rela.gnu.linkonce.d*) }
- .rel.rodata :
- { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
- .rela.rodata :
- { *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
- .rel.got : { *(.rel.got) }
- .rela.got : { *(.rela.got) }
- .rel.ctors : { *(.rel.ctors) }
- .rela.ctors : { *(.rela.ctors) }
- .rel.dtors : { *(.rel.dtors) }
- .rela.dtors : { *(.rela.dtors) }
- .rel.init : { *(.rel.init) }
- .rela.init : { *(.rela.init) }
- .rel.fini : { *(.rel.fini) }
- .rela.fini : { *(.rela.fini) }
- .rel.bss : { *(.rel.bss) }
- .rela.bss : { *(.rela.bss) }
- .rel.plt : { *(.rel.plt) }
- .rela.plt : { *(.rela.plt) }
- .init : { *(.init) } =0x47ff041f
- .text :
- {
- *(.text)
- *(.stub)
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- *(.gnu.linkonce.t*)
- } =0x47ff041f
- _etext = .;
- PROVIDE (etext = .);
- .fini : { *(.fini) } =0x47ff041f
- .rodata : { *(.rodata) *(.gnu.linkonce.r*) }
- .rodata1 : { *(.rodata1) }
- .reginfo : { *(.reginfo) }
- /* Adjust the address for the data segment. We want to adjust up to
- the same address within the page on the next page up. */
- . = ALIGN(0x100000) + (. & (0x100000 - 1));
- .data :
- {
- *(.data)
- *(.gnu.linkonce.d*)
- CONSTRUCTORS
- }
- .data1 : { *(.data1) }
- .ctors :
- {
- *(.ctors)
- }
- .dtors :
- {
- *(.dtors)
- }
- .plt : { *(.plt) }
- .got : { *(.got.plt) *(.got) }
- PROVIDE (_GOT_END_ = .);
- .dynamic : { *(.dynamic) }
- /* We want the small data sections together, so single-instruction offsets
- can access them all, and initialized data all before uninitialized, so
- we can shorten the on-disk segment size. */
- .sdata : { *(.sdata) }
- _edata = .;
- PROVIDE (edata = .);
- __bss_start = .;
- .sbss : { *(.sbss) *(.scommon) }
- .bss :
- {
- *(.dynbss)
- *(.bss)
- *(COMMON)
- }
- . = ALIGN(64 / 8);
- _end = . ;
- PROVIDE (end = .);
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- /* These must appear regardless of . */
-}
diff --git a/libexec/rtld-elf/alpha/reloc.c b/libexec/rtld-elf/alpha/reloc.c
deleted file mode 100644
index 364b59a2c07c..000000000000
--- a/libexec/rtld-elf/alpha/reloc.c
+++ /dev/null
@@ -1,531 +0,0 @@
-/*-
- * Copyright 1996, 1997, 1998, 1999 John D. Polstra.
- * 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$
- */
-
-/*
- * Dynamic linker for ELF.
- *
- * John Polstra <jdp@polstra.com>.
- */
-
-#include <sys/param.h>
-#include <sys/mman.h>
-
-#include <dlfcn.h>
-#include <err.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "debug.h"
-#include "rtld.h"
-
-extern Elf_Dyn _GOT_END_;
-
-/*
- * Macros for loading/storing unaligned 64-bit values. These are
- * needed because relocations can point to unaligned data. This
- * occurs in the DWARF2 exception frame tables generated by the
- * compiler, for instance.
- *
- * We don't use these when relocating jump slots and GOT entries,
- * since they are guaranteed to be aligned.
- */
-
-struct ualong {
- Elf_Addr x __attribute__((packed));
-};
-
-#define load64(p) (((struct ualong *)(p))->x)
-#define store64(p,v) (((struct ualong *)(p))->x = (v))
-
-/* Relocate a non-PLT object with addend. */
-static int
-reloc_non_plt_obj(Obj_Entry *obj_rtld, Obj_Entry *obj, const Elf_Rela *rela,
- SymCache *cache)
-{
- Elf_Addr *where = (Elf_Addr *) (obj->relocbase + rela->r_offset);
-
- switch (ELF_R_TYPE(rela->r_info)) {
-
- case R_ALPHA_NONE:
- break;
-
- case R_ALPHA_REFQUAD: {
- const Elf_Sym *def;
- const Obj_Entry *defobj;
-
- def = find_symdef(ELF_R_SYM(rela->r_info), obj,
- &defobj, false, cache);
- if (def == NULL)
- return -1;
- store64(where,
- (Elf_Addr) (defobj->relocbase + def->st_value) +
- load64(where) + rela->r_addend);
- }
- break;
-
- case R_ALPHA_GLOB_DAT: {
- const Elf_Sym *def;
- const Obj_Entry *defobj;
- Elf_Addr val;
-
- def = find_symdef(ELF_R_SYM(rela->r_info), obj,
- &defobj, false, cache);
- if (def == NULL)
- return -1;
- val = (Elf_Addr) (defobj->relocbase + def->st_value +
- rela->r_addend);
- if (load64(where) != val)
- store64(where, val);
- }
- break;
-
- case R_ALPHA_RELATIVE: {
- if (obj != obj_rtld ||
- (caddr_t)where < (caddr_t)_GLOBAL_OFFSET_TABLE_ ||
- (caddr_t)where >= (caddr_t)&_GOT_END_)
- store64(where,
- load64(where) + (Elf_Addr) obj->relocbase);
- }
- break;
-
- case R_ALPHA_COPY: {
- /*
- * These are deferred until all other relocations
- * have been done. All we do here is make sure
- * that the COPY relocation is not in a shared
- * library. They are allowed only in executable
- * files.
- */
- if (!obj->mainprog) {
- _rtld_error("%s: Unexpected R_COPY "
- " relocation in shared library",
- obj->path);
- return -1;
- }
- }
- break;
-
- default:
- _rtld_error("%s: Unsupported relocation type %u"
- " in non-PLT relocations\n", obj->path,
- (unsigned int)ELF_R_TYPE(rela->r_info));
- return -1;
- }
- return(0);
-}
-
-/* Process the non-PLT relocations. */
-int
-reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld)
-{
- const Elf_Rel *rellim;
- const Elf_Rel *rel;
- const Elf_Rela *relalim;
- const Elf_Rela *rela;
- SymCache *cache;
- int bytes = obj->nchains * sizeof(SymCache);
- int r = -1;
-
- /*
- * The dynamic loader may be called from a thread, we have
- * limited amounts of stack available so we cannot use alloca().
- */
- cache = mmap(NULL, bytes, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0);
- if (cache == MAP_FAILED)
- cache = NULL;
-
- /* Perform relocations without addend if there are any: */
- rellim = (const Elf_Rel *) ((caddr_t) obj->rel + obj->relsize);
- for (rel = obj->rel; obj->rel != NULL && rel < rellim; rel++) {
- Elf_Rela locrela;
-
- locrela.r_info = rel->r_info;
- locrela.r_offset = rel->r_offset;
- locrela.r_addend = 0;
- if (reloc_non_plt_obj(obj_rtld, obj, &locrela, cache))
- goto done;
- }
-
- /* Perform relocations with addend if there are any: */
- relalim = (const Elf_Rela *) ((caddr_t) obj->rela + obj->relasize);
- for (rela = obj->rela; obj->rela != NULL && rela < relalim; rela++) {
- if (reloc_non_plt_obj(obj_rtld, obj, rela, cache))
- goto done;
- }
- r = 0;
-done:
- if (cache)
- munmap(cache, bytes);
- return(r);
-}
-
-/* Process the PLT relocations. */
-int
-reloc_plt(Obj_Entry *obj)
-{
- /* All PLT relocations are the same kind: either Elf_Rel or Elf_Rela. */
- if (obj->pltrelsize != 0) {
- const Elf_Rel *rellim;
- const Elf_Rel *rel;
-
- rellim = (const Elf_Rel *)((char *)obj->pltrel + obj->pltrelsize);
- for (rel = obj->pltrel; rel < rellim; rel++) {
- Elf_Addr *where;
-
- assert(ELF_R_TYPE(rel->r_info) == R_ALPHA_JMP_SLOT);
-
- /* Relocate the GOT slot pointing into the PLT. */
- where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
- *where += (Elf_Addr)obj->relocbase;
- }
- } else {
- const Elf_Rela *relalim;
- const Elf_Rela *rela;
-
- relalim = (const Elf_Rela *)((char *)obj->pltrela + obj->pltrelasize);
- for (rela = obj->pltrela; rela < relalim; rela++) {
- Elf_Addr *where;
-
- assert(ELF_R_TYPE(rela->r_info) == R_ALPHA_JMP_SLOT);
-
- /* Relocate the GOT slot pointing into the PLT. */
- where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
- *where += (Elf_Addr)obj->relocbase;
- }
- }
- return 0;
-}
-
-/* Relocate the jump slots in an object. */
-int
-reloc_jmpslots(Obj_Entry *obj)
-{
- if (obj->jmpslots_done)
- return 0;
- /* All PLT relocations are the same kind: either Elf_Rel or Elf_Rela. */
- if (obj->pltrelsize != 0) {
- const Elf_Rel *rellim;
- const Elf_Rel *rel;
-
- rellim = (const Elf_Rel *)((char *)obj->pltrel + obj->pltrelsize);
- for (rel = obj->pltrel; rel < rellim; rel++) {
- Elf_Addr *where;
- const Elf_Sym *def;
- const Obj_Entry *defobj;
-
- assert(ELF_R_TYPE(rel->r_info) == R_ALPHA_JMP_SLOT);
- where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
- def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, true,
- NULL);
- if (def == NULL)
- return -1;
- reloc_jmpslot(where,
- (Elf_Addr)(defobj->relocbase + def->st_value),
- defobj, obj, rel);
- }
- } else {
- const Elf_Rela *relalim;
- const Elf_Rela *rela;
-
- relalim = (const Elf_Rela *)((char *)obj->pltrela + obj->pltrelasize);
- for (rela = obj->pltrela; rela < relalim; rela++) {
- Elf_Addr *where;
- const Elf_Sym *def;
- const Obj_Entry *defobj;
-
- assert(ELF_R_TYPE(rela->r_info) == R_ALPHA_JMP_SLOT);
- where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
- def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, true,
- NULL);
- if (def == NULL)
- return -1;
- reloc_jmpslot(where,
- (Elf_Addr)(defobj->relocbase + def->st_value),
- defobj, obj, (Elf_Rel *)rela);
- }
- }
- obj->jmpslots_done = true;
- return 0;
-}
-
-/* Fixup the jump slot at "where" to transfer control to "target". */
-Elf_Addr
-reloc_jmpslot(Elf_Addr *where, Elf_Addr target, const Obj_Entry *obj,
- const Obj_Entry *refobj, const Elf_Rel *rel)
-{
- Elf_Addr stubaddr;
-
- dbg(" reloc_jmpslot: where=%p, target=%p", (void *)where, (void *)target);
- stubaddr = *where;
- if (stubaddr != target) {
- int64_t delta;
- u_int32_t inst[3];
- int instct;
- Elf_Addr pc;
- int64_t idisp;
- u_int32_t *stubptr;
-
- /* Point this GOT entry directly at the target. */
- *where = target;
-
- /*
- * There may be multiple GOT tables, each with an entry
- * pointing to the stub in the PLT. But we can only find and
- * fix up the first GOT entry. So we must rewrite the stub as
- * well, to perform a call to the target if it is executed.
- *
- * When the stub gets control, register pv ($27) contains its
- * address. We adjust its value so that it points to the
- * target, and then jump indirect through it.
- *
- * Each PLT entry has room for 3 instructions. If the
- * adjustment amount fits in a signed 32-bit integer, we can
- * simply add it to register pv. Otherwise we must load the
- * GOT entry itself into the pv register.
- */
- delta = target - stubaddr;
- dbg(" stubaddr=%p, where-stubaddr=%ld, delta=%ld", (void *)stubaddr,
- (long)where - (long)stubaddr, (long)delta);
- instct = 0;
- if ((int32_t)delta == delta) {
- /*
- * We can adjust pv with a LDA, LDAH sequence.
- *
- * First build an LDA instruction to adjust the low 16 bits.
- */
- inst[instct++] = 0x08 << 26 | 27 << 21 | 27 << 16 |
- (delta & 0xffff);
- dbg(" LDA $27,%d($27)", (int16_t)delta);
- /*
- * Adjust the delta to account for the effects of the LDA,
- * including sign-extension.
- */
- delta -= (int16_t)delta;
- if (delta != 0) {
- /* Build an LDAH instruction to adjust the high 16 bits. */
- inst[instct++] = 0x09 << 26 | 27 << 21 | 27 << 16 |
- (delta >> 16 & 0xffff);
- dbg(" LDAH $27,%d($27)", (int16_t)(delta >> 16));
- }
- } else {
- int64_t dhigh;
-
- /* We must load the GOT entry from memory. */
- delta = (Elf_Addr)where - stubaddr;
- /*
- * If the GOT entry is too far away from the PLT entry,
- * then punt. This PLT entry will have to be looked up
- * manually for all GOT entries except the first one.
- * The program will still run, albeit very slowly. It's
- * extremely unlikely that this case could ever arise in
- * practice, but we might as well handle it correctly if
- * it does.
- */
- if ((int32_t)delta != delta) {
- dbg(" PLT stub too far from GOT to relocate");
- return target;
- }
- dhigh = delta - (int16_t)delta;
- if (dhigh != 0) {
- /* Build an LDAH instruction to adjust the high 16 bits. */
- inst[instct++] = 0x09 << 26 | 27 << 21 | 27 << 16 |
- (dhigh >> 16 & 0xffff);
- dbg(" LDAH $27,%d($27)", (int16_t)(dhigh >> 16));
- }
- /* Build an LDQ to load the GOT entry. */
- inst[instct++] = 0x29 << 26 | 27 << 21 | 27 << 16 |
- (delta & 0xffff);
- dbg(" LDQ $27,%d($27)", (int16_t)delta);
- }
-
- /*
- * Build a JMP or BR instruction to jump to the target. If
- * the instruction displacement fits in a sign-extended 21-bit
- * field, we can use the more efficient BR instruction.
- * Otherwise we have to jump indirect through the pv register.
- */
- pc = stubaddr + 4 * (instct + 1);
- idisp = (int64_t)(target - pc) >> 2;
- if (-0x100000 <= idisp && idisp < 0x100000) {
- inst[instct++] = 0x30 << 26 | 31 << 21 | (idisp & 0x1fffff);
- dbg(" BR $31,%p", (void *)target);
- } else {
- inst[instct++] = 0x1a << 26 | 31 << 21 | 27 << 16 |
- (idisp & 0x3fff);
- dbg(" JMP $31,($27),%d", (int)(idisp & 0x3fff));
- }
-
- /*
- * Fill in the tail of the PLT entry first for reentrancy.
- * Until we have overwritten the first instruction (an
- * unconditional branch), the remaining instructions have no
- * effect.
- */
- stubptr = (u_int32_t *)stubaddr;
- while (instct > 1) {
- instct--;
- stubptr[instct] = inst[instct];
- }
- /*
- * Commit the tail of the instruction sequence to memory
- * before overwriting the first instruction.
- */
- __asm__ __volatile__("wmb" : : : "memory");
- stubptr[0] = inst[0];
- }
-
- return target;
-}
-
-/* Process an R_ALPHA_COPY relocation. */
-static int
-do_copy_relocation(Obj_Entry *dstobj, const Elf_Rela *rela)
-{
- void *dstaddr;
- const Elf_Sym *dstsym;
- const char *name;
- unsigned long hash;
- size_t size;
- const void *srcaddr;
- const Elf_Sym *srcsym;
- const Ver_Entry *ve;
- Obj_Entry *srcobj;
-
- dstaddr = (void *) (dstobj->relocbase + rela->r_offset);
- dstsym = dstobj->symtab + ELF_R_SYM(rela->r_info);
- name = dstobj->strtab + dstsym->st_name;
- hash = elf_hash(name);
- size = dstsym->st_size;
- ve = fetch_ventry(dstobj, ELF_R_SYM(rela->r_info));
-
- for (srcobj = dstobj->next; srcobj != NULL; srcobj = srcobj->next)
- if ((srcsym = symlook_obj(name, hash, srcobj, ve, 0)) != NULL)
- break;
-
- if (srcobj == NULL) {
- _rtld_error("Undefined symbol \"%s\" referenced from COPY"
- " relocation in %s", name, dstobj->path);
- return -1;
- }
-
- srcaddr = (const void *) (srcobj->relocbase + srcsym->st_value);
- memcpy(dstaddr, srcaddr, size);
- return 0;
-}
-
-/*
- * Process the special R_ALPHA_COPY relocations in the main program. These
- * copy data from a shared object into a region in the main program's BSS
- * segment.
- *
- * Returns 0 on success, -1 on failure.
- */
-int
-do_copy_relocations(Obj_Entry *dstobj)
-{
- const Elf_Rel *rellim;
- const Elf_Rel *rel;
- const Elf_Rela *relalim;
- const Elf_Rela *rela;
-
- assert(dstobj->mainprog); /* COPY relocations are invalid elsewhere */
-
- rellim = (const Elf_Rel *) ((caddr_t) dstobj->rel + dstobj->relsize);
- for (rel = dstobj->rel; dstobj->rel != NULL && rel < rellim; rel++) {
- if (ELF_R_TYPE(rel->r_info) == R_ALPHA_COPY) {
- Elf_Rela locrela;
-
- locrela.r_info = rel->r_info;
- locrela.r_offset = rel->r_offset;
- locrela.r_addend = 0;
- if (do_copy_relocation(dstobj, &locrela))
- return -1;
- }
- }
-
- relalim = (const Elf_Rela *) ((caddr_t) dstobj->rela +
- dstobj->relasize);
- for (rela = dstobj->rela; dstobj->rela != NULL && rela < relalim;
- rela++) {
- if (ELF_R_TYPE(rela->r_info) == R_ALPHA_COPY) {
- if (do_copy_relocation(dstobj, rela))
- return -1;
- }
- }
-
- return 0;
-}
-
-/* Initialize the special PLT entries. */
-void
-init_pltgot(Obj_Entry *obj)
-{
- u_int32_t *pltgot;
-
- if (obj->pltgot != NULL &&
- (obj->pltrelsize != 0 || obj->pltrelasize != 0)) {
- /*
- * This function will be called to perform the relocation.
- * Look for the ldah instruction from the old PLT format since
- * that will tell us what format we are trying to relocate.
- */
- pltgot = (u_int32_t *) obj->pltgot;
- if ((pltgot[8] & 0xffff0000) == 0x279f0000)
- obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start_old;
- else
- obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
- /* Identify this shared object */
- obj->pltgot[3] = (Elf_Addr) obj;
- }
-}
-
-void
-allocate_initial_tls(Obj_Entry *list)
-{
- void *tls;
-
- /*
- * Fix the size of the static TLS block by using the maximum
- * offset allocated so far and adding a bit for dynamic modules to
- * use.
- */
- tls_static_space = tls_last_offset + tls_last_size + RTLD_STATIC_TLS_EXTRA;
- tls = allocate_tls(list, 0, 16, 16);
- alpha_pal_wrunique((u_int64_t) tls);
-}
-
-void *__tls_get_addr(tls_index* ti)
-{
- Elf_Addr** tp = (Elf_Addr**) alpha_pal_rdunique();
-
- return tls_get_addr_common(tp, ti->ti_module, ti->ti_offset);
-}
diff --git a/libexec/rtld-elf/alpha/rtld_machdep.h b/libexec/rtld-elf/alpha/rtld_machdep.h
deleted file mode 100644
index 397139e35ba0..000000000000
--- a/libexec/rtld-elf/alpha/rtld_machdep.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*-
- * Copyright (c) 1999, 2000 John D. Polstra.
- * 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$
- */
-
-#ifndef RTLD_MACHDEP_H
-#define RTLD_MACHDEP_H 1
-
-#include <sys/types.h>
-#include <machine/atomic.h>
-
-/*
- * This value of CACHE_LINE_SIZE is conservative. The actual size
- * is 32 on the 21064, 21064A, 21066, 21066A, and 21164. It is 64
- * on the 21264. Compaq recommends sequestering each lock in its own
- * 128-byte block to allow for future implementations with larger
- * cache lines.
- */
-#define CACHE_LINE_SIZE 128
-
-struct Struct_Obj_Entry;
-
-/* Return the address of the .dynamic section in the dynamic linker. */
-#define rtld_dynamic(obj) (&_DYNAMIC)
-
-Elf_Addr reloc_jmpslot(Elf_Addr *, Elf_Addr,
- const struct Struct_Obj_Entry *,
- const struct Struct_Obj_Entry *,
- const Elf_Rel *);
-
-#define make_function_pointer(def, defobj) \
- ((defobj)->relocbase + (def)->st_value)
-
-#define call_initfini_pointer(obj, target) \
- (((InitFunc)(target))())
-
-/* Lazy binding entry point, called via PLT. */
-void _rtld_bind_start_old(void);
-
-#define round(size, align) \
- (((size) + (align) - 1) & ~((align) - 1))
-#define calculate_first_tls_offset(size, align) \
- round(16, align)
-#define calculate_tls_offset(prev_offset, prev_size, size, align) \
- round(prev_offset + prev_size, align)
-#define calculate_tls_end(off, size) ((off) + (size))
-
-typedef struct {
- unsigned long ti_module;
- unsigned long ti_offset;
-} tls_index;
-
-extern void *__tls_get_addr(tls_index *ti);
-
-#endif
diff --git a/libexec/rtld-elf/alpha/rtld_start.S b/libexec/rtld-elf/alpha/rtld_start.S
deleted file mode 100644
index 8ab7605a5817..000000000000
--- a/libexec/rtld-elf/alpha/rtld_start.S
+++ /dev/null
@@ -1,211 +0,0 @@
-/* $FreeBSD$ */
-/* From: NetBSD: rtld_start.S,v 1.1 1996/12/16 20:38:09 cgd Exp */
-
-/*
- * Copyright 1996 Matt Thomas <matt@3am-software.com>
- * Copyright 2000 John D. Polstra
- * 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.
- */
-
-#include <machine/asm.h>
-#include <machine/pal.h>
-
-.extern _GLOBAL_OFFSET_TABLE_
-.extern _GOT_END_
-
-LEAF(_rtld_start, 0) /* XXX */
- .set noreorder
- br pv, $33
-$33: LDGP(pv)
-
- /* save away the stack pointer */
-
- lda s0, 0(sp) /* get argc from stack */
- lda sp, -16(sp) /* space for arguments */
-
- /* save ps_strings pointer */
- mov a3, s1
-
- /* Step 1 -- Figure out the displacement */
-
- br t2, $34 /* get our PC */
-$34: ldiq t3, $34 /* get where the linker thought we were */
- subq t2, t3, t8 /* calculate the displacement */
-
-
- /* Step 2 -- Find bounds of global offset table */
-
- lda t5, _GLOBAL_OFFSET_TABLE_
- addq t8, t5, t9 /* add the displacement */
- lda t4, _GOT_END_
- addq t8, t4, t10 /* add the displacement */
-
- /*
- * Step 3 -- Every entry in the global offset table needs to
- * modified for the displacement before any code will work.
- */
-
-$35: ldq t1, 0(t9) /* load the value */
- addq t8, t1, t1 /* add the displacement */
- stq t1, 0(t9) /* save the new value */
- lda t9, 8(t9) /* point to next entry */
- cmpult t9, t10, t1 /* are we done? */
- bne t1, $35 /* no, do more */
-
- /*
- * Ya! Things are far enough so we can do some dynamic linking!
- */
-
- lda a0, 0(s0) /* initial sp */
- lda a1, -16(s0) /* address for exit proc */
- lda a2, -8(s0) /* address for obj_main */
- CALL(_rtld) /* v0 = _rtld(sp, &exit_proc, &obj_main); */
-
- ldq a1, -16(s0) /* our atexit function */
- ldq a2, -8(s0) /* obj_main entry */
- lda sp, 16(sp) /* readjust our stack */
- mov s0, a0 /* stack pointer */
- mov s1, a3 /* ps_strings pointer */
- mov v0, pv
- jsr ra, (v0), 0 /* (*_start)(sp, cleanup, obj); */
- ldgp gp, 0(ra)
-
- CALL(exit)
- halt
-END(_rtld_start)
-
-#define RTLD_BIND_START_PROLOGUE \
- /* at_reg already used by PLT code. */ \
- .set noat ; \
- \
- /* \
- * Allocate stack frame and preserve all registers that the \
- * caller would have normally saved themselves. \
- */ \
- lda sp, -168(sp) ; \
- stq ra, 0(sp) ; \
- stq v0, 8(sp) ; \
- stq t0, 16(sp) ; \
- stq t1, 24(sp) ; \
- stq t2, 32(sp) ; \
- stq t3, 40(sp) ; \
- stq t4, 48(sp) ; \
- stq t5, 56(sp) ; \
- stq t6, 64(sp) ; \
- stq t7, 72(sp) ; \
- stq a0, 80(sp) ; \
- stq a1, 88(sp) ; \
- stq a2, 96(sp) ; \
- stq a3, 104(sp) ; \
- stq a4, 112(sp) ; \
- stq a5, 120(sp) ; \
- stq t8, 128(sp) ; \
- stq t9, 136(sp) ; \
- stq t10, 144(sp) ; \
- stq t11, 152(sp) ; \
- stq gp, 160(sp) ; \
- \
- /* \
- * Load our global pointer. Note, can't use pv, since it is \
- * already used by the PLT code. \
- */ \
- br t0, 1f ; \
-1: LDGP(t0)
-
-#define RTLD_BIND_START_EPILOGUE \
- /* Move the destination address into position. */ \
- mov v0, pv ; \
- \
- /* Restore program registers. */ \
- ldq ra, 0(sp) ; \
- ldq v0, 8(sp) ; \
- ldq t0, 16(sp) ; \
- ldq t1, 24(sp) ; \
- ldq t2, 32(sp) ; \
- ldq t3, 40(sp) ; \
- ldq t4, 48(sp) ; \
- ldq t5, 56(sp) ; \
- ldq t6, 64(sp) ; \
- ldq t7, 72(sp) ; \
- ldq a0, 80(sp) ; \
- ldq a1, 88(sp) ; \
- ldq a2, 96(sp) ; \
- ldq a3, 104(sp) ; \
- ldq a4, 112(sp) ; \
- ldq a5, 120(sp) ; \
- ldq t8, 128(sp) ; \
- ldq t9, 136(sp) ; \
- ldq t10, 144(sp) ; \
- ldq t11, 152(sp) ; \
- ldq gp, 160(sp) ; \
- /* XXX LDGP? */ \
- \
- /* \
- * We've patched the PLT; sync the I-stream. \
- */ \
- imb ; \
- \
- /* Pop the stack frame and turn control to the destination. */ \
- lda sp, 168(sp) ; \
- jmp zero, (pv)
-
-
-/*
- * Lazy binding entry point, called via PLT.
- */
-NESTED_NOPROFILE(_rtld_bind_start, 0, 168, ra, 0, 0)
-
- RTLD_BIND_START_PROLOGUE
-
- /* Set up the arguments for _rtld_bind. */
- subq at_reg, pv, a1 /* calculate reloc offset */
- ldq a0, 8(pv) /* object structure */
- subq a1, 20, a1 /* = (at - t11 - 20) / 12 * 24 */
- addq a1, a1, a1
-
- CALL(_rtld_bind)
-
- RTLD_BIND_START_EPILOGUE
-
-END(_rtld_bind_start)
-
-/*
- * Lazy binding entry point, called via PLT. This version is for the
- * old PLT entry format.
- */
-NESTED_NOPROFILE(_rtld_bind_start_old, 0, 168, ra, 0, 0)
-
- RTLD_BIND_START_PROLOGUE
-
- /* Set up the arguments for _rtld_bind. */
- ldq a0, 8(pv) /* object structure */
- mov at_reg, a1 /* offset of reloc entry */
-
- CALL(_rtld_bind)
-
- RTLD_BIND_START_EPILOGUE
-
-END(_rtld_bind_start_old)
-
diff --git a/release/Makefile b/release/Makefile
index ed976fee7cf3..20d967d51cfc 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -206,17 +206,6 @@ BOOTINODE= 80000
MFSSIZE= 4320
MFSINODE= 8000
MFSLABEL= minimum3
-.elif ${TARGET_ARCH} == "alpha"
-MAKE_FLOPPIES= true
-FLOPPYSIZE= 1440
-FLOPPYSPLITSIZE= 1392
-FLOPPYINODE= 40000
-FLOPPYLABEL= fd1440
-BOOTINODE= 80000
-MFSSIZE= 4320
-MFSINODE= 8000
-MFSLABEL= auto
-SPLIT_MFSROOT=
.elif ${TARGET_ARCH} == "sparc64"
DISKLABEL= sunlabel
MFSSIZE= 4096
diff --git a/release/alpha/boot_crunch.conf b/release/alpha/boot_crunch.conf
deleted file mode 100644
index ce31af3b9eb6..000000000000
--- a/release/alpha/boot_crunch.conf
+++ /dev/null
@@ -1,44 +0,0 @@
-# $FreeBSD$
-
-buildopts -DRELEASE_CRUNCH -Dlint
-
-srcdirs /usr/src/bin
-progs hostname
-progs pwd
-progs rm
-progs sh
-progs test
-ln sh -sh
-ln test [
-
-srcdirs /usr/src/gnu/usr.bin
-progs cpio
-
-srcdirs /usr/src/sbin
-progs camcontrol
-progs dhclient
-progs fsck_ffs
-progs ifconfig
-progs mount_nfs
-progs newfs
-progs route
-progs rtsol
-progs slattach
-progs tunefs
-
-srcdirs /usr/src/usr.bin
-progs find
-progs minigzip
-progs sed
-ln minigzip gzip
-ln minigzip gunzip
-ln minigzip zcat
-
-srcdirs /usr/src/usr.sbin
-progs arp
-progs ppp
-progs sysinstall
-progs usbdevs
-
-libs -ll -ledit -lutil -lmd -lcrypt -lftpio -lz -lnetgraph
-libs -ldialog -lncurses -ldisk -lcam -lsbuf -lufs
diff --git a/release/alpha/mkisoimages.sh b/release/alpha/mkisoimages.sh
deleted file mode 100644
index 9762931f441c..000000000000
--- a/release/alpha/mkisoimages.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/sh
-#
-# Module: mkisoimages.sh
-# Author: Jordan K Hubbard
-# Date: 22 June 2001
-#
-# $FreeBSD$
-#
-# This script is used by release/Makefile to build the (optional) ISO images
-# for a FreeBSD release. It is considered architecture dependent since each
-# platform has a slightly unique way of making bootable CDs. This script
-# is also allowed to generate any number of images since that is more of
-# publishing decision than anything else.
-#
-# Usage:
-#
-# mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir]
-#
-# Where -b is passed if the ISO image should be made "bootable" by
-# whatever standards this architecture supports (may be unsupported),
-# image-label is the ISO image label, image-name is the filename of the
-# resulting ISO image, base-bits-dir contains the image contents and
-# extra-bits-dir, if provided, contains additional files to be merged
-# into base-bits-dir as part of making the image.
-
-publisher="The FreeBSD Project. http://www.freebsd.org/"
-
-if [ "x$1" = "x-b" ]; then
- bootable="yes"
- shift
-fi
-
-if [ $# -lt 3 ]; then
- echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
- exit 1
-fi
-
-type mkisofs 2>&1 | grep " is " >/dev/null
-if [ $? -ne 0 ]; then
- echo The cdrtools port is not installed. Trying to get it now.
- if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then
- cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean
- else
- if ! pkg_add -r cdrtools; then
- echo "Could not get it via pkg_add - please go install this"
- echo "from the ports collection and run this script again."
- exit 2
- fi
- fi
-fi
-
-LABEL=$1; shift
-NAME=$1; shift
-
-mkisofs -r -J -V $LABEL -publisher "$publisher" -o $NAME $*
-
-type setcdboot 2>&1 | grep " is " >/dev/null
-if [ $? -ne 0 ]; then
- echo The setcdboot port is not installed. Trying to get it now.
- if [ -f /usr/ports/sysutils/setcdboot/Makefile ]; then
- cd /usr/ports/sysutils/setcdboot && make install BATCH=yes && make clean
- else
- if ! pkg_add -r setcdboot; then
- echo "Could not get it via pkg_add - please go install this"
- echo "from the ports collection and run this script again."
- exit 2
- fi
- fi
-fi
-if [ "x$bootable" != "x" ]; then
- setcdboot $NAME /boot/cdboot
-fi
diff --git a/rescue/rescue/Makefile b/rescue/rescue/Makefile
index 4331d7c226c0..ce62be244475 100644
--- a/rescue/rescue/Makefile
+++ b/rescue/rescue/Makefile
@@ -163,10 +163,6 @@ CRUNCH_PROGS_sbin+= mca gpt fdisk
CRUNCH_PROGS_sbin+= sunlabel
.endif
-.if ${MACHINE_ARCH} == "alpha"
-CRUNCH_ALIAS_bsdlabel= disklabel
-.endif
-
.if ${MACHINE_ARCH} == "amd64"
CRUNCH_PROGS_sbin+= fdisk
CRUNCH_ALIAS_bsdlabel= disklabel
diff --git a/sbin/bsdlabel/Makefile b/sbin/bsdlabel/Makefile
index 716dab3db69e..a412493bb4ef 100644
--- a/sbin/bsdlabel/Makefile
+++ b/sbin/bsdlabel/Makefile
@@ -8,8 +8,7 @@ SRCS= bsdlabel.c geom_bsd_enc.c
#MAN= bsdlabel.5
MAN+= bsdlabel.8
-.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "alpha" || \
- ${MACHINE_ARCH} == "amd64"
+.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64"
LINKS= ${BINDIR}/bsdlabel ${BINDIR}/disklabel
MLINKS= bsdlabel.8 disklabel.8
.endif
diff --git a/sbin/ggate/Makefile b/sbin/ggate/Makefile
index a089bf33ab9a..73a8016300d3 100644
--- a/sbin/ggate/Makefile
+++ b/sbin/ggate/Makefile
@@ -6,7 +6,7 @@ SUBDIR= ${_ggatec} \
${_ggated} \
ggatel
-.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "sparc64"
+.if ${MACHINE_ARCH} == "sparc64"
.if ${MK_LIBTHR} != "no"
_ggatec= ggatec
_ggated= ggated
diff --git a/sbin/ping/Makefile b/sbin/ping/Makefile
index 24882d3d7d6d..838e1ea7245b 100644
--- a/sbin/ping/Makefile
+++ b/sbin/ping/Makefile
@@ -5,9 +5,6 @@ PROG= ping
MAN= ping.8
BINOWN= root
BINMODE=4555
-.if ${MACHINE_ARCH} == "alpha"
-CFLAGS+=-fno-builtin # GCC's builtin memcpy doesn't do unaligned copies
-.endif
WARNS?= 2
DPADD= ${LIBM}
LDADD= -lm
diff --git a/secure/lib/libcrypto/Makefile.inc b/secure/lib/libcrypto/Makefile.inc
index 151b3deb72ba..eb2847a5b391 100644
--- a/secure/lib/libcrypto/Makefile.inc
+++ b/secure/lib/libcrypto/Makefile.inc
@@ -15,8 +15,6 @@ CFLAGS+= -DOPENSSL_NO_IDEA
.if ${MACHINE_ARCH} == "i386"
CFLAGS+= -DL_ENDIAN
-.elif ${MACHINE_ARCH} == "alpha"
-# no ENDIAN stuff defined for alpha (64-bit)
.endif
MANDIR= ${SHAREDIR}/openssl/man/man
diff --git a/secure/lib/libcrypto/opensslconf-alpha.h b/secure/lib/libcrypto/opensslconf-alpha.h
deleted file mode 100644
index 14e5af5bf018..000000000000
--- a/secure/lib/libcrypto/opensslconf-alpha.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* $FreeBSD$ */
-/* opensslconf.h */
-
-/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
-
-/* OpenSSL was configured with the following options: */
-#ifdef OPENSSL_ALGORITHM_DEFINES
- /* no ciphers excluded */
-#endif
-#ifdef OPENSSL_THREAD_DEFINES
-# ifndef THREADS
-# define THREADS
-# endif
-#endif
-#ifdef OPENSSL_OTHER_DEFINES
-# ifndef NO_ASM
-# define NO_ASM
-# endif
-#endif
-
-/* crypto/opensslconf.h.in */
-
-/* Generate 80386 code? */
-#undef I386_ONLY
-
-#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
-#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
-#define OPENSSLDIR "/etc/ssl"
-#endif
-#endif
-
-#define OPENSSL_UNISTD <unistd.h>
-
-#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
-#define IDEA_INT unsigned int
-#endif
-
-#if defined(HEADER_MD2_H) && !defined(MD2_INT)
-#define MD2_INT unsigned int
-#endif
-
-#if defined(HEADER_RC2_H) && !defined(RC2_INT)
-/* I need to put in a mod for the alpha - eay */
-#define RC2_INT unsigned int
-#endif
-
-#if defined(HEADER_RC4_H)
-#if !defined(RC4_INT)
-/* using int types make the structure larger but make the code faster
- * on most boxes I have tested - up to %20 faster. */
-/*
- * I don't know what does "most" mean, but declaring "int" is a must on:
- * - Intel P6 because partial register stalls are very expensive;
- * - elder Alpha because it lacks byte load/store instructions;
- */
-#define RC4_INT unsigned int
-#endif
-#if !defined(RC4_CHUNK)
-/*
- * This enables code handling data aligned at natural CPU word
- * boundary. See crypto/rc4/rc4_enc.c for further details.
- */
-#undef RC4_CHUNK
-#endif
-#endif
-
-#if (defined(HEADER_DES_H) || defined(HEADER_NEW_DES_H)) && !defined(DES_LONG)
-/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
- * %20 speed up (longs are 8 bytes, int's are 4). */
-#ifndef DES_LONG
-#define DES_LONG unsigned int
-#endif
-#endif
-
-#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
-#define CONFIG_HEADER_BN_H
-#undef BN_LLONG
-
-/* Should we define BN_DIV2W here? */
-
-/* Only one for the following should be defined */
-/* The prime number generation stuff may not work when
- * EIGHT_BIT but I don't care since I've only used this mode
- * for debuging the bignum libraries */
-#define SIXTY_FOUR_BIT_LONG
-#undef SIXTY_FOUR_BIT
-#undef THIRTY_TWO_BIT
-#undef SIXTEEN_BIT
-#undef EIGHT_BIT
-#endif
-
-#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
-#define CONFIG_HEADER_RC4_LOCL_H
-/* if this is defined data[i] is used instead of *data, this is a %20
- * speedup on x86 */
-#undef RC4_INDEX
-#endif
-
-#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
-#define CONFIG_HEADER_BF_LOCL_H
-#undef BF_PTR
-#endif /* HEADER_BF_LOCL_H */
-
-#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
-#define CONFIG_HEADER_DES_LOCL_H
-#ifndef DES_DEFAULT_OPTIONS
-/* the following is tweaked from a config script, that is why it is a
- * protected undef/define */
-#ifndef DES_PTR
-#define DES_PTR
-#endif
-
-/* This helps C compiler generate the correct code for multiple functional
- * units. It reduces register dependancies at the expense of 2 more
- * registers */
-#ifndef DES_RISC1
-#undef DES_RISC1
-#endif
-
-#ifndef DES_RISC2
-#define DES_RISC2
-#endif
-
-#if defined(DES_RISC1) && defined(DES_RISC2)
-YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
-#endif
-
-/* Unroll the inner loop, this sometimes helps, sometimes hinders.
- * Very mucy CPU dependant */
-#ifndef DES_UNROLL
-#undef DES_UNROLL
-#endif
-
-/* These default values were supplied by
- * Peter Gutman <pgut001@cs.auckland.ac.nz>
- * They are only used if nothing else has been defined */
-#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
-/* Special defines which change the way the code is built depending on the
- CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
- even newer MIPS CPU's, but at the moment one size fits all for
- optimization options. Older Sparc's work better with only UNROLL, but
- there's no way to tell at compile time what it is you're running on */
-
-#if defined( sun ) /* Newer Sparc's */
-# define DES_PTR
-# define DES_RISC1
-# define DES_UNROLL
-#elif defined( __ultrix ) /* Older MIPS */
-# define DES_PTR
-# define DES_RISC2
-# define DES_UNROLL
-#elif defined( __osf1__ ) /* Alpha */
-# define DES_PTR
-# define DES_RISC2
-#elif defined ( _AIX ) /* RS6000 */
- /* Unknown */
-#elif defined( __hpux ) /* HP-PA */
- /* Unknown */
-#elif defined( __aux ) /* 68K */
- /* Unknown */
-#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
-# define DES_UNROLL
-#elif defined( __sgi ) /* Newer MIPS */
-# define DES_PTR
-# define DES_RISC2
-# define DES_UNROLL
-#elif defined( i386 ) /* x86 boxes, should be gcc */
-# define DES_PTR
-# define DES_RISC1
-# define DES_UNROLL
-#endif /* Systems-specific speed defines */
-#endif
-
-#endif /* DES_DEFAULT_OPTIONS */
-#endif /* HEADER_DES_LOCL_H */
-/* The Kerberos 5 support is MIT-specific. */
-#define OPENSSL_NO_KRB5
diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk
index e45dd48d99e9..2d905c68a407 100644
--- a/share/mk/bsd.cpu.mk
+++ b/share/mk/bsd.cpu.mk
@@ -8,9 +8,6 @@
_CPUCFLAGS =
. if ${MACHINE_ARCH} == "i386"
MACHINE_CPU = i486
-. elif ${MACHINE_ARCH} == "alpha"
-_CPUCFLAGS = -mcpu=ev4 -mtune=ev5
-MACHINE_CPU = ev4
. elif ${MACHINE_ARCH} == "amd64"
MACHINE_CPU = amd64 sse2 sse
. elif ${MACHINE_ARCH} == "ia64"
@@ -100,8 +97,6 @@ _ICC_CPUCFLAGS = -tpp5
. else
_ICC_CPUCFLAGS =
. endif # ICC on 'i386'
-. elif ${MACHINE_ARCH} == "alpha"
-_CPUCFLAGS = -mcpu=${CPUTYPE}
. elif ${MACHINE_ARCH} == "amd64"
_CPUCFLAGS = -march=${CPUTYPE}
. elif ${MACHINE_ARCH} == "arm"
@@ -153,22 +148,6 @@ MACHINE_CPU = i486 i386
. elif ${CPUTYPE} == "i386"
MACHINE_CPU = i386
. endif
-. elif ${MACHINE_ARCH} == "alpha"
-. if ${CPUTYPE} == "ev67"
-MACHINE_CPU = ev67 ev6 ev56 pca56 ev5 ev45 ev4
-. elif ${CPUTYPE} == "ev6"
-MACHINE_CPU = ev6 ev56 pca56 ev5 ev45 ev4
-. elif ${CPUTYPE} == "pca56"
-MACHINE_CPU = pca56 ev56 ev5 ev45 ev4
-. elif ${CPUTYPE} == "ev56"
-MACHINE_CPU = ev56 ev5 ev45 ev4
-. elif ${CPUTYPE} == "ev5"
-MACHINE_CPU = ev5 ev45 ev4
-. elif ${CPUTYPE} == "ev45"
-MACHINE_CPU = ev45 ev4
-. elif ${CPUTYPE} == "ev4"
-MACHINE_CPU = ev4
-. endif
. elif ${MACHINE_ARCH} == "amd64"
. if ${CPUTYPE} == "opteron" || ${CPUTYPE} == "athlon64" || ${CPUTYPE} == "k8"
MACHINE_CPU = k8 3dnow
@@ -183,10 +162,6 @@ MACHINE_CPU = itanium
. endif
.endif
-.if ${MACHINE_ARCH} == "alpha"
-_CPUCFLAGS += -mieee
-.endif
-
.if ${MACHINE_ARCH} == "arm" && defined(ARM_BIG_ENDIAN)
CFLAGS += -mbig-endian
LDFLAGS += -mbig-endian
diff --git a/share/mk/bsd.endian.mk b/share/mk/bsd.endian.mk
index 9cee45a0fefb..6c321798b0a8 100644
--- a/share/mk/bsd.endian.mk
+++ b/share/mk/bsd.endian.mk
@@ -1,7 +1,6 @@
# $FreeBSD$
-.if ${MACHINE_ARCH} == "alpha" || \
- ${MACHINE_ARCH} == "amd64" || \
+.if ${MACHINE_ARCH} == "amd64" || \
${MACHINE_ARCH} == "i386" || \
${MACHINE_ARCH} == "ia64" || \
(${MACHINE_ARCH} == "arm" && !defined(ARM_BIG_ENDIAN))
diff --git a/tools/regression/lib/msun/Makefile b/tools/regression/lib/msun/Makefile
index 46a6947e8a82..696cf30c1590 100644
--- a/tools/regression/lib/msun/Makefile
+++ b/tools/regression/lib/msun/Makefile
@@ -3,9 +3,6 @@
TESTS= test-fenv test-ilogb test-lrint test-lround test-next test-rem
CFLAGS+= -O0 -lm
ARCH!= uname -m
-.if ${ARCH} == "alpha"
-CFLAGS+= -mieee-with-inexact -mfp-rounding-mode=d
-.endif
.PHONY: tests
tests: ${TESTS}
diff --git a/usr.sbin/crunch/crunchide/Makefile b/usr.sbin/crunch/crunchide/Makefile
index 945ed5b2f1e4..0f8525456733 100644
--- a/usr.sbin/crunch/crunchide/Makefile
+++ b/usr.sbin/crunch/crunchide/Makefile
@@ -10,7 +10,7 @@ CFLAGS+=-DNLIST_AOUT
SRCS+= exec_aout.c
.endif
-.if ${TARGET_ARCH} == alpha || ${TARGET_ARCH} == ia64 || \
+.if ${TARGET_ARCH} == ia64 || \
${TARGET_ARCH} == sparc64 || ${TARGET_ARCH} == amd64
CFLAGS+=-DNLIST_ELF64
SRCS+= exec_elf64.c
diff --git a/usr.sbin/pnpinfo/Makefile b/usr.sbin/pnpinfo/Makefile
index 1f435ce3bce9..294b4f758d4f 100644
--- a/usr.sbin/pnpinfo/Makefile
+++ b/usr.sbin/pnpinfo/Makefile
@@ -11,9 +11,4 @@ CFLAGS+= -I${.CURDIR}/../../sys
CFLAGS+= -DPC98
.endif
-.if ${MACHINE_ARCH} == "alpha"
-LDADD= -lio
-DPADD= ${LIBIO}
-.endif
-
.include <bsd.prog.mk>
diff --git a/usr.sbin/traceroute/Makefile b/usr.sbin/traceroute/Makefile
index 02c9b2d8b300..8b941e5e12be 100644
--- a/usr.sbin/traceroute/Makefile
+++ b/usr.sbin/traceroute/Makefile
@@ -29,11 +29,6 @@ DPADD= ${LIBIPSEC}
LDADD= -lipsec
.endif
-.if ${MACHINE_ARCH} == "alpha"
-# gcc builtin memcpy causes unaligned access
-CFLAGS+= -fno-builtin
-.endif
-
CFLAGS+= -I${TRACEROUTE_DISTDIR}/lbl
version.c: ${TRACEROUTE_DISTDIR}/VERSION