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

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

?? softfloat-macros

?? RISC processor ARM-7 emulator
??
?? 第 1 頁 / 共 2 頁
字號(hào):

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

This C source fragment is part of the SoftFloat IEC/IEEE Floating-point
Arithmetic Package, Release 2.

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://HTTP.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 ANY
AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.

Derivative works are acceptable, even for commercial purposes, so long as
(1) they include prominent notice that the work is derivative, and (2) they
include prominent notice akin to these three paragraphs for those parts of
this code that are retained.

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

/*
-------------------------------------------------------------------------------
Shifts `a' right by the number of bits given in `count'.  If any nonzero
bits are shifted off, they are ``jammed'' into the least significant bit of
the result by setting the least significant bit to 1.  The value of `count'
can be arbitrarily large; in particular, if `count' is greater than 32, the
result will be either 0 or 1, depending on whether `a' is zero or nonzero.
The result is stored in the location pointed to by `zPtr'.
-------------------------------------------------------------------------------
*/
INLINE void shift32RightJamming( bits32 a, int16 count, bits32 *zPtr )
{
    bits32 z;
    if ( count == 0 ) {
        z = a;
    }
    else if ( count < 32 ) {
        z = ( a>>count ) | ( ( a<<( ( - count ) & 31 ) ) != 0 );
    }
    else {
        z = ( a != 0 );
    }
    *zPtr = z;
}

/*
-------------------------------------------------------------------------------
Shifts `a' right by the number of bits given in `count'.  If any nonzero
bits are shifted off, they are ``jammed'' into the least significant bit of
the result by setting the least significant bit to 1.  The value of `count'
can be arbitrarily large; in particular, if `count' is greater than 64, the
result will be either 0 or 1, depending on whether `a' is zero or nonzero.
The result is stored in the location pointed to by `zPtr'.
-------------------------------------------------------------------------------
*/
INLINE void shift64RightJamming( bits64 a, int16 count, bits64 *zPtr )
{
    bits64 z;

 __asm__("@shift64RightJamming -- start");   
    if ( count == 0 ) {
        z = a;
    }
    else if ( count < 64 ) {
        z = ( a>>count ) | ( ( a<<( ( - count ) & 63 ) ) != 0 );
    }
    else {
        z = ( a != 0 );
    }
 __asm__("@shift64RightJamming -- end");   
    *zPtr = z;
}

/*
-------------------------------------------------------------------------------
Shifts the 128-bit value formed by concatenating `a0' and `a1' right by 64
_plus_ the number of bits given in `count'.  The shifted result is at most
64 nonzero bits; this is stored at the location pointed to by `z0Ptr'.  The
bits shifted off form a second 64-bit result as follows:  The _last_ bit
shifted off is the most-significant bit of the extra result, and the other
63 bits of the extra result are all zero if and only if _all_but_the_last_
bits shifted off were all zero.  This extra result is stored in the location
pointed to by `z1Ptr'.  The value of `count' can be arbitrarily large.
    (This routine makes more sense if `a0' and `a1' are considered to form a
fixed-point value with binary point between `a0' and `a1'.  This fixed-point
value is shifted right by the number of bits given in `count', and the
integer part of the result is returned at the location pointed to by
`z0Ptr'.  The fractional part of the result may be slightly corrupted as
described above, and is returned at the location pointed to by `z1Ptr'.)
-------------------------------------------------------------------------------
*/
INLINE void
 shift64ExtraRightJamming(
     bits64 a0, bits64 a1, int16 count, bits64 *z0Ptr, bits64 *z1Ptr )
{
    bits64 z0, z1;
    int8 negCount = ( - count ) & 63;

    if ( count == 0 ) {
        z1 = a1;
        z0 = a0;
    }
    else if ( count < 64 ) {
        z1 = ( a0<<negCount ) | ( a1 != 0 );
        z0 = a0>>count;
    }
    else {
        if ( count == 64 ) {
            z1 = a0 | ( a1 != 0 );
        }
        else {
            z1 = ( ( a0 | a1 ) != 0 );
        }
        z0 = 0;
    }
    *z1Ptr = z1;
    *z0Ptr = z0;

}

/*
-------------------------------------------------------------------------------
Shifts the 128-bit value formed by concatenating `a0' and `a1' right by the
number of bits given in `count'.  Any bits shifted off are lost.  The value
of `count' can be arbitrarily large; in particular, if `count' is greater
than 128, the result will be 0.  The result is broken into two 64-bit pieces
which are stored at the locations pointed to by `z0Ptr' and `z1Ptr'.
-------------------------------------------------------------------------------
*/
INLINE void
 shift128Right(
     bits64 a0, bits64 a1, int16 count, bits64 *z0Ptr, bits64 *z1Ptr )
{
    bits64 z0, z1;
    int8 negCount = ( - count ) & 63;

    if ( count == 0 ) {
        z1 = a1;
        z0 = a0;
    }
    else if ( count < 64 ) {
        z1 = ( a0<<negCount ) | ( a1>>count );
        z0 = a0>>count;
    }
    else {
        z1 = ( count < 64 ) ? ( a0>>( count & 63 ) ) : 0;
        z0 = 0;
    }
    *z1Ptr = z1;
    *z0Ptr = z0;

}

