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