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

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

?? ppc_fdivs.s

?? powerpc 405 優(yōu)化過(guò)的硬浮點(diǎn)庫(kù)
?? S
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* fpopt/ppc_fdivs.S, pl_FPE_common, pl_linux 11/24/03 16:17:33                                                                  */
/*----------------------------------------------------------------------------- */
/*  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 single floating point values.  frt = fpa / fpb          */
/* Input:    r3(fpa), r4(fpb)                                                   */
/* Output:   r3(frt)                                                            */
/* Notes:   1. No stack frame is created for the normal case of this function,  */
/*             so the following registers must be preserved, as required by     */
/*             ABI specification:                                               */
/*               LR, CR0, R1, R2, R13-R31                                       */
/*          2. For the full function case, a stack frame is created, following  */
/*             ABI specification, and non-volatile registers are saved and      */
/*             restored on the stack.                                           */
/*          3. operation performed according to IEEE754-1985 standard with      */
/*             rounding mode = nearest even.                                    */
/*                                                                              */
/*----------------------------------------------------------------------------- */
                                               
#include <ppc4xx.inc>
#include "fpeLib.inc"

#define first_loop 4 

function_prolog(__divsf3)     

     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,r4                    /* load fpb.exp,     fpb.S, fpb.hi */
     rlwinm     r8,r9,9,0xff              /* isolate exponent of fpa into r8 */
     rlwinm     r11,r12,9,0xff            /* isolate exponent of fpb into r11 */
     cmpwi      cr6,r9,0                  /* set fpa.sign */
     cmpwi      cr7,r12,0                 /* set fpb.sign */
/* test for normal:                                                              */
     cmpwi      cr0,r8,0xff              /* if (fpa.exp == SEXPMAX) */
     cmpwi      cr1,r8,0                  /* if (fpa.exp == 0) */
     cmpwi      cr2,r11,0xff             /* if (fpb.exp == SEXPMAX) */
     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,0x0080              /*    fpa.hi |= 0x00800000; */
     oris       r12,r12,0x0080            /*    fpb.hi |= 0x00800000; */
     
/*   Calculate exponent                                                         */
     subf       r8,r11,r8                 /* result.exp = fpa.exp - fpb.exp; */
                                          /* ------- note:     r11 is now free */
     addic.     r8,r8,+127                /* result.exp += SEXPBIAS; check for negative */
                                          /* result.exp += 1 (for dividing left-just */
                                          /* numbers if result is left-just) */        
     cmpwi      cr2,r8,0xff               /* if (result.exp) >=  SEXPMAX */
     ble        full                      /*    or less than minimum */
     bge        cr2,full 
     
/*   Zero out the non-number part of the     operands:                          */
/*   for the sign bit plus one working bit:                                 */
     rlwinm     r9,r9,0,8,31              /* r9 = fpa */
     rlwinm     r12,r12,0,8,31            /* r12 = fpb */

/*   Divide the numbers (25 bits of long division);                     */
/*   r5 holds the intermediate differences.                                     */
     li         r5,25                     /* calculate 24 signif + 1 sticky */
     mtctr      r5
     
longdivloop:
/*   r5 = r9 - r12:                                                             */
     subfc.     r5,r12,r9
     adde       r11,r11,r11               /* rot result left and put CA into LSb of result */
     blt+       zerobit
                                          /* if intermed diff positive then: */
     adde       r9,r5,r5                  /* r9 gets r5 << 1 */
     bdnz       longdivloop
     b          done25

zerobit:                                  /* else: */
     adde       r9,r9,r9                  /* r9 gets r9 << 1 */
     bdnz       longdivloop
done25:

/*   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 25 significant bits).                  */
/*   NOTE: the msb is now in bit 7 (=32-25) of result=r11, because we have  */
/*   calculated 25 bits.                                                    */
     rlwinm.    r5,r11,0,7,7              /* test hi-bit = bit 7 of result */
     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       r5,0,1
     mtctr      r5
     b          longdivloop
highbit_is_1:

