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

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

?? ppc_fdiv.s

?? powerpc 405 優(yōu)化過的硬浮點庫
?? S
?? 第 1 頁 / 共 3 頁
字號:
/* fpopt/ppc_fdiv.S, pl_FPE_common, pl_linux 11/24/03 16:17:31                                                                  */
/*----------------------------------------------------------------------------- */
/*  Copyright (c) 2003, IBM Corporation                                         */
/*  All rights reserved.                                                        */
/*                                                                              */
/*  Redistribution and use in source and binary forms, with or                  */
/*  without modification, are permitted provided that the following             */
/*  conditions are met:                                                         */
/*                                                                              */
/*    * Redistributions of source code must retain the above                    */
/*      copyright notice, this list of conditions and the following             */
/*      disclaimer.                                                             */
/*    * Redistributions in binary form must reproduce the above                 */
/*      copyright notice, this list of conditions and the following             */
/*      disclaimer in the documentation and/or other materials                  */
/*      provided with the distribution.                                         */
/*    * Neither the name of IBM nor the names of its contributors               */
/*      may be used to endorse or promote products derived from this            */
/*      software without specific prior written permission.                     */
/*                                                                              */
/*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND                      */
/*  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,                 */
/*  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF                    */
/*  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE                    */
/*  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS           */
/*  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,         */
/*  OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,                    */
/*  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR          */
/*  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY         */
/*  OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT                */
/*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE           */
/*  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.    */
/*                                                                              */
/*----------------------------------------------------------------------------- */
/*                                                                              */
/* Function: divide two double floating point values.  frt = fpa / fpb          */
/* Input:    r3,r4(fpa)                                                         */
/*           r5,r6(fpb)                                                         */
/* Output:   r3,r4(frt)                                                         */
/* Notes:   1. A stack frame is created, following ABI specification, and       */
/*             non-volatile registers are saved and restored on the stack.      */
/*          2. operation performed according to IEEE754-1985 standard with      */
/*             rounding mode = nearest even.                                    */
/*                                                                              */
/*----------------------------------------------------------------------------- */

#include <ppc4xx.inc>
#include "fpeLib.inc"

#define first_loop 4 

function_prolog(__divdf3)

        mflr    r0                      /* save link register in caller's stack */
        stw     r0,4(r1)               
        stwu    r1,-STACKSIZE(r1)       /* set up stack frame to hold saved regs */

        SAVEREG(30)
        SAVEREG(31)
        mfcr    r0                      /* save cr */
/* load fpa into r8,r9,r10 and cr6.  load fpb into r11, r12, r13 and cr7        */
        mr      r9,r3                   /* load fpa.exp, fpa.S, fpa.hi */
        mr      r12,r5                  /* load fpb.exp, fpb.S, fpb.hi */
        rlwinm  r8,r9,32-20,0x7ff       /* isolate exponent of fpa into r8 */
        rlwinm  r11,r12,32-20,0x7ff     /* isolate exponent of fpb into r11 */
        mr      r10,r4                  /* load fpa.lo */
        cmpwi   cr6,r9,0                /* set fpa.sign */
                                        /* load fpb.lo (already in r6)*/
        cmpwi   cr7,r12,0               /* set fpb.sign */
/* test for normal:                                                             */
        cmpwi   cr0,r8,0x7ff            /* if (fpa.exp == DEXPMAX) */
        cmpwi   cr1,r8,0                /* if (fpa.exp == 0) */
        cmpwi   cr2,r11,0x7ff           /* if (fpb.exp == DEXPMAX) */
        cmpwi   cr3,r11,0               /* if (fpb.exp == 0) */
        beq     full
        beq     cr1,full                
        beq     cr2,full                
        beq     cr3,full                

/* normal case only:                                                            */
        oris    r9,r9,0x0010            /*    fpa.hi |= 0x00100000; */
        oris    r12,r12,0x0010          /*    fpb.hi |= 0x00100000; */
/*   Calculate exponent                                                         */
        subf    r8,r11,r8               /* result.exp = fpa.exp - fpb.exp; */
                                        /* ------- note: r11 is now free */
        addic.  r8,r8,+1023             /* result.exp += DEXPBIAS; check for negative */
                                        /* result.exp += 1 (for dividing left-just */
                                        /* numbers if result is left-just) */
        cmpwi   cr2,r8,0x7ff            /* if (result.exp >= DEXPMAX) */
        ble     full
        bge     cr2, full               /* cr2 */
