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

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

?? softfloat-macros

?? sun2,sun3,sparcstation2 emulator
??
?? 第 1 頁 / 共 2 頁
字號:
/*----------------------------------------------------------------------------
| Subtracts the 64-bit value formed by concatenating `b0' and `b1' from the
| 64-bit value formed by concatenating `a0' and `a1'.  Subtraction is modulo
| 2^64, so any borrow out (carry out) is lost.  The result is broken into two
| 32-bit pieces which are stored at the locations pointed to by `z0Ptr' and
| `z1Ptr'.
*----------------------------------------------------------------------------*/

INLINE void
 sub64(
     bits32 a0, bits32 a1, bits32 b0, bits32 b1, bits32 *z0Ptr, bits32 *z1Ptr )
{

    *z1Ptr = a1 - b1;
    *z0Ptr = a0 - b0 - ( a1 < b1 );

}

/*----------------------------------------------------------------------------
| Subtracts the 96-bit value formed by concatenating `b0', `b1', and `b2' from
| the 96-bit value formed by concatenating `a0', `a1', and `a2'.  Subtraction
| is modulo 2^96, so any borrow out (carry out) is lost.  The result is broken
| into three 32-bit pieces which are stored at the locations pointed to by
| `z0Ptr', `z1Ptr', and `z2Ptr'.
*----------------------------------------------------------------------------*/

INLINE void
 sub96(
     bits32 a0,
     bits32 a1,
     bits32 a2,
     bits32 b0,
     bits32 b1,
     bits32 b2,
     bits32 *z0Ptr,
     bits32 *z1Ptr,
     bits32 *z2Ptr
 )
{
    bits32 z0, z1, z2;
    int8 borrow0, borrow1;

    z2 = a2 - b2;
    borrow1 = ( a2 < b2 );
    z1 = a1 - b1;
    borrow0 = ( a1 < b1 );
    z0 = a0 - b0;
    z0 -= ( z1 < borrow1 );
    z1 -= borrow1;
    z0 -= borrow0;
    *z2Ptr = z2;
    *z1Ptr = z1;
    *z0Ptr = z0;

}

/*----------------------------------------------------------------------------
| Multiplies `a' by `b' to obtain a 64-bit product.  The product is broken
| into two 32-bit pieces which are stored at the locations pointed to by
| `z0Ptr' and `z1Ptr'.
*----------------------------------------------------------------------------*/

INLINE void mul32To64( bits32 a, bits32 b, bits32 *z0Ptr, bits32 *z1Ptr )
{
    bits16 aHigh, aLow, bHigh, bLow;
    bits32 z0, zMiddleA, zMiddleB, z1;

    aLow = a;
    aHigh = a>>16;
    bLow = b;
    bHigh = b>>16;
    z1 = ( (bits32) aLow ) * bLow;
    zMiddleA = ( (bits32) aLow ) * bHigh;
    zMiddleB = ( (bits32) aHigh ) * bLow;
    z0 = ( (bits32) aHigh ) * bHigh;
    zMiddleA += zMiddleB;
    z0 += ( ( (bits32) ( zMiddleA < zMiddleB ) )<<16 ) + ( zMiddleA>>16 );
    zMiddleA <<= 16;
    z1 += zMiddleA;
    z0 += ( z1 < zMiddleA );
    *z1Ptr = z1;
    *z0Ptr = z0;

}

/*----------------------------------------------------------------------------
| Multiplies the 64-bit value formed by concatenating `a0' and `a1' by `b'
| to obtain a 96-bit product.  The product is broken into three 32-bit pieces
| which are stored at the locations pointed to by `z0Ptr', `z1Ptr', and
| `z2Ptr'.
*----------------------------------------------------------------------------*/

INLINE void
 mul64By32To96(
     bits32 a0,
     bits32 a1,
     bits32 b,
     bits32 *z0Ptr,
     bits32 *z1Ptr,
     bits32 *z2Ptr
 )
{
    bits32 z0, z1, z2, more1;

    mul32To64( a1, b, &z1, &z2 );
    mul32To64( a0, b, &z0, &more1 );
    add64( z0, more1, 0, z1, &z0, &z1 );
    *z2Ptr = z2;
    *z1Ptr = z1;
    *z0Ptr = z0;

}

/*----------------------------------------------------------------------------
| Multiplies the 64-bit value formed by concatenating `a0' and `a1' to the
| 64-bit value formed by concatenating `b0' and `b1' to obtain a 128-bit
| product.  The product is broken into four 32-bit pieces which are stored at
| the locations pointed to by `z0Ptr', `z1Ptr', `z2Ptr', and `z3Ptr'.
*----------------------------------------------------------------------------*/

