亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? softfloat-specialize

?? sun2,sun3,sparcstation2 emulator
??
?? 第 1 頁 / 共 2 頁
字號(hào):

/*============================================================================

This C source fragment is part of the SoftFloat IEC/IEEE Floating-point
Arithmetic Package, Release 2b.

Written by John R. Hauser.  This work was made possible in part by the
International Computer Science Institute, located at Suite 600, 1947 Center
Street, Berkeley, California 94704.  Funding was partially provided by the
National Science Foundation under grant MIP-9311980.  The original version
of this code was written as part of a project to build a fixed-point vector
processor in collaboration with the University of California at Berkeley,
overseen by Profs. Nelson Morgan and John Wawrzynek.  More information
is available through the Web page `http://www.cs.berkeley.edu/~jhauser/
arithmetic/SoftFloat.html'.

THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE.  Although reasonable effort has
been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
RESULT IN INCORRECT BEHAVIOR.  USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.

Derivative works are acceptable, even for commercial purposes, so long as
(1) the source code for the derivative work includes prominent notice that
the work is derivative, and (2) the source code includes prominent notice with
these four paragraphs for those parts of this code that are retained.

=============================================================================*/

/*----------------------------------------------------------------------------
| Underflow tininess-detection mode, statically initialized to default value.
| (The declaration in `softfloat.h' must match the `int8' type here.)
*----------------------------------------------------------------------------*/
int8 float_detect_tininess = float_tininess_after_rounding;

/*----------------------------------------------------------------------------
| Raises the exceptions specified by `flags'.  Floating-point traps can be
| defined here if desired.  It is currently not possible for such a trap
| to substitute a result value.  If traps are not implemented, this routine
| should be simply `float_exception_flags |= flags;'.
*----------------------------------------------------------------------------*/

void float_raise( int8 flags )
{

    float_exception_flags |= flags;

}

/*----------------------------------------------------------------------------
| Internal canonical NaN format.
*----------------------------------------------------------------------------*/
typedef struct {
    flag sign;
    bits64 high, low;
} commonNaNT;

/*----------------------------------------------------------------------------
| The pattern for a default generated single-precision NaN.
*----------------------------------------------------------------------------*/
#define float32_default_nan 0xFFC00000

/*----------------------------------------------------------------------------
| Returns 1 if the single-precision floating-point value `a' is a NaN;
| otherwise returns 0.
*----------------------------------------------------------------------------*/

flag float32_is_nan( float32 a )
{

    return ( 0xFF000000 < (bits32) ( a<<1 ) );

}

/*----------------------------------------------------------------------------
| Returns 1 if the single-precision floating-point value `a' is a signaling
| NaN; otherwise returns 0.
*----------------------------------------------------------------------------*/

flag float32_is_signaling_nan( float32 a )
{

    return ( ( ( a>>22 ) & 0x1FF ) == 0x1FE ) && ( a & 0x003FFFFF );

}

/*----------------------------------------------------------------------------
| Returns the result of converting the single-precision floating-point NaN
| `a' to the canonical NaN format.  If `a' is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/

static commonNaNT float32ToCommonNaN( float32 a )
{
    commonNaNT z;

    if ( float32_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
    z.sign = a>>31;
    z.low = 0;
    z.high = ( (bits64) a )<<41;
    return z;

}

/*----------------------------------------------------------------------------
| Returns the result of converting the canonical NaN `a' to the single-
| precision floating-point format.
*----------------------------------------------------------------------------*/

static float32 commonNaNToFloat32( commonNaNT a )
{

    return ( ( (bits32) a.sign )<<31 ) | 0x7FC00000 | ( a.high>>41 );

}

/*----------------------------------------------------------------------------
| Takes two single-precision floating-point values `a' and `b', one of which
| is a NaN, and returns the appropriate NaN result.  If either `a' or `b' is a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/

static float32 propagateFloat32NaN( float32 a, float32 b )
{
    flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN;

    aIsNaN = float32_is_nan( a );
    aIsSignalingNaN = float32_is_signaling_nan( a );
    bIsNaN = float32_is_nan( b );
    bIsSignalingNaN = float32_is_signaling_nan( b );
    a |= 0x00400000;
    b |= 0x00400000;
    if ( aIsSignalingNaN | bIsSignalingNaN ) float_raise( float_flag_invalid );
    if ( aIsSignalingNaN ) {
        if ( bIsSignalingNaN ) goto returnLargerSignificand;
        return bIsNaN ? b : a;
    }
    else if ( aIsNaN ) {
        if ( bIsSignalingNaN | ! bIsNaN ) return a;
 returnLargerSignificand:
        if ( (bits32) ( a<<1 ) < (bits32) ( b<<1 ) ) return b;
        if ( (bits32) ( b<<1 ) < (bits32) ( a<<1 ) ) return a;
        return ( a < b ) ? a : b;
    }
    else {
        return b;
    }

}

/*----------------------------------------------------------------------------
| The pattern for a default generated double-precision NaN.
*----------------------------------------------------------------------------*/
#define float64_default_nan LIT64( 0xFFF8000000000000 )

