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 28set -eu 29 30RCSID='$NetBSD: makeas.sh,v 1.16 2024/05/07 22:30:16 riastradh Exp $' 31 32RCSID=${RCSID#\$} 33RCSID=${RCSID% \$} 34 35REALCODE=fplsp_wrap.S 36FILELIST=Makefile.list 37 38dummy () { 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 */ 53EOM 54 echo -n " " $F.S >> $FILELIST 55 done 56} 57 58linebreak () { 59 echo " \\" >> ${FILELIST} 60 echo -n " " >> ${FILELIST} 61} 62 63mk () { 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 85EOJ 86 if [ -n "$ALIAS" ]; then 87 /bin/cat >> ${THESRC} << EOJ 88WEAK_ALIAS($ALIAS, $NAME) 89 90EOJ 91 fi 92 /bin/cat >> ${THESRC} << EOJ 93ENTRY($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 105END($NAME) 106EOJ 107 dummy "$@" 108} 109 110mks () { 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 132EOJ 133 if [ -n "$ALIAS" ]; then 134 /bin/cat >> ${THESRC} << EOJ 135WEAK_ALIAS($ALIAS, $NAME) 136 137EOJ 138 fi 139 /bin/cat >> ${THESRC} << EOJ 140ENTRY($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 150END($NAME) 151EOJ 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 168EOJ 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 183EOJ 184 185echo -n ARCH_SRCS = >> $FILELIST 186 187mks __ieee754_acosf '' 0000 e_acosf 188mk __ieee754_acos '' 0008 e_acos 189mks __ieee754_asinf '' 0018 e_asinf 190mk __ieee754_asin '' 0020 e_asin 191linebreak 192mks _atanf atanf 0030 s_atanf 193mk _atan atan 0038 s_atan 194mks __ieee754_atanhf '' 0048 e_atanhf 195mk __ieee754_atanh '' 0050 e_atanh 196linebreak 197mks _cosf cosf 0060 s_cosf 198mk _cos cos 0068 s_cos 199mks __ieee754_coshf '' 0078 e_coshf 200mk __ieee754_cosh '' 0080 e_cosh 201linebreak 202mks __ieee754_expf '' 0090 e_expf 203mk __ieee754_exp '' 0098 e_exp 204mks _expm1f expm1f 00a8 s_expm1f 205mk _expm1 expm1 00b0 s_expm1 206linebreak 207mks __ieee754_log10f '' 00f0 e_log10f 208mk __ieee754_log10 '' 00f8 e_log10 209mks _logbf logbf 0108 s_logbf 210mk _logb logb 0110 s_logb 211linebreak 212mks __ieee754_logf '' 0120 e_logf 213mk __ieee754_log '' 0128 e_log 214mks _log1pf log1pf 0138 s_log1pf 215mk _log1p log1p 0140 s_log1p 216linebreak 217mks _sinf sinf 0198 s_sinf 218mk _sin sin 01a0 s_sin 219mks __ieee754_sinhf '' 01c8 e_sinhf 220mk __ieee754_sinh '' 01d0 e_sinh 221linebreak 222mks _tanf tanf 01e0 s_tanf k_tanf 223mk _tan tan 01e8 s_tan k_tan 224mks _tanhf tanhf 01f8 s_tanhf 225mk _tanh tanh 0200 s_tanh 226linebreak 227mks __ieee754_sqrtf '' 02e8 e_sqrtf 228mk __ieee754_sqrt '' 02f0 e_sqrt 229 230/bin/cat >> ${REALCODE} << EOJ 231 232L060FPLSP_BASE: 233#include "fplsp.hex" 234EOJ 235 236echo "" >> ${FILELIST} 237echo ARCH_ADDS = ${REALCODE} >> ${FILELIST} 238