Add sparc64-specific libc.
This commit is contained in:
parent
07e25081fe
commit
cf009bcc7a
35
lib/libc/arch/sparc64/Makefile.inc
Normal file
35
lib/libc/arch/sparc64/Makefile.inc
Normal file
@ -0,0 +1,35 @@
|
||||
# $NetBSD: Makefile.inc,v 1.1 1998/09/11 04:56:19 eeh Exp $
|
||||
|
||||
KMINCLUDES= arch/sparc64/SYS.h
|
||||
KMSRCS= bzero.S ffs.S strlen.S htonl.S htons.S \
|
||||
ntohl.S ntohs.S divrem.m4 \
|
||||
_setjmp.S mul.S saveregs.S setjmp.S umul.S
|
||||
|
||||
# `source' files built from m4 source
|
||||
# the name `div.o' is taken for the ANSI C `div' function, hence sdiv here
|
||||
SRCS+= rem.S sdiv.S udiv.S urem.S
|
||||
CLEANFILES+=rem.S sdiv.S udiv.S urem.S
|
||||
|
||||
sdiv.S: ${.CURDIR}/arch/sparc64/gen/divrem.m4
|
||||
@echo 'building ${.TARGET} from ${.ALLSRC}'
|
||||
@(echo "define(NAME,\`.div')define(OP,\`div')define(S,\`true')"; \
|
||||
cat ${.ALLSRC}) | m4 > ${.TARGET}
|
||||
@chmod 444 ${.TARGET}
|
||||
|
||||
udiv.S: ${.CURDIR}/arch/sparc64/gen/divrem.m4
|
||||
@echo 'building ${.TARGET} from ${.ALLSRC}'
|
||||
@(echo "define(NAME,\`.udiv')define(OP,\`div')define(S,\`false')"; \
|
||||
cat ${.ALLSRC}) | m4 > ${.TARGET}
|
||||
@chmod 444 ${.TARGET}
|
||||
|
||||
rem.S: ${.CURDIR}/arch/sparc64/gen/divrem.m4
|
||||
@echo 'building ${.TARGET} from ${.ALLSRC}'
|
||||
@(echo "define(NAME,\`.rem')define(OP,\`rem')define(S,\`true')"; \
|
||||
cat ${.ALLSRC}) | m4 > ${.TARGET}
|
||||
@chmod 444 ${.TARGET}
|
||||
|
||||
urem.S: ${.CURDIR}/arch/sparc64/gen/divrem.m4
|
||||
@echo 'building ${.TARGET} from ${.ALLSRC}'
|
||||
@(echo "define(NAME,\`.urem')define(OP,\`rem')define(S,\`false')"; \
|
||||
cat ${.ALLSRC}) | m4 > ${.TARGET}
|
||||
@chmod 444 ${.TARGET}
|
116
lib/libc/arch/sparc64/SYS.h
Normal file
116
lib/libc/arch/sparc64/SYS.h
Normal file
@ -0,0 +1,116 @@
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)SYS.h 8.1 (Berkeley) 6/4/93
|
||||
*
|
||||
* from: Header: SYS.h,v 1.2 92/07/03 18:57:00 torek Exp
|
||||
* $NetBSD: SYS.h,v 1.1 1998/09/11 04:56:19 eeh Exp $
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <machine/trap.h>
|
||||
|
||||
#ifdef __STDC__
|
||||
#define _CAT(x,y) x##y
|
||||
#else
|
||||
#define _CAT(x,y) x/**/y
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ERROR branches to cerror. This is done with a macro so that I can
|
||||
* change it to be position independent later, if need be.
|
||||
*/
|
||||
#ifdef PIC
|
||||
#define ERROR() \
|
||||
PIC_PROLOGUE(%g1,%g2); \
|
||||
ld [%g1+cerror],%g2; jmp %g2; nop
|
||||
#else
|
||||
#define ERROR() \
|
||||
sethi %hi(cerror),%g1; or %lo(cerror),%g1,%g1; jmp %g1; nop
|
||||
#endif
|
||||
|
||||
/*
|
||||
* SYSCALL is used when further action must be taken before returning.
|
||||
* Note that it adds a `nop' over what we could do, if we only knew what
|
||||
* came at label 1....
|
||||
*/
|
||||
#define SYSCALL(x) \
|
||||
ENTRY(x); mov _CAT(SYS_,x),%g1; t ST_SYSCALL; bcc 1f; nop; ERROR(); 1:
|
||||
|
||||
/*
|
||||
* RSYSCALL is used when the system call should just return. Here
|
||||
* we use the SYSCALL_G2RFLAG to put the `success' return address in %g2
|
||||
* and avoid a branch.
|
||||
*/
|
||||
#define RSYSCALL(x) \
|
||||
ENTRY(x); mov (_CAT(SYS_,x))|SYSCALL_G2RFLAG,%g1; add %o7,8,%g2; \
|
||||
t ST_SYSCALL; ERROR()
|
||||
|
||||
/*
|
||||
* PSEUDO(x,y) is like RSYSCALL(y) except that the name is x.
|
||||
*/
|
||||
#define PSEUDO(x,y) \
|
||||
ENTRY(x); mov (_CAT(SYS_,y))|SYSCALL_G2RFLAG,%g1; add %o7,8,%g2; \
|
||||
t ST_SYSCALL; ERROR()
|
||||
|
||||
/*
|
||||
* SYSCALL_NOERROR is like SYSCALL, except it's used for syscalls
|
||||
* that never fail.
|
||||
*
|
||||
* XXX - This should be optimized.
|
||||
*/
|
||||
#define SYSCALL_NOERROR(x) \
|
||||
ENTRY(x); mov _CAT(SYS_,x),%g1; t ST_SYSCALL
|
||||
|
||||
/*
|
||||
* RSYSCALL_NOERROR is like RSYSCALL, except it's used for syscalls
|
||||
* that never fail.
|
||||
*
|
||||
* XXX - This should be optimized.
|
||||
*/
|
||||
#define RSYSCALL_NOERROR(x) \
|
||||
ENTRY(x); mov (_CAT(SYS_,x))|SYSCALL_G2RFLAG,%g1; add %o7,8,%g2; \
|
||||
t ST_SYSCALL
|
||||
|
||||
/*
|
||||
* PSEUDO_NOERROR(x,y) is like RSYSCALL_NOERROR(y) except that the name is x.
|
||||
*/
|
||||
#define PSEUDO_NOERROR(x,y) \
|
||||
ENTRY(x); mov (_CAT(SYS_,y))|SYSCALL_G2RFLAG,%g1; add %o7,8,%g2; \
|
||||
t ST_SYSCALL
|
||||
|
||||
.globl cerror
|
6
lib/libc/arch/sparc64/gen/Makefile.inc
Normal file
6
lib/libc/arch/sparc64/gen/Makefile.inc
Normal file
@ -0,0 +1,6 @@
|
||||
# $NetBSD: Makefile.inc,v 1.1 1998/09/11 04:56:20 eeh Exp $
|
||||
|
||||
SRCS+= _setjmp.S fabs.S frexp.c infinity.c isinf.c isnan.c ldexp.c modf.S
|
||||
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
||||
fpsetround.c fpsetsticky.c
|
||||
SRCS+= fixunsdfsi.S mul.S umul.S saveregs.S setjmp.S sigsetjmp.S
|
95
lib/libc/arch/sparc64/gen/_setjmp.S
Normal file
95
lib/libc/arch/sparc64/gen/_setjmp.S
Normal file
@ -0,0 +1,95 @@
|
||||
/* $NetBSD: _setjmp.S,v 1.1 1998/09/11 04:56:21 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: _setjmp.s,v 1.1 91/07/06 16:45:53 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)_setjmp.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: _setjmp.S,v 1.1 1998/09/11 04:56:21 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* C library -- _setjmp, _longjmp
|
||||
*
|
||||
* _longjmp(a,v)
|
||||
* will generate a "return(v?v:1)" from
|
||||
* the last call to
|
||||
* _setjmp(a)
|
||||
* by unwinding the call stack.
|
||||
* The previous signal state is NOT restored.
|
||||
*/
|
||||
|
||||
ENTRY(_setjmp)
|
||||
stx %sp, [%o0+0x00+BIAS] /* store caller's stack pointer */
|
||||
stx %o7, [%o0+0x08+BIAS] /* ... return pc */
|
||||
stx %fp, [%o0+0x10+BIAS] /* ... and frame pointer */
|
||||
retl
|
||||
clr %o0 ! return 0
|
||||
|
||||
ENTRY(_longjmp)
|
||||
mov 1, %g6
|
||||
movrnz %o1, %o1, %g6 ! compute v ? v : 1 in a global register
|
||||
mov %o0, %g1 ! save a in another global register
|
||||
ldx [%g1+0x10], %g7 /* get caller's frame */
|
||||
1:
|
||||
cmp %fp, %g7 ! compare against desired frame
|
||||
bl,a 1b ! if below,
|
||||
restore ! pop frame and loop
|
||||
be,a 2f ! if there,
|
||||
ldx [%g1+0], %o2 ! fetch return %sp
|
||||
|
||||
Lbotch:
|
||||
call _C_LABEL(longjmperror) ! otherwise, went too far; bomb out
|
||||
nop
|
||||
unimp 0
|
||||
|
||||
2:
|
||||
cmp %o2, %sp ! %sp must not decrease
|
||||
bge,a 3f
|
||||
mov %o2, %sp ! it is OK, put it in place
|
||||
b,a Lbotch
|
||||
3:
|
||||
ldx [%g1+0x8], %o3 ! fetch pc
|
||||
jmp %o3 + 8 ! success, return %g6
|
||||
mov %g6, %o0
|
||||
|
276
lib/libc/arch/sparc64/gen/divrem.m4
Normal file
276
lib/libc/arch/sparc64/gen/divrem.m4
Normal file
@ -0,0 +1,276 @@
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: divrem.m4,v 1.4 92/06/25 13:23:57 torek Exp
|
||||
* $NetBSD: divrem.m4,v 1.1 1998/09/11 04:56:21 eeh Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
* Division and remainder, from Appendix E of the Sparc Version 8
|
||||
* Architecture Manual, with fixes from Gordon Irlam.
|
||||
*/
|
||||
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
.asciz "@(#)divrem.m4 8.1 (Berkeley) 6/4/93"
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* Input: dividend and divisor in %o0 and %o1 respectively.
|
||||
*
|
||||
* m4 parameters:
|
||||
* NAME name of function to generate
|
||||
* OP OP=div => %o0 / %o1; OP=rem => %o0 % %o1
|
||||
* S S=true => signed; S=false => unsigned
|
||||
*
|
||||
* Algorithm parameters:
|
||||
* N how many bits per iteration we try to get (4)
|
||||
* WORDSIZE total number of bits (32)
|
||||
*
|
||||
* Derived constants:
|
||||
* TWOSUPN 2^N, for label generation (m4 exponentiation currently broken)
|
||||
* TOPBITS number of bits in the top `decade' of a number
|
||||
*
|
||||
* Important variables:
|
||||
* Q the partial quotient under development (initially 0)
|
||||
* R the remainder so far, initially the dividend
|
||||
* ITER number of main division loop iterations required;
|
||||
* equal to ceil(log2(quotient) / N). Note that this
|
||||
* is the log base (2^N) of the quotient.
|
||||
* V the current comparand, initially divisor*2^(ITER*N-1)
|
||||
*
|
||||
* Cost:
|
||||
* Current estimate for non-large dividend is
|
||||
* ceil(log2(quotient) / N) * (10 + 7N/2) + C
|
||||
* A large dividend is one greater than 2^(31-TOPBITS) and takes a
|
||||
* different path, as the upper bits of the quotient must be developed
|
||||
* one bit at a time.
|
||||
*/
|
||||
|
||||
define(N, `4')
|
||||
define(TWOSUPN, `16')
|
||||
define(WORDSIZE, `32')
|
||||
define(TOPBITS, eval(WORDSIZE - N*((WORDSIZE-1)/N)))
|
||||
|
||||
define(dividend, `%o0')
|
||||
define(divisor, `%o1')
|
||||
define(Q, `%o2')
|
||||
define(R, `%o3')
|
||||
define(ITER, `%o4')
|
||||
define(V, `%o5')
|
||||
|
||||
/* m4 reminder: ifelse(a,b,c,d) => if a is b, then c, else d */
|
||||
define(T, `%g1')
|
||||
define(SC, `%g7')
|
||||
ifelse(S, `true', `define(SIGN, `%g6')')
|
||||
|
||||
/*
|
||||
* This is the recursive definition for developing quotient digits.
|
||||
*
|
||||
* Parameters:
|
||||
* $1 the current depth, 1 <= $1 <= N
|
||||
* $2 the current accumulation of quotient bits
|
||||
* N max depth
|
||||
*
|
||||
* We add a new bit to $2 and either recurse or insert the bits in
|
||||
* the quotient. R, Q, and V are inputs and outputs as defined above;
|
||||
* the condition codes are expected to reflect the input R, and are
|
||||
* modified to reflect the output R.
|
||||
*/
|
||||
define(DEVELOP_QUOTIENT_BITS,
|
||||
` ! depth $1, accumulated bits $2
|
||||
bl L.$1.eval(TWOSUPN+$2)
|
||||
srl V,1,V
|
||||
! remainder is positive
|
||||
subcc R,V,R
|
||||
ifelse($1, N,
|
||||
` b 9f
|
||||
add Q, ($2*2+1), Q
|
||||
', ` DEVELOP_QUOTIENT_BITS(incr($1), `eval(2*$2+1)')')
|
||||
L.$1.eval(TWOSUPN+$2):
|
||||
! remainder is negative
|
||||
addcc R,V,R
|
||||
ifelse($1, N,
|
||||
` b 9f
|
||||
add Q, ($2*2-1), Q
|
||||
', ` DEVELOP_QUOTIENT_BITS(incr($1), `eval(2*$2-1)')')
|
||||
ifelse($1, 1, `9:')')
|
||||
|
||||
#include <machine/asm.h>
|
||||
#include <machine/trap.h>
|
||||
|
||||
FUNC(NAME)
|
||||
ifelse(S, `true',
|
||||
` ! compute sign of result; if neither is negative, no problem
|
||||
orcc divisor, dividend, %g0 ! either negative?
|
||||
bge 2f ! no, go do the divide
|
||||
ifelse(OP, `div',
|
||||
`xor divisor, dividend, SIGN',
|
||||
`mov dividend, SIGN') ! compute sign in any case
|
||||
tst divisor
|
||||
bge 1f
|
||||
tst dividend
|
||||
! divisor is definitely negative; dividend might also be negative
|
||||
bge 2f ! if dividend not negative...
|
||||
neg divisor ! in any case, make divisor nonneg
|
||||
1: ! dividend is negative, divisor is nonnegative
|
||||
neg dividend ! make dividend nonnegative
|
||||
2:
|
||||
')
|
||||
! Ready to divide. Compute size of quotient; scale comparand.
|
||||
orcc divisor, %g0, V
|
||||
bnz 1f
|
||||
mov dividend, R
|
||||
|
||||
! Divide by zero trap. If it returns, return 0 (about as
|
||||
! wrong as possible, but that is what SunOS does...).
|
||||
t ST_DIV0
|
||||
retl
|
||||
clr %o0
|
||||
|
||||
1:
|
||||
cmp R, V ! if divisor exceeds dividend, done
|
||||
blu Lgot_result ! (and algorithm fails otherwise)
|
||||
clr Q
|
||||
sethi %hi(1 << (WORDSIZE - TOPBITS - 1)), T
|
||||
cmp R, T
|
||||
blu Lnot_really_big
|
||||
clr ITER
|
||||
|
||||
! `Here the dividend is >= 2^(31-N) or so. We must be careful here,
|
||||
! as our usual N-at-a-shot divide step will cause overflow and havoc.
|
||||
! The number of bits in the result here is N*ITER+SC, where SC <= N.
|
||||
! Compute ITER in an unorthodox manner: know we need to shift V into
|
||||
! the top decade: so do not even bother to compare to R.'
|
||||
1:
|
||||
cmp V, T
|
||||
bgeu 3f
|
||||
mov 1, SC
|
||||
sll V, N, V
|
||||
b 1b
|
||||
inc ITER
|
||||
|
||||
! Now compute SC.
|
||||
2: addcc V, V, V
|
||||
bcc Lnot_too_big
|
||||
inc SC
|
||||
|
||||
! We get here if the divisor overflowed while shifting.
|
||||
! This means that R has the high-order bit set.
|
||||
! Restore V and subtract from R.
|
||||
sll T, TOPBITS, T ! high order bit
|
||||
srl V, 1, V ! rest of V
|
||||
add V, T, V
|
||||
b Ldo_single_div
|
||||
dec SC
|
||||
|
||||
Lnot_too_big:
|
||||
3: cmp V, R
|
||||
blu 2b
|
||||
nop
|
||||
be Ldo_single_div
|
||||
nop
|
||||
/* NB: these are commented out in the V8-Sparc manual as well */
|
||||
/* (I do not understand this) */
|
||||
! V > R: went too far: back up 1 step
|
||||
! srl V, 1, V
|
||||
! dec SC
|
||||
! do single-bit divide steps
|
||||
!
|
||||
! We have to be careful here. We know that R >= V, so we can do the
|
||||
! first divide step without thinking. BUT, the others are conditional,
|
||||
! and are only done if R >= 0. Because both R and V may have the high-
|
||||
! order bit set in the first step, just falling into the regular
|
||||
! division loop will mess up the first time around.
|
||||
! So we unroll slightly...
|
||||
Ldo_single_div:
|
||||
deccc SC
|
||||
bl Lend_regular_divide
|
||||
nop
|
||||
sub R, V, R
|
||||
mov 1, Q
|
||||
b Lend_single_divloop
|
||||
nop
|
||||
Lsingle_divloop:
|
||||
sll Q, 1, Q
|
||||
bl 1f
|
||||
srl V, 1, V
|
||||
! R >= 0
|
||||
sub R, V, R
|
||||
b 2f
|
||||
inc Q
|
||||
1: ! R < 0
|
||||
add R, V, R
|
||||
dec Q
|
||||
2:
|
||||
Lend_single_divloop:
|
||||
deccc SC
|
||||
bge Lsingle_divloop
|
||||
tst R
|
||||
b,a Lend_regular_divide
|
||||
|
||||
Lnot_really_big:
|
||||
1:
|
||||
sll V, N, V
|
||||
cmp V, R
|
||||
bleu 1b
|
||||
inccc ITER
|
||||
be Lgot_result
|
||||
dec ITER
|
||||
|
||||
tst R ! set up for initial iteration
|
||||
Ldivloop:
|
||||
sll Q, N, Q
|
||||
DEVELOP_QUOTIENT_BITS(1, 0)
|
||||
Lend_regular_divide:
|
||||
deccc ITER
|
||||
bge Ldivloop
|
||||
tst R
|
||||
bl,a Lgot_result
|
||||
! non-restoring fixup here (one instruction only!)
|
||||
ifelse(OP, `div',
|
||||
` dec Q
|
||||
', ` add R, divisor, R
|
||||
')
|
||||
|
||||
Lgot_result:
|
||||
ifelse(S, `true',
|
||||
` ! check to see if answer should be < 0
|
||||
tst SIGN
|
||||
bl,a 1f
|
||||
ifelse(OP, `div', `neg Q', `neg R')
|
||||
1:')
|
||||
retl
|
||||
ifelse(OP, `div', `mov Q, %o0', `mov R, %o0')
|
58
lib/libc/arch/sparc64/gen/fabs.S
Normal file
58
lib/libc/arch/sparc64/gen/fabs.S
Normal file
@ -0,0 +1,58 @@
|
||||
/* $NetBSD: fabs.S,v 1.1 1998/09/11 04:56:22 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: fabs.s,v 1.4 91/10/07 23:59:05 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)fabs.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: fabs.S,v 1.1 1998/09/11 04:56:22 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/* fabs - floating absolute value */
|
||||
|
||||
|
||||
ENTRY(fabs)
|
||||
stx %o0, [%sp + 32] ! return value => %f0:f1
|
||||
ldd [%sp + 32], %f0 ! (via kernel %o0/%o1 slot)
|
||||
retl
|
||||
fabss %f0, %f0 ! return absolute value
|
97
lib/libc/arch/sparc64/gen/fixunsdfsi.S
Normal file
97
lib/libc/arch/sparc64/gen/fixunsdfsi.S
Normal file
@ -0,0 +1,97 @@
|
||||
/* $NetBSD: fixunsdfsi.S,v 1.1 1998/09/11 04:56:22 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: fixunsdfsi.s,v 1.3 91/10/08 00:03:15 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)fixunsdfsi.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: fixunsdfsi.S,v 1.1 1998/09/11 04:56:22 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* Convert double to unsigned integer (for gcc).
|
||||
*
|
||||
* I have made the output for NaN agree with the Sun compiler, not
|
||||
* that it really matters, by using `fbul,a'.
|
||||
*/
|
||||
|
||||
|
||||
.align 8
|
||||
Lbig:
|
||||
.word 0x41e00000 ! .double 0r2147483648.0e+00
|
||||
.word 0 ! (who me, not trust the assembler?)
|
||||
|
||||
ENTRY(__fixunsdfsi)
|
||||
sub %sp, 8, %sp
|
||||
stx %o0, [%sp + 64 + BIAS] ! get argument into fpu reg
|
||||
ldd [%sp + 64 + BIAS], %f0
|
||||
#ifdef PIC
|
||||
PICCY_SET(Lbig, %g1, %o0)
|
||||
ldd [%g1], %f2
|
||||
#else
|
||||
sethi %hi(Lbig), %g1
|
||||
ldd [%g1 + %lo(Lbig)], %f2
|
||||
#endif
|
||||
fcmped %f0, %f2 ! d < 2^31, or NaN, or -Inf?
|
||||
nop ! (fpop2 delay)
|
||||
fbul,a 1f ! if so, use fdtoi to convert to int
|
||||
fdtoi %f0, %f0 ! (this includes negatives!)
|
||||
|
||||
! d does not fit in an int, so subtract 2^31, convert,
|
||||
! and add 2^31 again (sigh). Just hope the intermediate
|
||||
! fits (if not, the result is undefined anyway).
|
||||
|
||||
fsubd %f0, %f2, %f0 ! d -= 2^31
|
||||
fdtoi %f0, %f0 ! convert to int
|
||||
st %f0, [%sp + 64 + BIAS] ! move into return reg
|
||||
ld [%sp + 64 + BIAS], %o0
|
||||
sethi %hi(0x80000000), %o1
|
||||
add %o0, %o1, %o0 ! add 2^31
|
||||
retl
|
||||
add %sp, 8, %sp
|
||||
|
||||
1:
|
||||
st %f0, [%sp + 64 + BIAS] ! return result
|
||||
ld [%sp + 64 + BIAS], %o0
|
||||
retl
|
||||
add %sp, 8, %sp
|
25
lib/libc/arch/sparc64/gen/flt_rounds.c
Normal file
25
lib/libc/arch/sparc64/gen/flt_rounds.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* $NetBSD: flt_rounds.c,v 1.1 1998/09/11 04:56:23 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Written by J.T. Conklin, Apr 10, 1995
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <machine/float.h>
|
||||
|
||||
static const int map[] = {
|
||||
1, /* round to nearest */
|
||||
0, /* round to zero */
|
||||
3, /* round to negative infinity */
|
||||
2 /* round to positive infinity */
|
||||
};
|
||||
|
||||
int
|
||||
__flt_rounds()
|
||||
{
|
||||
int x;
|
||||
|
||||
__asm__("st %%fsr,%0" : "=m" (*&x));
|
||||
return map[(x >> 30) & 0x03];
|
||||
}
|
17
lib/libc/arch/sparc64/gen/fpgetmask.c
Normal file
17
lib/libc/arch/sparc64/gen/fpgetmask.c
Normal file
@ -0,0 +1,17 @@
|
||||
/* $NetBSD: fpgetmask.c,v 1.1 1998/09/11 04:56:23 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Written by J.T. Conklin, Apr 10, 1995
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#include <ieeefp.h>
|
||||
|
||||
fp_except
|
||||
fpgetmask()
|
||||
{
|
||||
int x;
|
||||
|
||||
__asm__("st %%fsr,%0" : "=m" (*&x));
|
||||
return (x >> 23) & 0x1f;
|
||||
}
|
17
lib/libc/arch/sparc64/gen/fpgetround.c
Normal file
17
lib/libc/arch/sparc64/gen/fpgetround.c
Normal file
@ -0,0 +1,17 @@
|
||||
/* $NetBSD: fpgetround.c,v 1.1 1998/09/11 04:56:24 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Written by J.T. Conklin, Apr 10, 1995
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#include <ieeefp.h>
|
||||
|
||||
fp_rnd
|
||||
fpgetround()
|
||||
{
|
||||
int x;
|
||||
|
||||
__asm__("st %%fsr,%0" : "=m" (*&x));
|
||||
return (x >> 30) & 0x03;
|
||||
}
|
17
lib/libc/arch/sparc64/gen/fpgetsticky.c
Normal file
17
lib/libc/arch/sparc64/gen/fpgetsticky.c
Normal file
@ -0,0 +1,17 @@
|
||||
/* $NetBSD: fpgetsticky.c,v 1.1 1998/09/11 04:56:24 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Written by J.T. Conklin, Apr 10, 1995
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#include <ieeefp.h>
|
||||
|
||||
fp_except
|
||||
fpgetsticky()
|
||||
{
|
||||
int x;
|
||||
|
||||
__asm__("st %%fsr,%0" : "=m" (*&x));
|
||||
return (x >> 5) & 0x1f;
|
||||
}
|
26
lib/libc/arch/sparc64/gen/fpsetmask.c
Normal file
26
lib/libc/arch/sparc64/gen/fpsetmask.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* $NetBSD: fpsetmask.c,v 1.1 1998/09/11 04:56:24 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Written by J.T. Conklin, Apr 10, 1995
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#include <ieeefp.h>
|
||||
|
||||
fp_except
|
||||
fpsetmask(mask)
|
||||
fp_except mask;
|
||||
{
|
||||
fp_except old;
|
||||
fp_except new;
|
||||
|
||||
__asm__("st %%fsr,%0" : "=m" (*&old));
|
||||
|
||||
new = old;
|
||||
new &= ~(0x1f << 23);
|
||||
new |= ((mask & 0x1f) << 23);
|
||||
|
||||
__asm__("ld %0,%%fsr" : : "m" (*&new));
|
||||
|
||||
return (old >> 23) & 0x1f;
|
||||
}
|
26
lib/libc/arch/sparc64/gen/fpsetround.c
Normal file
26
lib/libc/arch/sparc64/gen/fpsetround.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* $NetBSD: fpsetround.c,v 1.1 1998/09/11 04:56:25 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Written by J.T. Conklin, Apr 10, 1995
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#include <ieeefp.h>
|
||||
|
||||
fp_rnd
|
||||
fpsetround(rnd_dir)
|
||||
fp_rnd rnd_dir;
|
||||
{
|
||||
fp_rnd old;
|
||||
fp_rnd new;
|
||||
|
||||
__asm__("st %%fsr,%0" : "=m" (*&old));
|
||||
|
||||
new = old;
|
||||
new &= ~(0x03 << 30);
|
||||
new |= ((rnd_dir & 0x03) << 30);
|
||||
|
||||
__asm__("ld %0,%%fsr" : : "m" (*&new));
|
||||
|
||||
return (old >> 30) & 0x03;
|
||||
}
|
26
lib/libc/arch/sparc64/gen/fpsetsticky.c
Normal file
26
lib/libc/arch/sparc64/gen/fpsetsticky.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* $NetBSD: fpsetsticky.c,v 1.1 1998/09/11 04:56:25 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Written by J.T. Conklin, Apr 10, 1995
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#include <ieeefp.h>
|
||||
|
||||
fp_except
|
||||
fpsetsticky(sticky)
|
||||
fp_except sticky;
|
||||
{
|
||||
fp_except old;
|
||||
fp_except new;
|
||||
|
||||
__asm__("st %%fsr,%0" : "=m" (*&old));
|
||||
|
||||
new = old;
|
||||
new &= ~(0x1f << 5);
|
||||
new |= ((sticky & 0x1f) << 5);
|
||||
|
||||
__asm__("ld %0,%%fsr" : : "m" (*&new));
|
||||
|
||||
return (old >> 5) & 0x1f;
|
||||
}
|
85
lib/libc/arch/sparc64/gen/frexp.c
Normal file
85
lib/libc/arch/sparc64/gen/frexp.c
Normal file
@ -0,0 +1,85 @@
|
||||
/* $NetBSD: frexp.c,v 1.1 1998/09/11 04:56:26 eeh Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: frexp.c,v 1.1 91/07/07 04:45:01 torek Exp
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)frexp.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: frexp.c,v 1.1 1998/09/11 04:56:26 eeh Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <math.h>
|
||||
#include <sys/types.h>
|
||||
#include <machine/ieee.h>
|
||||
|
||||
/*
|
||||
* Split the given value into a fraction in the range [0.5, 1.0) and
|
||||
* an exponent, such that frac * (2^exp) == value. If value is 0,
|
||||
* return 0.
|
||||
*/
|
||||
double
|
||||
frexp(value, eptr)
|
||||
double value;
|
||||
int *eptr;
|
||||
{
|
||||
union {
|
||||
double v;
|
||||
struct ieee_double s;
|
||||
} u;
|
||||
|
||||
if (value) {
|
||||
/*
|
||||
* Fractions in [0.5..1.0) have an exponent of 2^-1.
|
||||
* Leave Inf and NaN alone, however.
|
||||
* WHAT ABOUT DENORMS?
|
||||
*/
|
||||
u.v = value;
|
||||
if (u.s.dbl_exp != DBL_EXP_INFNAN) {
|
||||
*eptr = u.s.dbl_exp - (DBL_EXP_BIAS - 1);
|
||||
u.s.dbl_exp = DBL_EXP_BIAS - 1;
|
||||
}
|
||||
return (u.v);
|
||||
} else {
|
||||
*eptr = 0;
|
||||
return ((double)0);
|
||||
}
|
||||
}
|
13
lib/libc/arch/sparc64/gen/infinity.c
Normal file
13
lib/libc/arch/sparc64/gen/infinity.c
Normal file
@ -0,0 +1,13 @@
|
||||
/* $NetBSD: infinity.c,v 1.1 1998/09/11 04:56:26 eeh Exp $ */
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
__RCSID("$NetBSD: infinity.c,v 1.1 1998/09/11 04:56:26 eeh Exp $");
|
||||
#endif /* not lint */
|
||||
|
||||
/* infinity.c */
|
||||
|
||||
#include <math.h>
|
||||
|
||||
/* bytes for +Infinity on a sparc */
|
||||
const char __infinity[] = { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 };
|
63
lib/libc/arch/sparc64/gen/isinf.c
Normal file
63
lib/libc/arch/sparc64/gen/isinf.c
Normal file
@ -0,0 +1,63 @@
|
||||
/* $NetBSD: isinf.c,v 1.1 1998/09/11 04:56:27 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: isinf.c,v 1.1 91/07/08 19:03:34 torek Exp
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: isinf.c,v 1.1 1998/09/11 04:56:27 eeh Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <math.h>
|
||||
#include <sys/types.h>
|
||||
#include <machine/ieee.h>
|
||||
|
||||
int
|
||||
isinf(d)
|
||||
double d;
|
||||
{
|
||||
register struct ieee_double *p = (struct ieee_double *)&d;
|
||||
|
||||
return (p->dbl_exp == DBL_EXP_INFNAN &&
|
||||
p->dbl_frach == 0 && p->dbl_fracl == 0);
|
||||
}
|
63
lib/libc/arch/sparc64/gen/isnan.c
Normal file
63
lib/libc/arch/sparc64/gen/isnan.c
Normal file
@ -0,0 +1,63 @@
|
||||
/* $NetBSD: isnan.c,v 1.1 1998/09/11 04:56:27 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: isnan.c,v 1.1 91/07/08 19:03:34 torek Exp
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)isnan.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: isnan.c,v 1.1 1998/09/11 04:56:27 eeh Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <math.h>
|
||||
#include <sys/types.h>
|
||||
#include <machine/ieee.h>
|
||||
|
||||
int
|
||||
isnan(d)
|
||||
double d;
|
||||
{
|
||||
register struct ieee_double *p = (struct ieee_double *)&d;
|
||||
|
||||
return (p->dbl_exp == DBL_EXP_INFNAN &&
|
||||
(p->dbl_frach != 0 || p->dbl_fracl != 0));
|
||||
}
|
155
lib/libc/arch/sparc64/gen/ldexp.c
Normal file
155
lib/libc/arch/sparc64/gen/ldexp.c
Normal file
@ -0,0 +1,155 @@
|
||||
/* $NetBSD: ldexp.c,v 1.1 1998/09/11 04:56:27 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: ldexp.c,v 1.1 91/07/07 04:28:19 torek Exp
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
static const char sccsid[] = "@(#)ldexp.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: ldexp.c,v 1.1 1998/09/11 04:56:27 eeh Exp $");
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <math.h>
|
||||
#include <sys/types.h>
|
||||
#include <machine/ieee.h>
|
||||
#include <errno.h>
|
||||
|
||||
/*
|
||||
* double ldexp(double val, int exp)
|
||||
* returns: val * (2**exp)
|
||||
*/
|
||||
double
|
||||
ldexp(val, exp)
|
||||
double val;
|
||||
int exp;
|
||||
{
|
||||
register int oldexp, newexp, mulexp;
|
||||
union doub {
|
||||
double v;
|
||||
struct ieee_double s;
|
||||
} u, mul;
|
||||
|
||||
/*
|
||||
* If input is zero, or no change, just return input.
|
||||
* Likewise, if input is Inf or NaN, just return it.
|
||||
*/
|
||||
u.v = val;
|
||||
oldexp = u.s.dbl_exp;
|
||||
if (val == 0 || exp == 0 || oldexp == DBL_EXP_INFNAN)
|
||||
return (val);
|
||||
|
||||
/*
|
||||
* Compute new exponent and check for over/under flow.
|
||||
* Underflow, unfortunately, could mean switching to denormal.
|
||||
* If result out of range, set ERANGE and return 0 if too small
|
||||
* or Inf if too big, with the same sign as the input value.
|
||||
*/
|
||||
newexp = oldexp + exp;
|
||||
if (newexp >= DBL_EXP_INFNAN) {
|
||||
/* u.s.dbl_sign = val < 0; -- already set */
|
||||
u.s.dbl_exp = DBL_EXP_INFNAN;
|
||||
u.s.dbl_frach = u.s.dbl_fracl = 0;
|
||||
errno = ERANGE;
|
||||
return (u.v); /* Inf */
|
||||
}
|
||||
if (newexp <= 0) {
|
||||
/*
|
||||
* The output number is either a denormal or underflows
|
||||
* (see comments in machine/ieee.h).
|
||||
*/
|
||||
if (newexp <= -DBL_FRACBITS) {
|
||||
/* u.s.dbl_sign = val < 0; -- already set */
|
||||
u.s.dbl_exp = 0;
|
||||
u.s.dbl_frach = u.s.dbl_fracl = 0;
|
||||
errno = ERANGE;
|
||||
return (u.v); /* zero */
|
||||
}
|
||||
/*
|
||||
* We are going to produce a denorm. Our `exp' argument
|
||||
* might be as small as -2097, and we cannot compute
|
||||
* 2^-2097, so we may have to do this as many as three
|
||||
* steps (not just two, as for positive `exp's below).
|
||||
*/
|
||||
mul.v = 0;
|
||||
while (exp <= -DBL_EXP_BIAS) {
|
||||
mul.s.dbl_exp = 1;
|
||||
val *= mul.v;
|
||||
exp += DBL_EXP_BIAS - 1;
|
||||
}
|
||||
mul.s.dbl_exp = exp + DBL_EXP_BIAS;
|
||||
val *= mul.v;
|
||||
return (val);
|
||||
}
|
||||
|
||||
/*
|
||||
* Newexp is positive.
|
||||
*
|
||||
* If oldexp is zero, we are starting with a denorm, and simply
|
||||
* adjusting the exponent will produce bogus answers. We need
|
||||
* to fix that first.
|
||||
*/
|
||||
if (oldexp == 0) {
|
||||
/*
|
||||
* Multiply by 2^mulexp to make the number normalizable.
|
||||
* We cannot multiply by more than 2^1023, but `exp'
|
||||
* argument might be as large as 2046. A single
|
||||
* adjustment, however, will normalize the number even
|
||||
* for huge `exp's, and then we can use exponent
|
||||
* arithmetic just as for normal `double's.
|
||||
*/
|
||||
mulexp = exp <= DBL_EXP_BIAS ? exp : DBL_EXP_BIAS;
|
||||
mul.v = 0;
|
||||
mul.s.dbl_exp = mulexp + DBL_EXP_BIAS;
|
||||
val *= mul.v;
|
||||
if (mulexp == exp)
|
||||
return (val);
|
||||
u.v = val;
|
||||
newexp -= mulexp;
|
||||
}
|
||||
|
||||
/*
|
||||
* Both oldexp and newexp are positive; just replace the
|
||||
* old exponent with the new one.
|
||||
*/
|
||||
u.s.dbl_exp = newexp;
|
||||
return (u.v);
|
||||
}
|
201
lib/libc/arch/sparc64/gen/modf.S
Normal file
201
lib/libc/arch/sparc64/gen/modf.S
Normal file
@ -0,0 +1,201 @@
|
||||
/* $NetBSD: modf.S,v 1.1 1998/09/11 04:56:28 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: modf.s,v 1.3 92/06/20 00:00:54 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)modf.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: modf.S,v 1.1 1998/09/11 04:56:28 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <machine/fsr.h>
|
||||
|
||||
/*
|
||||
* double modf(double val, double *iptr)
|
||||
*
|
||||
* Returns the fractional part of `val', storing the integer part of
|
||||
* `val' in *iptr. Both *iptr and the return value have the same sign
|
||||
* as `val'.
|
||||
*
|
||||
* Method:
|
||||
*
|
||||
* We use the fpu's normalization hardware to compute the integer portion
|
||||
* of the double precision argument. Sun IEEE double precision numbers
|
||||
* have 52 bits of mantissa, 11 bits of exponent, and one bit of sign,
|
||||
* with the sign occupying bit 31 of word 0, and the exponent bits 30:20
|
||||
* of word 0. Thus, values >= 2^52 are by definition integers.
|
||||
*
|
||||
* If we take a value that is in the range [+0..2^52) and add 2^52, all
|
||||
* of the fractional bits fall out and all of the integer bits are summed
|
||||
* with 2^52. If we then subtract 2^52, we get those integer bits back.
|
||||
* This must be done with rounding set to `towards 0' or `towards -inf'.
|
||||
* `Toward -inf' fails when the value is 0 (we get -0 back)....
|
||||
*
|
||||
* Note that this method will work anywhere, but is machine dependent in
|
||||
* various aspects.
|
||||
*
|
||||
* Stack usage:
|
||||
* 4@[%fp - 4] saved %fsr
|
||||
* 4@[%fp - 8] new %fsr with rounding set to `towards 0'
|
||||
* 8@[%fp - 16] space for moving between %i and %f registers
|
||||
* Register usage:
|
||||
* %i0%i1 double val;
|
||||
* %l0 scratch
|
||||
* %l1 sign bit (0x80000000)
|
||||
* %i2 double *iptr;
|
||||
* %f2:f3 `magic number' 2^52, in fpu registers
|
||||
* %f4:f5 double v, in fpu registers
|
||||
*/
|
||||
|
||||
.align 8
|
||||
Lmagic:
|
||||
.word 0x43300000 ! sign = 0, exponent = 52 + 1023, mantissa = 0
|
||||
.word 0 ! (i.e., .double 0r4503599627370496e+00)
|
||||
|
||||
L0:
|
||||
.word 0 ! 0.0
|
||||
.word 0
|
||||
|
||||
ENTRY(modf)
|
||||
save %sp, -64-16, %sp
|
||||
|
||||
/*
|
||||
* First, compute v = abs(val) by clearing sign bit,
|
||||
* and then set up the fpu registers. This would be
|
||||
* much easier if we could do alu operations on fpu registers!
|
||||
*/
|
||||
sethi %hi(0x80000000), %l1 ! sign bit
|
||||
andn %i0, %l1, %l0
|
||||
st %l0, [%fp - 16]
|
||||
#ifdef PIC
|
||||
PICCY_SET(Lmagic, %l0, %o7)
|
||||
ldd [%l0], %f2
|
||||
#else
|
||||
sethi %hi(Lmagic), %l0
|
||||
ldd [%l0 + %lo(Lmagic)], %f2
|
||||
#endif
|
||||
st %i1, [%fp - 12]
|
||||
ldd [%fp - 16], %f4 ! %f4:f5 = v
|
||||
|
||||
/*
|
||||
* Is %f4:f5 >= %f2:f3 ? If so, it is all integer bits.
|
||||
* It is probably less, though.
|
||||
*/
|
||||
fcmped %f4, %f2
|
||||
nop ! fpop2 delay
|
||||
fbuge Lbig ! if >= (or unordered), go out
|
||||
nop
|
||||
|
||||
/*
|
||||
* v < 2^52, so add 2^52, then subtract 2^52, but do it all
|
||||
* with rounding set towards zero. We leave any enabled
|
||||
* traps enabled, but change the rounding mode. This might
|
||||
* not be so good. Oh well....
|
||||
*/
|
||||
st %fsr, [%fp - 4] ! %l5 = current FSR mode
|
||||
set FSR_RD, %l3 ! %l3 = rounding direction mask
|
||||
ld [%fp - 4], %l5
|
||||
set FSR_RD_RZ << FSR_RD_SHIFT, %l4
|
||||
andn %l5, %l3, %l6
|
||||
or %l6, %l4, %l6 ! round towards zero, please
|
||||
and %l5, %l3, %l5 ! save original rounding mode
|
||||
st %l6, [%fp - 8]
|
||||
ld [%fp - 8], %fsr
|
||||
|
||||
faddd %f4, %f2, %f4 ! %f4:f5 += 2^52
|
||||
fsubd %f4, %f2, %f4 ! %f4:f5 -= 2^52
|
||||
|
||||
/*
|
||||
* Restore %fsr, but leave exceptions accrued.
|
||||
*/
|
||||
st %fsr, [%fp - 4]
|
||||
ld [%fp - 4], %l6
|
||||
andn %l6, %l3, %l6 ! %l6 = %fsr & ~FSR_RD;
|
||||
or %l5, %l6, %l5 ! %l5 |= %l6;
|
||||
st %l5, [%fp - 4]
|
||||
ld [%fp - 4], %fsr ! restore %fsr, leaving accrued stuff
|
||||
|
||||
/*
|
||||
* Now insert the original sign in %f4:f5.
|
||||
* This is a lot of work, so it is conditional here.
|
||||
*/
|
||||
btst %l1, %i0
|
||||
be 1f
|
||||
nop
|
||||
st %f4, [%fp - 16]
|
||||
ld [%fp - 16], %g1
|
||||
or %l1, %g1, %g1
|
||||
st %g1, [%fp - 16]
|
||||
ld [%fp - 16], %f4
|
||||
1:
|
||||
|
||||
/*
|
||||
* The value in %f4:f5 is now the integer portion of the original
|
||||
* argument. We need to store this in *ival (%i2), subtract it
|
||||
* from the original value argument (%i0:i1), and return the result.
|
||||
*/
|
||||
std %f4, [%i2] ! *ival = %f4:f5;
|
||||
std %i0, [%fp - 16]
|
||||
ldd [%fp - 16], %f0 ! %f0:f1 = val;
|
||||
fsubd %f0, %f4, %f0 ! %f0:f1 -= %f4:f5;
|
||||
ret
|
||||
restore
|
||||
|
||||
Lbig:
|
||||
/*
|
||||
* We get here if the original comparison of %f4:f5 (v) to
|
||||
* %f2:f3 (2^52) came out `greater or unordered'. In this
|
||||
* case the integer part is the original value, and the
|
||||
* fractional part is 0.
|
||||
*/
|
||||
#ifdef PIC
|
||||
PICCY_SET(L0, %l0, %o7)
|
||||
std %f0, [%i2] ! *ival = val;
|
||||
ldd [%l0], %f0 ! return 0.0;
|
||||
#else
|
||||
sethi %hi(L0), %l0
|
||||
std %f0, [%i2] ! *ival = val;
|
||||
ldd [%l0 + %lo(L0)], %f0 ! return 0.0;
|
||||
#endif
|
||||
ret
|
||||
restore
|
68
lib/libc/arch/sparc64/gen/mul.S
Normal file
68
lib/libc/arch/sparc64/gen/mul.S
Normal file
@ -0,0 +1,68 @@
|
||||
/* $NetBSD: mul.S,v 1.1 1998/09/11 04:56:28 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: mul.s,v 1.5 92/06/25 13:24:03 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)mul.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: mul.S,v 1.1 1998/09/11 04:56:28 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* Signed multiply.
|
||||
*
|
||||
* Returns %o0 * %o1 in %o0
|
||||
*
|
||||
* According to the manual the smaller parameter should be in
|
||||
* rs1, so we'll move it there.
|
||||
*/
|
||||
|
||||
FUNC(.mul)
|
||||
cmp %o0, %o1
|
||||
bge 1f
|
||||
nop
|
||||
retl
|
||||
mulx %o0, %o1, %o0
|
||||
1:
|
||||
retl
|
||||
mulx %o1, %o0, %o0
|
65
lib/libc/arch/sparc64/gen/saveregs.S
Normal file
65
lib/libc/arch/sparc64/gen/saveregs.S
Normal file
@ -0,0 +1,65 @@
|
||||
/* $NetBSD: saveregs.S,v 1.1 1998/09/11 04:56:28 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: saveregs.s,v 1.1 91/07/06 17:22:33 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: saveregs.S,v 1.1 1998/09/11 04:56:28 eeh Exp $")
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* Save register arguments in caller's `arg dump' area, so that
|
||||
* stdarg functions work.
|
||||
*
|
||||
* This really should be done with a pointer to the arg dump area;
|
||||
* our caller should allocate that area, not our caller's caller.
|
||||
* But then, they did not let me invent the calling sequence....
|
||||
*
|
||||
* We assume the caller has executed a `save' instruction.
|
||||
*/
|
||||
|
||||
ENTRY(__builtin_saveregs)
|
||||
st %i0, [%fp + 0x44] ! fr->fr_argd[0]
|
||||
st %i1, [%fp + 0x48] ! fr->fr_argd[1]
|
||||
st %i2, [%fp + 0x4c] ! fr->fr_argd[2]
|
||||
st %i3, [%fp + 0x50] ! fr->fr_argd[3]
|
||||
st %i4, [%fp + 0x54] ! fr->fr_argd[4]
|
||||
retl
|
||||
st %i5, [%fp + 0x58] ! fr->fr_argd[5]
|
120
lib/libc/arch/sparc64/gen/setjmp.S
Normal file
120
lib/libc/arch/sparc64/gen/setjmp.S
Normal file
@ -0,0 +1,120 @@
|
||||
/* $NetBSD: setjmp.S,v 1.1 1998/09/11 04:56:29 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: setjmp.s,v 1.2 92/06/25 03:18:43 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)setjmp.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: setjmp.S,v 1.1 1998/09/11 04:56:29 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* 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 a struct sigcontext, see <signal.h>
|
||||
*/
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
ENTRY(setjmp)
|
||||
/*
|
||||
* We use the caller's `arg dump' area (%sp+0x44; there are 6 ints
|
||||
* reserved there for us) to avoid having to allocate stack space
|
||||
* here.
|
||||
*/
|
||||
mov %o0, %o2 /* build sigcontext in [%o2] */
|
||||
mov 1, %o0 /* SIG_BLOCK */
|
||||
mov SYS_sigprocmask, %g1
|
||||
clr %o1 /* sigprocmask(SIG_BLOCK, (sigset_t *)NULL) */
|
||||
t ST_SYSCALL
|
||||
st %o0, [%o2 + 4] /* sc.sc_mask = current mask; */
|
||||
mov SYS___sigaltstack14, %g1
|
||||
clr %o0 /* sigstack(NULL, &foo) */
|
||||
add %sp, 0x48, %o1 /* (foo being in arg dump area) */
|
||||
t ST_SYSCALL
|
||||
ld [%sp + 0x50], %o0 /* foo.ss_flags */
|
||||
and %o0, 1, %o1 /* onstack = foo.ss_flags & 1; */
|
||||
st %o0, [%o2 + 0] /* sc.sc_onstack = current onstack; */
|
||||
st %sp, [%o2 + 8] /* sc.sc_sp = sp (both ours and caller's) */
|
||||
add %o7, 8, %o0
|
||||
st %o0, [%o2 + 12] /* sc.sc_pc = return_pc */
|
||||
add %o7, 12, %o0
|
||||
st %o0, [%o2 + 16] /* sc.sc_npc = return_pc + 4 */
|
||||
st %g0, [%o2 + 20] /* sc.sc_psr = (clean psr) */
|
||||
st %fp, [%o2 + 24] /* sc.sc_g1 = %fp (misuse, but what the heck) */
|
||||
/* sc.sc_o0 = random(), set in longjmp */
|
||||
retl /* return 0 */
|
||||
clr %o0
|
||||
|
||||
/*
|
||||
* All we need to do here is force sigreturn to load a new stack pointer,
|
||||
* new <pc,npc>, and appropriate %o0 return value from the sigcontext built
|
||||
* in setjmp. The %i and %l registers will be reloaded from the place to
|
||||
* which %sp points, due to sigreturn() semantics (sigreturn does not modify
|
||||
* the window pointer in the psr, hence it must force all windows to reload).
|
||||
*/
|
||||
ENTRY(longjmp)
|
||||
save %sp, -96, %sp
|
||||
ld [%i0 + 8], %o2 /* make sure sc->sc_sp, sc->sc_fp nonzero */
|
||||
ld [%i0 + 24], %o3
|
||||
orcc %o2, %o3, %g0
|
||||
bz Lbotch
|
||||
tst %i1 /* if (v == 0) v = 1; */
|
||||
bz,a 1f
|
||||
mov 1, %i1
|
||||
1:
|
||||
st %i1, [%i0 + 28] /* sc.sc_o0 = v; */
|
||||
mov SYS_sigreturn, %g1
|
||||
mov %i0, %o0
|
||||
t ST_SYSCALL /* sigreturn(scp); */
|
||||
|
||||
Lbotch:
|
||||
/* oops, caller botched it */
|
||||
call _C_LABEL(longjmperror)
|
||||
nop
|
||||
unimp 0
|
78
lib/libc/arch/sparc64/gen/sigsetjmp.S
Normal file
78
lib/libc/arch/sparc64/gen/sigsetjmp.S
Normal file
@ -0,0 +1,78 @@
|
||||
/* $NetBSD: sigsetjmp.S,v 1.1 1998/09/11 04:56:29 eeh Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1995 Paul Kranenburg
|
||||
* 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 Paul Kranenburg.
|
||||
* 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 "SYS.h"
|
||||
|
||||
#ifdef PIC
|
||||
|
||||
ENTRY(sigsetjmp)
|
||||
PIC_PROLOGUE(%g1,%g2) ! %g1 = _GLOBAL_OFFSET_TABLE
|
||||
cmp %o1,0
|
||||
st %o1,[%o0+40] ! jmpbuf[JBLEN]
|
||||
bne,a 1f
|
||||
ld [%g1+_C_LABEL(setjmp)], %g1 ! if (%o1 != 0) goto _setjmp;
|
||||
ld [%g1+_C_LABEL(_setjmp)], %g1 ! else goto __setjmp;
|
||||
1:
|
||||
jmp %g1
|
||||
nop
|
||||
|
||||
ENTRY(siglongjmp)
|
||||
PIC_PROLOGUE(%g1,%g2) ! %g1 = _GLOBAL_OFFSET_TABLE
|
||||
ld [%o0+40],%g2 ! jmpbuf[JBLEN]
|
||||
cmp %g2,0
|
||||
bne,a 1f
|
||||
ld [%g1+_C_LABEL(longjmp)], %g1 ! if (%g2 != 0) goto _longjmp;
|
||||
ld [%g1+_C_LABEL(_longjmp)], %g1 ! else goto __longjmp;
|
||||
1:
|
||||
jmp %g1
|
||||
nop
|
||||
unimp 0
|
||||
|
||||
#else /* PIC */
|
||||
|
||||
ENTRY(sigsetjmp)
|
||||
cmp %o1,0
|
||||
be _C_LABEL(_setjmp)
|
||||
st %o1,[%o0+40] ! jmpbuf[JBLEN]
|
||||
nop
|
||||
ba,a _setjmp
|
||||
unimp 0
|
||||
|
||||
ENTRY(siglongjmp)
|
||||
ld [%o0+40],%g1
|
||||
cmp %g1,0
|
||||
be _C_LABEL(_longjmp)
|
||||
nop
|
||||
ba,a _C_LABEL(longjmp)
|
||||
unimp 0
|
||||
|
||||
#endif /* PIC */
|
66
lib/libc/arch/sparc64/gen/umul.S
Normal file
66
lib/libc/arch/sparc64/gen/umul.S
Normal file
@ -0,0 +1,66 @@
|
||||
/* $NetBSD: umul.S,v 1.1 1998/09/11 04:56:30 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: umul.s,v 1.4 92/06/25 13:24:05 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)umul.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: umul.S,v 1.1 1998/09/11 04:56:30 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* Unsigned multiply. Returns %o0 * %o1 in %o0
|
||||
*
|
||||
* According to the manual the smaller parameter should be in
|
||||
* rs1, so we'll move it there.
|
||||
*/
|
||||
|
||||
FUNC(.umul)
|
||||
cmp %o0, %o1
|
||||
bge 1f
|
||||
nop
|
||||
retl
|
||||
mulx %o0, %o1, %o0
|
||||
1:
|
||||
retl
|
||||
mulx %o1, %o0, %o0
|
3
lib/libc/arch/sparc64/net/Makefile.inc
Normal file
3
lib/libc/arch/sparc64/net/Makefile.inc
Normal file
@ -0,0 +1,3 @@
|
||||
# $NetBSD: Makefile.inc,v 1.1 1998/09/11 04:56:30 eeh Exp $
|
||||
|
||||
SRCS+= htonl.S htons.S ntohl.S ntohs.S
|
56
lib/libc/arch/sparc64/net/htonl.S
Normal file
56
lib/libc/arch/sparc64/net/htonl.S
Normal file
@ -0,0 +1,56 @@
|
||||
/* $NetBSD: htonl.S,v 1.1 1998/09/11 04:56:30 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: htonl.s,v 1.1 92/06/25 12:47:05 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)htonl.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: htonl.S,v 1.1 1998/09/11 04:56:30 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/* netorder = htonl(hostorder) */
|
||||
|
||||
|
||||
ENTRY(htonl)
|
||||
retl
|
||||
srl %o0, 0, %o0 /* zero extend -- or do we sign extend? */
|
56
lib/libc/arch/sparc64/net/htons.S
Normal file
56
lib/libc/arch/sparc64/net/htons.S
Normal file
@ -0,0 +1,56 @@
|
||||
/* $NetBSD: htons.S,v 1.1 1998/09/11 04:56:30 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: htons.s,v 1.1 92/06/25 12:47:05 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)htons.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: htons.S,v 1.1 1998/09/11 04:56:30 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/* netorder = htons(hostorder) */
|
||||
ENTRY(htons)
|
||||
sethi %hi(0xffff0000), %o1
|
||||
signx %o1, %o1
|
||||
retl
|
||||
andn %o0, %o1, %o0
|
53
lib/libc/arch/sparc64/net/ntohl.S
Normal file
53
lib/libc/arch/sparc64/net/ntohl.S
Normal file
@ -0,0 +1,53 @@
|
||||
/* $NetBSD: ntohl.S,v 1.1 1998/09/11 04:56:31 eeh Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: ntohl.s,v 1.1 92/06/25 12:47:06 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)ntohl.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: ntohl.S,v 1.1 1998/09/11 04:56:31 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/* hostorder = ntohl(netorder) */
|
||||
ENTRY(ntohl)
|
||||
retl
|
||||
signx %o0, %o0
|
58
lib/libc/arch/sparc64/net/ntohs.S
Normal file
58
lib/libc/arch/sparc64/net/ntohs.S
Normal file
@ -0,0 +1,58 @@
|
||||
/* $NetBSD: ntohs.S,v 1.1 1998/09/11 04:56:31 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: ntohs.s,v 1.1 92/06/25 12:47:07 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)ntohs.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: ntohs.S,v 1.1 1998/09/11 04:56:31 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/* hostorder = ntohs(netorder) */
|
||||
|
||||
ENTRY(ntohs)
|
||||
sethi %hi(0xffff0000), %o1
|
||||
signx %o1, %o1
|
||||
retl
|
||||
andn %o0, %o1, %o0
|
||||
|
3
lib/libc/arch/sparc64/stdlib/Makefile.inc
Normal file
3
lib/libc/arch/sparc64/stdlib/Makefile.inc
Normal file
@ -0,0 +1,3 @@
|
||||
# $NetBSD: Makefile.inc,v 1.1 1998/09/11 04:56:31 eeh Exp $
|
||||
|
||||
SRCS+= abs.c div.c labs.c ldiv.c
|
57
lib/libc/arch/sparc64/stdlib/abs.S
Normal file
57
lib/libc/arch/sparc64/stdlib/abs.S
Normal file
@ -0,0 +1,57 @@
|
||||
/* $NetBSD: abs.S,v 1.1 1998/09/11 04:56:32 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: abs.s,v 1.1 91/07/06 18:01:57 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)abs.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: abs.S,v 1.1 1998/09/11 04:56:32 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/* abs - int absolute value */
|
||||
|
||||
|
||||
ENTRY(abs)
|
||||
neg %o0, %o1
|
||||
retl
|
||||
movrlz %o0, %o1, %o0
|
6
lib/libc/arch/sparc64/string/Makefile.inc
Normal file
6
lib/libc/arch/sparc64/string/Makefile.inc
Normal file
@ -0,0 +1,6 @@
|
||||
# $NetBSD: Makefile.inc,v 1.1 1998/09/11 04:56:32 eeh Exp $
|
||||
|
||||
SRCS+= bcmp.c bcopy.c bzero.S ffs.S index.c memchr.c memcmp.c memset.c \
|
||||
rindex.c strcat.c strcmp.c strcpy.c strcspn.c strlen.S \
|
||||
strncat.c strncmp.c strncpy.c strpbrk.c strsep.c \
|
||||
strspn.c strstr.c swab.c
|
150
lib/libc/arch/sparc64/string/bzero.S
Normal file
150
lib/libc/arch/sparc64/string/bzero.S
Normal file
@ -0,0 +1,150 @@
|
||||
/* $NetBSD: bzero.S,v 1.1 1998/09/11 04:56:32 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: bzero.s,v 1.1 92/06/25 12:52:46 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)bzero.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: bzero.S,v 1.1 1998/09/11 04:56:32 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* bzero(addr, len)
|
||||
*
|
||||
* We should unroll the loop, but at the moment this would
|
||||
* gain nothing since the `std' instructions are what limits us.
|
||||
*/
|
||||
ENTRY(bzero)
|
||||
! %o0 = addr, %o1 = len
|
||||
|
||||
! Optimize a common case: addr and len are both multiples of 8.
|
||||
or %o0, %o1, %o2
|
||||
btst 7, %o2 ! ((addr | len) & 7) != 0?
|
||||
bnz,pt %icc, 1f ! if so, cannot optimize
|
||||
cmp %o1, 15 ! len >= 15? -- 1st instr of 1: below
|
||||
|
||||
/* `Good' operands, can just store doubles. */
|
||||
0:
|
||||
deccc 8, %o1 ! while ((len -= 8) >= 0)
|
||||
bge,a 0b
|
||||
stx %g0, [%o0 + %o1] ! *(quad *)(addr + len) = 0;
|
||||
retl
|
||||
nop
|
||||
|
||||
/*
|
||||
* Either the address is unaligned, or the count is not a
|
||||
* multiple of 8, or both. We will have to align the address
|
||||
* in order to use anything `better' than stb.
|
||||
*/
|
||||
1:
|
||||
! cmp %o1, 15 ! len >= 15?
|
||||
bge,a,pn %xcc, Lstx ! yes, use stx
|
||||
btst 1, %o0 ! (but first check alignment)
|
||||
|
||||
! not enough to bother: do byte-at-a-time loop.
|
||||
2:
|
||||
deccc %o1 ! while (--len >= 0)
|
||||
brnz,a,pt %o1, 2b
|
||||
stb %g0, [%o0 + %o1] ! addr[len] = 0;
|
||||
retl
|
||||
nop
|
||||
|
||||
Lstx:
|
||||
/*
|
||||
* There are at least 15 bytes to zero.
|
||||
* We may have to zero some initial stuff to align
|
||||
* the address.
|
||||
*/
|
||||
bz,a %icc, 1f ! if (addr & 1) {
|
||||
btst 2, %o0
|
||||
stb %g0, [%o0] ! *addr = 0;
|
||||
inc %o0 ! addr++;
|
||||
dec %o1 ! len--;
|
||||
btst 2, %o0 ! }
|
||||
1:
|
||||
bz,a 1f ! if (addr & 2) {
|
||||
btst 4, %o0
|
||||
sth %g0, [%o0] ! *(short *)addr = 0;
|
||||
inc 2, %o0 ! addr += 2;
|
||||
dec 2, %o1 ! len -= 2;
|
||||
btst 4, %o0 ! }
|
||||
1:
|
||||
bz 1f ! if (addr & 4) {
|
||||
dec 8, %o1
|
||||
st %g0, [%o0] ! *(int *)addr = 0;
|
||||
inc 4, %o0 ! addr += 4;
|
||||
dec 4, %o1 ! len -= 4;
|
||||
! }
|
||||
/*
|
||||
* Address is double word aligned; len is 8 less than
|
||||
* the number of bytes remaining (i.e., len is 0 if
|
||||
* the remaining count is 8, 1 if it is 9, etc.).
|
||||
*/
|
||||
1:
|
||||
stx %g0, [%o0] ! do {
|
||||
2: ! *(quad *)addr = 0;
|
||||
inc 8, %o0 ! addr += 8;
|
||||
deccc 8, %o1 ! } while ((len -= 8) >= 0);
|
||||
bge,a 2b
|
||||
stx %g0, [%o0]
|
||||
|
||||
/*
|
||||
* Len is in [-8..-1] where -8 => done, -7 => 1 byte to zero,
|
||||
* -6 => two bytes, etc. Mop up this remainder, if any.
|
||||
*/
|
||||
btst 4, %o1
|
||||
bz 1f ! if (len & 4) {
|
||||
btst 2, %o1
|
||||
stw %g0, [%o0] ! *(int *)addr = 0;
|
||||
inc 4, %o0 ! addr += 4;
|
||||
1:
|
||||
bz 1f ! if (len & 2) {
|
||||
btst 1, %o1
|
||||
sth %g0, [%o0] ! *(short *)addr = 0;
|
||||
inc 2, %o0 ! addr += 2;
|
||||
1:
|
||||
bnz,a 1f ! if (len & 1)
|
||||
stb %g0, [%o0] ! *addr = 0;
|
||||
1:
|
||||
retl
|
||||
nop
|
118
lib/libc/arch/sparc64/string/ffs.S
Normal file
118
lib/libc/arch/sparc64/string/ffs.S
Normal file
@ -0,0 +1,118 @@
|
||||
/* $NetBSD: ffs.S,v 1.1 1998/09/11 04:56:32 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: ffs.s,v 1.3 92/07/07 00:23:57 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)ffs.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: ffs.S,v 1.1 1998/09/11 04:56:32 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* ffs returns the number of the rightmost bit set in its argument,
|
||||
* i.e., the lowest value such that (x & (ffs(x) - 1)) is nonzero.
|
||||
* If no bits are set, ffs returns 0.
|
||||
*
|
||||
* We use a table lookup on each byte.
|
||||
*
|
||||
* In each section below, %o1 is the current byte (0, 1, 2, or 3).
|
||||
* The last byte is handled specially: for the first three,
|
||||
* if that byte is nonzero, we return the table value
|
||||
* (plus 0, 8, or 16 for the byte number), but for the last
|
||||
* one, we just return the table value plus 24. This means
|
||||
* that ffstab[0] must be -24 so that ffs(0) will return 0.
|
||||
*/
|
||||
ENTRY(_C_LABEL(ffs))
|
||||
#ifdef PIC
|
||||
PIC_PROLOGUE(%o1,%o2)
|
||||
ld [%o1 + _C_LABEL(__ffstab)], %o2
|
||||
#else
|
||||
set _C_LABEL(__ffstab), %o2
|
||||
#endif
|
||||
andcc %o0, 0xff, %o1 ! get low byte
|
||||
be,a 1f ! try again if 0
|
||||
srl %o0, 8, %o0 ! delay slot, get ready for next byte
|
||||
|
||||
retl ! return ffstab[%o1]
|
||||
ldsb [%o2 + %o1], %o0
|
||||
|
||||
1:
|
||||
andcc %o0, 0xff, %o1 ! byte 1 like byte 0...
|
||||
be,a 2f
|
||||
srl %o0, 8, %o0 ! (use delay to prepare for byte 2)
|
||||
|
||||
ldsb [%o2 + %o1], %o0
|
||||
retl ! return ffstab[%o1] + 8
|
||||
add %o0, 8, %o0
|
||||
|
||||
2:
|
||||
andcc %o0, 0xff, %o1
|
||||
be,a 3f
|
||||
srl %o0, 8, %o0 ! (prepare for byte 3)
|
||||
|
||||
ldsb [%o2 + %o1], %o0
|
||||
retl ! return ffstab[%o1] + 16
|
||||
add %o0, 16, %o0
|
||||
|
||||
3: ! just return ffstab[%o0] + 24
|
||||
ldsb [%o2 + %o0], %o0
|
||||
retl
|
||||
add %o0, 24, %o0
|
||||
|
||||
ENTRY(_C_LABEL(ffstab))
|
||||
.byte -24,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 00-0f */
|
||||
.byte 5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 10-1f */
|
||||
.byte 6,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 20-2f */
|
||||
.byte 5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 30-3f */
|
||||
.byte 7,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 40-4f */
|
||||
.byte 5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 50-5f */
|
||||
.byte 6,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 60-6f */
|
||||
.byte 5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 70-7f */
|
||||
.byte 8,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 80-8f */
|
||||
.byte 5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* 10-9f */
|
||||
.byte 6,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* a0-af */
|
||||
.byte 5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* b0-bf */
|
||||
.byte 7,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* c0-cf */
|
||||
.byte 5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* d0-df */
|
||||
.byte 6,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* e0-ef */
|
||||
.byte 5,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1 /* f0-ff */
|
58
lib/libc/arch/sparc64/string/strlen.S
Normal file
58
lib/libc/arch/sparc64/string/strlen.S
Normal file
@ -0,0 +1,58 @@
|
||||
/* $NetBSD: strlen.S,v 1.1 1998/09/11 04:56:33 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: strlen.s,v 1.1 92/06/25 12:52:47 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)strlen.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: strlen.S,v 1.1 1998/09/11 04:56:33 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
ENTRY(strlen)
|
||||
add %o0, 1, %o1 ! save starting point + 1
|
||||
1:
|
||||
ldsb [%o0], %o2 ! fetch byte
|
||||
brnz,pt %o2, 1b ! no, keep going
|
||||
inc %o0 ! always increment pointer
|
||||
retl
|
||||
sub %o0, %o1, %o0 ! return length (ptr - (origptr+1))
|
63
lib/libc/arch/sparc64/sys/Ovfork.S
Normal file
63
lib/libc/arch/sparc64/sys/Ovfork.S
Normal file
@ -0,0 +1,63 @@
|
||||
/* $NetBSD: Ovfork.S,v 1.1 1998/09/11 04:56:33 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: Ovfork.s,v 1.1 91/07/06 13:05:56 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)Ovfork.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: Ovfork.S,v 1.1 1998/09/11 04:56:33 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* pid = vfork();
|
||||
*
|
||||
* %o1 == 0 in parent process, 1 in child process.
|
||||
* %o0 == pid of child in parent, pid of parent in child.
|
||||
*/
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
SYSCALL(vfork)
|
||||
dec %o1 ! from 1 to 0 in child, 0 to -1 in parent
|
||||
retl
|
||||
and %o0, %o1, %o0 ! return 0 in child, pid in parent
|
63
lib/libc/arch/sparc64/sys/__vfork14.S
Normal file
63
lib/libc/arch/sparc64/sys/__vfork14.S
Normal file
@ -0,0 +1,63 @@
|
||||
/* $NetBSD: __vfork14.S,v 1.1 1998/09/11 04:56:33 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: Ovfork.s,v 1.1 91/07/06 13:05:56 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)Ovfork.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: __vfork14.S,v 1.1 1998/09/11 04:56:33 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
/*
|
||||
* pid = vfork();
|
||||
*
|
||||
* %o1 == 0 in parent process, 1 in child process.
|
||||
* %o0 == pid of child in parent, pid of parent in child.
|
||||
*/
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
SYSCALL(__vfork14)
|
||||
dec %o1 ! from 1 to 0 in child, 0 to -1 in parent
|
||||
retl
|
||||
and %o0, %o1, %o0 ! return 0 in child, pid in parent
|
95
lib/libc/arch/sparc64/sys/brk.S
Normal file
95
lib/libc/arch/sparc64/sys/brk.S
Normal file
@ -0,0 +1,95 @@
|
||||
/* $NetBSD: brk.S,v 1.1 1998/09/11 04:56:33 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: brk.s,v 1.3 92/06/25 12:56:05 mccanne Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)brk.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: brk.S,v 1.1 1998/09/11 04:56:33 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
.globl curbrk
|
||||
.globl minbrk
|
||||
|
||||
.data
|
||||
minbrk: .long _C_LABEL(end) ! lower brk limit; also for gmon code
|
||||
.text
|
||||
|
||||
#ifdef PIC
|
||||
ENTRY(brk)
|
||||
PIC_PROLOGUE(%o5,%o4)
|
||||
ld [%o5 + minbrk], %o4
|
||||
ld [%o4], %o1 ! %o1 = minbrk
|
||||
cmp %o1, %o0 ! if (minbrk > %o0)
|
||||
bg,a 0f
|
||||
mov %o1, %o0 ! %o0 = minbrk
|
||||
0:
|
||||
mov %o0, %o2 ! save argument to syscall
|
||||
mov SYS_break, %g1
|
||||
t ST_SYSCALL
|
||||
bcc,a 1f
|
||||
ld [%o5 + curbrk], %o4
|
||||
ERROR()
|
||||
1:
|
||||
retl ! success, return 0 & record new break
|
||||
st %o2, [%o4]
|
||||
#else
|
||||
ENTRY(brk)
|
||||
sethi %hi(minbrk), %o1 ! %o1 = minbrk
|
||||
ld [%o1 + %lo(minbrk)], %o1
|
||||
cmp %o1, %o0 ! if (minbrk > %o0)
|
||||
bg,a 0f
|
||||
mov %o1, %o0 ! %o0 = minbrk
|
||||
0:
|
||||
mov %o0, %o2 ! save argument to syscall
|
||||
mov SYS_break, %g1
|
||||
t ST_SYSCALL
|
||||
bcc,a 1f
|
||||
sethi %hi(curbrk), %g1
|
||||
ERROR()
|
||||
1:
|
||||
retl ! success, return 0 & record new break
|
||||
st %o2, [%g1 + %lo(curbrk)]
|
||||
#endif
|
79
lib/libc/arch/sparc64/sys/cerror.S
Normal file
79
lib/libc/arch/sparc64/sys/cerror.S
Normal file
@ -0,0 +1,79 @@
|
||||
/* $NetBSD: cerror.S,v 1.1 1998/09/11 04:56:33 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: cerror.s,v 1.3 92/07/02 04:17:59 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)cerror.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: cerror.S,v 1.1 1998/09/11 04:56:33 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
#ifdef _REENTRANT
|
||||
FUNC(cerror)
|
||||
save %sp, -96, %sp
|
||||
call _C_LABEL(__errno)
|
||||
nop
|
||||
st %i0, [%o0]
|
||||
mov -1, %i0
|
||||
ret
|
||||
restore %g0, -1, %o1
|
||||
#else
|
||||
.globl _C_LABEL(errno)
|
||||
#ifdef PIC
|
||||
FUNC(cerror)
|
||||
ld [%g1 + _C_LABEL(errno)], %g1
|
||||
st %o0, [%g1]
|
||||
mov -1, %o0
|
||||
retl
|
||||
mov -1, %o1
|
||||
#else
|
||||
FUNC(cerror)
|
||||
sethi %hi(_C_LABEL(errno)), %g1
|
||||
st %o0, [%g1 + %lo(_C_LABEL(errno))]
|
||||
mov -1, %o0
|
||||
retl
|
||||
mov -1, %o1
|
||||
#endif
|
||||
#endif /* _REENTRANT */
|
56
lib/libc/arch/sparc64/sys/exect.S
Normal file
56
lib/libc/arch/sparc64/sys/exect.S
Normal file
@ -0,0 +1,56 @@
|
||||
/* $NetBSD: exect.S,v 1.1 1998/09/11 04:56:34 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: exect.s,v 1.1 91/07/06 13:05:57 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)exect.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: exect.S,v 1.1 1998/09/11 04:56:34 eeh Exp $")
|
||||
#endif
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
ENTRY(exect)
|
||||
mov SYS_execve, %g1 /* execve(file, argv, env) */
|
||||
t ST_SYSCALL
|
||||
ERROR()
|
56
lib/libc/arch/sparc64/sys/fork.S
Normal file
56
lib/libc/arch/sparc64/sys/fork.S
Normal file
@ -0,0 +1,56 @@
|
||||
/* $NetBSD: fork.S,v 1.1 1998/09/11 04:56:34 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: fork.s,v 1.1 91/07/06 13:05:58 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)fork.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: fork.S,v 1.1 1998/09/11 04:56:34 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
SYSCALL(fork)
|
||||
dec %o1 ! from 1 to 0 in child, 0 to -1 in parent
|
||||
retl
|
||||
and %o0, %o1, %o0 ! return 0 in child, pid in parent
|
63
lib/libc/arch/sparc64/sys/pipe.S
Normal file
63
lib/libc/arch/sparc64/sys/pipe.S
Normal file
@ -0,0 +1,63 @@
|
||||
/* $NetBSD: pipe.S,v 1.1 1998/09/11 04:56:34 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: pipe.s,v 1.1 91/07/06 13:05:58 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)pipe.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: pipe.S,v 1.1 1998/09/11 04:56:34 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
ENTRY(pipe)
|
||||
mov %o0, %o2 ! save pointer
|
||||
mov SYS_pipe, %g1
|
||||
t ST_SYSCALL ! pipe()
|
||||
bcc,a 1f
|
||||
st %o0, [%o2] ! success, store fds
|
||||
ERROR()
|
||||
1:
|
||||
st %o1, [%o2 + 4]
|
||||
retl ! and return 0
|
||||
clr %o0
|
69
lib/libc/arch/sparc64/sys/ptrace.S
Normal file
69
lib/libc/arch/sparc64/sys/ptrace.S
Normal file
@ -0,0 +1,69 @@
|
||||
/* $NetBSD: ptrace.S,v 1.1 1998/09/11 04:56:34 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: ptrace.s,v 1.2 91/12/20 01:59:00 leres Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)ptrace.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: ptrace.S,v 1.1 1998/09/11 04:56:34 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
ENTRY(ptrace)
|
||||
#ifdef PIC
|
||||
PIC_PROLOGUE(%g1,%g2)
|
||||
ld [%g1 + _C_LABEL(errno)], %g1
|
||||
st %g0, [%g1]
|
||||
#else
|
||||
sethi %hi(_C_LABEL(errno)), %g1
|
||||
st %g0, [%g1 + %lo(_C_LABEL(errno))]
|
||||
#endif
|
||||
mov SYS_ptrace, %g1
|
||||
t ST_SYSCALL
|
||||
bcc 1f
|
||||
nop
|
||||
ERROR()
|
||||
1:
|
||||
retl
|
||||
nop
|
88
lib/libc/arch/sparc64/sys/sbrk.S
Normal file
88
lib/libc/arch/sparc64/sys/sbrk.S
Normal file
@ -0,0 +1,88 @@
|
||||
/* $NetBSD: sbrk.S,v 1.1 1998/09/11 04:56:35 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: sbrk.s,v 1.3 92/07/02 00:56:49 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)sbrk.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: sbrk.S,v 1.1 1998/09/11 04:56:35 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
.globl _C_LABEL(end)
|
||||
.globl curbrk
|
||||
|
||||
.data
|
||||
curbrk: .long _C_LABEL(end)
|
||||
.text
|
||||
|
||||
ENTRY(sbrk)
|
||||
#ifdef PIC
|
||||
PIC_PROLOGUE(%o5,%o4)
|
||||
ld [%o5 + curbrk], %o2
|
||||
ld [%o2], %o3 ! %o3 = old break
|
||||
add %o3, %o0, %o4 ! %o4 = new break
|
||||
mov %o4, %o0 ! copy for syscall
|
||||
mov SYS_break, %g1
|
||||
t ST_SYSCALL ! break(new_break)
|
||||
bcc,a 1f ! if success,
|
||||
mov %o3, %o0 ! set return value
|
||||
ERROR()
|
||||
1:
|
||||
retl ! and update curbrk
|
||||
st %o4, [%o2]
|
||||
#else
|
||||
sethi %hi(curbrk), %o2
|
||||
ld [%o2 + %lo(curbrk)], %o3 ! %o3 = old break
|
||||
add %o3, %o0, %o4 ! %o4 = new break
|
||||
mov %o4, %o0 ! copy for syscall
|
||||
mov SYS_break, %g1
|
||||
t ST_SYSCALL ! break(new_break)
|
||||
bcc,a 1f ! if success,
|
||||
mov %o3, %o0 ! set return value
|
||||
ERROR()
|
||||
1:
|
||||
retl ! and update curbrk
|
||||
st %o4, [%o2 + %lo(curbrk)]
|
||||
#endif
|
65
lib/libc/arch/sparc64/sys/setlogin.S
Normal file
65
lib/libc/arch/sparc64/sys/setlogin.S
Normal file
@ -0,0 +1,65 @@
|
||||
/* $NetBSD: setlogin.S,v 1.1 1998/09/11 04:56:35 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: setlogin.s,v 1.1 91/07/06 13:06:00 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)setlogin.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: setlogin.S,v 1.1 1998/09/11 04:56:35 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
.globl _C_LABEL(__logname_valid) /* in getlogin() */
|
||||
|
||||
SYSCALL(setlogin)
|
||||
#ifdef PIC
|
||||
PIC_PROLOGUE(%g1,%g2)
|
||||
ld [%g1 + _C_LABEL(__logname_valid)], %g1
|
||||
retl
|
||||
st %g0, [%g1]
|
||||
#else
|
||||
sethi %hi(_C_LABEL(__logname_valid)), %g1
|
||||
retl
|
||||
st %g0, [%g1 + %lo(_C_LABEL(__logname_valid))]
|
||||
#endif
|
61
lib/libc/arch/sparc64/sys/sigpending.S
Normal file
61
lib/libc/arch/sparc64/sys/sigpending.S
Normal file
@ -0,0 +1,61 @@
|
||||
/* $NetBSD: sigpending.S,v 1.1 1998/09/11 04:56:35 eeh Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: sigpending.s,v 1.1 91/07/06 13:06:00 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)sigpending.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: sigpending.S,v 1.1 1998/09/11 04:56:35 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
ENTRY(sigpending)
|
||||
mov %o0, %o2 ! save pointer
|
||||
mov SYS_sigpending, %g1
|
||||
t ST_SYSCALL ! sigpending()
|
||||
bcc,a 1f ! if success,
|
||||
st %o0, [%o2] ! store return value
|
||||
ERROR()
|
||||
1:
|
||||
retl ! and return 0
|
||||
clr %o0
|
73
lib/libc/arch/sparc64/sys/sigprocmask.S
Normal file
73
lib/libc/arch/sparc64/sys/sigprocmask.S
Normal file
@ -0,0 +1,73 @@
|
||||
/* $NetBSD: sigprocmask.S,v 1.1 1998/09/11 04:56:35 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: sigprocmask.s,v 1.1 91/07/06 13:06:01 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)sigprocmask.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: sigprocmask.S,v 1.1 1998/09/11 04:56:35 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
/*
|
||||
* sigprocmask(int how, sigset_t *set, sigset_t *oset)
|
||||
*/
|
||||
ENTRY(sigprocmask)
|
||||
tst %o1 ! set == NULL?
|
||||
bne,a 1f ! if not,
|
||||
ld [%o1], %o1 ! replace it in %o1 with *set
|
||||
! clr %o1 ! else block no signals ...
|
||||
mov 1, %o0 ! ... using sigprocmask(SIG_BLOCK)
|
||||
1:
|
||||
mov SYS_sigprocmask, %g1
|
||||
t ST_SYSCALL
|
||||
bcc 2f ! if success,
|
||||
tst %o2 ! check to see if oset requested
|
||||
ERROR()
|
||||
2:
|
||||
bne,a 3f ! if oset != NULL,
|
||||
st %o0, [%o2] ! *oset = oldmask
|
||||
3:
|
||||
retl ! in any case, return 0
|
||||
clr %o0
|
56
lib/libc/arch/sparc64/sys/sigreturn.S
Normal file
56
lib/libc/arch/sparc64/sys/sigreturn.S
Normal file
@ -0,0 +1,56 @@
|
||||
/* $NetBSD: sigreturn.S,v 1.1 1998/09/11 04:56:36 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: sigreturn.s,v 1.1 91/07/06 13:06:01 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)sigreturn.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: sigreturn.S,v 1.1 1998/09/11 04:56:36 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
ENTRY(sigreturn)
|
||||
mov SYS_sigreturn, %g1
|
||||
t ST_SYSCALL
|
||||
ERROR()
|
56
lib/libc/arch/sparc64/sys/sigsuspend.S
Normal file
56
lib/libc/arch/sparc64/sys/sigsuspend.S
Normal file
@ -0,0 +1,56 @@
|
||||
/* $NetBSD: sigsuspend.S,v 1.1 1998/09/11 04:56:36 eeh Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: sigsuspend.s,v 1.1 91/07/06 13:06:01 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)sigsuspend.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: sigsuspend.S,v 1.1 1998/09/11 04:56:36 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
ENTRY(sigsuspend)
|
||||
ld [%o0], %o0 ! indirect to mask argument
|
||||
mov SYS_sigsuspend, %g1
|
||||
t ST_SYSCALL
|
||||
ERROR() ! always terminates with EINTR
|
53
lib/libc/arch/sparc64/sys/syscall.S
Normal file
53
lib/libc/arch/sparc64/sys/syscall.S
Normal file
@ -0,0 +1,53 @@
|
||||
/* $NetBSD: syscall.S,v 1.1 1998/09/11 04:56:36 eeh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This software was developed by the Computer Systems Engineering group
|
||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
||||
* contributed to Berkeley.
|
||||
*
|
||||
* 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 University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: Header: syscall.s,v 1.1 91/07/06 13:06:02 torek Exp
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
#if 0
|
||||
.asciz "@(#)syscall.s 8.1 (Berkeley) 6/4/93"
|
||||
#else
|
||||
RCSID("$NetBSD: syscall.S,v 1.1 1998/09/11 04:56:36 eeh Exp $")
|
||||
#endif
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
RSYSCALL(syscall)
|
Loading…
Reference in New Issue
Block a user