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

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

?? softfloat.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
    return float64_val(a)>>63;}/*----------------------------------------------------------------------------| Normalizes the subnormal double-precision floating-point value represented| by the denormalized significand `aSig'.  The normalized exponent and| significand are stored at the locations pointed to by `zExpPtr' and| `zSigPtr', respectively.*----------------------------------------------------------------------------*/static void normalizeFloat64Subnormal( bits64 aSig, int16 *zExpPtr, bits64 *zSigPtr ){    int8 shiftCount;    shiftCount = countLeadingZeros64( aSig ) - 11;    *zSigPtr = aSig<<shiftCount;    *zExpPtr = 1 - shiftCount;}/*----------------------------------------------------------------------------| Packs the sign `zSign', exponent `zExp', and significand `zSig' into a| double-precision floating-point value, returning the result.  After being| shifted into the proper positions, the three fields are simply added| together to form the result.  This means that any integer portion of `zSig'| will be added into the exponent.  Since a properly normalized significand| will have an integer portion equal to 1, the `zExp' input should be 1 less| than the desired result exponent whenever `zSig' is a complete, normalized| significand.*----------------------------------------------------------------------------*/INLINE float64 packFloat64( flag zSign, int16 zExp, bits64 zSig ){    return make_float64(        ( ( (bits64) zSign )<<63 ) + ( ( (bits64) zExp )<<52 ) + zSig);}/*----------------------------------------------------------------------------| Takes an abstract floating-point value having sign `zSign', exponent `zExp',| and significand `zSig', and returns the proper double-precision floating-| point value corresponding to the abstract input.  Ordinarily, the abstract| value is simply rounded and packed into the double-precision format, with| the inexact exception raised if the abstract input cannot be represented| exactly.  However, if the abstract value is too large, the overflow and| inexact exceptions are raised and an infinity or maximal finite value is| returned.  If the abstract value is too small, the input value is rounded| to a subnormal number, and the underflow and inexact exceptions are raised| if the abstract input cannot be represented exactly as a subnormal double-| precision floating-point number.|     The input significand `zSig' has its binary point between bits 62| and 61, which is 10 bits to the left of the usual location.  This shifted| significand must be normalized or smaller.  If `zSig' is not normalized,| `zExp' must be 0; in that case, the result returned is a subnormal number,| and it must not require rounding.  In the usual case that `zSig' is| normalized, `zExp' must be 1 less than the ``true'' floating-point exponent.| The handling of underflow and overflow follows the IEC/IEEE Standard for| Binary Floating-Point Arithmetic.*----------------------------------------------------------------------------*/static float64 roundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig STATUS_PARAM){    int8 roundingMode;    flag roundNearestEven;    int16 roundIncrement, roundBits;    flag isTiny;    roundingMode = STATUS(float_rounding_mode);    roundNearestEven = ( roundingMode == float_round_nearest_even );    roundIncrement = 0x200;    if ( ! roundNearestEven ) {        if ( roundingMode == float_round_to_zero ) {            roundIncrement = 0;        }        else {            roundIncrement = 0x3FF;            if ( zSign ) {                if ( roundingMode == float_round_up ) roundIncrement = 0;            }            else {                if ( roundingMode == float_round_down ) roundIncrement = 0;            }        }    }    roundBits = zSig & 0x3FF;    if ( 0x7FD <= (bits16) zExp ) {        if (    ( 0x7FD < zExp )             || (    ( zExp == 0x7FD )                  && ( (sbits64) ( zSig + roundIncrement ) < 0 ) )           ) {            float_raise( float_flag_overflow | float_flag_inexact STATUS_VAR);            return packFloat64( zSign, 0x7FF, - ( roundIncrement == 0 ));        }        if ( zExp < 0 ) {            isTiny =                   ( STATUS(float_detect_tininess) == float_tininess_before_rounding )                || ( zExp < -1 )                || ( zSig + roundIncrement < LIT64( 0x8000000000000000 ) );            shift64RightJamming( zSig, - zExp, &zSig );            zExp = 0;            roundBits = zSig & 0x3FF;            if ( isTiny && roundBits ) float_raise( float_flag_underflow STATUS_VAR);        }    }    if ( roundBits ) STATUS(float_exception_flags) |= float_flag_inexact;    zSig = ( zSig + roundIncrement )>>10;    zSig &= ~ ( ( ( roundBits ^ 0x200 ) == 0 ) & roundNearestEven );    if ( zSig == 0 ) zExp = 0;    return packFloat64( zSign, zExp, zSig );}/*----------------------------------------------------------------------------| Takes an abstract floating-point value having sign `zSign', exponent `zExp',| and significand `zSig', and returns the proper double-precision floating-| point value corresponding to the abstract input.  This routine is just like| `roundAndPackFloat64' except that `zSig' does not have to be normalized.| Bit 63 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''| floating-point exponent.*----------------------------------------------------------------------------*/static float64 normalizeRoundAndPackFloat64( flag zSign, int16 zExp, bits64 zSig STATUS_PARAM){    int8 shiftCount;    shiftCount = countLeadingZeros64( zSig ) - 1;    return roundAndPackFloat64( zSign, zExp - shiftCount, zSig<<shiftCount STATUS_VAR);}#ifdef FLOATX80/*----------------------------------------------------------------------------| Returns the fraction bits of the extended double-precision floating-point| value `a'.*----------------------------------------------------------------------------*/INLINE bits64 extractFloatx80Frac( floatx80 a ){    return a.low;}/*----------------------------------------------------------------------------| Returns the exponent bits of the extended double-precision floating-point| value `a'.*----------------------------------------------------------------------------*/INLINE int32 extractFloatx80Exp( floatx80 a ){    return a.high & 0x7FFF;}/*----------------------------------------------------------------------------| Returns the sign bit of the extended double-precision floating-point value| `a'.*----------------------------------------------------------------------------*/INLINE flag extractFloatx80Sign( floatx80 a ){    return a.high>>15;}/*----------------------------------------------------------------------------| Normalizes the subnormal extended double-precision floating-point value| represented by the denormalized significand `aSig'.  The normalized exponent| and significand are stored at the locations pointed to by `zExpPtr' and| `zSigPtr', respectively.*----------------------------------------------------------------------------*/static void normalizeFloatx80Subnormal( bits64 aSig, int32 *zExpPtr, bits64 *zSigPtr ){    int8 shiftCount;    shiftCount = countLeadingZeros64( aSig );    *zSigPtr = aSig<<shiftCount;    *zExpPtr = 1 - shiftCount;}/*----------------------------------------------------------------------------| Packs the sign `zSign', exponent `zExp', and significand `zSig' into an| extended double-precision floating-point value, returning the result.*----------------------------------------------------------------------------*/INLINE floatx80 packFloatx80( flag zSign, int32 zExp, bits64 zSig ){    floatx80 z;    z.low = zSig;    z.high = ( ( (bits16) zSign )<<15 ) + zExp;    return z;}/*----------------------------------------------------------------------------| Takes an abstract floating-point value having sign `zSign', exponent `zExp',| and extended significand formed by the concatenation of `zSig0' and `zSig1',| and returns the proper extended double-precision floating-point value| corresponding to the abstract input.  Ordinarily, the abstract value is| rounded and packed into the extended double-precision format, with the| inexact exception raised if the abstract input cannot be represented| exactly.  However, if the abstract value is too large, the overflow and| inexact exceptions are raised and an infinity or maximal finite value is| returned.  If the abstract value is too small, the input value is rounded to| a subnormal number, and the underflow and inexact exceptions are raised if| the abstract input cannot be represented exactly as a subnormal extended| double-precision floating-point number.|     If `roundingPrecision' is 32 or 64, the result is rounded to the same| number of bits as single or double precision, respectively.  Otherwise, the| result is rounded to the full precision of the extended double-precision| format.|     The input significand must be normalized or smaller.  If the input| significand is not normalized, `zExp' must be 0; in that case, the result| returned is a subnormal number, and it must not require rounding.  The| handling of underflow and overflow follows the IEC/IEEE Standard for Binary| Floating-Point Arithmetic.*----------------------------------------------------------------------------*/static floatx80 roundAndPackFloatx80(     int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 STATUS_PARAM){    int8 roundingMode;    flag roundNearestEven, increment, isTiny;    int64 roundIncrement, roundMask, roundBits;    roundingMode = STATUS(float_rounding_mode);    roundNearestEven = ( roundingMode == float_round_nearest_even );    if ( roundingPrecision == 80 ) goto precision80;    if ( roundingPrecision == 64 ) {        roundIncrement = LIT64( 0x0000000000000400 );        roundMask = LIT64( 0x00000000000007FF );    }    else if ( roundingPrecision == 32 ) {        roundIncrement = LIT64( 0x0000008000000000 );        roundMask = LIT64( 0x000000FFFFFFFFFF );    }    else {        goto precision80;    }    zSig0 |= ( zSig1 != 0 );    if ( ! roundNearestEven ) {        if ( roundingMode == float_round_to_zero ) {            roundIncrement = 0;        }        else {            roundIncrement = roundMask;            if ( zSign ) {                if ( roundingMode == float_round_up ) roundIncrement = 0;            }            else {                if ( roundingMode == float_round_down ) roundIncrement = 0;            }        }    }    roundBits = zSig0 & roundMask;    if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {        if (    ( 0x7FFE < zExp )             || ( ( zExp == 0x7FFE ) && ( zSig0 + roundIncrement < zSig0 ) )           ) {            goto overflow;        }        if ( zExp <= 0 ) {            isTiny =                   ( STATUS(float_detect_tininess) == float_tininess_before_rounding )                || ( zExp < 0 )                || ( zSig0 <= zSig0 + roundIncrement );            shift64RightJamming( zSig0, 1 - zExp, &zSig0 );            zExp = 0;            roundBits = zSig0 & roundMask;            if ( isTiny && roundBits ) float_raise( float_flag_underflow STATUS_VAR);            if ( roundBits ) STATUS(float_exception_flags) |= float_flag_inexact;            zSig0 += roundIncrement;            if ( (sbits64) zSig0 < 0 ) zExp = 1;            roundIncrement = roundMask + 1;            if ( roundNearestEven && ( roundBits<<1 == roundIncrement ) ) {                roundMask |= roundIncrement;            }            zSig0 &= ~ roundMask;            return packFloatx80( zSign, zExp, zSig0 );        }    }    if ( roundBits ) STATUS(float_exception_flags) |= float_flag_inexact;    zSig0 += roundIncrement;    if ( zSig0 < roundIncrement ) {        ++zExp;        zSig0 = LIT64( 0x8000000000000000 );    }    roundIncrement = roundMask + 1;    if ( roundNearestEven && ( roundBits<<1 == roundIncrement ) ) {        roundMask |= roundIncrement;    }    zSig0 &= ~ roundMask;    if ( zSig0 == 0 ) zExp = 0;    return packFloatx80( zSign, zExp, zSig0 ); precision80:    increment = ( (sbits64) zSig1 < 0 );    if ( ! roundNearestEven ) {        if ( roundingMode == float_round_to_zero ) {            increment = 0;        }        else {            if ( zSign ) {                increment = ( roundingMode == float_round_down ) && zSig1;            }            else {                increment = ( roundingMode == float_round_up ) && zSig1;            }        }    }    if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {        if (    ( 0x7FFE < zExp )             || (    ( zExp == 0x7FFE )                  && ( zSig0 == LIT64( 0xFFFFFFFFFFFFFFFF ) )                  && increment                )           ) {            roundMask = 0; overflow:            float_raise( float_flag_overflow | float_flag_inexact STATUS_VAR);            if (    ( roundingMode == float_round_to_zero )                 || ( zSign && ( roundingMode == float_round_up ) )                 || ( ! zSign && ( roundingMode == float_round_down ) )               ) {                return packFloatx80( zSign, 0x7FFE, ~ roundMask );            }            return packFloatx80( zSign, 0x7FFF, LIT64( 0x8000000000000000 ) );        }        if ( zExp <= 0 ) {            isTiny =                   ( STATUS(float_detect_tininess) == float_tininess_before_rounding )                || ( zExp < 0 )                || ! increment                || ( zSig0 < LIT64( 0xFFFFFFFFFFFFFFFF ) );            shift64ExtraRightJamming( zSig0, zSig1, 1 - zExp, &zSig0, &zSig1 );            zExp = 0;            if ( isTiny && zSig1 ) float_raise( float_flag_underflow STATUS_VAR);            if ( zSig1 ) STATUS(float_exception_flags) |= float_flag_inexact;            if ( roundNearestEven ) {                increment = ( (sbits64) zSig1 < 0 );            }            else {                if ( zSign ) {                    increment = ( roundingMode == float_round_down ) && zSig1;                }                else {                    increment = ( roundingMode == float_round_up ) && zSig1;                }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美激情一区二区| 欧美久久久久久久久中文字幕| 亚洲自拍偷拍av| 亚洲乱码国产乱码精品精小说 | 蜜桃视频在线观看一区| 亚洲综合在线第一页| 一区二区久久久久久| 亚洲欧美日韩国产综合| 亚洲精品国产成人久久av盗摄| 国产欧美日产一区| 国产精品成人在线观看| 日韩理论片在线| 亚洲444eee在线观看| 亚洲视频在线观看三级| 亚洲香肠在线观看| 欧美bbbbb| 成人av资源网站| 欧美手机在线视频| 欧美一区欧美二区| 欧美激情在线免费观看| 亚洲一区二区三区美女| 亚洲一二三四在线| 懂色av一区二区三区蜜臀| 99麻豆久久久国产精品免费 | 欧美精品在欧美一区二区少妇| 欧美男女性生活在线直播观看| 精品成人一区二区三区四区| 综合网在线视频| 男人的j进女人的j一区| 91在线视频播放| 欧美日韩免费电影| 国产精品国产三级国产aⅴ中文| 亚洲午夜激情网页| 97aⅴ精品视频一二三区| 欧美一区二区女人| 成人午夜视频网站| 日韩一区二区不卡| 91丨九色丨尤物| 日本黄色一区二区| 欧美精品一区二区三区蜜臀| 亚洲伊人色欲综合网| 欧美一区二区三区影视| 精品动漫一区二区三区在线观看| 一二三四区精品视频| 午夜伊人狠狠久久| 欧美丝袜自拍制服另类| 国产专区综合网| 欧美大肚乱孕交hd孕妇| 狠狠狠色丁香婷婷综合激情 | 久久综合色综合88| 亚洲在线视频一区| 91论坛在线播放| 亚洲国产成人va在线观看天堂 | 一区二区三区毛片| 91精品国产麻豆国产自产在线| 韩国一区二区三区| 国产精品久久久久久久裸模| 在线一区二区观看| 激情久久久久久久久久久久久久久久| 国产偷v国产偷v亚洲高清| 色婷婷综合五月| 精品一区二区在线观看| 亚洲欧美电影院| 欧美大尺度电影在线| 欧美午夜电影一区| 成人激情小说网站| 国产乱人伦偷精品视频免下载| 综合精品久久久| 久久久99精品久久| 欧美一区二区三区四区视频| 色综合久久久久久久久| 国产精品资源网站| 国内成人精品2018免费看| 亚洲线精品一区二区三区八戒| 中文字幕不卡在线播放| 欧美精品一区二区三区高清aⅴ| 欧美日韩小视频| 7777精品伊人久久久大香线蕉完整版| 大桥未久av一区二区三区中文| 国产美女主播视频一区| 精品一区二区国语对白| 久久国产夜色精品鲁鲁99| 免费人成网站在线观看欧美高清| 午夜视频在线观看一区二区| 亚洲一区二区在线免费观看视频| 亚洲柠檬福利资源导航| 亚洲老司机在线| 亚洲成人精品一区| 日韩av一级片| 国产精品一二三在| 99精品久久久久久| 欧美视频一区二| 欧美成人综合网站| 国产亚洲欧美色| 亚洲小说欧美激情另类| 蜜桃一区二区三区四区| 粉嫩蜜臀av国产精品网站| 91在线一区二区三区| 91精品国产一区二区| 国产视频一区二区在线| 亚洲啪啪综合av一区二区三区| 丝袜美腿一区二区三区| 国产一区二区精品久久| 99精品在线免费| 精品国产99国产精品| 一区二区三区不卡在线观看| 久久精品国产999大香线蕉| 色网站国产精品| 国产婷婷色一区二区三区四区| 国产精品的网站| 国产精品一级在线| 日韩精品影音先锋| 婷婷丁香久久五月婷婷| 色综合一区二区三区| 国产欧美日韩另类一区| 美女视频一区二区| 欧美伊人久久久久久午夜久久久久| 久久嫩草精品久久久精品一| 午夜视频在线观看一区二区 | 午夜精品福利在线| jlzzjlzz亚洲女人18| 久久精品亚洲乱码伦伦中文| 日本亚洲最大的色成网站www| 欧美视频在线观看一区二区| 国产精品久久久久四虎| 国产成人午夜99999| 欧美精品一区二区三区一线天视频 | 91精品国产一区二区| 亚洲美女屁股眼交| 91老师国产黑色丝袜在线| 国产精品美女久久久久av爽李琼 | 国产精品午夜电影| 国产精品久久久久久久久晋中| 宅男在线国产精品| 日本成人在线看| 欧美一区二区黄色| 精品无人码麻豆乱码1区2区| 久久婷婷久久一区二区三区| 精品在线一区二区三区| 国产嫩草影院久久久久| 风间由美性色一区二区三区| 自拍偷在线精品自拍偷无码专区| 波多野结衣91| 午夜精品一区二区三区三上悠亚| 欧美视频在线播放| 国产福利电影一区二区三区| 亚洲特级片在线| 国产香蕉久久精品综合网| 久久精品99国产精品| 99久久婷婷国产综合精品| 欧美精品一区二区久久久| 亚洲妇熟xx妇色黄| 99精品欧美一区二区三区综合在线| 日韩精品在线一区二区| 亚洲国产岛国毛片在线| 国产成人免费xxxxxxxx| 伊人一区二区三区| 国产亚洲一二三区| 91福利资源站| 国产大陆a不卡| 青青国产91久久久久久| 亚洲欧洲成人精品av97| 欧美成va人片在线观看| 欧美网站大全在线观看| 国产福利一区在线| 久久精品国产精品亚洲综合| 亚洲女同女同女同女同女同69| 日韩欧美激情四射| 成人综合在线观看| 九色综合国产一区二区三区| 日韩av电影免费观看高清完整版 | 欧洲中文字幕精品| 不卡影院免费观看| 国产精品99久久久久久久女警 | 欧美精品一二三| 欧美亚洲日本国产| 日本久久精品电影| 91成人免费电影| 91精品办公室少妇高潮对白| 成人禁用看黄a在线| 成人精品一区二区三区四区| 成人三级伦理片| 波多野结衣一区二区三区 | 亚洲成人久久影院| 爽好久久久欧美精品| 美国毛片一区二区三区| 黑人精品欧美一区二区蜜桃| 国产一区二区三区日韩| 国产91在线|亚洲| 91久久一区二区| 精品精品国产高清a毛片牛牛| 久久久青草青青国产亚洲免观| 久久老女人爱爱| 亚洲人成电影网站色mp4| 日本成人在线一区| 成人精品免费看| 精品久久久久久久久久久院品网| 久久亚洲一级片| 视频一区中文字幕国产| 国产精品综合二区|