/*
-------------------------------------------------------------------------------
Shifts the 128-bit value formed by concatenating `a0' and `a1' right by the
number of bits given in `count'.  If any nonzero bits are shifted off, they
are ``jammed'' into the least significant bit of the result by setting the
least significant bit to 1.  The value of `count' can be arbitrarily large;
in particular, if `count' is greater than 128, the result will be either 0
or 1, depending on whether the concatenation of `a0' and `a1' is zero or
nonzero.  The result is broken into two 64-bit pieces which are stored at
the locations pointed to by `z0Ptr' and `z1Ptr'.
-------------------------------------------------------------------------------
*/
INLINE void
 shift128RightJamming(
     bits64 a0, bits64 a1, int16 count, bits64 *z0Ptr, bits64 *z1Ptr )
{
    bits64 z0, z1;
    int8 negCount = ( - count ) & 63;

    if ( count == 0 ) {
        z1 = a1;
        z0 = a0;
    }
    else if ( count < 64 ) {
        z1 = ( a0<<negCount ) | ( a1>>count ) | ( ( a1<<negCount ) != 0 );
        z0 = a0>>count;
    }
    else {
        if ( count == 64 ) {
            z1 = a0 | ( a1 != 0 );
        }
        else if ( count < 128 ) {
            z1 = ( a0>>( count & 63 ) ) | ( ( ( a0<<negCount ) | a1 ) != 0 );
        }
        else {
            z1 = ( ( a0 | a1 ) != 0 );
        }
        z0 = 0;
    }
    *z1Ptr = z1;
    *z0Ptr = z0;

}

/*
-------------------------------------------------------------------------------
Shifts the 192-bit value formed by concatenating `a0', `a1', and `a2' right
by 64 _plus_ the number of bits given in `count'.  The shifted result is
at most 128 nonzero bits; these are broken into two 64-bit pieces which are
stored at the locations pointed to by `z0Ptr' and `z1Ptr'.  The bits shifted
off form a third 64-bit result as follows:  The _last_ bit shifted off is
the most-significant bit of the extra result, and the other 63 bits of the
extra result are all zero if and only if _all_but_the_last_ bits shifted off
were all zero.  This extra result is stored in the location pointed to by
`z2Ptr'.  The value of `count' can be arbitrarily large.
    (This routine makes more sense if `a0', `a1', and `a2' are considered
to form a fixed-point value with binary point between `a1' and `a2'.  This
fixed-point value is shifted right by the number of bits given in `count',
and the integer part of the result is returned at the locations pointed to
by `z0Ptr' and `z1Ptr'.  The fractional part of the result may be slightly
corrupted as described above, and is returned at the location pointed to by
`z2Ptr'.)
-------------------------------------------------------------------------------
*/
INLINE void
 shift128ExtraRightJamming(
     bits64 a0,
     bits64 a1,
     bits64 a2,
     int16 count,
     bits64 *z0Ptr,
     bits64 *z1Ptr,
     bits64 *z2Ptr
 )
{
    bits64 z0, z1, z2;
    int8 negCount = ( - count ) & 63;

    if ( count == 0 ) {
        z2 = a2;
        z1 = a1;
        z0 = a0;
    }
    else {
        if ( count < 64 ) {
            z2 = a1<<negCount;
            z1 = ( a0<<negCount ) | ( a1>>count );
            z0 = a0>>count;
        }
        else {
            if ( count == 64 ) {
                z2 = a1;
                z1 = a0;
            }
            else {
                a2 |= a1;
                if ( count < 128 ) {
                    z2 = a0<<negCount;
                    z1 = a0>>( count & 63 );
                }
                else {
                    z2 = ( count == 128 ) ? a0 : ( a0 != 0 );
                    z1 = 0;
                }
            }
            z0 = 0;
        }
        z2 |= ( a2 != 0 );
    }
    *z2Ptr = z2;
    *z1Ptr = z1;
    *z0Ptr = z0;

}

