From 4d582ffe096e47ba124286efb831032cbd3cdf2a Mon Sep 17 00:00:00 2001 From: ru Date: Tue, 22 Aug 2006 08:03:01 +0000 Subject: Remove alpha left-overs. --- Makefile.inc1 | 4 - ObsoleteFiles.inc | 4 +- contrib/pnpinfo/pnpinfo.c | 3 - lib/Makefile | 6 +- lib/csu/alpha/Makefile | 21 - lib/csu/alpha/crt1.c | 114 ------ lib/csu/alpha/crti.S | 53 --- lib/csu/alpha/crtn.S | 45 --- lib/libc/Makefile | 3 +- lib/libc/alpha/Makefile.inc | 8 - lib/libc/alpha/SYS.h | 74 ---- lib/libc/alpha/Symbol.map | 77 ---- lib/libc/alpha/_fpmath.h | 49 --- lib/libc/alpha/arith.h | 20 - lib/libc/alpha/gen/Makefile.inc | 47 --- lib/libc/alpha/gen/_ctx_start.S | 45 --- lib/libc/alpha/gen/_set_tp.c | 40 -- lib/libc/alpha/gen/_setjmp.S | 127 ------ lib/libc/alpha/gen/divrem.m4 | 198 --------- lib/libc/alpha/gen/fabs.S | 36 -- lib/libc/alpha/gen/flt_rounds.c | 60 --- lib/libc/alpha/gen/fpgetmask.c | 52 --- lib/libc/alpha/gen/fpgetround.c | 52 --- lib/libc/alpha/gen/fpgetsticky.c | 52 --- lib/libc/alpha/gen/fpsetmask.c | 54 --- lib/libc/alpha/gen/fpsetround.c | 61 --- lib/libc/alpha/gen/infinity.c | 39 -- lib/libc/alpha/gen/makecontext.c | 172 -------- lib/libc/alpha/gen/modf.c | 107 ----- lib/libc/alpha/gen/rfork_thread.S | 66 --- lib/libc/alpha/gen/setjmp.S | 138 ------- lib/libc/alpha/gen/signalcontext.c | 103 ----- lib/libc/alpha/gen/sigsetjmp.S | 64 --- lib/libc/alpha/net/Makefile.inc | 3 - lib/libc/alpha/net/byte_swap_2.S | 49 --- lib/libc/alpha/net/byte_swap_4.S | 55 --- lib/libc/alpha/net/htonl.S | 36 -- lib/libc/alpha/net/htons.S | 36 -- lib/libc/alpha/net/ntohl.S | 36 -- lib/libc/alpha/net/ntohs.S | 36 -- lib/libc/alpha/stdlib/Makefile.inc | 3 - lib/libc/alpha/string/Makefile.inc | 3 - lib/libc/alpha/string/bcopy.S | 289 -------------- lib/libc/alpha/string/bzero.S | 111 ------ lib/libc/alpha/string/ffs.S | 92 ----- lib/libc/alpha/string/memcpy.S | 8 - lib/libc/alpha/string/memmove.S | 7 - lib/libc/alpha/sys/Makefile.inc | 12 - lib/libc/alpha/sys/Ovfork.S | 38 -- lib/libc/alpha/sys/brk.S | 53 --- lib/libc/alpha/sys/cerror.S | 56 --- lib/libc/alpha/sys/exect.S | 38 -- lib/libc/alpha/sys/fork.S | 38 -- lib/libc/alpha/sys/pipe.S | 40 -- lib/libc/alpha/sys/ptrace.S | 40 -- lib/libc/alpha/sys/sbrk.S | 53 --- lib/libc/alpha/sys/setlogin.S | 40 -- lib/libc/alpha/sys/sigreturn.S | 41 -- lib/libc/stdio/findfp.c | 2 +- lib/libc_r/Makefile | 2 +- lib/libc_r/arch/alpha/_atomic_lock.S | 45 --- lib/libio/Makefile | 9 - lib/libio/alpha_sethae.c | 46 --- lib/libio/bwx.c | 244 ------------ lib/libio/io.c | 173 -------- lib/libio/io.h | 48 --- lib/libio/swiz.c | 248 ------------ lib/libkse/Makefile | 2 +- lib/libpthread/Makefile | 2 +- lib/libpthread/arch/alpha/Makefile.inc | 5 - lib/libpthread/arch/alpha/alpha/context.S | 353 ---------------- lib/libpthread/arch/alpha/alpha/enter_uts.S | 42 -- lib/libpthread/arch/alpha/alpha/pthread_md.c | 76 ---- lib/libpthread/arch/alpha/include/atomic_ops.h | 75 ---- lib/libpthread/arch/alpha/include/pthread_md.h | 247 ------------ lib/libstand/Makefile | 50 --- lib/libstand/alpha/_setjmp.S | 120 ------ lib/libthr/Makefile | 4 +- lib/libthr/arch/alpha/Makefile.inc | 5 - lib/libthr/arch/alpha/alpha/pthread_md.c | 53 --- lib/libthr/arch/alpha/include/pthread_md.h | 75 ---- lib/msun/alpha/Makefile.inc | 11 - lib/msun/alpha/Symbol.map | 13 - lib/msun/alpha/fenv.c | 144 ------- lib/msun/alpha/fenv.h | 185 --------- lib/msun/alpha/s_copysign.S | 45 --- lib/msun/alpha/s_copysignf.S | 45 --- libexec/rtld-elf/alpha/Makefile.inc | 4 - libexec/rtld-elf/alpha/ld.so.script | 135 ------- libexec/rtld-elf/alpha/reloc.c | 531 ------------------------- libexec/rtld-elf/alpha/rtld_machdep.h | 78 ---- libexec/rtld-elf/alpha/rtld_start.S | 211 ---------- release/Makefile | 11 - release/alpha/boot_crunch.conf | 44 -- release/alpha/mkisoimages.sh | 72 ---- rescue/rescue/Makefile | 4 - sbin/bsdlabel/Makefile | 3 +- sbin/ggate/Makefile | 2 +- sbin/ping/Makefile | 3 - secure/lib/libcrypto/Makefile.inc | 2 - secure/lib/libcrypto/opensslconf-alpha.h | 177 --------- share/mk/bsd.cpu.mk | 25 -- share/mk/bsd.endian.mk | 3 +- tools/regression/lib/msun/Makefile | 3 - usr.sbin/crunch/crunchide/Makefile | 2 +- usr.sbin/pnpinfo/Makefile | 5 - usr.sbin/traceroute/Makefile | 5 - 107 files changed, 14 insertions(+), 6882 deletions(-) delete mode 100644 lib/csu/alpha/Makefile delete mode 100644 lib/csu/alpha/crt1.c delete mode 100644 lib/csu/alpha/crti.S delete mode 100644 lib/csu/alpha/crtn.S delete mode 100644 lib/libc/alpha/Makefile.inc delete mode 100644 lib/libc/alpha/SYS.h delete mode 100644 lib/libc/alpha/Symbol.map delete mode 100644 lib/libc/alpha/_fpmath.h delete mode 100644 lib/libc/alpha/arith.h delete mode 100644 lib/libc/alpha/gen/Makefile.inc delete mode 100644 lib/libc/alpha/gen/_ctx_start.S delete mode 100644 lib/libc/alpha/gen/_set_tp.c delete mode 100644 lib/libc/alpha/gen/_setjmp.S delete mode 100644 lib/libc/alpha/gen/divrem.m4 delete mode 100644 lib/libc/alpha/gen/fabs.S delete mode 100644 lib/libc/alpha/gen/flt_rounds.c delete mode 100644 lib/libc/alpha/gen/fpgetmask.c delete mode 100644 lib/libc/alpha/gen/fpgetround.c delete mode 100644 lib/libc/alpha/gen/fpgetsticky.c delete mode 100644 lib/libc/alpha/gen/fpsetmask.c delete mode 100644 lib/libc/alpha/gen/fpsetround.c delete mode 100644 lib/libc/alpha/gen/infinity.c delete mode 100644 lib/libc/alpha/gen/makecontext.c delete mode 100644 lib/libc/alpha/gen/modf.c delete mode 100644 lib/libc/alpha/gen/rfork_thread.S delete mode 100644 lib/libc/alpha/gen/setjmp.S delete mode 100644 lib/libc/alpha/gen/signalcontext.c delete mode 100644 lib/libc/alpha/gen/sigsetjmp.S delete mode 100644 lib/libc/alpha/net/Makefile.inc delete mode 100644 lib/libc/alpha/net/byte_swap_2.S delete mode 100644 lib/libc/alpha/net/byte_swap_4.S delete mode 100644 lib/libc/alpha/net/htonl.S delete mode 100644 lib/libc/alpha/net/htons.S delete mode 100644 lib/libc/alpha/net/ntohl.S delete mode 100644 lib/libc/alpha/net/ntohs.S delete mode 100644 lib/libc/alpha/stdlib/Makefile.inc delete mode 100644 lib/libc/alpha/string/Makefile.inc delete mode 100644 lib/libc/alpha/string/bcopy.S delete mode 100644 lib/libc/alpha/string/bzero.S delete mode 100644 lib/libc/alpha/string/ffs.S delete mode 100644 lib/libc/alpha/string/memcpy.S delete mode 100644 lib/libc/alpha/string/memmove.S delete mode 100644 lib/libc/alpha/sys/Makefile.inc delete mode 100644 lib/libc/alpha/sys/Ovfork.S delete mode 100644 lib/libc/alpha/sys/brk.S delete mode 100644 lib/libc/alpha/sys/cerror.S delete mode 100644 lib/libc/alpha/sys/exect.S delete mode 100644 lib/libc/alpha/sys/fork.S delete mode 100644 lib/libc/alpha/sys/pipe.S delete mode 100644 lib/libc/alpha/sys/ptrace.S delete mode 100644 lib/libc/alpha/sys/sbrk.S delete mode 100644 lib/libc/alpha/sys/setlogin.S delete mode 100644 lib/libc/alpha/sys/sigreturn.S delete mode 100644 lib/libc_r/arch/alpha/_atomic_lock.S delete mode 100644 lib/libio/Makefile delete mode 100644 lib/libio/alpha_sethae.c delete mode 100644 lib/libio/bwx.c delete mode 100644 lib/libio/io.c delete mode 100644 lib/libio/io.h delete mode 100644 lib/libio/swiz.c delete mode 100644 lib/libpthread/arch/alpha/Makefile.inc delete mode 100644 lib/libpthread/arch/alpha/alpha/context.S delete mode 100644 lib/libpthread/arch/alpha/alpha/enter_uts.S delete mode 100644 lib/libpthread/arch/alpha/alpha/pthread_md.c delete mode 100644 lib/libpthread/arch/alpha/include/atomic_ops.h delete mode 100644 lib/libpthread/arch/alpha/include/pthread_md.h delete mode 100644 lib/libstand/alpha/_setjmp.S delete mode 100644 lib/libthr/arch/alpha/Makefile.inc delete mode 100644 lib/libthr/arch/alpha/alpha/pthread_md.c delete mode 100644 lib/libthr/arch/alpha/include/pthread_md.h delete mode 100644 lib/msun/alpha/Makefile.inc delete mode 100644 lib/msun/alpha/Symbol.map delete mode 100644 lib/msun/alpha/fenv.c delete mode 100644 lib/msun/alpha/fenv.h delete mode 100644 lib/msun/alpha/s_copysign.S delete mode 100644 lib/msun/alpha/s_copysignf.S delete mode 100644 libexec/rtld-elf/alpha/Makefile.inc delete mode 100644 libexec/rtld-elf/alpha/ld.so.script delete mode 100644 libexec/rtld-elf/alpha/reloc.c delete mode 100644 libexec/rtld-elf/alpha/rtld_machdep.h delete mode 100644 libexec/rtld-elf/alpha/rtld_start.S delete mode 100644 release/alpha/boot_crunch.conf delete mode 100644 release/alpha/mkisoimages.sh delete mode 100644 secure/lib/libcrypto/opensslconf-alpha.h diff --git a/Makefile.inc1 b/Makefile.inc1 index 4c66864..e837903 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 6fb818c..cc65308 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 8bf6fa4..790cfd8 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 3986218..bdb3678 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 8b81815..0000000 --- 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 diff --git a/lib/csu/alpha/crt1.c b/lib/csu/alpha/crt1.c deleted file mode 100644 index b8ad3ea..0000000 --- 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 - -#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 5ecd99c..0000000 --- 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 6928d37..0000000 --- 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 90dc880..2741113 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 49f6a3e..0000000 --- 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 5365e67..0000000 --- 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 -#include - -#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 51c81ed..0000000 --- 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 8b6d09e..0000000 --- a/lib/libc/alpha/_fpmath.h +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 2002, 2003 David Schultz - * 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 c8af6de..0000000 --- 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 8f8caf8..0000000 --- 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 229a6c1..0000000 --- a/lib/libc/alpha/gen/_ctx_start.S +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2001 Daniel Eischen - * 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 -__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 7aff9f7..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include - -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 85ed8c7..0000000 --- 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 -__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 6afa2e1..0000000 --- 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 - -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< -__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 c3219d9..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include - -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 036a150..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -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 1fd96b2..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -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 7586eb4..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -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 65da3c5..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -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 8e994c7..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include - -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 b10f6d3..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include - -/* 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 bc8ea03..0000000 --- a/lib/libc/alpha/gen/makecontext.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) 2001 Daniel M. Eischen - * 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 -__FBSDID("$FreeBSD$"); - -#include -#include - -#include -#include -#include -#include -#include - - -/* 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 37786dc..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include - -/* - * 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 68b0233..0000000 --- a/lib/libc/alpha/gen/rfork_thread.S +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 2000 Peter Wemm - * 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 -__FBSDID("$FreeBSD$"); - -#include "SYS.h" -#include -/* #include */ - -/* - * 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 779684d..0000000 --- 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 -__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 a3f6397..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include - -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 0f7e400..0000000 --- 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 -__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 b717813..0000000 --- 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 d7933c4..0000000 --- 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 -__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 04acc85..0000000 --- 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 -__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 05c906c..0000000 --- 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 -__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 4bd3a8b..0000000 --- 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 -__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 a08a162..0000000 --- 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 -__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 79e6e0c..0000000 --- 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 -__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 dda8c76..0000000 --- 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 7bbcc8d..0000000 --- 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 dc23063..0000000 --- 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 -__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 dd94200..0000000 --- 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 -__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 11147d6..0000000 --- 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 -__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 ef50ab1..0000000 --- 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 -__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 ad80b1c..0000000 --- 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 -__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 d0b21ed..0000000 --- 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 99663f1..0000000 --- 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 -__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 9f3385b..0000000 --- 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 -__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 5744129..0000000 --- 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 -__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 8ad065f..0000000 --- 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 -__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 5f40896..0000000 --- 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 -__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 e94398e..0000000 --- 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 -__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 8e4c371..0000000 --- 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 -__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 4d79906..0000000 --- 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 -__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 00b1d3c..0000000 --- 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 -__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 9b13d5f..0000000 --- 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 -__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 26d4dcf..740ec98 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 bd8a2b5..9175815 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 1ddceb0..0000000 --- a/lib/libc_r/arch/alpha/_atomic_lock.S +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 1998 John Birrell . - * 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 - -/* - * 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 bbbd72d..0000000 --- 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 diff --git a/lib/libio/alpha_sethae.c b/lib/libio/alpha_sethae.c deleted file mode 100644 index 206b6dd..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include - -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 5b47968..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#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 a963349..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#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 1f4c620..0000000 --- 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 eab2a03..0000000 --- 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#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 17b46b9..e043e6d 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 17b46b9..e043e6d 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 7bb3ad9..0000000 --- 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 6ef42b6..0000000 --- a/lib/libpthread/arch/alpha/alpha/context.S +++ /dev/null @@ -1,353 +0,0 @@ -/* - * Copyright (c) 2001,3 Daniel Eischen - * 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 -__FBSDID("$FreeBSD$"); - -/* #include */ -#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 */ -#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 - */ -#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 6de3bd7..0000000 --- a/lib/libpthread/arch/alpha/alpha/enter_uts.S +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2003 Daniel Eischen - * 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 -__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 c8445b1..0000000 --- a/lib/libpthread/arch/alpha/alpha/pthread_md.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2003 Daniel Eischen - * 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 -__FBSDID("$FreeBSD$"); - -#include -#include -#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 7c3e62b..0000000 --- a/lib/libpthread/arch/alpha/include/atomic_ops.h +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * Copyright (c) 2003 Daniel Eischen - * 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 c7a85f1..0000000 --- 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 -#include -#include - -#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 56a1923..c6cee39 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 1587978..0000000 --- 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 - -/* - * 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 37073ea..e211586 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 508d2b4..0000000 --- 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 1a82341..0000000 --- a/lib/libthr/arch/alpha/alpha/pthread_md.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2003 Daniel Eischen - * 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 -#include - -#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 003cba0..0000000 --- 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 -#include - -#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 f2fc86a..0000000 --- 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 1eaba2e..0000000 --- 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 5f0182c..0000000 --- a/lib/msun/alpha/fenv.c +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * Copyright (c) 2004-2005 David Schultz - * 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 -#include -#include - -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 b940a60..0000000 --- a/lib/msun/alpha/fenv.h +++ /dev/null @@ -1,185 +0,0 @@ -/*- - * Copyright (c) 2004-2005 David Schultz - * 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 - -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 2a724e2..0000000 --- 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 - -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 d8a42a4..0000000 --- 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 - -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 0f34feb..0000000 --- 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 2b5d535..0000000 --- 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 364b59a..0000000 --- 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 . - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#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 397139e..0000000 --- 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 -#include - -/* - * 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 8ab7605..0000000 --- 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 - * 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 -#include - -.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 ed976fe..20d967d 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 ce31af3..0000000 --- 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 9762931..0000000 --- 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 4331d7c..ce62be2 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 716dab3..a412493 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 a089bf3..73a8016 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 24882d3..838e1ea 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 151b3de..eb2847a 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 14e5af5..0000000 --- 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 - -#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 - * 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 e45dd48..2d905c6 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 9cee45a..6c32179 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 46a6947..696cf30 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 945ed5b..0f85254 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 1f435ce..294b4f7 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 diff --git a/usr.sbin/traceroute/Makefile b/usr.sbin/traceroute/Makefile index 02c9b2d..8b941e5 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 -- cgit v1.1