INLINE void
 mul64To128(
     bits32 a0,
     bits32 a1,
     bits32 b0,
     bits32 b1,
     bits32 *z0Ptr,
     bits32 *z1Ptr,
     bits32 *z2Ptr,
     bits32 *z3Ptr
 )
{
    bits32 z0, z1, z2, z3;
    bits32 more1, more2;

    mul32To64( a1, b1, &z2, &z3 );
    mul32To64( a1, b0, &z1, &more2 );
    add64( z1, more2, 0, z2, &z1, &z2 );
    mul32To64( a0, b0, &z0, &more1 );
    add64( z0, more1, 0, z1, &z0, &z1 );
    mul32To64( a0, b1, &more1, &more2 );
    add64( more1, more2, 0, z2, &more1, &z2 );
    add64( z0, z1, 0, more1, &z0, &z1 );
    *z3Ptr = z3;
    *z2Ptr = z2;
    *z1Ptr = z1;
    *z0Ptr = z0;

}

/*----------------------------------------------------------------------------
| Returns an approximation to the 32-bit integer quotient obtained by dividing
| `b' into the 64-bit value formed by concatenating `a0' and `a1'.  The
| divisor `b' must be at least 2^31.  If q is the exact quotient truncated
| toward zero, the approximation returned lies between q and q + 2 inclusive.
| If the exact quotient q is larger than 32 bits, the maximum positive 32-bit
| unsigned integer is returned.
*----------------------------------------------------------------------------*/

static bits32 estimateDiv64To32( bits32 a0, bits32 a1, bits32 b )
{
    bits32 b0, b1;
    bits32 rem0, rem1, term0, term1;
    bits32 z;

    if ( b <= a0 ) return 0xFFFFFFFF;
    b0 = b>>16;
    z = ( b0<<16 <= a0 ) ? 0xFFFF0000 : ( a0 / b0 )<<16;
    mul32To64( b, z, &term0, &term1 );
    sub64( a0, a1, term0, term1, &rem0, &rem1 );
    while ( ( (sbits32) rem0 ) < 0 ) {
        z -= 0x10000;
        b1 = b<<16;
        add64( rem0, rem1, b0, b1, &rem0, &rem1 );
    }
    rem0 = ( rem0<<16 ) | ( rem1>>16 );
    z |= ( b0<<16 <= rem0 ) ? 0xFFFF : rem0 / b0;
    return z;

}

/*----------------------------------------------------------------------------
| Returns an approximation to the square root of the 32-bit significand given
| by `a'.  Considered as an integer, `a' must be at least 2^31.  If bit 0 of
| `aExp' (the least significant bit) is 1, the integer returned approximates
| 2^31*sqrt(`a'/2^31), where `a' is considered an integer.  If bit 0 of `aExp'
| is 0, the integer returned approximates 2^31*sqrt(`a'/2^30).  In either
| case, the approximation returned lies strictly within +/-2 of the exact
| value.
*----------------------------------------------------------------------------*/

static bits32 estimateSqrt32( int16 aExp, bits32 a )
{
    static const bits16 sqrtOddAdjustments[] = {
        0x0004, 0x0022, 0x005D, 0x00B1, 0x011D, 0x019F, 0x0236, 0x02E0,
        0x039C, 0x0468, 0x0545, 0x0631, 0x072B, 0x0832, 0x0946, 0x0A67
    };
    static const bits16 sqrtEvenAdjustments[] = {
        0x0A2D, 0x08AF, 0x075A, 0x0629, 0x051A, 0x0429, 0x0356, 0x029E,
        0x0200, 0x0179, 0x0109, 0x00AF, 0x0068, 0x0034, 0x0012, 0x0002
    };
    int8 index;
    bits32 z;

    index = ( a>>27 ) & 15;
    if ( aExp & 1 ) {
        z = 0x4000 + ( a>>17 ) - sqrtOddAdjustments[ index ];
        z = ( ( a / z )<<14 ) + ( z<<15 );
        a >>= 1;
    }
    else {
        z = 0x8000 + ( a>>17 ) - sqrtEvenAdjustments[ index ];
        z = a / z + z;
        z = ( 0x20000 <= z ) ? 0xFFFF8000 : ( z<<15 );
        if ( z <= a ) return (bits32) ( ( (sbits32) a )>>1 );
    }
    return ( ( estimateDiv64To32( a, 0, z ) )>>1 ) + ( z>>1 );

}