/*   We now have the first 25 bits of the result. Bits beyond 24 are only */
/*   needed to determine rounding. If bit 25 (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     r5,r11,0,30,31
     cmpwi      r5,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       r5,0,12
     mtctr      r5
seek1loop:
/*   r5 = r9 - r12:                                                             */
     subfc.     r5,r12,r9
     bge        roundup
                                          /* (result(this bit) = 0) */
     adde       r9,r9,r9                  /* r9 gets r9 << 1 */
     bdnz       seek1loop
     b          full

roundup:                                  /* adding 1 to the sticky bit performs standard */
     addi       r11,r11,1                 /* rounding; i.e. if sticky=0 then other bits */

/*   We're done! Just assemble the result back into IEEE format:        */
/*   We need to get the msb from bit 7 to bit 8 of the result, so shift 1 */
     srwi       r3,r11,1
     
/*   Put the exponent into bits 1-8 of the MSW:                            */
     rlwimi     r3,r8,23,1,8  
     
/*   Calculate sign bit:                                                        */
     crxor      cr6_sign,cr6_sign,cr7_sign
     bf         cr6_sign,signbit0
     oris       r3,r3,0x8000              /* set sign bit */
     
signbit0:
     mtcr       r0                        /* restore cr */   
     blr                                  /* return */

/*---------------- end of normal-only case ---------------                      */
full:
     mtcr       r0                        /* restore CR */   
     
     mflr       r0                        /* save link register in caller's stack */
     stw        r0,4(r1)               
     stwu       r1,-STACKSIZE(r1)         /* set up stack frame to save regs */
     
     SAVEREG(19)                          /* save r19 */
     mfcr       r19                       /* save cr */
     
