summaryrefslogtreecommitdiffstats
path: root/lib/libc/alpha/gen
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2006-08-22 08:03:01 +0000
committerru <ru@FreeBSD.org>2006-08-22 08:03:01 +0000
commit4d582ffe096e47ba124286efb831032cbd3cdf2a (patch)
tree08203fa78d69de58704db3947da0c5c461233445 /lib/libc/alpha/gen
parent78738a2fe964ce85b0d11862f02a91175c14fd9a (diff)
downloadFreeBSD-src-4d582ffe096e47ba124286efb831032cbd3cdf2a.zip
FreeBSD-src-4d582ffe096e47ba124286efb831032cbd3cdf2a.tar.gz
Remove alpha left-overs.
Diffstat (limited to 'lib/libc/alpha/gen')
-rw-r--r--lib/libc/alpha/gen/Makefile.inc47
-rw-r--r--lib/libc/alpha/gen/_ctx_start.S45
-rw-r--r--lib/libc/alpha/gen/_set_tp.c40
-rw-r--r--lib/libc/alpha/gen/_setjmp.S127
-rw-r--r--lib/libc/alpha/gen/divrem.m4198
-rw-r--r--lib/libc/alpha/gen/fabs.S36
-rw-r--r--lib/libc/alpha/gen/flt_rounds.c60
-rw-r--r--lib/libc/alpha/gen/fpgetmask.c52
-rw-r--r--lib/libc/alpha/gen/fpgetround.c52
-rw-r--r--lib/libc/alpha/gen/fpgetsticky.c52
-rw-r--r--lib/libc/alpha/gen/fpsetmask.c54
-rw-r--r--lib/libc/alpha/gen/fpsetround.c61
-rw-r--r--lib/libc/alpha/gen/infinity.c39
-rw-r--r--lib/libc/alpha/gen/makecontext.c172
-rw-r--r--lib/libc/alpha/gen/modf.c107
-rw-r--r--lib/libc/alpha/gen/rfork_thread.S66
-rw-r--r--lib/libc/alpha/gen/setjmp.S138
-rw-r--r--lib/libc/alpha/gen/signalcontext.c103
-rw-r--r--lib/libc/alpha/gen/sigsetjmp.S64
19 files changed, 0 insertions, 1513 deletions
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 <deischen@freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * A0-A5 are the first 6 arguments to the start routine with the
- * remaining arguments (if any) placed on the stack. S0 is the
- * address of the user-supplied start routine, and S1 is the pointer
- * to the ucontext.
- */
- .set noreorder
-LEAF(_ctx_start,0)
- mov s0, t12
- jsr ra, (s0) /* call start routine; args already set */
- LDGP(ra)
- mov s1, a0 /* load A0 (arg 1) with pointer to ucontext */
- CALL(_ctx_done) /* call context completion routine */
- CALL(abort) /* should never return from above call */
- RET
-END(_ctx_start)
diff --git a/lib/libc/alpha/gen/_set_tp.c b/lib/libc/alpha/gen/_set_tp.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <machine/alpha_cpu.h>
-
-void
-_set_tp(void *tp)
-{
-
- alpha_pal_wrunique((uintptr_t) tp);
-}
diff --git a/lib/libc/alpha/gen/_setjmp.S b/lib/libc/alpha/gen/_setjmp.S
deleted file mode 100644
index 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 <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * C library -- _setjmp, _longjmp
- *
- * _longjmp(a,v)
- * will generate a "return(v)" from
- * the last call to
- * _setjmp(a)
- * by restoring registers from the stack,
- * The previous signal state is NOT restored.
- */
-
- .set noreorder
-
-LEAF(_setjmp, 1)
- LDGP(pv)
- stq ra, (2 * 8)(a0) /* sc_pc = return address */
- stq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
- stq s1, ((10 + 4) * 8)(a0)
- stq s2, ((11 + 4) * 8)(a0)
- stq s3, ((12 + 4) * 8)(a0)
- stq s4, ((13 + 4) * 8)(a0)
- stq s5, ((14 + 4) * 8)(a0)
- stq s6, ((15 + 4) * 8)(a0)
- stq ra, ((26 + 4) * 8)(a0)
- stq t12,((27 + 4) * 8)(a0)
- stq sp, ((30 + 4) * 8)(a0)
- ldiq t0, 0xacedbadd /* sigcontext magic number */
- stq t0, ((31 + 4) * 8)(a0) /* magic in sc_regs[31] */
- /* Too bad we can't check if we actually used FP */
- ldiq t0, 1
- stq t0, (36 * 8)(a0) /* say we've used FP. */
- stt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */
- stt fs1, ((3 + 37) * 8)(a0)
- stt fs2, ((4 + 37) * 8)(a0)
- stt fs3, ((5 + 37) * 8)(a0)
- stt fs4, ((6 + 37) * 8)(a0)
- stt fs5, ((7 + 37) * 8)(a0)
- stt fs6, ((8 + 37) * 8)(a0)
- stt fs7, ((9 + 37) * 8)(a0)
- mf_fpcr ft0 /* get FP control reg */
- stt ft0, (69 * 8)(a0) /* and store it in sc_fpcr */
- stq zero, (70 * 8)(a0) /* FP software control XXX */
- stq zero, (71 * 8)(a0) /* sc_reserved[0] */
- stq zero, (72 * 8)(a0) /* sc_reserved[1] */
- stq zero, (73 * 8)(a0) /* sc_xxx[0] */
- stq zero, (74 * 8)(a0) /* sc_xxx[1] */
- stq zero, (75 * 8)(a0) /* sc_xxx[2] */
- stq zero, (76 * 8)(a0) /* sc_xxx[3] */
- stq zero, (77 * 8)(a0) /* sc_xxx[4] */
- stq zero, (78 * 8)(a0) /* sc_xxx[5] */
- stq zero, (79 * 8)(a0) /* sc_xxx[6] */
- stq zero, (80 * 8)(a0) /* sc_xxx[7] */
-
- mov zero, v0 /* return zero */
- RET
-END(_setjmp)
-
-XLEAF(_longjmp, 2)
-LEAF(___longjmp, 2)
- LDGP(pv)
- ldq t0, ((31 + 4) * 8)(a0) /* magic in sc_regs[31] */
- ldiq t1, 0xacedbadd
- cmpeq t0, t1, t0
- beq t0, botch /* If the magic was bad, punt */
-
- ldq ra, (2 * 8)(a0) /* sc_pc = return address */
- ldq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
- ldq s1, ((10 + 4) * 8)(a0)
- ldq s2, ((11 + 4) * 8)(a0)
- ldq s3, ((12 + 4) * 8)(a0)
- ldq s4, ((13 + 4) * 8)(a0)
- ldq s5, ((14 + 4) * 8)(a0)
- ldq s6, ((15 + 4) * 8)(a0)
- /* ldq ra, ((26 + 4) * 8)(a0) set above */
- ldq t12,((27 + 4) * 8)(a0)
- ldq sp, ((30 + 4) * 8)(a0)
- ldt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */
- ldt fs1, ((3 + 37) * 8)(a0)
- ldt fs2, ((4 + 37) * 8)(a0)
- ldt fs3, ((5 + 37) * 8)(a0)
- ldt fs4, ((6 + 37) * 8)(a0)
- ldt fs5, ((7 + 37) * 8)(a0)
- ldt fs6, ((8 + 37) * 8)(a0)
- ldt fs7, ((9 + 37) * 8)(a0)
- ldt ft0, (69 * 8)(a0) /* get sc_fpcr */
- mt_fpcr ft0 /* and restore it. */
-
- mov a1, v0 /* return second arg */
- RET
-
-botch:
- CALL(longjmperror)
- CALL(abort)
- RET /* "can't" get here... */
-END(___longjmp)
diff --git a/lib/libc/alpha/gen/divrem.m4 b/lib/libc/alpha/gen/divrem.m4
deleted file mode 100644
index 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 <machine/asm.h>
-
-NESTED(NAME, 0, 0, t9, 0, 0) /* Get the right ra */
- lda sp, -64(sp)
- stq BIT, 0(sp)
- stq I, 8(sp)
- stq CC, 16(sp)
- stq T_0, 24(sp)
-ifelse(S, `true',
-` stq NEG, 32(sp)')
- stq A, 40(sp)
- stq B, 48(sp)
- mov zero, RESULT /* Initialize result to zero */
-
-ifelse(S, `true',
-`
- /* Compute sign of result. If either is negative, this is easy. */
- or A, B, NEG /* not the sign, but... */
- srl NEG, WORDSIZE - 1, NEG /* rather, or of high bits */
- blbc NEG, Ldoit /* neither negative? do it! */
-
-ifelse(OP, `div',
-` xor A, B, NEG /* THIS is the sign! */
-', ` mov A, NEG /* sign follows A. */
-')
- srl NEG, WORDSIZE - 1, NEG /* make negation the low bit. */
-
- srl A, WORDSIZE - 1, I /* is A negative? */
- blbc I, LnegB /* no. */
- /* A is negative; flip it. */
-ifelse(WORDSIZE, `32', `
- /* top 32 bits may be random junk */
- zap A, 0xf0, A
-')
- subq zero, A, A
- srl B, WORDSIZE - 1, I /* is B negative? */
- blbc I, Ldoit /* no. */
-LnegB:
- /* B is definitely negative, no matter how we got here. */
-ifelse(WORDSIZE, `32', `
- /* top 32 bits may be random junk */
- zap B, 0xf0, B
-')
- subq zero, B, B
-Ldoit:
-')
-ifelse(WORDSIZE, `32', `
- /*
- * Clear the top 32 bits of each operand, as they may
- * sign extension (if negated above), or random junk.
- */
- zap A, 0xf0, A
- zap B, 0xf0, B
-')
-
- /* kill the special cases. */
- beq B, Ldotrap /* division by zero! */
-
- cmpult A, B, CC /* A < B? */
- /* RESULT is already zero, from above. A is untouched. */
- bne CC, Lret_result
-
- cmpeq A, B, CC /* A == B? */
- cmovne CC, 1, RESULT
- cmovne CC, zero, A
- bne CC, Lret_result
-
- /*
- * Find out how many bits of zeros are at the beginning of the divisor.
- */
-LBbits:
- ldiq T_0, 1 /* I = 0; BIT = 1<<WORDSIZE-1 */
- mov zero, I
- sll T_0, WORDSIZE-1, BIT
-LBloop:
- and B, BIT, CC /* if bit in B is set, done. */
- bne CC, LAbits
- addq I, 1, I /* increment I, shift bit */
- srl BIT, 1, BIT
- cmplt I, WORDSIZE-1, CC /* if I leaves one bit, done. */
- bne CC, LBloop
-
-LAbits:
- beq I, Ldodiv /* If I = 0, divide now. */
- ldiq T_0, 1 /* BIT = 1<<WORDSIZE-1 */
- sll T_0, WORDSIZE-1, BIT
-
-LAloop:
- and A, BIT, CC /* if bit in A is set, done. */
- bne CC, Ldodiv
- subq I, 1, I /* decrement I, shift bit */
- srl BIT, 1, BIT
- bne I, LAloop /* If I != 0, loop again */
-
-Ldodiv:
- sll B, I, B /* B <<= i */
- ldiq T_0, 1
- sll T_0, I, BIT
-
-Ldivloop:
- cmpult A, B, CC
- or RESULT, BIT, T_0
- cmoveq CC, T_0, RESULT
- subq A, B, T_0
- cmoveq CC, T_0, A
- srl BIT, 1, BIT
- srl B, 1, B
- beq A, Lret_result
- bne BIT, Ldivloop
-
-Lret_result:
-ifelse(OP, `div',
-`', ` mov A, RESULT
-')
-ifelse(S, `true',
-`
- /* Check to see if we should negate it. */
- subq zero, RESULT, T_0
- cmovlbs NEG, T_0, RESULT
-')
-
- ldq BIT, 0(sp)
- ldq I, 8(sp)
- ldq CC, 16(sp)
- ldq T_0, 24(sp)
-ifelse(S, `true',
-` ldq NEG, 32(sp)')
- ldq A, 40(sp)
- ldq B, 48(sp)
- lda sp, 64(sp)
- ret zero, (t9), 1
-
-Ldotrap:
- ldiq a0, -2 /* This is the signal to SIGFPE! */
- call_pal PAL_gentrap
-ifelse(OP, `div',
-`', ` mov zero, A /* so that zero will be returned */
-')
- br zero, Lret_result
-
-END(NAME)
diff --git a/lib/libc/alpha/gen/fabs.S b/lib/libc/alpha/gen/fabs.S
deleted file mode 100644
index 5a742fe..0000000
--- a/lib/libc/alpha/gen/fabs.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $NetBSD: fabs.S,v 1.2 1996/10/17 03:08:05 cgd Exp $ */
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-LEAF(fabs, 1)
- cpys fzero, fa0, fv0
- RET
-END(fabs)
diff --git a/lib/libc/alpha/gen/flt_rounds.c b/lib/libc/alpha/gen/flt_rounds.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <machine/float.h>
-
-static const int map[] = {
- 0, /* round to zero */
- 3, /* round to negative infinity */
- 1, /* round to nearest */
- 2 /* round to positive infinity */
-};
-
-int
-__flt_rounds()
-{
- union {
- double fpcrval;
- u_int64_t intval;
- } u;
-
- __asm__("trapb");
- __asm__("mf_fpcr %0" : "=f" (u.fpcrval));
- __asm__("trapb");
-
- return map[(u.intval >> 58) & 0x3];
-}
diff --git a/lib/libc/alpha/gen/fpgetmask.c b/lib/libc/alpha/gen/fpgetmask.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/sysarch.h>
-
-struct params {
- u_int64_t mask;
-};
-
-fp_except_t
-fpgetmask()
-{
- struct params p;
-
- sysarch(ALPHA_GET_FPMASK, &p);
- return((fp_except_t) p.mask);
-}
diff --git a/lib/libc/alpha/gen/fpgetround.c b/lib/libc/alpha/gen/fpgetround.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/fpu.h>
-
-fp_rnd_t
-fpgetround()
-{
- union {
- double fpcrval;
- u_int64_t intval;
- } u;
-
- GET_FPCR(u.fpcrval);
-
- return ((u.intval & FPCR_DYN_MASK) >> FPCR_DYN_SHIFT);
-}
diff --git a/lib/libc/alpha/gen/fpgetsticky.c b/lib/libc/alpha/gen/fpgetsticky.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/fpu.h>
-
-fp_except_t
-fpgetsticky()
-{
- union {
- double fpcrval;
- u_int64_t intval;
- } u;
-
- GET_FPCR(u.fpcrval);
- return (((u.intval >> IEEE_STATUS_TO_FPCR_SHIFT) & IEEE_STATUS_MASK)
- >> IEEE_STATUS_TO_EXCSUM_SHIFT);
-}
diff --git a/lib/libc/alpha/gen/fpsetmask.c b/lib/libc/alpha/gen/fpsetmask.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/sysarch.h>
-
-struct params {
- u_int64_t mask;
-};
-
-fp_except_t
-fpsetmask(mask)
- fp_except_t mask;
-{
- struct params p;
-
- p.mask = (u_int64_t) mask;
- sysarch(ALPHA_SET_FPMASK, &p);
- return ((fp_except_t) p.mask);
-}
diff --git a/lib/libc/alpha/gen/fpsetround.c b/lib/libc/alpha/gen/fpsetround.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <ieeefp.h>
-#include <machine/fpu.h>
-
-fp_rnd_t
-fpsetround(rnd_dir)
- fp_rnd_t rnd_dir;
-{
- union {
- double fpcrval;
- u_int64_t intval;
- } u;
- u_int64_t old, new;
-
- GET_FPCR(u.fpcrval);
-
- old = u.intval;
- new = old & (~FPCR_DYN_MASK);
- new |= ((long) rnd_dir << FPCR_DYN_SHIFT) & FPCR_DYN_MASK;
-
- u.intval = new;
- SET_FPCR(u.fpcrval);
-
- return ((old & FPCR_DYN_MASK) >> FPCR_DYN_SHIFT);
-}
diff --git a/lib/libc/alpha/gen/infinity.c b/lib/libc/alpha/gen/infinity.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <math.h>
-
-/* bytes for +Infinity on an Alpha (IEEE double format) */
-const union __infinity_un __infinity = { { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f } };
-
-/* bytes for NaN */
-const union __nan_un __nan = { { 0, 0, 0xc0, 0xff } };
diff --git a/lib/libc/alpha/gen/makecontext.c b/lib/libc/alpha/gen/makecontext.c
deleted file mode 100644
index bc8ea03..0000000
--- a/lib/libc/alpha/gen/makecontext.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (c) 2001 Daniel M. Eischen <deischen@freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/signal.h>
-
-#include <errno.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <ucontext.h>
-#include <unistd.h>
-
-
-/* Prototypes */
-extern void _ctx_start(int argc, ...);
-
-
-__weak_reference(__makecontext, makecontext);
-
-void
-_ctx_done (ucontext_t *ucp)
-{
- if (ucp->uc_link == NULL)
- exit(0);
- else {
- /*
- * Since this context has finished, don't allow it
- * to be restarted without being reinitialized (via
- * setcontext or swapcontext).
- */
- ucp->uc_mcontext.mc_format = 0;
-
- /* Set context to next one in link */
- /* XXX - what to do for error, abort? */
- setcontext((const ucontext_t *)ucp->uc_link);
- abort(); /* should never get here */
- }
-}
-
-void
-__makecontext(ucontext_t *ucp, void (*start)(void), int argc, ...)
-{
- va_list ap;
- char *stack_top;
- intptr_t *argp;
- int i;
-
- if (ucp == NULL)
- return;
- else if ((ucp->uc_stack.ss_sp == NULL) ||
- (ucp->uc_stack.ss_size < MINSIGSTKSZ)) {
- /*
- * This should really return -1 with errno set to ENOMEM
- * or something, but the spec says that makecontext is
- * a void function. At least make sure that the context
- * isn't valid so it can't be used without an error.
- */
- ucp->uc_mcontext.mc_format = 0;
- }
- /* XXX - Do we want to sanity check argc? */
- else if ((argc < 0) || (argc > NCARGS)) {
- ucp->uc_mcontext.mc_format = 0;
- }
- /*
- * Make sure the context is valid. For now, we only allow
- * trapframe format contexts to be used for makecontext.
- */
- else if (ucp->uc_mcontext.mc_format == _MC_REV0_TRAPFRAME) {
- /*
- * Alpha passes the first 6 parameters in registers and
- * remaining parameters on the stack. Set up the context
- * accordingly, with the user start routine in register
- * S0, and the context start wrapper (_ctx_start) in the
- * program counter and return address. The context must
- * be in trapframe format.
- *
- * Note: The context start wrapper needs to retrieve the
- * ucontext pointer. Place this in register S1
- * which must be saved by the callee.
- */
- stack_top = (char *)(ucp->uc_stack.ss_sp +
- ucp->uc_stack.ss_size - sizeof(double));
- stack_top = (char *)ALIGN(stack_top);
-
- /*
- * Adjust top of stack to allow for any additional integer
- * arguments beyond 6.
- */
- if (argc > 6)
- stack_top = stack_top - (sizeof(intptr_t) * (argc - 6));
-
- argp = (intptr_t *)stack_top;
-
- va_start(ap, argc);
- for (i = 0; i < argc; i++) {
- switch (i) {
- case 0: ucp->uc_mcontext.mc_regs[FRAME_A0] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 1: ucp->uc_mcontext.mc_regs[FRAME_A1] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 2: ucp->uc_mcontext.mc_regs[FRAME_A2] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 3: ucp->uc_mcontext.mc_regs[FRAME_A3] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 4: ucp->uc_mcontext.mc_regs[FRAME_A4] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- case 5: ucp->uc_mcontext.mc_regs[FRAME_A5] =
- (unsigned long)va_arg(ap, intptr_t);
- break;
-
- default:
- *argp = va_arg(ap, intptr_t);
- argp++;
- break;
- }
- }
- va_end(ap);
-
- /*
- * The start routine and ucontext are placed in registers
- * S0 and S1 respectively.
- */
- ucp->uc_mcontext.mc_regs[FRAME_S0] = (unsigned long)start;
- ucp->uc_mcontext.mc_regs[FRAME_S1] = (unsigned long)ucp;
-
- /*
- * Set the machine context to point to the top of the stack,
- * and the program counter and return address to the context
- * start wrapper.
- */
- ucp->uc_mcontext.mc_regs[FRAME_SP] = (unsigned long)stack_top;
- ucp->uc_mcontext.mc_regs[FRAME_PC] = (unsigned long)_ctx_start;
- ucp->uc_mcontext.mc_regs[FRAME_RA] = (unsigned long)_ctx_start;
- ucp->uc_mcontext.mc_regs[FRAME_T12] = (unsigned long)_ctx_start;
- }
-}
diff --git a/lib/libc/alpha/gen/modf.c b/lib/libc/alpha/gen/modf.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <machine/ieee.h>
-#include <errno.h>
-#include <math.h>
-
-/*
- * double modf(double val, double *iptr)
- * returns: f and i such that |f| < 1.0, (f + i) = val, and
- * sign(f) == sign(i) == sign(val).
- *
- * Beware signedness when doing subtraction, and also operand size!
- */
-double
-modf(val, iptr)
- double val, *iptr;
-{
- union doub {
- double v;
- struct ieee_double s;
- } u, v;
- u_int64_t frac;
-
- /*
- * If input is Inf or NaN, return it and leave i alone.
- */
- u.v = val;
- if (u.s.dbl_exp == DBL_EXP_INFNAN)
- return (u.v);
-
- /*
- * If input can't have a fractional part, return
- * (appropriately signed) zero, and make i be the input.
- */
- if ((int)u.s.dbl_exp - DBL_EXP_BIAS > DBL_FRACBITS - 1) {
- *iptr = u.v;
- v.v = 0.0;
- v.s.dbl_sign = u.s.dbl_sign;
- return (v.v);
- }
-
- /*
- * If |input| < 1.0, return it, and set i to the appropriately
- * signed zero.
- */
- if (u.s.dbl_exp < DBL_EXP_BIAS) {
- v.v = 0.0;
- v.s.dbl_sign = u.s.dbl_sign;
- *iptr = v.v;
- return (u.v);
- }
-
- /*
- * There can be a fractional part of the input.
- * If you look at the math involved for a few seconds, it's
- * plain to see that the integral part is the input, with the
- * low (DBL_FRACBITS - (exponent - DBL_EXP_BIAS)) bits zeroed,
- * the the fractional part is the part with the rest of the
- * bits zeroed. Just zeroing the high bits to get the
- * fractional part would yield a fraction in need of
- * normalization. Therefore, we take the easy way out, and
- * just use subtraction to get the fractional part.
- */
- v.v = u.v;
- /* Zero the low bits of the fraction, the sleazy way. */
- frac = ((u_int64_t)v.s.dbl_frach << 32) + v.s.dbl_fracl;
- frac >>= DBL_FRACBITS - (u.s.dbl_exp - DBL_EXP_BIAS);
- frac <<= DBL_FRACBITS - (u.s.dbl_exp - DBL_EXP_BIAS);
- v.s.dbl_fracl = frac & 0xffffffff;
- v.s.dbl_frach = frac >> 32;
- *iptr = v.v;
-
- u.v -= v.v;
- u.s.dbl_sign = v.s.dbl_sign;
- return (u.v);
-}
diff --git a/lib/libc/alpha/gen/rfork_thread.S b/lib/libc/alpha/gen/rfork_thread.S
deleted file mode 100644
index 68b0233..0000000
--- a/lib/libc/alpha/gen/rfork_thread.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-
- * Copyright (c) 2000 Peter Wemm <peter@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-#include "SYS.h"
-#include <sys/syscall.h>
-/* #include <machine/pal.h> */
-
-/*
- * This is pretty evil and based mostly on examples from other syscall
- * stubs and code that gcc generated. Correctness is uncertain, but it
- * seems to work quite happily.
- */
-LEAF(rfork_thread, 1)
- br gp,L1 /* XXX profiling */
-L1:
- LDGP(pv)
- lda sp,-16(sp)
- stq ra,0(sp)
- mov a3,a5
- CALLSYS_ERROR(rfork)
- beq v0,$child
- addl v0,zero,v0
- ldq ra,0(sp)
- lda sp,16(sp)
- RET
-$child:
- mov a1,sp
- lda sp,-16(sp)
- stq zero,0(sp)
- mov a5,a0
- mov a2,t12
- jsr ra,(t12),0
- ldgp gp,0(ra)
- mov v0,a0
-#ifdef SYS_exit
- CALLSYS_NOERROR(exit)
-#else
- CALLSYS_NOERROR(sys_exit)
-#endif
-END(rfork_thread)
diff --git a/lib/libc/alpha/gen/setjmp.S b/lib/libc/alpha/gen/setjmp.S
deleted file mode 100644
index 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 <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-#include "SYS.h"
-
-/*
- * C library -- setjmp, longjmp
- *
- * longjmp(a,v)
- * will generate a "return(v)" from
- * the last call to
- * setjmp(a)
- * by restoring registers from the stack,
- * and the previous signal state.
- */
-
- .set noreorder
-
-LEAF(setjmp, 1)
- LDGP(pv)
- stq ra, (2 * 8)(a0) /* sc_pc = return address */
- stq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
- stq s1, ((10 + 4) * 8)(a0)
- stq s2, ((11 + 4) * 8)(a0)
- stq s3, ((12 + 4) * 8)(a0)
- stq s4, ((13 + 4) * 8)(a0)
- stq s5, ((14 + 4) * 8)(a0)
- stq s6, ((15 + 4) * 8)(a0)
- stq ra, ((26 + 4) * 8)(a0)
- stq t12,((27 + 4) * 8)(a0)
- stq sp, ((30 + 4) * 8)(a0)
-
- /*
- * get signal information
- */
- mov a0, s0 /* squirrel away ptr to sc */
-
- /* see what's blocked */
- lda a2, (71 * 8)(a0) /* oset: sc_reserved */
- mov zero, a1 /* set: NULL */
- addq a1, 1, a0 /* how: SIG_BLOCK */
- CALL(_sigprocmask) /* see what's blocked */
-
- lda sp, -24(sp) /* sizeof struct sigaltstack */
- mov zero, a0
- mov sp, a1
- CALL(_sigaltstack)
- ldl t0, 16(sp) /* offset of ss_flags */
- lda sp, 24(sp) /* sizeof struct sigaltstack */
- ldq ra, ((26 + 4) * 8)(s0) /* restore return address */
- blt v0, botch /* check for error */
- and t0, 0x1, t0 /* get SA_ONSTACK flag */
- stq t0, (0 * 8)(s0) /* and save it in sc_onstack */
- /*
- * Restore old s0 and a0, and continue saving registers
- */
- mov s0, a0
- ldq s0, (( 9 + 4) * 8)(a0)
-
- ldiq t0, 0xacedbadd /* sigcontext magic number */
- stq t0, ((31 + 4) * 8)(a0) /* magic in sc_regs[31] */
- /* Too bad we can't check if we actually used FP */
- ldiq t0, 1
- stq t0, (36 * 8)(a0) /* say we've used FP. */
- stt fs0, ((2 + 37) * 8)(a0) /* saved bits of sc_fpregs */
- stt fs1, ((3 + 37) * 8)(a0)
- stt fs2, ((4 + 37) * 8)(a0)
- stt fs3, ((5 + 37) * 8)(a0)
- stt fs4, ((6 + 37) * 8)(a0)
- stt fs5, ((7 + 37) * 8)(a0)
- stt fs6, ((8 + 37) * 8)(a0)
- stt fs7, ((9 + 37) * 8)(a0)
- mf_fpcr ft0 /* get FP control reg */
- stt ft0, (69 * 8)(a0) /* and store it in sc_fpcr */
- stq zero, (70 * 8)(a0) /* FP software control XXX */
- stq zero, (71 * 8)(a0) /* sc_reserved[0] */
- stq zero, (72 * 8)(a0) /* sc_reserved[1] */
- stq zero, (73 * 8)(a0) /* sc_xxx[0] */
- stq zero, (74 * 8)(a0) /* sc_xxx[1] */
- stq zero, (75 * 8)(a0) /* sc_xxx[2] */
- stq zero, (76 * 8)(a0) /* sc_xxx[3] */
- stq zero, (77 * 8)(a0) /* sc_xxx[4] */
- stq zero, (78 * 8)(a0) /* sc_xxx[5] */
- stq zero, (79 * 8)(a0) /* sc_xxx[6] */
- stq zero, (80 * 8)(a0) /* sc_xxx[7] */
-
- mov zero, v0 /* return zero */
- RET
-END(setjmp)
-
-XLEAF(longjmp, 2)
-LEAF(__longjmp, 2)
- LDGP(pv)
- mov a1, s1 /* save return value */
- mov a0, s0 /* save the sc pointer */
- /* restore the mask */
- mov zero, a2 /* oset: NULL */
- lda a1, (71 * 8)(a0) /* set: sc_reserved */
- addq a2, 3, a0 /* how: SIG_SET */
- CALL(_sigprocmask) /* restore the mask */
- mov s0, a0 /* restore the sc pointer */
- mov s1, a1 /* restore the return value */
- jmp zero, ___longjmp /* use ___longjmp to return */
-
-botch:
- CALL(longjmperror)
- CALL(abort)
- RET /* "can't" get here... */
-END(__longjmp)
diff --git a/lib/libc/alpha/gen/signalcontext.c b/lib/libc/alpha/gen/signalcontext.c
deleted file mode 100644
index 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/ucontext.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <strings.h>
-
-typedef void (*handler_t)(uint64_t, uint64_t, uint64_t);
-
-/* Prototypes */
-static void ctx_wrapper(ucontext_t *ucp, handler_t func, uint64_t *args);
-
-__weak_reference(__signalcontext, signalcontext);
-
-int
-__signalcontext(ucontext_t *ucp, int sig, __sighandler_t *func)
-{
- uint64_t *args;
- siginfo_t *sig_si;
- ucontext_t *sig_uc;
- uint64_t sp;
-
- /* Bail out if we don't have a valid ucontext pointer. */
- if (ucp == NULL)
- abort();
-
- /*
- * Build a signal frame and copy the arguments of signal handler
- * 'func' onto the stack. We only need 3 arguments, but we
- * create room for 4 so that we are 16-byte aligned.
- */
- sp = (ucp->uc_mcontext.mc_regs[FRAME_SP] - sizeof(ucontext_t)) & ~15UL;
- sig_uc = (ucontext_t *)sp;
- bcopy(ucp, sig_uc, sizeof(*sig_uc));
- sp = (sp - sizeof(siginfo_t)) & ~15UL;
- sig_si = (siginfo_t *)sp;
- bzero(sig_si, sizeof(*sig_si));
- sig_si->si_signo = sig;
- sp -= 4 * sizeof(uint64_t);
- args = (uint64_t *)sp;
- args[0] = sig;
- args[1] = (intptr_t)sig_si;
- args[2] = (intptr_t)sig_uc;
- args[3] = 0;
-
- /*
- * Setup the ucontext of the signal handler.
- */
- bzero(&ucp->uc_mcontext, sizeof(ucp->uc_mcontext));
- ucp->uc_link = sig_uc;
- sigdelset(&ucp->uc_sigmask, sig);
-
- ucp->uc_mcontext.mc_format = _MC_REV0_TRAPFRAME;
- ucp->uc_mcontext.mc_regs[FRAME_A0] = (register_t)ucp;
- ucp->uc_mcontext.mc_regs[FRAME_A1] = (register_t)func;
- ucp->uc_mcontext.mc_regs[FRAME_A1] = (register_t)args;
- ucp->uc_mcontext.mc_regs[FRAME_SP] = (register_t)sp;
- ucp->uc_mcontext.mc_regs[FRAME_PC] = (register_t)ctx_wrapper;
- ucp->uc_mcontext.mc_regs[FRAME_RA] = (register_t)ctx_wrapper;
- ucp->uc_mcontext.mc_regs[FRAME_T12] = (register_t)ctx_wrapper;
- return (0);
-}
-
-static void
-ctx_wrapper(ucontext_t *ucp, handler_t func, uint64_t *args)
-{
-
- (*func)(args[0], args[1], args[2]);
- if (ucp->uc_link == NULL)
- exit(0);
- setcontext((const ucontext_t *)ucp->uc_link);
- /* should never get here */
- abort();
- /* NOTREACHED */
-}
diff --git a/lib/libc/alpha/gen/sigsetjmp.S b/lib/libc/alpha/gen/sigsetjmp.S
deleted file mode 100644
index 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 <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-/*
- * C library -- sigsetjmp, siglongjmp
- *
- * siglongjmp(a,v)
- * will generate a "return(v)" from
- * the last call to
- * sigsetjmp(a, mask)
- * by restoring registers from the stack.
- * If `mask' is non-zero, the previous signal
- * state will be restored.
- */
-
- .set noreorder
-
-LEAF(sigsetjmp, 2)
- LDGP(pv)
- stq a1, (81 * 8)(a0) /* save the mask */
- bne a1, Lsavesig /* if !zero, save signals */
- jmp zero, _setjmp /* else don't. */
-Lsavesig:
- jmp zero, setjmp
-END(sigsetjmp)
-
-XLEAF(siglongjmp, 2)
-LEAF(__siglongjmp, 2)
- LDGP(pv)
- ldq t0, (81 * 8)(a0) /* get the mask */
- bne t0, Lrestoresig /* if !zero, restore signals */
- jmp zero, ___longjmp
-Lrestoresig:
- jmp zero, __longjmp
-END(__siglongjmp)
OpenPOWER on IntegriCloud