/*   Zero out the non-number part of the operands:                              */
/*   for the sign bit plus one working bit:                                     */
        rlwinm  r9,r9,0,11,31           /* r9 = fpa.hi */
                                        /* r10 = fpa.lo */

        rlwinm  r12,r12,0,11,31         /* r12 = fpb.hi */
                                        /* r6 = fpb.lo */

/*   Divide the numbers (54 bits of long division);                             */
/*   r7/r11 hold the intermediate differences.                                  */
        li      r7,54                   /* calculate 53 signif + 1 sticky */
        mtctr   r7
longdivloop:
/*   r7/r11 = r9/r10 - r12/r6:                                                  */
        subfc   r11,r6,r10
        subfe.  r7,r12,r9
        adde    r31,r31,r31             /* rot result left and put CA into LSb of result */
        adde    r30,r30,r30             /* rotate r30/r31 left 1 bit */
        blt+    zerobit
                                        /* if intermed diff positive then: */
        addc    r10,r11,r11             /* r9/r10 get r7/r11 << 1 */
        adde    r9,r7,r7                /* */
        bdnz    longdivloop
        b       done54

zerobit:                                /* else: */
        addc    r10,r10,r10             /* r9/r10 get r9/r10 << 1 */
        adde    r9,r9,r9                /* */
        bdnz    longdivloop
done54:

/*   Since we divided one left-justified number by another left-justified       */
/*   number, there are two possibilities for the result:                        */
/*   either (the msb is 1) or                                                   */
/*   (the msb is 0 and the next bit is 1). If the msb is 0, then we need to     */
/*   calculate one more bit (to make 54 significant bits).                      */
/*   NOTE: the msb is now in bit 10 (=64-54) of result.hi=r30, because we have  */
/*   calculated 54 bits.                                                        */
        rlwinm. r7,r30,0,10,10          /* test hi-bit = bit 10 of result.hi */
        bne+    highbit_is_1
        addic.  r8,r8,-1                /* shifted case: exponent is 1 less than */
                                        /* non-shifted. */
        beq     full                    /* exponent=0 is special case */
        addi    r7,0,1
        mtctr   r7
        b       longdivloop
highbit_is_1:

/*   We now have the first 54 bits of the result. Bits beyond 53 are only       */
/*   needed to determine rounding. If bit 54 (the last one just calculated)     */
/*   is 0, then we don't round. If it is 1, then we'll calculate up to 12 more  */
/*   bits, looking for a 1. The first time we see a 1, we know to round up.     */
/*   But even if all 12 are 0, we still don't know for sure to not round,       */
/*   so we punt to the full routine.                                            */
        rlwinm  r7,r31,0,30,31
        cmpwi   r7,1
        bne     roundup
/*   At this point the LSb is 0 and the sticky bit is 1; we need more bits      */
/*   to determine rounding -- if any subsequent bit is 1, then we round up.     */
/*   We'll try 12 more bits before giving up:                                   */
        addi    r7,0,12
        mtctr   r7
seek1loop:
/*   r7/r11 = r9/r10 - r12/r6:                                                  */
        subfc   r11,r6,r10
        subfe.  r7,r12,r9
        bge     roundup
                                        /* (result(this bit) = 0) */
        addc    r10,r10,r10             /* r9/r10 get r9/r10 << 1 */
        adde    r9,r9,r9                /* */
        bdnz    seek1loop
        b       full
roundup:                                /* adding 1 to the sticky bit performs standard */
        addic   r31,r31,1               /* rounding; i.e. if sticky=0 then other bits */
        addze   r30,r30                 /* are not affected */

/*   We're done! Just assemble the result back into IEEE format:                */
/*   r30 = IEEE MSW,   r31 = IEEE LSW                                           */
/*   We need to get the msb from bit 10 to bit 11 of result.hi; so shift        */
/*   right 1 bit:                                                               */
        rlwinm  r31,r31,31,1,31         /* result >> 1 */
        rlwimi  r31,r30,31,0,0          /* */
        rlwinm  r30,r30,31,12,31        /* */
