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

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

?? softfloat.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
            }            if ( increment ) {                ++zSig0;                zSig0 &=                    ~ ( ( (bits64) ( zSig1<<1 ) == 0 ) & roundNearestEven );                if ( (sbits64) zSig0 < 0 ) zExp = 1;            }            return packFloatx80( zSign, zExp, zSig0 );        }    }    if ( zSig1 ) STATUS(float_exception_flags) |= float_flag_inexact;    if ( increment ) {        ++zSig0;        if ( zSig0 == 0 ) {            ++zExp;            zSig0 = LIT64( 0x8000000000000000 );        }        else {            zSig0 &= ~ ( ( (bits64) ( zSig1<<1 ) == 0 ) & roundNearestEven );        }    }    else {        if ( zSig0 == 0 ) zExp = 0;    }    return packFloatx80( zSign, zExp, zSig0 );}/*----------------------------------------------------------------------------| Takes an abstract floating-point value having sign `zSign', exponent| `zExp', and significand formed by the concatenation of `zSig0' and `zSig1',| and returns the proper extended double-precision floating-point value| corresponding to the abstract input.  This routine is just like| `roundAndPackFloatx80' except that the input significand does not have to be| normalized.*----------------------------------------------------------------------------*/static floatx80 normalizeRoundAndPackFloatx80(     int8 roundingPrecision, flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 STATUS_PARAM){    int8 shiftCount;    if ( zSig0 == 0 ) {        zSig0 = zSig1;        zSig1 = 0;        zExp -= 64;    }    shiftCount = countLeadingZeros64( zSig0 );    shortShift128Left( zSig0, zSig1, shiftCount, &zSig0, &zSig1 );    zExp -= shiftCount;    return        roundAndPackFloatx80( roundingPrecision, zSign, zExp, zSig0, zSig1 STATUS_VAR);}#endif#ifdef FLOAT128/*----------------------------------------------------------------------------| Returns the least-significant 64 fraction bits of the quadruple-precision| floating-point value `a'.*----------------------------------------------------------------------------*/INLINE bits64 extractFloat128Frac1( float128 a ){    return a.low;}/*----------------------------------------------------------------------------| Returns the most-significant 48 fraction bits of the quadruple-precision| floating-point value `a'.*----------------------------------------------------------------------------*/INLINE bits64 extractFloat128Frac0( float128 a ){    return a.high & LIT64( 0x0000FFFFFFFFFFFF );}/*----------------------------------------------------------------------------| Returns the exponent bits of the quadruple-precision floating-point value| `a'.*----------------------------------------------------------------------------*/INLINE int32 extractFloat128Exp( float128 a ){    return ( a.high>>48 ) & 0x7FFF;}/*----------------------------------------------------------------------------| Returns the sign bit of the quadruple-precision floating-point value `a'.*----------------------------------------------------------------------------*/INLINE flag extractFloat128Sign( float128 a ){    return a.high>>63;}/*----------------------------------------------------------------------------| Normalizes the subnormal quadruple-precision floating-point value| represented by the denormalized significand formed by the concatenation of| `aSig0' and `aSig1'.  The normalized exponent is stored at the location| pointed to by `zExpPtr'.  The most significant 49 bits of the normalized| significand are stored at the location pointed to by `zSig0Ptr', and the| least significant 64 bits of the normalized significand are stored at the| location pointed to by `zSig1Ptr'.*----------------------------------------------------------------------------*/static void normalizeFloat128Subnormal(     bits64 aSig0,     bits64 aSig1,     int32 *zExpPtr,     bits64 *zSig0Ptr,     bits64 *zSig1Ptr ){    int8 shiftCount;    if ( aSig0 == 0 ) {        shiftCount = countLeadingZeros64( aSig1 ) - 15;        if ( shiftCount < 0 ) {            *zSig0Ptr = aSig1>>( - shiftCount );            *zSig1Ptr = aSig1<<( shiftCount & 63 );        }        else {            *zSig0Ptr = aSig1<<shiftCount;            *zSig1Ptr = 0;        }        *zExpPtr = - shiftCount - 63;    }    else {        shiftCount = countLeadingZeros64( aSig0 ) - 15;        shortShift128Left( aSig0, aSig1, shiftCount, zSig0Ptr, zSig1Ptr );        *zExpPtr = 1 - shiftCount;    }}/*----------------------------------------------------------------------------| Packs the sign `zSign', the exponent `zExp', and the significand formed| by the concatenation of `zSig0' and `zSig1' into a quadruple-precision| floating-point value, returning the result.  After being shifted into the| proper positions, the three fields `zSign', `zExp', and `zSig0' are simply| added together to form the most significant 32 bits of the result.  This| means that any integer portion of `zSig0' 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 `zSig0' and `zSig1' concatenated form a complete, normalized| significand.*----------------------------------------------------------------------------*/INLINE float128 packFloat128( flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 ){    float128 z;    z.low = zSig1;    z.high = ( ( (bits64) zSign )<<63 ) + ( ( (bits64) zExp )<<48 ) + zSig0;    return z;}/*----------------------------------------------------------------------------| Takes an abstract floating-point value having sign `zSign', exponent `zExp',| and extended significand formed by the concatenation of `zSig0', `zSig1',| and `zSig2', and returns the proper quadruple-precision floating-point value| corresponding to the abstract input.  Ordinarily, the abstract value is| simply rounded and packed into the quadruple-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 quadruple-| precision floating-point number.|     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.  In the| usual case that the input significand 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 float128 roundAndPackFloat128(     flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1, bits64 zSig2 STATUS_PARAM){    int8 roundingMode;    flag roundNearestEven, increment, isTiny;    roundingMode = STATUS(float_rounding_mode);    roundNearestEven = ( roundingMode == float_round_nearest_even );    increment = ( (sbits64) zSig2 < 0 );    if ( ! roundNearestEven ) {        if ( roundingMode == float_round_to_zero ) {            increment = 0;        }        else {            if ( zSign ) {                increment = ( roundingMode == float_round_down ) && zSig2;            }            else {                increment = ( roundingMode == float_round_up ) && zSig2;            }        }    }    if ( 0x7FFD <= (bits32) zExp ) {        if (    ( 0x7FFD < zExp )             || (    ( zExp == 0x7FFD )                  && eq128(                         LIT64( 0x0001FFFFFFFFFFFF ),                         LIT64( 0xFFFFFFFFFFFFFFFF ),                         zSig0,                         zSig1                     )                  && increment                )           ) {            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                    packFloat128(                        zSign,                        0x7FFE,                        LIT64( 0x0000FFFFFFFFFFFF ),                        LIT64( 0xFFFFFFFFFFFFFFFF )                    );            }            return packFloat128( zSign, 0x7FFF, 0, 0 );        }        if ( zExp < 0 ) {            isTiny =                   ( STATUS(float_detect_tininess) == float_tininess_before_rounding )                || ( zExp < -1 )                || ! increment                || lt128(                       zSig0,                       zSig1,                       LIT64( 0x0001FFFFFFFFFFFF ),                       LIT64( 0xFFFFFFFFFFFFFFFF )                   );            shift128ExtraRightJamming(                zSig0, zSig1, zSig2, - zExp, &zSig0, &zSig1, &zSig2 );            zExp = 0;            if ( isTiny && zSig2 ) float_raise( float_flag_underflow STATUS_VAR);            if ( roundNearestEven ) {                increment = ( (sbits64) zSig2 < 0 );            }            else {                if ( zSign ) {                    increment = ( roundingMode == float_round_down ) && zSig2;                }                else {                    increment = ( roundingMode == float_round_up ) && zSig2;                }            }        }    }    if ( zSig2 ) STATUS(float_exception_flags) |= float_flag_inexact;    if ( increment ) {        add128( zSig0, zSig1, 0, 1, &zSig0, &zSig1 );        zSig1 &= ~ ( ( zSig2 + zSig2 == 0 ) & roundNearestEven );    }    else {        if ( ( zSig0 | zSig1 ) == 0 ) zExp = 0;    }    return packFloat128( zSign, zExp, zSig0, zSig1 );}/*----------------------------------------------------------------------------| Takes an abstract floating-point value having sign `zSign', exponent `zExp',| and significand formed by the concatenation of `zSig0' and `zSig1', and| returns the proper quadruple-precision floating-point value corresponding| to the abstract input.  This routine is just like `roundAndPackFloat128'| except that the input significand has fewer bits and does not have to be| normalized.  In all cases, `zExp' must be 1 less than the ``true'' floating-| point exponent.*----------------------------------------------------------------------------*/static float128 normalizeRoundAndPackFloat128(     flag zSign, int32 zExp, bits64 zSig0, bits64 zSig1 STATUS_PARAM){    int8 shiftCount;    bits64 zSig2;    if ( zSig0 == 0 ) {        zSig0 = zSig1;        zSig1 = 0;        zExp -= 64;    }    shiftCount = countLeadingZeros64( zSig0 ) - 15;    if ( 0 <= shiftCount ) {        zSig2 = 0;        shortShift128Left( zSig0, zSig1, shiftCount, &zSig0, &zSig1 );    }    else {        shift128ExtraRightJamming(            zSig0, zSig1, 0, - shiftCount, &zSig0, &zSig1, &zSig2 );    }    zExp -= shiftCount;    return roundAndPackFloat128( zSign, zExp, zSig0, zSig1, zSig2 STATUS_VAR);}#endif/*----------------------------------------------------------------------------| Returns the result of converting the 32-bit two's complement integer `a'| to the single-precision floating-point format.  The conversion is performed| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.*----------------------------------------------------------------------------*/float32 int32_to_float32( int32 a STATUS_PARAM ){    flag zSign;    if ( a == 0 ) return float32_zero;    if ( a == (sbits32) 0x80000000 ) return packFloat32( 1, 0x9E, 0 );    zSign = ( a < 0 );    return normalizeRoundAndPackFloat32( zSign, 0x9C, zSign ? - a : a STATUS_VAR );}/*----------------------------------------------------------------------------| Returns the result of converting the 32-bit two's complement integer `a'| to the double-precision floating-point format.  The conversion is performed| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.*----------------------------------------------------------------------------*/float64 int32_to_float64( int32 a STATUS_PARAM ){    flag zSign;    uint32 absA;    int8 shiftCount;    bits64 zSig;    if ( a == 0 ) return float64_zero;    zSign = ( a < 0 );    absA = zSign ? - a : a;    shiftCount = countLeadingZeros32( absA ) + 21;    zSig = absA;    return packFloat64( zSign, 0x432 - shiftCount, zSig<<shiftCount );}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91美女在线观看| 在线观看免费一区| 亚洲国产综合人成综合网站| 日韩精品自拍偷拍| 色先锋资源久久综合| 国内精品自线一区二区三区视频| 亚洲免费av观看| 久久综合九色综合97_久久久| 日本道在线观看一区二区| 美女免费视频一区| 亚洲一级在线观看| 国产精品久久久久久久裸模| 日韩精品专区在线| 欧美日韩精品一区二区在线播放| 成人va在线观看| 黄网站免费久久| 人人狠狠综合久久亚洲| 一个色综合网站| 中文字幕在线观看一区二区| 欧美精品一区二区三区四区| 欧美电影一区二区三区| 91国偷自产一区二区三区观看| 成人自拍视频在线观看| 精品一区二区三区影院在线午夜| 亚洲电影在线播放| 亚洲黄色小视频| 亚洲精品中文在线影院| 国产精品麻豆久久久| 久久亚洲二区三区| 精品国产一二三| 7777女厕盗摄久久久| 欧美日韩成人一区二区| 欧美在线你懂的| 色天使色偷偷av一区二区| 九九精品视频在线看| 亚洲18女电影在线观看| 国产午夜三级一区二区三| 日韩视频免费观看高清在线视频| 成人a级免费电影| av在线不卡免费看| 91丝袜美腿高跟国产极品老师| 丁香六月综合激情| 国产成人亚洲综合a∨婷婷图片| 国产一区二区三区在线看麻豆| 久久99精品国产91久久来源| 麻豆一区二区三| 麻豆一区二区三| 国产九九视频一区二区三区| 国产精品一二三区| 国产传媒欧美日韩成人| 国产成人自拍网| 91影视在线播放| 欧美在线观看禁18| 欧美精品精品一区| 日韩欧美电影在线| 久久久久久夜精品精品免费| 国产女人18水真多18精品一级做 | 国产夫妻精品视频| 成人永久免费视频| 91欧美激情一区二区三区成人| 色婷婷av一区二区三区gif | 日韩欧美一二区| 久久久久国产精品厨房| 国产精品久久久久久久久免费桃花| 中文字幕在线一区免费| 一区二区三区色| 免费在线观看精品| 国产成人av电影在线观看| 91在线小视频| 6080亚洲精品一区二区| 精品成a人在线观看| 国产精品毛片久久久久久| 亚洲国产一区二区三区 | 国产成人午夜精品5599| jlzzjlzz亚洲日本少妇| 欧美唯美清纯偷拍| 久久久久97国产精华液好用吗| **性色生活片久久毛片| 视频精品一区二区| 国产不卡在线播放| 欧洲在线/亚洲| 久久久欧美精品sm网站| 一区二区三区蜜桃| 国产最新精品精品你懂的| 色呦呦国产精品| 亚洲精品一区在线观看| 亚洲欧美日韩小说| 国产在线精品一区在线观看麻豆| 91视频在线观看免费| 欧美一级爆毛片| 亚洲精品国产a久久久久久| 久久精品国产99| 91成人在线免费观看| 久久综合色播五月| 亚洲成人一区在线| 国产成+人+日韩+欧美+亚洲| 3d动漫精品啪啪一区二区竹菊 | 亚洲精品日韩综合观看成人91| 久久国产尿小便嘘嘘| 在线中文字幕一区二区| 国产无一区二区| 美女免费视频一区| 欧美视频一区二区三区| 久久久三级国产网站| 午夜影院久久久| www.色精品| 久久精品欧美日韩精品| 日韩精品高清不卡| 91国在线观看| 亚洲同性gay激情无套| 国产真实乱偷精品视频免| 91精品久久久久久久99蜜桃| 亚洲欧洲一区二区在线播放| 韩国午夜理伦三级不卡影院| 8x8x8国产精品| 夜夜亚洲天天久久| 91香蕉视频在线| 日本一区二区三区视频视频| 蜜臂av日日欢夜夜爽一区| 欧美日韩中文国产| 一区二区三区毛片| 91麻豆国产自产在线观看| 中文字幕的久久| 国产一本一道久久香蕉| 日韩欧美国产午夜精品| 亚洲成av人片一区二区梦乃 | 99精品视频在线播放观看| 亚洲精品一区二区三区蜜桃下载 | 6080午夜不卡| 日韩av中文字幕一区二区三区| 色综合久久久久综合99| 国产精品热久久久久夜色精品三区| 国产一区二区不卡老阿姨| 精品国产1区2区3区| 黑人精品欧美一区二区蜜桃| 欧美电视剧在线看免费| 麻豆91在线观看| 欧美成人a∨高清免费观看| 狂野欧美性猛交blacked| 日韩一区二区三区观看| 青青草97国产精品免费观看无弹窗版| 欧美精品v国产精品v日韩精品| 视频一区免费在线观看| 欧美一区二区三区免费| 免费成人性网站| 精品99久久久久久| 国产成人精品免费在线| 国产日韩欧美高清在线| 成人开心网精品视频| 亚洲色图视频网| 欧美日韩亚洲丝袜制服| 欧美aaa在线| 2019国产精品| av中文一区二区三区| 一区二区三区在线免费| 色嗨嗨av一区二区三区| 午夜精品久久久久久久久久| 欧美一区二区成人6969| 国产自产视频一区二区三区| 国产精品免费看片| 色哟哟一区二区在线观看| 亚洲国产乱码最新视频 | 激情偷乱视频一区二区三区| 国产色综合一区| 一本大道综合伊人精品热热 | 国产1区2区3区精品美女| 成人免费小视频| 欧美蜜桃一区二区三区| 毛片基地黄久久久久久天堂| 国产亚洲成年网址在线观看| 91伊人久久大香线蕉| 免费看欧美美女黄的网站| 久久综合色8888| 在线日韩av片| 国产精品影视在线观看| 一区二区三区高清在线| 日韩一区二区三区在线观看| 成人激情小说网站| 日韩在线观看一区二区| 久久亚洲精品小早川怜子| 色婷婷久久久综合中文字幕 | 麻豆国产一区二区| 日韩一区中文字幕| 日韩女优毛片在线| 99精品黄色片免费大全| 欧美aaaaaa午夜精品| 亚洲欧美一区二区久久| 欧美变态口味重另类| 一本到不卡精品视频在线观看| 韩国v欧美v日本v亚洲v| 亚洲福利视频三区| 亚洲国产精品传媒在线观看| 在线播放亚洲一区| 99精品国产一区二区三区不卡| 麻豆久久一区二区| 亚洲精品日韩专区silk| 久久久影视传媒| 日韩一级大片在线| 日本韩国一区二区三区| 成人性生交大片免费看中文|