···339339340340 This option must be set in order to enable the FPU.341341342342+config SH_FPU_EMU343343+ bool "FPU emulation support"344344+ depends on !SH_FPU && EXPERIMENTAL345345+ default n346346+ help347347+ Selecting this option will enable support for software FPU emulation.348348+ Most SH-3 users will want to say Y here, whereas most SH-4 users will349349+ want to say N.350350+342351config SH_DSP343352 bool "DSP support"344353 depends on !CPU_SH4
···11+/* Machine-dependent software floating-point definitions.22+ SuperH kernel version.33+ Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.44+ This file is part of the GNU C Library.55+ Contributed by Richard Henderson (rth@cygnus.com),66+ Jakub Jelinek (jj@ultra.linux.cz),77+ David S. Miller (davem@redhat.com) and88+ Peter Maydell (pmaydell@chiark.greenend.org.uk).99+1010+ The GNU C Library is free software; you can redistribute it and/or1111+ modify it under the terms of the GNU Library General Public License as1212+ published by the Free Software Foundation; either version 2 of the1313+ License, or (at your option) any later version.1414+1515+ The GNU C Library is distributed in the hope that it will be useful,1616+ but WITHOUT ANY WARRANTY; without even the implied warranty of1717+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU1818+ Library General Public License for more details.1919+2020+ You should have received a copy of the GNU Library General Public2121+ License along with the GNU C Library; see the file COPYING.LIB. If2222+ not, write to the Free Software Foundation, Inc.,2323+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */2424+2525+#ifndef _SFP_MACHINE_H2626+#define _SFP_MACHINE_H2727+2828+#include <linux/config.h>2929+3030+#define _FP_W_TYPE_SIZE 323131+#define _FP_W_TYPE unsigned long3232+#define _FP_WS_TYPE signed long3333+#define _FP_I_TYPE long3434+3535+#define _FP_MUL_MEAT_S(R,X,Y) \3636+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)3737+#define _FP_MUL_MEAT_D(R,X,Y) \3838+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)3939+#define _FP_MUL_MEAT_Q(R,X,Y) \4040+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)4141+4242+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_udiv(S,R,X,Y)4343+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)4444+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)4545+4646+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)4747+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -14848+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -14949+#define _FP_NANSIGN_S 05050+#define _FP_NANSIGN_D 05151+#define _FP_NANSIGN_Q 05252+5353+#define _FP_KEEPNANFRACP 15454+5555+/*5656+ * If one NaN is signaling and the other is not,5757+ * we choose that one, otherwise we choose X.5858+ */5959+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \6060+ do { \6161+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \6262+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \6363+ { \6464+ R##_s = Y##_s; \6565+ _FP_FRAC_COPY_##wc(R,Y); \6666+ } \6767+ else \6868+ { \6969+ R##_s = X##_s; \7070+ _FP_FRAC_COPY_##wc(R,X); \7171+ } \7272+ R##_c = FP_CLS_NAN; \7373+ } while (0)7474+7575+//#define FP_ROUNDMODE FPSCR_RM7676+#define FP_DENORM_ZERO 1/*FPSCR_DN*/7777+7878+/* Exception flags. */7979+#define FP_EX_INVALID (1<<4)8080+#define FP_EX_DIVZERO (1<<3)8181+#define FP_EX_OVERFLOW (1<<2)8282+#define FP_EX_UNDERFLOW (1<<1)8383+#define FP_EX_INEXACT (1<<0)8484+8585+#endif8686+