/*----------------------------------------------------------------------------
| Returns the number of leading 0 bits before the most-significant 1 bit of
| `a'.  If `a' is zero, 32 is returned.
*----------------------------------------------------------------------------*/

static int8 countLeadingZeros32( bits32 a )
{
    static const int8 countLeadingZerosHigh[] = {
        8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,
        3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    };
    int8 shiftCount;

    shiftCount = 0;
    if ( a < 0x10000 ) {
        shiftCount += 16;
        a <<= 16;
    }
    if ( a < 0x1000000 ) {
        shiftCount += 8;
        a <<= 8;
    }
    shiftCount += countLeadingZerosHigh[ a>>24 ];
    return shiftCount;

}

/*----------------------------------------------------------------------------
| Returns 1 if the 64-bit value formed by concatenating `a0' and `a1' is
| equal to the 64-bit value formed by concatenating `b0' and `b1'.  Otherwise,
| returns 0.
*----------------------------------------------------------------------------*/

INLINE flag eq64( bits32 a0, bits32 a1, bits32 b0, bits32 b1 )
{

    return ( a0 == b0 ) && ( a1 == b1 );

}

/*----------------------------------------------------------------------------
| Returns 1 if the 64-bit value formed by concatenating `a0' and `a1' is less
| than or equal to the 64-bit value formed by concatenating `b0' and `b1'.
| Otherwise, returns 0.
*----------------------------------------------------------------------------*/

INLINE flag le64( bits32 a0, bits32 a1, bits32 b0, bits32 b1 )
{

    return ( a0 < b0 ) || ( ( a0 == b0 ) && ( a1 <= b1 ) );

}

/*----------------------------------------------------------------------------
| Returns 1 if the 64-bit value formed by concatenating `a0' and `a1' is less
| than the 64-bit value formed by concatenating `b0' and `b1'.  Otherwise,
| returns 0.
*----------------------------------------------------------------------------*/

INLINE flag lt64( bits32 a0, bits32 a1, bits32 b0, bits32 b1 )
{

    return ( a0 < b0 ) || ( ( a0 == b0 ) && ( a1 < b1 ) );

}

/*----------------------------------------------------------------------------
| Returns 1 if the 64-bit value formed by concatenating `a0' and `a1' is not
| equal to the 64-bit value formed by concatenating `b0' and `b1'.  Otherwise,
| returns 0.
*----------------------------------------------------------------------------*/