/*   load fpa into r8,r9,r10 and cr6.  load fpb into r11, r12, r4 and cr7     */
     mr         r9,r3                     /* load fpa.exp, fpa.S, fpa.hi */
     mr         r12,r4                    /* load fpb.exp, fpb.S, fpb.hi */
     rlwinm     r8,r9,9,0xff              /* isolate exponent of fpa */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品福利一区二区三区av| 国产夫妻精品视频| 国产一区二区三区电影在线观看 | 日本一区二区三区四区在线视频| 一区二区高清免费观看影视大全| 日本欧美肥老太交大片| 99久久精品国产麻豆演员表| 欧美成人午夜电影| 亚洲电影在线免费观看| 懂色av一区二区三区蜜臀 | 日韩激情视频网站| 99久久伊人网影院| 久久日一线二线三线suv| 天天综合网 天天综合色| 97精品久久久久中文字幕| www欧美成人18+| 毛片av一区二区| 666欧美在线视频| 亚洲一级在线观看| 91小视频在线观看| 国产精品理论在线观看| 国产精品亚洲成人| 久久婷婷久久一区二区三区| 日韩激情中文字幕| 欧美乱妇15p| 性做久久久久久免费观看| 欧美亚洲日本国产| 亚洲午夜一区二区三区| 91国偷自产一区二区使用方法| 久久精品视频一区| 丰满放荡岳乱妇91ww| 久久久久久久一区| 经典一区二区三区| 国产喷白浆一区二区三区| 大桥未久av一区二区三区中文| 精品福利一区二区三区| 激情综合色丁香一区二区| 日韩欧美一区二区久久婷婷| 麻豆中文一区二区| 久久精品视频一区二区三区| 国产69精品久久99不卡| 国产精品国模大尺度视频| 波多野结衣精品在线| 国产精品美女久久久久aⅴ国产馆| 国产成人免费视频一区| 中文字幕一区二区不卡| 91看片淫黄大片一级在线观看| 国产精品久久久久久久蜜臀| 91香蕉国产在线观看软件| 亚洲精选在线视频| 宅男在线国产精品| 国产在线精品一区在线观看麻豆| 久久精品人人做人人爽人人| 北岛玲一区二区三区四区| 亚洲老司机在线| 欧美一区二区高清| 国产经典欧美精品| 亚洲免费观看高清完整版在线观看| 欧美在线视频不卡| 久久狠狠亚洲综合| 国产精品国产自产拍高清av王其| 日本久久精品电影| 免费观看日韩av| 日本一区二区三区四区 | 亚洲成人综合网站| 久久色视频免费观看| 91福利视频网站| 韩国女主播一区| 亚洲最色的网站| 久久色成人在线| 欧美视频在线观看一区二区| 国产一区二区不卡老阿姨| 亚洲精品国产品国语在线app| 欧美一级片在线观看| 成人av电影在线播放| 免费在线欧美视频| 亚洲欧美日韩国产综合| 欧美mv日韩mv国产| 欧美三级日韩三级国产三级| 国产成人av影院| 天天综合色天天综合色h| 中文字幕 久热精品 视频在线| 欧美日韩一二区| 国产精品亚洲人在线观看| 久久婷婷色综合| 在线中文字幕不卡| 日韩专区一卡二卡| 中文字幕日韩精品一区| 在线不卡一区二区| 国产成人免费视| 国产在线一区二区| 一区二区三区不卡视频在线观看| 日韩欧美你懂的| 色先锋aa成人| 国产精品99久久久| 亚洲欧美日韩人成在线播放| 久久久久久久久久电影| 在线视频欧美精品| 成人性生交大合| 99视频有精品| 久久99九九99精品| 亚洲国产另类av| 亚洲六月丁香色婷婷综合久久 | 欧美制服丝袜第一页| 香蕉av福利精品导航 | 欧美视频在线一区| 粉嫩13p一区二区三区| 美国十次了思思久久精品导航| 久久综合久久鬼色中文字| 欧美三级三级三级| 99久久久国产精品免费蜜臀| 免费成人性网站| 天天亚洲美女在线视频| 亚洲综合久久久| 国产精品女上位| 久久在线观看免费| 91.com在线观看| 欧美视频第二页| 欧美久久久久免费| 在线视频国产一区| 色域天天综合网| 成人av片在线观看| 国产大陆精品国产| 国产在线看一区| 国产jizzjizz一区二区| 国产成人免费视频精品含羞草妖精| 美女被吸乳得到大胸91| 热久久国产精品| 久久精品免费观看| 亚洲综合在线电影| 亚洲chinese男男1069| 亚洲午夜三级在线| 亚洲午夜私人影院| 亚洲6080在线| 三级在线观看一区二区| 亚洲一区二区影院| 日韩精品91亚洲二区在线观看| 亚洲成人自拍一区| 91片黄在线观看| 欧美日韩一区二区三区四区五区| 91黄色免费观看| 欧美吻胸吃奶大尺度电影| 日韩一二三区视频| 久久久久久久精| 国产精品成人网| 亚洲资源在线观看| 日韩制服丝袜av| 亚洲精品日日夜夜| 久久99久久99小草精品免视看| 精品一区二区三区视频 | www日韩大片| 国产精品网站在线观看| 日韩美女啊v在线免费观看| 亚洲成人tv网| 精久久久久久久久久久| 成人精品视频一区二区三区尤物| 95精品视频在线| 91 com成人网| 在线综合视频播放| 一区二区三区欧美日| 日本最新不卡在线| 国产精品性做久久久久久| 91理论电影在线观看| 欧美理论片在线| 日韩视频免费观看高清完整版在线观看| 欧美xingq一区二区| 国产精品久久久久久久久免费丝袜 | 在线视频一区二区三| www国产精品av| 亚洲精品少妇30p| 国内偷窥港台综合视频在线播放| 国产夫妻精品视频| 欧美伦理视频网站| 久久精品欧美日韩| 免费在线观看一区二区三区| 成人av在线一区二区| 91麻豆精品国产91久久久 | 欧美一区二区三区电影| 欧美激情在线免费观看| 亚洲码国产岛国毛片在线| 国产乱子轮精品视频| 欧美亚洲综合另类| 国产精品系列在线| 精品午夜久久福利影院| 欧美色窝79yyyycom| 亚洲欧美日韩国产手机在线 | 亚洲欧美韩国综合色| 亚洲国产视频直播| 国产不卡视频一区二区三区| 91视频精品在这里| 久久精品视频在线看| 激情欧美日韩一区二区| 欧美午夜精品免费| 亚洲国产精品传媒在线观看| 天堂成人免费av电影一区| 色综合色狠狠综合色| 国产精品天美传媒| 激情综合网最新| 欧美三级资源在线| 亚洲一区二区三区中文字幕在线|