/*----------------------------------------------------------------------------
| Returns 1 if the double-precision floating-point value `a' is a NaN;
| otherwise returns 0.
*----------------------------------------------------------------------------*/

flag float64_is_nan( float64 a )
{

    return ( LIT64( 0xFFE0000000000000 ) < (bits64) ( a<<1 ) );

}

/*----------------------------------------------------------------------------
| Returns 1 if the double-precision floating-point value `a' is a signaling
| NaN; otherwise returns 0.
*----------------------------------------------------------------------------*/

flag float64_is_signaling_nan( float64 a )
{

    return
           ( ( ( a>>51 ) & 0xFFF ) == 0xFFE )
        && ( a & LIT64( 0x0007FFFFFFFFFFFF ) );

}

/*----------------------------------------------------------------------------
| Returns the result of converting the double-precision floating-point NaN
| `a' to the canonical NaN format.  If `a' is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/

static commonNaNT float64ToCommonNaN( float64 a )
{
    commonNaNT z;

    if ( float64_is_signaling_nan( a ) ) float_raise( float_flag_invalid );
    z.sign = a>>63;
    z.low = 0;
    z.high = a<<12;
    return z;

}

/*----------------------------------------------------------------------------
| Returns the result of converting the canonical NaN `a' to the double-
| precision floating-point format.
*----------------------------------------------------------------------------*/

static float64 commonNaNToFloat64( commonNaNT a )
{

    return
          ( ( (bits64) a.sign )<<63 )
        | LIT64( 0x7FF8000000000000 )
        | ( a.high>>12 );

}

