Home | History | Annotate | Line # | Download | only in m68060
      1 #!/bin/sh
      2 
      3 # $NetBSD: makeas.sh,v 1.16 2024/05/07 22:30:16 riastradh Exp $
      4 
      5 # Copyright (c) 1999, 2000 Ignatios Souvatzis
      6 # All rights reserved.
      7 #
      8 # Redistribution and use in source and binary forms, with or without
      9 # modification, are permitted provided that the following conditions
     10 # are met:
     11 # 1. Redistributions of source code must retain the above copyright
     12 #    notice, this list of conditions and the following disclaimer.
     13 # 2. Redistributions in binary form must reproduce the above copyright
     14 #    notice, this list of conditions and the following disclaimer in the
     15 #    documentation and/or other materials provided with the distribution.
     16 #
     17 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     18 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     19 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     20 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     21 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     22 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 
     28 set -eu
     29 
     30 RCSID='$NetBSD: makeas.sh,v 1.16 2024/05/07 22:30:16 riastradh Exp $'
     31 
     32 RCSID=${RCSID#\$}
     33 RCSID=${RCSID% \$}
     34 
     35 REALCODE=fplsp_wrap.S
     36 FILELIST=Makefile.list
     37 
     38 dummy () {
     39 	local F
     40 
     41 	for F; do
     42 		/bin/cat > $F.S << EOM
     43 /* \$NetBSD\$ */
     44 
     45 /*
     46  * Dummy file. Real code is elsewhere.
     47  *
     48  * DO NOT EDIT - this file is automatically generated by;
     49  *
     50  *	$RCSID
     51  *
     52  */
     53 EOM
     54 		echo -n " " $F.S >> $FILELIST
     55 	done
     56 }
     57 
     58 linebreak () {
     59 	echo " \\" >> ${FILELIST}
     60 	echo -n "	" >> ${FILELIST}
     61 }
     62 
     63 mk () {
     64 	local NAME ALIAS OFFS THESRC
     65 
     66 	NAME=$1
     67 	ALIAS=$2
     68 	OFFS=$3
     69 	THESRC=$4.S
     70 	shift; shift; shift; shift
     71 
     72 	echo -n " " ${THESRC} >> $FILELIST
     73 	/bin/cat > ${THESRC} << EOJ
     74 /* \$NetBSD\$ */
     75 
     76 /*
     77  * FPLSP wrapper for ${ALIAS:-$NAME}
     78  * DO NOT EDIT - this file is automatically generated by:
     79  *
     80  *	$RCSID
     81  */
     82 
     83 #include <machine/asm.h>
     84 
     85 EOJ
     86 	if [ -n "$ALIAS" ]; then
     87 		/bin/cat >> ${THESRC} << EOJ
     88 WEAK_ALIAS($ALIAS, $NAME)
     89 
     90 EOJ
     91 	fi
     92 	/bin/cat >> ${THESRC} << EOJ
     93 ENTRY($NAME)
     94 #ifdef __SVR4_ABI__
     95 	bral PIC_PLT(_C_LABEL(__fplsp060_$OFFS))
     96 #else
     97 	movel %sp@(8),%sp@-
     98 	movel %sp@(8),%sp@-
     99 	bsrl PIC_PLT(_C_LABEL(__fplsp060_$OFFS))
    100 	fmoved %fp0,%sp@
    101 	movel %sp@+,%d0
    102 	movel %sp@+,%d1
    103 	rts
    104 #endif
    105 END($NAME)
    106 EOJ
    107 	dummy "$@"
    108 }
    109 
    110 mks () {
    111 	local NAME ALIAS OFFS THESRC
    112 
    113 	NAME=$1
    114 	ALIAS=$2
    115 	OFFS=$3
    116 	THESRC=$4.S
    117 	shift; shift; shift; shift
    118 
    119 	echo -n " " ${THESRC} >> $FILELIST
    120 	/bin/cat > ${THESRC} << EOJ
    121 /* \$NetBSD\$ */
    122 
    123 /*
    124  * FPLSP wrapper for ${ALIAS:-$NAME}
    125  * DO NOT EDIT - this file is automatically generated by:
    126  *
    127  *	$RCSID
    128  */
    129 
    130 #include <machine/asm.h>
    131 
    132 EOJ
    133 	if [ -n "$ALIAS" ]; then
    134 		/bin/cat >> ${THESRC} << EOJ
    135 WEAK_ALIAS($ALIAS, $NAME)
    136 
    137 EOJ
    138 	fi
    139 	/bin/cat >> ${THESRC} << EOJ
    140 ENTRY($NAME)
    141 #ifdef __SVR4_ABI__
    142 	bral PIC_PLT(_C_LABEL(__fplsp060_$OFFS))
    143 #else
    144 	movel %sp@(4),%sp@-
    145 	bsrl PIC_PLT(_C_LABEL(__fplsp060_$OFFS))
    146 	fmoves %fp0,%sp@
    147 	movel %sp@+,%d0
    148 	rts
    149 #endif
    150 END($NAME)
    151 EOJ
    152 	dummy "$@"
    153 }
    154 
    155 /bin/cat > ${REALCODE} << EOJ
    156 /* \$NetBSD\$ */
    157 
    158 /*
    159  * FPLSP wrapper.
    160  *
    161  * DO NOT EDIT - this file is automatically generated by:
    162  *
    163  *	$RCSID
    164  */
    165 
    166 #include <machine/asm.h>
    167 
    168 EOJ
    169 
    170 /bin/cat > ${FILELIST} << EOJ
    171 # \$NetBSD\$
    172 
    173 #
    174 # list of M68060 architecture dependent files for libm.
    175 #
    176 # Created by:
    177 #
    178 #	$RCSID
    179 #
    180 # Do not edit manually!
    181 #
    182 
    183 EOJ
    184 
    185 echo -n ARCH_SRCS = >> $FILELIST
    186 
    187 mks	__ieee754_acosf	''	0000	e_acosf
    188 mk	__ieee754_acos	''	0008	e_acos
    189 mks	__ieee754_asinf	''	0018	e_asinf
    190 mk	__ieee754_asin	''	0020	e_asin
    191 linebreak
    192 mks	_atanf		atanf	0030	s_atanf
    193 mk	_atan		atan	0038	s_atan
    194 mks	__ieee754_atanhf ''	0048	e_atanhf
    195 mk	__ieee754_atanh	''	0050	e_atanh
    196 linebreak
    197 mks	_cosf		cosf	0060	s_cosf
    198 mk	_cos		cos	0068	s_cos
    199 mks	__ieee754_coshf	''	0078	e_coshf
    200 mk	__ieee754_cosh	''	0080	e_cosh
    201 linebreak
    202 mks	__ieee754_expf	''	0090	e_expf
    203 mk	__ieee754_exp	''	0098	e_exp
    204 mks	_expm1f		expm1f	00a8	s_expm1f
    205 mk	_expm1		expm1	00b0	s_expm1
    206 linebreak
    207 mks	__ieee754_log10f ''	00f0	e_log10f
    208 mk	__ieee754_log10	''	00f8	e_log10
    209 mks	_logbf		logbf	0108	s_logbf
    210 mk	_logb		logb	0110	s_logb
    211 linebreak
    212 mks	__ieee754_logf	''	0120	e_logf
    213 mk	__ieee754_log	''	0128	e_log
    214 mks	_log1pf		log1pf	0138	s_log1pf
    215 mk	_log1p		log1p	0140	s_log1p
    216 linebreak
    217 mks	_sinf		sinf	0198	s_sinf
    218 mk	_sin		sin	01a0	s_sin
    219 mks	__ieee754_sinhf	''	01c8	e_sinhf
    220 mk	__ieee754_sinh	''	01d0	e_sinh
    221 linebreak
    222 mks	_tanf		tanf	01e0	s_tanf k_tanf
    223 mk	_tan		tan	01e8	s_tan k_tan
    224 mks	_tanhf		tanhf	01f8	s_tanhf
    225 mk	_tanh		tanh	0200	s_tanh
    226 linebreak
    227 mks	__ieee754_sqrtf	''	02e8	e_sqrtf
    228 mk	__ieee754_sqrt	''	02f0	e_sqrt
    229 
    230 /bin/cat >> ${REALCODE} << EOJ
    231 
    232 L060FPLSP_BASE:
    233 #include "fplsp.hex"
    234 EOJ
    235 
    236 echo ""	>> ${FILELIST}
    237 echo ARCH_ADDS = ${REALCODE} >> ${FILELIST}
    238