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

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

?? ppc_fdiv.s

?? powerpc 405 優化過的硬浮點庫
?? 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)*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美最猛黑人xxxxx猛交| 国产精品久久久久婷婷| 欧美天堂亚洲电影院在线播放| 成人国产精品免费观看视频| 国产乱国产乱300精品| 激情久久久久久久久久久久久久久久| 三级久久三级久久久| 日韩高清国产一区在线| 亚洲第一电影网| 亚洲福中文字幕伊人影院| 亚洲综合一二三区| 亚洲国产精品久久艾草纯爱| 亚洲自拍偷拍图区| 亚洲一区二区三区不卡国产欧美| 亚洲精品日韩综合观看成人91| 亚洲欧美另类小说视频| 一区二区高清视频在线观看| 一区二区高清免费观看影视大全| 亚洲电影一区二区| 日韩av成人高清| 狠狠色丁香久久婷婷综合_中 | 最新不卡av在线| 1024成人网色www| 一区二区久久久久| 日韩电影在线免费观看| 久久99国产精品麻豆| 国产精品一二三四五| 99久久久久久| 欧美系列在线观看| 日韩亚洲欧美高清| 久久免费看少妇高潮| 国产精品久久久久毛片软件| 色综合婷婷久久| 欧美日韩美少妇| 日韩精品专区在线影院重磅| 久久天堂av综合合色蜜桃网| 国产精品久久久久久久浪潮网站| 亚洲激情av在线| 蜜臀久久99精品久久久久久9| 国产一区欧美二区| 色婷婷综合久久久久中文一区二区 | 亚洲综合图片区| 精品一区二区三区蜜桃| 成人av集中营| 亚洲精品日产精品乱码不卡| 亚洲不卡av一区二区三区| 国产一区二区看久久| 99热99精品| 欧美一区二区三区在线| 欧美韩国日本综合| 视频一区中文字幕国产| 国产福利视频一区二区三区| 欧美影院午夜播放| 久久新电视剧免费观看| 亚洲在线视频一区| 国内偷窥港台综合视频在线播放| 色综合中文字幕| 精品理论电影在线观看| 国产成人鲁色资源国产91色综| 欧亚一区二区三区| 欧美一区二区三区影视| 国产性色一区二区| 亚洲国产一区在线观看| 成人做爰69片免费看网站| 欧美三级乱人伦电影| 国产性天天综合网| 奇米一区二区三区| 日本韩国一区二区三区| 久久伊人蜜桃av一区二区| 亚洲不卡一区二区三区| 91片黄在线观看| 久久久久国产精品麻豆| 午夜欧美2019年伦理| 国产 欧美在线| 日韩欧美一区二区不卡| 亚洲精品videosex极品| 国产91精品精华液一区二区三区| 制服.丝袜.亚洲.中文.综合| 自拍偷拍国产亚洲| 丁香亚洲综合激情啪啪综合| 日韩精品一区二区三区在线| 亚洲国产成人va在线观看天堂| 成人国产精品免费观看动漫| 精品裸体舞一区二区三区| 亚洲靠逼com| 国产高清亚洲一区| 不卡的av网站| 欧美性高清videossexo| 国产精品欧美极品| 激情亚洲综合在线| 欧美一级免费大片| 亚洲国产一区二区在线播放| 97精品国产97久久久久久久久久久久 | 欧美精品电影在线播放| 一区二区三区在线视频免费观看| 高清国产午夜精品久久久久久| 日韩天堂在线观看| 日本亚洲一区二区| 91精品国产品国语在线不卡| 亚洲综合丁香婷婷六月香| 色综合中文字幕国产 | 国产精品久久久爽爽爽麻豆色哟哟| 九一久久久久久| 日韩一级二级三级精品视频| 亚洲bt欧美bt精品| 欧美片网站yy| 亚洲二区在线视频| 7777精品伊人久久久大香线蕉完整版| 亚洲一本大道在线| 99r国产精品| 欧美一区二区三区啪啪| 中文字幕中文字幕一区| 成人激情文学综合网| 国产午夜亚洲精品理论片色戒 | 日韩精品一区二区三区中文不卡| 午夜精品爽啪视频| 欧美一区二区高清| 三级精品在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 精品91自产拍在线观看一区| 国产成人自拍网| 国产日韩欧美一区二区三区乱码 | 成人美女在线观看| 亚洲男人天堂av网| 国产精品日韩精品欧美在线| 日本视频免费一区| 欧美乱妇一区二区三区不卡视频| 亚洲一区二区中文在线| 欧洲视频一区二区| 久久奇米777| 99在线视频精品| 成人欧美一区二区三区白人| 成人av影院在线| **欧美大码日韩| 91亚洲精品一区二区乱码| 国产精品区一区二区三| 在线观看国产日韩| 亚洲高清免费在线| 56国语精品自产拍在线观看| 日韩精品成人一区二区在线| 555www色欧美视频| 免费成人在线观看| 中日韩av电影| 日本乱人伦aⅴ精品| 亚洲一卡二卡三卡四卡 | 欧美v国产在线一区二区三区| 蜜桃av一区二区| 久久久91精品国产一区二区三区| 国产黄色成人av| 亚洲曰韩产成在线| 日韩手机在线导航| 成人免费三级在线| 一区二区欧美精品| 欧美三级视频在线| 国产不卡免费视频| 亚洲综合区在线| 欧美成人国产一区二区| 国产综合一区二区| 亚洲欧美日韩在线不卡| 欧美欧美欧美欧美| 国产精品自拍av| 亚洲精品国产a| 日韩欧美在线影院| 成人免费三级在线| 亚洲最快最全在线视频| 国产亚洲精品资源在线26u| 一本大道av一区二区在线播放| 三级欧美在线一区| 国产精品久久久久国产精品日日| 欧美日本精品一区二区三区| 国产精品一二三四| 天天影视色香欲综合网老头| 国产无遮挡一区二区三区毛片日本| 一本大道久久a久久精品综合| 久久99精品国产麻豆婷婷| 欧美国产精品一区二区三区| 欧美一区二区三区影视| 91浏览器在线视频| 九色综合狠狠综合久久| 日韩高清不卡一区| 亚洲一区在线播放| 中文字幕一区二区三区不卡 | 日韩美一区二区三区| 一本大道久久a久久综合婷婷| 韩国精品在线观看| 中文字幕人成不卡一区| 久久久亚洲精品石原莉奈| 欧美视频精品在线观看| 国产成人亚洲精品青草天美| 日韩影院免费视频| 久久久久久99久久久精品网站| 欧美卡1卡2卡| 日本韩国一区二区| 成人久久18免费网站麻豆| 开心九九激情九九欧美日韩精美视频电影 | 久久久久久久网| 91精品国产欧美日韩| 欧美在线观看你懂的| caoporn国产精品| 国产久卡久卡久卡久卡视频精品|