/*----------------------------------------------------------------------------
| Takes two double-precision floating-point values `a' and `b', one of which
| is a NaN, and returns the appropriate NaN result.  If either `a' or `b' is a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/

static float64 propagateFloat64NaN( float64 a, float64 b )
{
    flag aIsNaN, aIsSignalingNaN, bIsNaN, bIsSignalingNaN;

    aIsNaN = float64_is_nan( a );
    aIsSignalingNaN = float64_is_signaling_nan( a );
    bIsNaN = float64_is_nan( b );
    bIsSignalingNaN = float64_is_signaling_nan( b );
    a |= LIT64( 0x0008000000000000 );
    b |= LIT64( 0x0008000000000000 );

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜久久久久久久久| 久久亚洲精品国产精品紫薇| 国产精品久久网站| 成人精品免费视频| 国产精品乱码人人做人人爱| 成人综合在线观看| 国产精品美女久久久久久久| 菠萝蜜视频在线观看一区| 中文字幕亚洲精品在线观看| 色综合激情久久| 亚洲观看高清完整版在线观看| 精品视频在线免费看| 日日摸夜夜添夜夜添精品视频| 欧美一区二区免费| 国产综合色精品一区二区三区| 日本一区二区三区久久久久久久久不 | 久久精品视频免费| av一区二区不卡| 亚洲一区二区在线视频| 日韩一级片在线播放| 国产精品一区二区x88av| 国产精品国产三级国产普通话蜜臀 | 亚洲欧洲日韩av| 在线视频综合导航| 美国毛片一区二区三区| 欧美国产一区二区| 欧美亚洲高清一区二区三区不卡| 日本麻豆一区二区三区视频| 国产欧美一区在线| 欧美亚一区二区| 国产在线一区观看| 亚洲一区二区3| 久久久久久久精| 欧美色成人综合| 国产iv一区二区三区| 亚洲综合激情小说| 国产午夜精品久久| 欧美日韩精品一区二区三区 | 精品伊人久久久久7777人| 欧美国产乱子伦| 欧美一区二区三区精品| 99精品视频在线免费观看| 蜜臀av一区二区在线免费观看 | 欧美群妇大交群中文字幕| 国产91富婆露脸刺激对白| 五月婷婷久久丁香| 亚洲日本在线看| 久久夜色精品一区| 欧美一级夜夜爽| 色嗨嗨av一区二区三区| 国产成人午夜高潮毛片| 日本在线不卡一区| 亚洲国产成人tv| 亚洲精品欧美综合四区| 欧美国产日韩在线观看| 日韩免费高清av| 欧美日韩一区二区三区不卡| 成人精品视频一区二区三区 | 一区二区三区鲁丝不卡| 国产午夜精品一区二区三区嫩草| 日韩一区二区三区高清免费看看| 99久久综合狠狠综合久久| 国产美女精品在线| 久久精品理论片| 日本va欧美va欧美va精品| 亚洲已满18点击进入久久| 亚洲三级在线看| 国产精品成人午夜| 国产精品免费看片| 国产免费久久精品| 欧美激情综合在线| 国产午夜精品久久| 国产日韩欧美综合在线| 国产亚洲欧美日韩俺去了| 精品国内片67194| 精品国产伦理网| 久久亚洲一区二区三区明星换脸| 91精品国模一区二区三区| 欧美日韩久久久久久| 精品视频在线免费看| 欧美日本乱大交xxxxx| 制服.丝袜.亚洲.中文.综合 | 日韩欧美中文一区| 91精品国产aⅴ一区二区| 91精品国产91久久久久久一区二区 | 国产一区二区三区四区五区美女| 久久99久久精品| 国产在线乱码一区二区三区| 国产一区二区三区视频在线播放| 国产精品资源在线看| 欧美日本视频在线| 欧美丰满少妇xxxbbb| 777欧美精品| 精品免费国产一区二区三区四区| 精品国产99国产精品| 国产日韩一级二级三级| 国产精品不卡在线观看| 一区二区三区免费在线观看| 日日摸夜夜添夜夜添精品视频| 日韩福利视频导航| 国产一区二区在线看| 99久久伊人久久99| 欧美午夜精品久久久久久孕妇| 欧美高清视频不卡网| www成人在线观看| 国产精品免费视频观看| 亚洲v日本v欧美v久久精品| 日本成人在线看| 成人听书哪个软件好| 91国偷自产一区二区三区观看| 欧美日韩视频在线一区二区 | 在线免费观看日本一区| 日韩午夜在线播放| 国产精品狼人久久影院观看方式| 一区二区视频在线| 极品少妇xxxx偷拍精品少妇| 成人午夜视频网站| 欧美日韩精品三区| 日本一区二区三区国色天香| 亚洲制服欧美中文字幕中文字幕| 免费观看在线综合色| va亚洲va日韩不卡在线观看| 欧美丰满嫩嫩电影| 国产精品美女久久久久久久久久久 | 欧美日韩一区中文字幕| 人妖欧美一区二区| 成人av网站免费| 91精品蜜臀在线一区尤物| 国产精品视频在线看| 日本亚洲电影天堂| 91视频www| 国产日韩欧美综合在线| 亚洲v日本v欧美v久久精品| 成人免费看片app下载| 7777精品久久久大香线蕉| 亚洲四区在线观看| 国产在线观看一区二区| 欧美精品xxxxbbbb| 亚洲精品亚洲人成人网| 国产高清久久久久| 欧美一区二区三区白人| 亚洲综合偷拍欧美一区色| 国产成人精品亚洲777人妖| 宅男在线国产精品| 一区二区三区丝袜| www.性欧美| 久久嫩草精品久久久久| 视频精品一区二区| 91在线观看视频| 欧美亚洲一区二区三区四区| 欧美激情一区二区三区蜜桃视频 | 亚洲香肠在线观看| 91在线观看视频| 欧美韩国日本综合| 国产精品一卡二卡在线观看| 91精品国产全国免费观看| 亚洲高清免费观看| 欧美在线观看一区| 亚洲欧美激情小说另类| 国产精品一二三区| 精品久久人人做人人爱| 日韩高清一级片| 欧美日韩成人在线| 亚洲成av人片观看| 欧美色视频在线| 亚洲永久免费av| 欧美日韩中文精品| 天天亚洲美女在线视频| 在线亚洲精品福利网址导航| 亚洲美女在线国产| 在线看国产一区| 成人欧美一区二区三区1314| 成人午夜精品在线| www欧美成人18+| 国产aⅴ精品一区二区三区色成熟| 日韩欧美电影一区| 极品美女销魂一区二区三区免费| 日韩欧美在线观看一区二区三区| 久久国产精品露脸对白| 久久综合九色综合欧美亚洲| 精品中文字幕一区二区小辣椒 | 久久99在线观看| 久久久精品国产免大香伊| 国产成人超碰人人澡人人澡| 久久久三级国产网站| 国产suv一区二区三区88区| 欧美色视频一区| 蜜桃久久久久久| 欧美激情一区二区三区四区| 95精品视频在线| 天天综合色天天综合| 日韩免费电影一区| 成人精品国产一区二区4080| 亚洲男人的天堂在线aⅴ视频| 欧美视频自拍偷拍| 久久国产精品99久久人人澡| 中文字幕二三区不卡| 欧洲色大大久久| 美女一区二区久久| 日本一二三四高清不卡|