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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? softfloat-specialize

?? sun2,sun3,sparcstation2 emulator
??
?? 第 1 頁 / 共 2 頁
字號:

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

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 );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线视频网站| 在线亚洲一区二区| 日本乱码高清不卡字幕| 日韩一级高清毛片| 亚洲色图丝袜美腿| 国产成人亚洲综合a∨婷婷| 欧美日免费三级在线| 国产精品第四页| 韩国在线一区二区| 欧美精品丝袜中出| 夜夜操天天操亚洲| 波多野结衣中文字幕一区二区三区| 欧美一区二区三区思思人| 亚洲黄色免费电影| 成人a级免费电影| 久久久夜色精品亚洲| 男女激情视频一区| 91精品久久久久久蜜臀| 亚洲老司机在线| 99久久99久久综合| 国产午夜亚洲精品午夜鲁丝片| 美女视频黄频大全不卡视频在线播放 | 激情欧美一区二区| 日韩一区二区电影| 日韩av一级片| 欧美精品久久久久久久多人混战| 日韩一级片在线播放| 婷婷六月综合网| 欧美日韩aaa| 日本欧美在线观看| 91精品国产综合久久久久久久| 一级中文字幕一区二区| 色婷婷国产精品综合在线观看| 中文字幕在线一区免费| 波多野结衣亚洲| 亚洲精品一二三| 欧美性大战久久| 午夜精品久久久久久不卡8050| 精品视频一区 二区 三区| 亚洲主播在线播放| 欧美精品欧美精品系列| 婷婷一区二区三区| 欧美v亚洲v综合ⅴ国产v| 久久精品国产一区二区| 久久婷婷色综合| 国产99久久精品| 亚洲三级久久久| 欧美三级电影在线观看| 免费人成精品欧美精品| 久久精品视频在线看| av一区二区三区四区| 亚洲一区二区在线播放相泽| 91精品国产综合久久久久久漫画| 寂寞少妇一区二区三区| 中文字幕免费不卡| 91福利在线看| 偷拍与自拍一区| 久久奇米777| 91久久久免费一区二区| 青青草原综合久久大伊人精品优势 | 欧美日韩不卡一区| 经典一区二区三区| 亚洲美女在线国产| 欧美一级日韩免费不卡| 成人av在线资源网站| 性感美女久久精品| 国产天堂亚洲国产碰碰| 欧美中文字幕一区二区三区| 精品一二三四区| 亚洲综合一二三区| 久久婷婷色综合| 欧美视频一区二区三区在线观看 | 成人美女在线观看| 亚洲在线观看免费| 国产网红主播福利一区二区| 91成人在线精品| 国产一区二区不卡老阿姨| 亚洲伦理在线精品| 久久蜜桃香蕉精品一区二区三区| 91视频91自| 国产传媒一区在线| 天堂av在线一区| 亚洲色图一区二区| 久久综合一区二区| 91精品国产全国免费观看| 91亚洲午夜精品久久久久久| 韩国av一区二区三区在线观看| 一区二区三区视频在线看| 久久亚洲精品小早川怜子| 欧美另类变人与禽xxxxx| www.欧美色图| 国产九色sp调教91| 久久精品国产亚洲aⅴ | 欧美一区二区三区喷汁尤物| 成人app软件下载大全免费| 韩国精品免费视频| 免费观看日韩av| 午夜av区久久| 亚洲成人7777| 一区二区三区在线观看网站| 国产精品美女久久久久久久| 久久亚洲综合色| 欧美草草影院在线视频| 欧美一区二区精美| 在线播放中文字幕一区| 欧美日韩亚州综合| 色婷婷激情一区二区三区| 97久久精品人人做人人爽50路| 粉嫩aⅴ一区二区三区四区| 国产在线精品免费av| 狠狠色丁香九九婷婷综合五月| 美女一区二区久久| 蜜臀va亚洲va欧美va天堂| 免费在线观看不卡| 久久精品国产澳门| 久久精品国产秦先生| 蜜臀av一区二区在线免费观看| 另类专区欧美蜜桃臀第一页| 久久精品国产免费| 国产精品一区在线观看乱码 | 美腿丝袜亚洲综合| 日韩成人午夜精品| 另类小说欧美激情| 国产酒店精品激情| 粉嫩一区二区三区性色av| youjizz久久| 91麻豆精东视频| 欧美嫩在线观看| 精品国产自在久精品国产| 久久精品网站免费观看| 国产精品传媒视频| 一区二区在线观看视频在线观看| 亚洲国产毛片aaaaa无费看| 奇米一区二区三区av| 精品一区二区三区免费毛片爱 | 成人免费高清在线| 91麻豆蜜桃一区二区三区| 欧美日韩在线三级| 日韩欧美国产精品一区| 国产欧美va欧美不卡在线| 亚洲精品一二三四区| 日韩综合小视频| 国产麻豆精品一区二区| 91免费观看国产| 91麻豆精品91久久久久久清纯 | 精品久久国产字幕高潮| 国产精品毛片高清在线完整版| 一级特黄大欧美久久久| 老司机午夜精品99久久| 99re亚洲国产精品| 欧美一区二区在线播放| 国产日韩精品视频一区| 亚洲成av人片一区二区| 高清beeg欧美| 777a∨成人精品桃花网| 国产精品天干天干在线综合| 五月天丁香久久| 99re亚洲国产精品| 精品久久人人做人人爽| 亚洲三级免费电影| 久久精品国产第一区二区三区| 99国产精品久久久久久久久久久| 欧美一区二区三区免费大片| 亚洲欧美自拍偷拍色图| 蜜桃视频一区二区三区在线观看| 91免费版在线看| 久久久国际精品| 亚洲电影一区二区| av中文字幕一区| 欧美本精品男人aⅴ天堂| 亚洲国产美女搞黄色| 不卡视频免费播放| 久久久三级国产网站| 日本不卡在线视频| 91国产免费看| 亚洲欧美日韩国产成人精品影院| 韩国成人在线视频| 欧美一二三四在线| 国v精品久久久网| 欧美久久久久久蜜桃| 亚洲美女少妇撒尿| 成人黄色网址在线观看| 久久噜噜亚洲综合| 精油按摩中文字幕久久| 91精品国产高清一区二区三区蜜臀 | 国产乱码精品一区二区三区五月婷| 欧美日韩亚洲国产综合| 亚洲柠檬福利资源导航| 成人av网站免费| 精品福利一区二区三区 | 亚洲伦理在线免费看| 丁香六月综合激情| 久久综合色播五月| 美腿丝袜亚洲三区| 日韩一二三区不卡| 六月婷婷色综合| 精品国产一区二区精华| 另类的小说在线视频另类成人小视频在线| 欧美丰满少妇xxxxx高潮对白 | 高清在线观看日韩|