/*   Put the exponent into bits 1-11 of the MSW:                                */
        rlwimi  r30,r8,20,1,11
/*   Calculate sign bit:                                                        */
        crxor   cr6_sign,cr6_sign,cr7_sign
        bf      cr6_sign,signbit0
        oris    r30,r30,0x8000          /* set sign bit */
signbit0:
        mr      r3,r30                  /* *FRT = fpa.hi; */
        mr      r4,r31                  /* *FRT = fpa.lo; */
        RESTREG(30)
        RESTREG(31)
        mtcr    r0                      /* restore cr */
        
return_common:                     
        lwz     r1,0(r1)                /* previous stack frame */
        lwz     r0,4(r1)                /* saved link register */
        mtlr    r0                      /* restore link register */
        blr                             /* return */

/*---------------- end of normal-only case ---------------                      */
full:
        RESTREG(30)
        RESTREG(31)
        mtcr    r0                      /* restore CR */


        SAVEREG(16)                     /* save r16 */
        mfcr    r16                     /* save cr */
/* load fpa into r8,r9,r10 and cr6.  load fpb into r11, r12, r6 and cr7         */
        mr      r9,r3                   /* load fpa.exp, fpa.S, fpa.hi */
        mr      r12,r5                  /* load fpb.exp, fpb.S, fpb.hi */
        rlwinm  r8,r9,32-20,0x7ff       /* isolate exponent of fpa */
        rlwinm  r11,r12,32-20,0x7ff     /* isolate exponent of fpb */
        mr      r10,r4                  /* load fpa.lo */
        cmpwi   cr6,r9,0                /* set fpa.sign */
                                        /* load fpb.lo (already in r6)*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美私模裸体表演在线观看| 日韩一区二区中文字幕| 粉嫩13p一区二区三区| 麻豆91在线观看| 视频一区中文字幕国产| 午夜精品久久一牛影视| 国产色产综合产在线视频| 欧美色网站导航| 欧美在线观看你懂的| 欧亚洲嫩模精品一区三区| 色av成人天堂桃色av| 91碰在线视频| 一本色道久久综合精品竹菊| 91影院在线免费观看| 91免费看`日韩一区二区| 国产69精品久久久久毛片| 经典三级一区二区| 懂色av一区二区三区蜜臀| av不卡免费电影| 婷婷成人激情在线网| 国产美女在线精品| 久久国产成人午夜av影院| 奇米精品一区二区三区四区| 日本不卡不码高清免费观看| 国模无码大尺度一区二区三区| 国内精品久久久久影院薰衣草| 国产91精品一区二区| 91网站在线播放| 欧美高清激情brazzers| 精品av久久707| 国产精品久久久久四虎| 一区二区三区日韩欧美精品 | 亚洲少妇中出一区| 一二三四社区欧美黄| 五月综合激情网| 国产精品一区一区| 91传媒视频在线播放| 日韩色视频在线观看| 国产精品丝袜91| 亚洲成人一区在线| 捆绑调教美女网站视频一区| 不卡免费追剧大全电视剧网站| 欧洲国内综合视频| 国产午夜精品美女毛片视频| 亚洲综合在线电影| 激情综合网天天干| 色综合天天天天做夜夜夜夜做| 欧美日韩国产小视频在线观看| 精品免费日韩av| 亚洲国产精品高清| 午夜a成v人精品| 成人av片在线观看| 日韩一区二区三区电影在线观看| 国产精品视频一二三| 天天综合网 天天综合色| 国产精品一区二区果冻传媒| 在线观看日韩国产| 亚洲国产精品成人综合色在线婷婷| 亚洲mv在线观看| 大陆成人av片| 精品少妇一区二区三区在线播放 | 欧美精品一区二区三| 亚洲美女视频一区| 国内久久婷婷综合| 欧美伊人久久久久久午夜久久久久| 欧美大片一区二区| 亚洲无人区一区| 波多野结衣欧美| 精品免费国产一区二区三区四区| 亚洲国产综合人成综合网站| 成人精品国产一区二区4080| 91精品婷婷国产综合久久竹菊| **网站欧美大片在线观看| 另类小说欧美激情| 欧美日产在线观看| 亚洲精品中文在线| 粉嫩绯色av一区二区在线观看| 日韩一级高清毛片| 日本在线不卡一区| 欧美日精品一区视频| 中文字幕中文乱码欧美一区二区| 九一九一国产精品| 884aa四虎影成人精品一区| 亚洲欧美日韩精品久久久久| 大白屁股一区二区视频| 日韩欧美一二区| 婷婷丁香久久五月婷婷| 在线观看免费成人| 亚洲视频中文字幕| 成人免费高清在线| 国产精品久久久久久久久免费丝袜 | 精品日韩成人av| 香蕉久久一区二区不卡无毒影院| 在线视频国产一区| 中文字幕亚洲成人| 久久精品国产亚洲高清剧情介绍| 欧美网站一区二区| 一区二区三区中文字幕电影| av亚洲精华国产精华精华 | 一区精品在线播放| 国产精品88av| 欧美成人一区二区三区| 亚洲欧美日韩久久精品| 色综合久久66| 一区二区三区四区在线播放 | 欧美在线观看18| 一区二区在线观看视频在线观看| 99国产精品久久久| 亚洲免费av高清| 欧美色偷偷大香| 视频一区在线播放| 欧美一区二视频| 精品一区二区在线免费观看| 欧美成人在线直播| 国产一区二区福利| 欧美激情中文字幕一区二区| 成人丝袜视频网| 亚洲手机成人高清视频| 在线观看欧美日本| 亚洲成a人片综合在线| 欧美丝袜丝交足nylons图片| 天天综合天天综合色| 欧美成人精品福利| 国产成人鲁色资源国产91色综| 国产欧美日韩不卡| 97se亚洲国产综合在线| 亚洲香肠在线观看| 337p亚洲精品色噜噜噜| 久久国产乱子精品免费女| 久久综合久久99| 成人av资源在线观看| 亚洲综合一区在线| 日韩欧美在线1卡| 国产精品羞羞答答xxdd| 综合久久久久久| 欧美日韩精品电影| 韩国三级在线一区| 国产精品久久久久久久久晋中 | 国产毛片精品国产一区二区三区| 日本一区二区久久| 欧美日韩精品三区| 国产一区欧美日韩| 亚洲日本一区二区| 日韩欧美亚洲国产精品字幕久久久| 国产美女视频一区| 亚洲桃色在线一区| 欧美一级免费观看| 成人激情免费电影网址| 三级在线观看一区二区| 国产精品国产三级国产aⅴ入口 | 久久人人爽人人爽| 91豆麻精品91久久久久久| 久久国产婷婷国产香蕉| 亚洲欧美一区二区三区久本道91| 91精品国产综合久久福利| 国产宾馆实践打屁股91| 亚洲777理论| 亚洲国产高清aⅴ视频| 欧美久久久久免费| 国产一区二区三区高清播放| 亚洲影院久久精品| 久久久不卡网国产精品二区| 欧美影院精品一区| 成人黄色a**站在线观看| 日韩二区三区在线观看| 日韩一区在线免费观看| 精品毛片乱码1区2区3区| 91黄视频在线| 风间由美一区二区三区在线观看| 亚洲福利一二三区| 中文字幕色av一区二区三区| 欧美成人精品1314www| 欧美色区777第一页| proumb性欧美在线观看| 老色鬼精品视频在线观看播放| 一区二区三区日本| 国产精品美女久久久久aⅴ| 日韩一级大片在线| 欧美天堂一区二区三区| 成av人片一区二区| 国产一区二区在线免费观看| 亚洲成人午夜电影| 亚洲六月丁香色婷婷综合久久| 精品国产91久久久久久久妲己 | 日韩女同互慰一区二区| 欧美三级电影精品| 91国偷自产一区二区开放时间 | 欧美剧情电影在线观看完整版免费励志电影| 国产a级毛片一区| 国产一区二区在线视频| 裸体健美xxxx欧美裸体表演| 亚洲成人av资源| 亚洲一区视频在线| 日韩伦理免费电影| 国产精品亲子乱子伦xxxx裸| 久久精品视频一区| 欧美精品一区二区三区四区| 精品剧情v国产在线观看在线| 91精品国产91久久综合桃花| 欧美日本一区二区三区四区|