/*
-------------------------------------------------------------------------------
Shifts the 128-bit value formed by concatenating `a0' and `a1' left by the
number of bits given in `count'.  Any bits shifted off are lost.  The value
of `count' must be less than 64.  The result is broken into two 64-bit
pieces which are stored at the locations pointed to by `z0Ptr' and `z1Ptr'.
-------------------------------------------------------------------------------
*/
INLINE void
 shortShift128Left(
     bits64 a0, bits64 a1, int16 count, bits64 *z0Ptr, bits64 *z1Ptr )
{

    *z1Ptr = a1<<count;
    *z0Ptr =
        ( count == 0 ) ? a0 : ( a0<<count ) | ( a1>>( ( - count ) & 63 ) );

}

/*
-------------------------------------------------------------------------------
Shifts the 192-bit value formed by concatenating `a0', `a1', and `a2' left
by the number of bits given in `count'.  Any bits shifted off are lost.
The value of `count' must be less than 64.  The result is broken into three
64-bit pieces which are stored at the locations pointed to by `z0Ptr',
`z1Ptr', and `z2Ptr'.
-------------------------------------------------------------------------------
*/
INLINE void
 shortShift192Left(
     bits64 a0,
     bits64 a1,
     bits64 a2,
     int16 count,
     bits64 *z0Ptr,
     bits64 *z1Ptr,
     bits64 *z2Ptr
 )
{
    bits64 z0, z1, z2;
    int8 negCount;

    z2 = a2<<count;
    z1 = a1<<count;
    z0 = a0<<count;
    if ( 0 < count ) {
        negCount = ( ( - count ) & 63 );
        z1 |= a2>>negCount;
        z0 |= a1>>negCount;
    }
    *z2Ptr = z2;
    *z1Ptr = z1;
    *z0Ptr = z0;

}

/*
-------------------------------------------------------------------------------
Adds the 128-bit value formed by concatenating `a0' and `a1' to the 128-bit
value formed by concatenating `b0' and `b1'.  Addition is modulo 2^128, so
any carry out is lost.  The result is broken into two 64-bit pieces which
are stored at the locations pointed to by `z0Ptr' and `z1Ptr'.
-------------------------------------------------------------------------------
*/
INLINE void
 add128(
     bits64 a0, bits64 a1, bits64 b0, bits64 b1, bits64 *z0Ptr, bits64 *z1Ptr )
{
    bits64 z1;

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

}

