1*1bb92983SJerome Forissier /* SPDX-License-Identifier: BSD-3-Clause */ 29403c583SJens Wiklander 39403c583SJens Wiklander /*============================================================================ 49403c583SJens Wiklander 59403c583SJens Wiklander This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic 69403c583SJens Wiklander Package, Release 3a, by John R. Hauser. 79403c583SJens Wiklander 89403c583SJens Wiklander Copyright 2011, 2012, 2013, 2014 The Regents of the University of California. 99403c583SJens Wiklander All rights reserved. 109403c583SJens Wiklander 119403c583SJens Wiklander Redistribution and use in source and binary forms, with or without 129403c583SJens Wiklander modification, are permitted provided that the following conditions are met: 139403c583SJens Wiklander 149403c583SJens Wiklander 1. Redistributions of source code must retain the above copyright notice, 159403c583SJens Wiklander this list of conditions, and the following disclaimer. 169403c583SJens Wiklander 179403c583SJens Wiklander 2. Redistributions in binary form must reproduce the above copyright notice, 189403c583SJens Wiklander this list of conditions, and the following disclaimer in the documentation 199403c583SJens Wiklander and/or other materials provided with the distribution. 209403c583SJens Wiklander 219403c583SJens Wiklander 3. Neither the name of the University nor the names of its contributors may 229403c583SJens Wiklander be used to endorse or promote products derived from this software without 239403c583SJens Wiklander specific prior written permission. 249403c583SJens Wiklander 259403c583SJens Wiklander THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY 269403c583SJens Wiklander EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 279403c583SJens Wiklander WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE 289403c583SJens Wiklander DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY 299403c583SJens Wiklander DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 309403c583SJens Wiklander (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 319403c583SJens Wiklander LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 329403c583SJens Wiklander ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 339403c583SJens Wiklander (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 349403c583SJens Wiklander SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 359403c583SJens Wiklander 369403c583SJens Wiklander =============================================================================*/ 379403c583SJens Wiklander 389403c583SJens Wiklander #ifndef specialize_h 399403c583SJens Wiklander #define specialize_h 1 409403c583SJens Wiklander 419403c583SJens Wiklander #include <stdbool.h> 429403c583SJens Wiklander #include <stdint.h> 439403c583SJens Wiklander #include "softfloat_types.h" 449403c583SJens Wiklander 459403c583SJens Wiklander /*---------------------------------------------------------------------------- 469403c583SJens Wiklander | Default value for `softfloat_detectTininess'. 479403c583SJens Wiklander *----------------------------------------------------------------------------*/ 48fce4cfa1SJens Wiklander #define init_detectTininess softfloat_tininess_afterRounding 499403c583SJens Wiklander 509403c583SJens Wiklander /*---------------------------------------------------------------------------- 519403c583SJens Wiklander | "Common NaN" structure, used to transfer NaN representations from one format 529403c583SJens Wiklander | to another. 539403c583SJens Wiklander *----------------------------------------------------------------------------*/ 549403c583SJens Wiklander struct commonNaN { 559403c583SJens Wiklander bool sign; 569403c583SJens Wiklander #ifdef LITTLEENDIAN 579403c583SJens Wiklander uint64_t v0, v64; 589403c583SJens Wiklander #else 599403c583SJens Wiklander uint64_t v64, v0; 609403c583SJens Wiklander #endif 619403c583SJens Wiklander }; 629403c583SJens Wiklander 639403c583SJens Wiklander /*---------------------------------------------------------------------------- 649403c583SJens Wiklander | The bit pattern for a default generated 32-bit floating-point NaN. 659403c583SJens Wiklander *----------------------------------------------------------------------------*/ 669403c583SJens Wiklander #define defaultNaNF32UI 0xFFC00000 679403c583SJens Wiklander 689403c583SJens Wiklander /*---------------------------------------------------------------------------- 699403c583SJens Wiklander | Returns true when 32-bit unsigned integer `uiA' has the bit pattern of a 709403c583SJens Wiklander | 32-bit floating-point signaling NaN. 719403c583SJens Wiklander | Note: This macro evaluates its argument more than once. 729403c583SJens Wiklander *----------------------------------------------------------------------------*/ 739403c583SJens Wiklander #define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF)) 749403c583SJens Wiklander 759403c583SJens Wiklander /*---------------------------------------------------------------------------- 769403c583SJens Wiklander | Assuming `uiA' has the bit pattern of a 32-bit floating-point NaN, converts 779403c583SJens Wiklander | this NaN to the common NaN form, and stores the resulting common NaN at the 789403c583SJens Wiklander | location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid 799403c583SJens Wiklander | exception is raised. 809403c583SJens Wiklander *----------------------------------------------------------------------------*/ 819403c583SJens Wiklander void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr ); 829403c583SJens Wiklander 839403c583SJens Wiklander /*---------------------------------------------------------------------------- 849403c583SJens Wiklander | Converts the common NaN pointed to by `aPtr' into a 32-bit floating-point 859403c583SJens Wiklander | NaN, and returns the bit pattern of this value as an unsigned integer. 869403c583SJens Wiklander *----------------------------------------------------------------------------*/ 879403c583SJens Wiklander uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr ); 889403c583SJens Wiklander 899403c583SJens Wiklander /*---------------------------------------------------------------------------- 909403c583SJens Wiklander | Interpreting `uiA' and `uiB' as the bit patterns of two 32-bit floating- 919403c583SJens Wiklander | point values, at least one of which is a NaN, returns the bit pattern of 929403c583SJens Wiklander | the combined NaN result. If either `uiA' or `uiB' has the pattern of a 939403c583SJens Wiklander | signaling NaN, the invalid exception is raised. 949403c583SJens Wiklander *----------------------------------------------------------------------------*/ 959403c583SJens Wiklander uint_fast32_t 969403c583SJens Wiklander softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB ); 979403c583SJens Wiklander 989403c583SJens Wiklander /*---------------------------------------------------------------------------- 999403c583SJens Wiklander | The bit pattern for a default generated 64-bit floating-point NaN. 1009403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1019403c583SJens Wiklander #define defaultNaNF64UI UINT64_C( 0xFFF8000000000000 ) 1029403c583SJens Wiklander 1039403c583SJens Wiklander /*---------------------------------------------------------------------------- 1049403c583SJens Wiklander | Returns true when 64-bit unsigned integer `uiA' has the bit pattern of a 1059403c583SJens Wiklander | 64-bit floating-point signaling NaN. 1069403c583SJens Wiklander | Note: This macro evaluates its argument more than once. 1079403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1089403c583SJens Wiklander #define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF ))) 1099403c583SJens Wiklander 1109403c583SJens Wiklander /*---------------------------------------------------------------------------- 1119403c583SJens Wiklander | Assuming `uiA' has the bit pattern of a 64-bit floating-point NaN, converts 1129403c583SJens Wiklander | this NaN to the common NaN form, and stores the resulting common NaN at the 1139403c583SJens Wiklander | location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid 1149403c583SJens Wiklander | exception is raised. 1159403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1169403c583SJens Wiklander void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr ); 1179403c583SJens Wiklander 1189403c583SJens Wiklander /*---------------------------------------------------------------------------- 1199403c583SJens Wiklander | Converts the common NaN pointed to by `aPtr' into a 64-bit floating-point 1209403c583SJens Wiklander | NaN, and returns the bit pattern of this value as an unsigned integer. 1219403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1229403c583SJens Wiklander uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr ); 1239403c583SJens Wiklander 1249403c583SJens Wiklander /*---------------------------------------------------------------------------- 1259403c583SJens Wiklander | Interpreting `uiA' and `uiB' as the bit patterns of two 64-bit floating- 1269403c583SJens Wiklander | point values, at least one of which is a NaN, returns the bit pattern of 1279403c583SJens Wiklander | the combined NaN result. If either `uiA' or `uiB' has the pattern of a 1289403c583SJens Wiklander | signaling NaN, the invalid exception is raised. 1299403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1309403c583SJens Wiklander uint_fast64_t 1319403c583SJens Wiklander softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB ); 1329403c583SJens Wiklander 1339403c583SJens Wiklander /*---------------------------------------------------------------------------- 1349403c583SJens Wiklander | The bit pattern for a default generated 80-bit extended floating-point NaN. 1359403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1369403c583SJens Wiklander #define defaultNaNExtF80UI64 0xFFFF 1379403c583SJens Wiklander #define defaultNaNExtF80UI0 UINT64_C( 0xC000000000000000 ) 1389403c583SJens Wiklander 1399403c583SJens Wiklander /*---------------------------------------------------------------------------- 1409403c583SJens Wiklander | Returns true when the 80-bit unsigned integer formed from concatenating 1419403c583SJens Wiklander | 16-bit `uiA64' and 64-bit `uiA0' has the bit pattern of an 80-bit extended 1429403c583SJens Wiklander | floating-point signaling NaN. 1439403c583SJens Wiklander | Note: This macro evaluates its arguments more than once. 1449403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1459403c583SJens Wiklander #define softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF ))) 1469403c583SJens Wiklander 1479403c583SJens Wiklander #ifdef SOFTFLOAT_FAST_INT64 1489403c583SJens Wiklander 1499403c583SJens Wiklander /*---------------------------------------------------------------------------- 1509403c583SJens Wiklander | The following functions are needed only when `SOFTFLOAT_FAST_INT64' is 1519403c583SJens Wiklander | defined. 1529403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1539403c583SJens Wiklander 1549403c583SJens Wiklander /*---------------------------------------------------------------------------- 1559403c583SJens Wiklander | Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0' 1569403c583SJens Wiklander | has the bit pattern of an 80-bit extended floating-point NaN, converts 1579403c583SJens Wiklander | this NaN to the common NaN form, and stores the resulting common NaN at the 1589403c583SJens Wiklander | location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid 1599403c583SJens Wiklander | exception is raised. 1609403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1619403c583SJens Wiklander void 1629403c583SJens Wiklander softfloat_extF80UIToCommonNaN( 1639403c583SJens Wiklander uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr ); 1649403c583SJens Wiklander 1659403c583SJens Wiklander /*---------------------------------------------------------------------------- 1669403c583SJens Wiklander | Converts the common NaN pointed to by `aPtr' into an 80-bit extended 1679403c583SJens Wiklander | floating-point NaN, and returns the bit pattern of this value as an unsigned 1689403c583SJens Wiklander | integer. 1699403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1709403c583SJens Wiklander struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr ); 1719403c583SJens Wiklander 1729403c583SJens Wiklander /*---------------------------------------------------------------------------- 1739403c583SJens Wiklander | Interpreting the unsigned integer formed from concatenating `uiA64' and 1749403c583SJens Wiklander | `uiA0' as an 80-bit extended floating-point value, and likewise interpreting 1759403c583SJens Wiklander | the unsigned integer formed from concatenating `uiB64' and `uiB0' as another 1769403c583SJens Wiklander | 80-bit extended floating-point value, and assuming at least on of these 1779403c583SJens Wiklander | floating-point values is a NaN, returns the bit pattern of the combined NaN 1789403c583SJens Wiklander | result. If either original floating-point value is a signaling NaN, the 1799403c583SJens Wiklander | invalid exception is raised. 1809403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1819403c583SJens Wiklander struct uint128 1829403c583SJens Wiklander softfloat_propagateNaNExtF80UI( 1839403c583SJens Wiklander uint_fast16_t uiA64, 1849403c583SJens Wiklander uint_fast64_t uiA0, 1859403c583SJens Wiklander uint_fast16_t uiB64, 1869403c583SJens Wiklander uint_fast64_t uiB0 1879403c583SJens Wiklander ); 1889403c583SJens Wiklander 1899403c583SJens Wiklander /*---------------------------------------------------------------------------- 1909403c583SJens Wiklander | The bit pattern for a default generated 128-bit floating-point NaN. 1919403c583SJens Wiklander *----------------------------------------------------------------------------*/ 1929403c583SJens Wiklander #define defaultNaNF128UI64 UINT64_C( 0xFFFF800000000000 ) 1939403c583SJens Wiklander #define defaultNaNF128UI0 UINT64_C( 0 ) 1949403c583SJens Wiklander 1959403c583SJens Wiklander /*---------------------------------------------------------------------------- 1969403c583SJens Wiklander | Returns true when the 128-bit unsigned integer formed from concatenating 1979403c583SJens Wiklander | 64-bit `uiA64' and 64-bit `uiA0' has the bit pattern of a 128-bit floating- 1989403c583SJens Wiklander | point signaling NaN. 1999403c583SJens Wiklander | Note: This macro evaluates its arguments more than once. 2009403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2019403c583SJens Wiklander #define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF )))) 2029403c583SJens Wiklander 2039403c583SJens Wiklander /*---------------------------------------------------------------------------- 2049403c583SJens Wiklander | Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0' 2059403c583SJens Wiklander | has the bit pattern of a 128-bit floating-point NaN, converts this NaN to 2069403c583SJens Wiklander | the common NaN form, and stores the resulting common NaN at the location 2079403c583SJens Wiklander | pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid exception 2089403c583SJens Wiklander | is raised. 2099403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2109403c583SJens Wiklander void 2119403c583SJens Wiklander softfloat_f128UIToCommonNaN( 2129403c583SJens Wiklander uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr ); 2139403c583SJens Wiklander 2149403c583SJens Wiklander /*---------------------------------------------------------------------------- 2159403c583SJens Wiklander | Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point 2169403c583SJens Wiklander | NaN, and returns the bit pattern of this value as an unsigned integer. 2179403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2189403c583SJens Wiklander struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * ); 2199403c583SJens Wiklander 2209403c583SJens Wiklander /*---------------------------------------------------------------------------- 2219403c583SJens Wiklander | Interpreting the unsigned integer formed from concatenating `uiA64' and 2229403c583SJens Wiklander | `uiA0' as a 128-bit floating-point value, and likewise interpreting the 2239403c583SJens Wiklander | unsigned integer formed from concatenating `uiB64' and `uiB0' as another 2249403c583SJens Wiklander | 128-bit floating-point value, and assuming at least on of these floating- 2259403c583SJens Wiklander | point values is a NaN, returns the bit pattern of the combined NaN result. 2269403c583SJens Wiklander | If either original floating-point value is a signaling NaN, the invalid 2279403c583SJens Wiklander | exception is raised. 2289403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2299403c583SJens Wiklander struct uint128 2309403c583SJens Wiklander softfloat_propagateNaNF128UI( 2319403c583SJens Wiklander uint_fast64_t uiA64, 2329403c583SJens Wiklander uint_fast64_t uiA0, 2339403c583SJens Wiklander uint_fast64_t uiB64, 2349403c583SJens Wiklander uint_fast64_t uiB0 2359403c583SJens Wiklander ); 2369403c583SJens Wiklander 2379403c583SJens Wiklander #else 2389403c583SJens Wiklander 2399403c583SJens Wiklander /*---------------------------------------------------------------------------- 2409403c583SJens Wiklander | The following functions are needed only when `SOFTFLOAT_FAST_INT64' is not 2419403c583SJens Wiklander | defined. 2429403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2439403c583SJens Wiklander 2449403c583SJens Wiklander /*---------------------------------------------------------------------------- 2459403c583SJens Wiklander | Assuming the 80-bit extended floating-point value pointed to by `aSPtr' is 2469403c583SJens Wiklander | a NaN, converts this NaN to the common NaN form, and stores the resulting 2479403c583SJens Wiklander | common NaN at the location pointed to by `zPtr'. If the NaN is a signaling 2489403c583SJens Wiklander | NaN, the invalid exception is raised. 2499403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2509403c583SJens Wiklander void 2519403c583SJens Wiklander softfloat_extF80MToCommonNaN( 2529403c583SJens Wiklander const struct extFloat80M *aSPtr, struct commonNaN *zPtr ); 2539403c583SJens Wiklander 2549403c583SJens Wiklander /*---------------------------------------------------------------------------- 2559403c583SJens Wiklander | Converts the common NaN pointed to by `aPtr' into an 80-bit extended 2569403c583SJens Wiklander | floating-point NaN, and stores this NaN at the location pointed to by 2579403c583SJens Wiklander | `zSPtr'. 2589403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2599403c583SJens Wiklander void 2609403c583SJens Wiklander softfloat_commonNaNToExtF80M( 2619403c583SJens Wiklander const struct commonNaN *aPtr, struct extFloat80M *zSPtr ); 2629403c583SJens Wiklander 2639403c583SJens Wiklander /*---------------------------------------------------------------------------- 2649403c583SJens Wiklander | Assuming at least one of the two 80-bit extended floating-point values 2659403c583SJens Wiklander | pointed to by `aSPtr' and `bSPtr' is a NaN, stores the combined NaN result 2669403c583SJens Wiklander | at the location pointed to by `zSPtr'. If either original floating-point 2679403c583SJens Wiklander | value is a signaling NaN, the invalid exception is raised. 2689403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2699403c583SJens Wiklander void 2709403c583SJens Wiklander softfloat_propagateNaNExtF80M( 2719403c583SJens Wiklander const struct extFloat80M *aSPtr, 2729403c583SJens Wiklander const struct extFloat80M *bSPtr, 2739403c583SJens Wiklander struct extFloat80M *zSPtr 2749403c583SJens Wiklander ); 2759403c583SJens Wiklander 2769403c583SJens Wiklander /*---------------------------------------------------------------------------- 2779403c583SJens Wiklander | The bit pattern for a default generated 128-bit floating-point NaN. 2789403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2799403c583SJens Wiklander #define defaultNaNF128UI96 0xFFFF8000 2809403c583SJens Wiklander #define defaultNaNF128UI64 0 2819403c583SJens Wiklander #define defaultNaNF128UI32 0 2829403c583SJens Wiklander #define defaultNaNF128UI0 0 2839403c583SJens Wiklander 2849403c583SJens Wiklander /*---------------------------------------------------------------------------- 2859403c583SJens Wiklander | Assuming the 128-bit floating-point value pointed to by `aWPtr' is a NaN, 2869403c583SJens Wiklander | converts this NaN to the common NaN form, and stores the resulting common 2879403c583SJens Wiklander | NaN at the location pointed to by `zPtr'. If the NaN is a signaling NaN, 2889403c583SJens Wiklander | the invalid exception is raised. Argument `aWPtr' points to an array of 2899403c583SJens Wiklander | four 32-bit elements that concatenate in the platform's normal endian order 2909403c583SJens Wiklander | to form a 128-bit floating-point value. 2919403c583SJens Wiklander *----------------------------------------------------------------------------*/ 2929403c583SJens Wiklander void 2939403c583SJens Wiklander softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr ); 2949403c583SJens Wiklander 2959403c583SJens Wiklander /*---------------------------------------------------------------------------- 2969403c583SJens Wiklander | Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point 2979403c583SJens Wiklander | NaN, and stores this NaN at the location pointed to by `zWPtr'. Argument 2989403c583SJens Wiklander | `zWPtr' points to an array of four 32-bit elements that concatenate in the 2999403c583SJens Wiklander | platform's normal endian order to form a 128-bit floating-point value. 3009403c583SJens Wiklander *----------------------------------------------------------------------------*/ 3019403c583SJens Wiklander void 3029403c583SJens Wiklander softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr ); 3039403c583SJens Wiklander 3049403c583SJens Wiklander /*---------------------------------------------------------------------------- 3059403c583SJens Wiklander | Assuming at least one of the two 128-bit floating-point values pointed to by 3069403c583SJens Wiklander | `aWPtr' and `bWPtr' is a NaN, stores the combined NaN result at the location 3079403c583SJens Wiklander | pointed to by `zWPtr'. If either original floating-point value is a 3089403c583SJens Wiklander | signaling NaN, the invalid exception is raised. Each of `aWPtr', `bWPtr', 3099403c583SJens Wiklander | and `zWPtr' points to an array of four 32-bit elements that concatenate in 3109403c583SJens Wiklander | the platform's normal endian order to form a 128-bit floating-point value. 3119403c583SJens Wiklander *----------------------------------------------------------------------------*/ 3129403c583SJens Wiklander void 3139403c583SJens Wiklander softfloat_propagateNaNF128M( 3149403c583SJens Wiklander const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr ); 3159403c583SJens Wiklander 3169403c583SJens Wiklander #endif 3179403c583SJens Wiklander 3189403c583SJens Wiklander #endif 3199403c583SJens Wiklander 320