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

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

?? softfloat-specialize

?? <Floating Point Unit Core> fpupack.vhd pre_norm_addsub.vhd addsub_28.vhd post_norm_addsub.
??
?? 第 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一区二区三区免费野_久草精品视频
91一区在线观看| av电影天堂一区二区在线 | 精品少妇一区二区三区日产乱码| 91在线国内视频| 不卡视频一二三四| 色噜噜夜夜夜综合网| 欧洲精品在线观看| 欧美性xxxxx极品少妇| 欧洲日韩一区二区三区| 欧美日韩成人综合| 欧美电视剧在线看免费| 久久久一区二区| 久久久久久免费毛片精品| 欧美韩日一区二区三区四区| 日本一区免费视频| 一区二区三区四区精品在线视频 | 人人狠狠综合久久亚洲| 亚洲高清久久久| 免费精品99久久国产综合精品| 日韩电影网1区2区| 国产曰批免费观看久久久| 国产成人自拍网| 在线视频观看一区| 欧美一级夜夜爽| 久久精品日产第一区二区三区高清版 | 国产91丝袜在线播放| av一二三不卡影片| 欧美日韩一区二区电影| 日韩视频一区二区在线观看| 日韩精品一区国产麻豆| 久久九九久精品国产免费直播| 亚洲日本丝袜连裤袜办公室| 日韩在线a电影| 91亚洲国产成人精品一区二区三| 欧美一区二区三区婷婷月色| 国产精品乱码人人做人人爱 | 久久99精品一区二区三区三区| 国产精品一二三区| 欧美日韩五月天| 国产网站一区二区三区| 一区二区三区在线播| 久久成人免费电影| 欧美性色欧美a在线播放| 欧美精品一区二区高清在线观看| 中文字幕一区二区日韩精品绯色| 日av在线不卡| 91成人网在线| 国产精品黄色在线观看| 日韩经典一区二区| 91在线高清观看| 亚洲精品在线一区二区| 亚洲一区av在线| 91小视频免费观看| 欧美韩国日本不卡| 青青青伊人色综合久久| 欧美午夜影院一区| 伊人婷婷欧美激情| 波波电影院一区二区三区| 日韩一卡二卡三卡| 天天综合天天综合色| 色婷婷av一区二区三区大白胸| 国产日韩欧美a| 国产精品综合久久| 日韩一区二区三区在线视频| 亚洲激情欧美激情| 一本大道久久a久久精品综合| 久久久99精品免费观看| 国产麻豆一精品一av一免费 | 欧美日韩一区二区三区不卡| 亚洲美女淫视频| 91在线国产福利| 亚洲视频一区在线观看| 成人午夜视频在线观看| 久久精品一区四区| 精品一区二区久久久| 日韩一级精品视频在线观看| 天堂久久一区二区三区| 欧美精品久久天天躁| 日韩精品亚洲专区| 欧美精品高清视频| 免费在线观看精品| 日韩精品一区二区在线观看| 九九国产精品视频| 久久精品一二三| av成人免费在线| 一区二区三区av电影 | xvideos.蜜桃一区二区| 国内成+人亚洲+欧美+综合在线| 精品日韩一区二区| 成人午夜短视频| 亚洲精品美国一| 欧美蜜桃一区二区三区 | 国产视频一区二区三区在线观看| 懂色av中文字幕一区二区三区| 成人免费在线视频观看| 欧美三级韩国三级日本一级| 视频一区二区不卡| 久久精品无码一区二区三区| 99久久国产综合精品女不卡| 亚洲第一二三四区| 亚洲精品在线观| 色综合网站在线| 午夜精品久久一牛影视| 欧美成人精品二区三区99精品| 国产91对白在线观看九色| 亚洲综合视频在线观看| 欧美成人video| 91黄色小视频| 国产在线精品一区二区三区不卡| 欧美国产禁国产网站cc| 欧美系列亚洲系列| 国产不卡在线播放| 亚洲高清不卡在线观看| 久久久久国产精品人| 91福利在线导航| 国产乱码字幕精品高清av| 夜夜夜精品看看| 久久无码av三级| 在线亚洲一区观看| 国产成人超碰人人澡人人澡| 亚洲国产精品自拍| 中文字幕精品一区二区精品绿巨人| 欧美私模裸体表演在线观看| 韩国一区二区视频| 亚洲第一二三四区| 国产精品久久久久一区二区三区共| 欧美色中文字幕| www.欧美色图| 国产精选一区二区三区| 美女性感视频久久| 亚洲成人资源网| 亚洲乱码国产乱码精品精小说| 久久亚洲私人国产精品va媚药| 7777精品伊人久久久大香线蕉完整版 | 欧美在线高清视频| 国产91精品一区二区| 老司机精品视频线观看86| 亚洲人成小说网站色在线 | 在线观看网站黄不卡| 国产精品2024| 精品一区二区三区视频| 性欧美大战久久久久久久久| 亚洲天堂av老司机| 国产精品全国免费观看高清| 欧美精品一区二区三区高清aⅴ| 欧美日韩国产电影| 欧美精品少妇一区二区三区| 日本韩国视频一区二区| 91国模大尺度私拍在线视频| 在线视频一区二区免费| 99久精品国产| 972aa.com艺术欧美| av在线播放不卡| 97久久精品人人做人人爽50路 | 亚洲成人精品影院| 亚洲日本一区二区| 亚洲视频电影在线| 一区二区三区美女| 亚洲一区二区精品久久av| 一区二区视频在线| 夜夜嗨av一区二区三区四季av| 亚洲视频每日更新| 亚洲va欧美va人人爽| 五月激情综合婷婷| 麻豆一区二区三区| 精品一区二区三区视频在线观看 | 欧美国产禁国产网站cc| 亚洲视频免费看| 午夜精品久久久久久久久| 日韩精品欧美精品| 国产久卡久卡久卡久卡视频精品| 国产一区视频导航| 91亚洲男人天堂| 91精品国产麻豆| 久久久91精品国产一区二区精品 | 国产福利91精品一区二区三区| 国产精品一级在线| 91精品福利视频| 欧美日韩精品高清| 国产亚洲一区二区三区在线观看| 亚洲欧美成aⅴ人在线观看| 天天亚洲美女在线视频| 国产成人三级在线观看| 欧美亚洲自拍偷拍| 精品免费日韩av| 亚洲男人天堂一区| 久草在线在线精品观看| 成人午夜av电影| 欧美精品123区| 国产精品日日摸夜夜摸av| 天堂蜜桃91精品| 青娱乐精品视频| 99久久精品国产导航| 亚洲精品在线观看网站| 亚洲资源中文字幕| 国产不卡在线播放| 日韩欧美一二三四区| 亚洲人成精品久久久久久| 精品一区二区三区的国产在线播放 | 91蜜桃免费观看视频|