/*
-------------------------------------------------------------------------------
Adds the 192-bit value formed by concatenating `a0', `a1', and `a2' to the
192-bit value formed by concatenating `b0', `b1', and `b2'.  Addition is
modulo 2^192, so any carry out is lost.  The result is broken into three
64-bit pieces which are stored at the locations pointed to by `z0Ptr',
`z1Ptr', and `z2Ptr'.
-------------------------------------------------------------------------------
*/
INLINE void
 add192(
     bits64 a0,
     bits64 a1,
     bits64 a2,
     bits64 b0,
     bits64 b1,

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品福利视频| 91麻豆精品国产无毒不卡在线观看| 亚洲午夜免费视频| 26uuu久久综合| 欧美在线视频日韩| 国产成人a级片| 日本不卡一二三| 亚洲精品成人悠悠色影视| 久久亚洲一区二区三区四区| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩和欧美的一区二区| 国产综合色视频| 无吗不卡中文字幕| 亚洲欧美日韩在线| 国产日产精品一区| 欧美成va人片在线观看| 欧美日韩高清在线| 在线视频观看一区| 96av麻豆蜜桃一区二区| 懂色av中文一区二区三区| 久久99热这里只有精品| 日韩成人dvd| 亚洲国产视频直播| 亚洲一区精品在线| 亚洲一区二区精品久久av| 亚洲日本欧美天堂| 国产精品传媒入口麻豆| 国产精品麻豆久久久| 国产欧美日韩亚州综合| 日本一区二区电影| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲国产精品成人综合| 国产亚洲va综合人人澡精品| 日韩欧美在线一区二区三区| 91精品欧美久久久久久动漫| 欧美欧美午夜aⅴ在线观看| 欧美自拍偷拍午夜视频| 在线观看日韩高清av| 色女孩综合影院| 色婷婷综合久久久久中文| 91网站在线播放| 色婷婷国产精品| 在线观看国产91| 精品视频一区三区九区| 欧美日韩国产综合一区二区三区 | 欧洲一区二区三区在线| 99久久久国产精品免费蜜臀| 99国产精品国产精品久久| 97久久久精品综合88久久| 色哟哟欧美精品| 777a∨成人精品桃花网| 欧美大胆一级视频| 国产69精品久久久久777| 激情欧美日韩一区二区| 国产在线精品视频| 国产一区91精品张津瑜| 国产成人在线视频网址| 国产高清精品网站| 97国产精品videossex| 欧美在线一二三四区| 欧美一区二区三区人| 欧美精品一区二区三区很污很色的 | 亚洲天堂av老司机| 亚洲午夜私人影院| 久久国产免费看| 国产福利一区在线观看| 91在线视频播放地址| 欧美性感一类影片在线播放| 日韩一区和二区| 国产精品福利影院| 亚洲va韩国va欧美va| 激情欧美一区二区| 99re免费视频精品全部| 91精品婷婷国产综合久久性色 | 亚洲一本大道在线| 午夜av一区二区| 国产精品亚洲午夜一区二区三区| 99久久国产免费看| 欧美丰满美乳xxx高潮www| 精品国产污污免费网站入口| 亚洲人成人一区二区在线观看| 午夜精品成人在线| 懂色一区二区三区免费观看| 欧美人动与zoxxxx乱| 国产欧美一区二区精品性色 | 激情欧美一区二区| 色综合久久88色综合天天免费| 日韩欧美综合一区| 亚洲欧美日韩中文播放 | 国产一区二区美女诱惑| 日本精品视频一区二区| 久久一区二区三区国产精品| 亚洲成人免费看| 成人av影院在线| 日韩欧美一卡二卡| 亚洲免费伊人电影| 丁香桃色午夜亚洲一区二区三区| 欧美怡红院视频| 久久精品一区二区| 欧美日韩国产区一| 国产精品毛片无遮挡高清| 日韩电影在线观看一区| 91亚洲永久精品| 国产婷婷精品av在线| 日韩福利电影在线观看| 色欧美88888久久久久久影院| 国产亚洲制服色| 蜜臀91精品一区二区三区| 欧美在线免费视屏| 成人免费在线观看入口| 国产不卡视频在线播放| 精品国产露脸精彩对白 | 午夜精品久久久久久久99樱桃| av成人动漫在线观看| 久久精品人人做人人综合| 麻豆91在线观看| 91精品国产色综合久久ai换脸| 亚洲欧美日韩国产综合| 91亚洲精华国产精华精华液| 中文字幕av一区二区三区| 国产乱子伦视频一区二区三区| 日韩欧美一二区| 欧美bbbbb| 日韩你懂的在线播放| 青青草国产精品97视觉盛宴| 欧美日本精品一区二区三区| 久久免费电影网| 综合欧美亚洲日本| 国产白丝精品91爽爽久久 | 91精品国产综合久久精品性色| 亚洲黄色av一区| 色屁屁一区二区| 亚洲国产精品久久艾草纯爱| 欧美三日本三级三级在线播放| 一区二区三区在线观看动漫| 一本大道久久a久久综合| 亚洲日本护士毛茸茸| 色综合天天狠狠| 伊人开心综合网| 欧美日本视频在线| 蜜桃久久久久久| 欧美va在线播放| 国产一区二区三区视频在线播放| 国产亚洲欧美中文| 不卡视频免费播放| 亚洲码国产岛国毛片在线| 91视频免费看| 偷拍亚洲欧洲综合| 日韩欧美亚洲一区二区| 国产成人在线视频播放| 国产精品美女视频| 欧美综合久久久| 蜜乳av一区二区| 国产欧美精品一区二区色综合| 成人免费高清在线| 色综合夜色一区| 欧美视频在线不卡| 自拍偷拍国产精品| 一本久道久久综合中文字幕 | 精品污污网站免费看| 麻豆精品蜜桃视频网站| 国产亚洲欧美日韩日本| 色婷婷综合久久| 麻豆精品一二三| 中文字幕中文字幕在线一区| 欧美日韩一区二区三区在线看 | 国产精品系列在线播放| 综合欧美亚洲日本| 91精品国产综合久久久蜜臀图片| 久久 天天综合| 亚洲天堂av一区| 日韩精品一区二区三区老鸭窝| 国产精品自拍在线| 亚洲精品一卡二卡| 欧美一卡二卡在线| 99久久婷婷国产综合精品| 五月开心婷婷久久| 国产女人aaa级久久久级| 在线精品观看国产| 国产乱码精品一品二品| 亚洲午夜精品网| 国产欧美日韩精品在线| 欧美自拍丝袜亚洲| 日本不卡123| 中文字幕欧美日本乱码一线二线| 91丨国产丨九色丨pron| 蜜臀av性久久久久蜜臀av麻豆| 国产精品久久久久久久久免费桃花| 欧美日韩不卡一区二区| 成人精品视频一区二区三区| 男女男精品视频| 亚洲欧美日韩国产手机在线| 久久婷婷成人综合色| 欧美日本一区二区在线观看| 波多野结衣精品在线| 国内外成人在线| 天堂av在线一区| 亚洲精品成a人| 国产精品入口麻豆九色| 日韩你懂的电影在线观看|