INLINE flag ne64( bits32 a0, bits32 a1, bits32 b0, bits32 b1 )
{

    return ( a0 != b0 ) || ( a1 != b1 );

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区电影| 一区二区三区精品在线观看| 中文无字幕一区二区三区| 亚洲精品菠萝久久久久久久| 激情文学综合插| 91精品国产色综合久久不卡蜜臀 | 蜜桃精品在线观看| 91传媒视频在线播放| 国产欧美日韩精品在线| 美日韩一区二区三区| 欧美日韩综合在线免费观看| 国产精品午夜免费| 国产福利不卡视频| 欧美精品一区二区三区久久久| 五月天网站亚洲| 在线观看不卡视频| 亚洲欧美视频在线观看| 成人午夜av在线| 国产亚洲精品免费| 国产一区二区三区美女| 亚洲精品一线二线三线| 久久99国产精品免费| 日韩精品一区二区三区swag| 日精品一区二区| 欧美午夜一区二区| 亚洲午夜激情av| 欧美午夜精品免费| 亚洲综合在线电影| 欧美在线视频你懂得| 亚洲一区在线观看免费观看电影高清| 91免费版在线| 亚洲一区二区三区四区的| 在线观看亚洲一区| 日韩制服丝袜av| 日韩写真欧美这视频| 另类小说视频一区二区| 精品精品国产高清a毛片牛牛 | 2023国产精品| 国产精品综合久久| 国产精品视频一二三| 成人h精品动漫一区二区三区| 久久女同互慰一区二区三区| 国产原创一区二区三区| 国产精品毛片无遮挡高清| 91在线视频播放| 亚洲国产精品麻豆| 日韩免费性生活视频播放| 精品亚洲国产成人av制服丝袜| 久久久久久一级片| 91视频91自| 日韩高清一级片| 久久夜色精品国产欧美乱极品| 国产高清成人在线| 一区二区三区免费在线观看| 欧美日韩精品电影| 国产精品一区二区久激情瑜伽| 中文字幕一区二区三区精华液 | 91亚洲精品久久久蜜桃网站| 亚洲免费伊人电影| 日韩一级高清毛片| 91在线小视频| 久久99最新地址| 一区二区三区在线免费观看| 日韩欧美一区二区免费| 99视频一区二区| 久久精品免费看| 亚洲日本在线视频观看| 日韩欧美国产成人一区二区| 波多野结衣一区二区三区 | 欧美一区二区三区在线观看| 国产一区不卡视频| 亚洲国产精品一区二区尤物区| 欧美电影免费观看高清完整版在线 | 亚洲一区二区三区四区不卡| 久久综合狠狠综合久久综合88| 99精品视频一区二区| 手机精品视频在线观看| 成人免费在线视频| 欧美α欧美αv大片| 在线观看免费亚洲| 成人蜜臀av电影| 久久99精品国产91久久来源| 亚洲久草在线视频| 国产无人区一区二区三区| 3d动漫精品啪啪1区2区免费| 99久久精品免费| 国产麻豆午夜三级精品| 日本欧美大码aⅴ在线播放| 亚洲另类色综合网站| 欧美激情一二三区| 久久久久久久综合| 精品久久久网站| 337p亚洲精品色噜噜狠狠| 91蜜桃网址入口| 成熟亚洲日本毛茸茸凸凹| 久久国产视频网| 日韩福利视频导航| 香蕉久久夜色精品国产使用方法| 综合色中文字幕| 一区免费观看视频| 国产精品免费视频观看| 国产欧美一区二区三区鸳鸯浴 | 欧美日韩高清一区二区| 欧洲人成人精品| 在线一区二区三区| 91成人免费电影| 欧美系列一区二区| 欧美在线你懂的| 欧美色欧美亚洲另类二区| 欧美在线免费观看视频| 在线观看日韩电影| 欧美日韩综合在线| 欧美肥妇bbw| 欧美一个色资源| 日韩一区二区三| 精品国产乱码久久久久久老虎 | 最新国产の精品合集bt伙计| 欧美韩日一区二区三区| 国产人久久人人人人爽| 国产精品久久久久久久久免费相片| 国产三级一区二区| 欧美国产日韩亚洲一区| 国产精品久久久久久久浪潮网站| 国产精品狼人久久影院观看方式| 国产精品久久久久精k8 | 国产精品自拍av| 国产精品一区二区在线观看网站| 国产精品资源在线观看| 国产二区国产一区在线观看| 国产成人av电影在线观看| 波多野结衣中文字幕一区| 91免费国产在线观看| 欧美精品久久一区| 欧美不卡视频一区| 国产精品毛片久久久久久| 亚洲精品一二三区| 日本中文一区二区三区| 国产乱码字幕精品高清av| 99久久精品费精品国产一区二区| 色狠狠色噜噜噜综合网| 日韩一区二区中文字幕| 中文字幕高清不卡| 亚洲国产精品精华液网站| 久久se这里有精品| 91丝袜美腿高跟国产极品老师 | 一区在线播放视频| 丝袜脚交一区二区| 成人精品视频一区二区三区尤物| 色94色欧美sute亚洲线路一ni | 极品少妇xxxx精品少妇| av资源网一区| 日韩欧美资源站| 1000精品久久久久久久久| 视频在线观看国产精品| www.久久久久久久久| 91精品国产色综合久久| 亚洲欧洲精品一区二区三区| 日韩成人午夜精品| 9久草视频在线视频精品| 欧美成人午夜电影| 夜夜操天天操亚洲| 国产精品一级片在线观看| 在线观看av一区二区| 欧美激情在线一区二区三区| 青青国产91久久久久久| 日本高清不卡在线观看| 久久精品男人的天堂| 美国毛片一区二区三区| 在线视频国内自拍亚洲视频| 国产亚洲精品免费| 美女脱光内衣内裤视频久久影院| 91麻豆福利精品推荐| 久久蜜桃香蕉精品一区二区三区| 午夜视频在线观看一区| 日本二三区不卡| 国产精品成人午夜| 国产二区国产一区在线观看| 日韩亚洲欧美在线| 天堂久久一区二区三区| 日本精品视频一区二区三区| 中文字幕亚洲成人| 成人免费视频一区| 欧美国产激情二区三区| 国产精品影音先锋| 精品国产百合女同互慰| 久久国产尿小便嘘嘘| 91麻豆精品国产91久久久使用方法| 一区二区三区免费在线观看| 91浏览器打开| 亚洲欧美另类综合偷拍| 一本久道中文字幕精品亚洲嫩| 国产精品女上位| av网站免费线看精品| 综合激情成人伊人| 99久久久无码国产精品| 亚洲人快播电影网| 色综合色综合色综合色综合色综合| 国产精品电影院| 91久久国产综合久久| 一区二区三区在线视频免费观看|