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

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

?? ppc_fmuls.s

?? powerpc 405 優化過的硬浮點庫
?? S
?? 第 1 頁 / 共 2 頁
字號:
/* fpopt/ppc_fmuls.S, pl_FPE_common, pl_linux 11/24/03 16:17:35                                                                  */
/*----------------------------------------------------------------------------- */
/*  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: multiply two single floating point values (frt = fpa * fpb)        */
/* Input:    r3(fpa), r4(fpb)                                                   */
/* Output:   r3(frt)                                                            */
/* Notes:   1. No stack frame is created for this function, so the following    */
/*             registers must be preserved, as required by ABI specification:   */
/*               LR, CR0, R1, R2, R13-R31                                       */
/*          2. operation performed according to IEEE754-1985 standard with      */
/*             rounding mode = nearest even.                                    */
/*                                                                              */
/*----------------------------------------------------------------------------- */

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

function_prolog(__mulsf3)

     mfcr     r0                         /* save cr */
     
/* isolate exponents        */
     rlwinm   r8,r3,9,0xff               /* isolate exponent of fpa into r8 */
     rlwinm   r11,r4,9,0xff              /* isolate exponent of fpc into r11 */
     
/* 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                       /* fpa.exp is max */
     beq      cr2,full                   /* fpb.exp is max */
     beq      cr1,tst0a                  /* fpa.exp is 0  */
     beq      cr3,tst0b                  /* fpb.exp is 0  */

/* normal case only: add in implied one                           */
     oris     r9,r3,0x0080               /* fpa.hi |= 0x00800000; */
     oris     r12,r4,0x0080              /* fpb.hi |= 0x00800000; */
     
/*   Calculate exponent                                                         */
     add      r8,r8,r11                  /* result.expt = fpa.exp + fpb.exp; */
                                         /* ------- note:     r11 is now free */
     addic.   r8,r8,-126                 /* result.exp -= SEXPBIAS */
                                         /* result.exp += 1 (for multiplying left-just */
                                         /* numbers if result is left-just) */
                                         
     cmpwi    cr2,r8,253                 /* if (result.exp >= (SEXPMAX--2) :  */
     ble      full
     bge      cr2,full                
     
/*   Calculate sign:                                                            */
     xor      r11,r3,r4                  /* get product sign */
     
/*   Multiply the numbers:                                                      */
/*   Start by shifting everything left 8 bits, so that the MSW is full:        */
     rlwinm   r5,r9,8,0,23               /* r5 = fpa */
                                         
     rlwinm   r6,r12,8,0,23              /* r6 = fpb */
                                         /*   Multiply a and b (upper half only):                                        */
     mulhwu.  r5,r5,r6                   /* r5 gets high word of result */
                                         /* ------- note:     r6 is now free */
/*   There are two possibilities for the result:                        */
/*   Either (bit 0 is 1) or (bit 0 is 0 and bit 1 is 1).            */
/*   If bit 0 is 0, then    shift left 1 bit to normalize:                 */
     blt      msb_is_bit0
     add      r5,r5,r5                   /* shift fraction (r5) left 1 to fill msb*/
     addic.   r8,r8,-1                   /* shifted case: exponent is 1 less */
                                         /* than non-shifted */
     beq      full                       /* if exponent out of range, needs full handling */
msb_is_bit0:

/*   See if we need to round. (NOTE: the exact .5 case needs more precision */
/*   than what we have calculated; in that case,  go to the full handler.)   */
/*   24 bits (bits 0-23 of the result) are significant. The sticky bit          */
/*   is bit 24. If it is 0, then no rounding.                           */
/*   BUT we don't really know the sticky bit for sure yet -- the uncalculated */
/*   low-order 16 bits of the 48-bit product could conceivably cause the     low */
/*   bits of our result to round up, changing the state of bit 24.      */
/*   The round-up is the result of a carry-out from the low 12 bits,    */
/*   so at most it adds 1. But we have already                                  */
/*   shifted left one bit, just above, so by now the carry-out could add    */
/*   as much as 2. The addition of a 2-bit number can                           */
/*   propagate up to bit 24 ONLY if bits 25-30 are all ones:        */
     rlwinm.  r10,r5,0,25,31
     cmpwi    cr2,r10,0x7e               /* special case if bits 25-30 all 1's */
     rlwinm   r10,r5,0,23,24             /* test LSb and sticky bit */
     bge      cr2,full
     cmpwi    cr3,r10,0x80               /* special rounding if LSb=0 and sticky=1 */
     addic    r5,r5,0x80                 /* standard rounding = add 1 to sticky */
     bne+     cr3,std_done
     beq      full                       /* if LSb=0 and sticky=1 and 22-31 all */
                                         /* zeros, then special case */
std_done: 
     mcrxr    cr0                        /* if carry out, increment exponent */
     bf       cr0_2,nocarry
     addi     r8,r8,1
nocarry:     
          
/*   We're done!   Just assemble the result back into IEEE format:        */
/*   r3 = IEEE result                                                     */
/*   Shift right 8 bits to put the MSb into bit 8, but */
/*   mask it off since it's implied:                                        */
     rlwinm   r3,r5,32-8,9,31
     
/*   Put     the exponent into bits 1-8 of the MSW:                            */
     rlwimi   r3,r8,23,1,8
     
/*   Insert sign     bit:                                                       */
     rlwimi   r3,r11,0,0,0

     mtcr     r0                         /* restore cr */
     blr                                 /* return; */

tst0a:
     rlwinm.  r11,r3,0,1,31              /* FRA = +-0 ? */
     beq      return0
     beq      cr3,tst0b                  /* fpb.exp == 0 ? (held in cr3)*/
     b        full
/*   a is 0:                                                                    */
/*   Calculate sign:                                                            */
return0:
     xor      r3,r3,r4                   /* get product sign */
     rlwinm   r3,r3,0,0,0                /* *FRT = fpa.hi = 0+sign */
     mtcr     r0                         /* restore cr */
     blr                                 /* return */

tst0b:
     rlwinm.  r11,r4,0,1,31              /* FRC = +-0 ? */
     bne      full
/*   b is 0:                                                                    */
     b        return0

/*---------------- end of normal-only case ---------------                      */
full:
.fmsful:
     mtcr     r0                        /* restore CR */      
     mtctr    r0                        /* save cr in ctr */   
     
/* load fpa into r8,r9 and cr6.  load fpb into r11, r12 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 */
     rlwinm   r11,r12,9,0xff            /* isolate exponent of fpb */
     cmpwi    cr6,r9,0                  /* set fpa.sign */
     cmpwi    cr7,r12,0                 /* set fpb.sign */
     rlwinm.  r9,r9,0,0x007fffff        /* isolate fpa.hi */
     cror     cr6_zero,cr0_2,cr0_2      /* fpa.zero = fpa.hi == 0 */
     rlwinm.  r12,r12,0,0x007fffff      /* isolate fpb.hi */
     cror     cr7_zero,cr0_2,cr0_2      /* fpb.zero = fpa.hi == 0 */
     cmpwi    cr0,r8,0xff               /* if (fpa.exp == SEXPMAX) */
     crand    cr6_inf,cr6_zero,cr0_2    /* fpa.inf=(fpa.exp==SEXPMAX && fpa==0) */
     crandc   cr6_NaN,cr0_2,cr6_zero    /* fpa.NaN=(fpa.exp==SEXPMAX && fpa!=0) */
     cmpwi    cr0,r8,0                  /* if (fpa.exp == 0) */
     crand    cr6_zero,cr6_zero,cr0_2   /* fpa.zero=(fpa.exp==0 && fpa==0) */
     crandc   cr0_2,cr0_2,cr6_zero      /* if (fpa.exp==0 && fpa!=0) */
     cmpwi    cr1,r11,0xff              /* if (fpb.exp == SEXPMAX) */
     beq      denormal_a                /* {       Add implied 1 to significand */
     oris     r9,r9,0x0080              /*    fpa.hi |= 0x00800000; */
     b        adone                     /* } else { */
denormal_a:
     addi     r8,r8,1                   /*    fpa.exp++; */
adone:                                  /* } */
     crand    cr7_inf,cr7_zero,cr1_2    /* fpb.inf=(fpb.exp==SEXPMAX && fpb==0) */
     crandc   cr7_NaN,cr1_2,cr7_zero    /* fpb.NaN=(fpb.exp==SEXPMAX && fpb!=0) */
     cmpwi    cr0,r11,0                 /* if (fpb.exp == 0) */
     crand    cr7_zero,cr7_zero,cr0_2   /* fpb.zero=(fpb.exp==0 && fpb==0) */
     crandc   cr0_2,cr0_2,cr7_zero      /* if (fpb.exp==0 && fpb!=0) */
     beq      denormal_b                /* {      Add implied 1 to significand */
     oris     r12,r12,0x0080            /*    fpb.hi |= 0x00800000; */
     b        bdone                     /* } else { */
denormal_b:
     addi     r11,r11,1                 /*   fpb.exp++; */
bdone:                                  /* } */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
1024成人网| 国产午夜精品美女毛片视频| 97久久久精品综合88久久| 国产在线精品一区在线观看麻豆| 图片区小说区区亚洲影院| 亚洲午夜精品在线| 午夜欧美大尺度福利影院在线看| 亚洲男同性恋视频| 亚洲资源中文字幕| 午夜视频在线观看一区| 蜜臀av亚洲一区中文字幕| 美女网站色91| 成人黄色a**站在线观看| 99天天综合性| 欧美曰成人黄网| 91精品国产91热久久久做人人| 51精品国自产在线| 亚洲精品一线二线三线无人区| 欧美成人免费网站| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品久久毛片a| 一区二区三区中文字幕精品精品| 亚洲一区二区3| 韩国精品久久久| 成人精品在线视频观看| 色综合咪咪久久| 91精品国产麻豆| 国产精品丝袜黑色高跟| 一级做a爱片久久| 国精产品一区一区三区mba视频 | 成人在线视频首页| 91在线丨porny丨国产| 欧美日韩成人综合| 国产午夜亚洲精品不卡| 亚洲一区二区偷拍精品| 免费人成黄页网站在线一区二区| 国产乱妇无码大片在线观看| voyeur盗摄精品| 日韩精品一区二区在线| 专区另类欧美日韩| 久久91精品久久久久久秒播| 成人激情电影免费在线观看| 欧美高清激情brazzers| 国产精品欧美综合在线| 免费看精品久久片| 日本韩国精品一区二区在线观看| 精品日韩成人av| 亚洲香蕉伊在人在线观| 99久久精品免费看国产免费软件| 欧美日韩大陆在线| 亚洲美女免费视频| 狠狠色2019综合网| 91超碰这里只有精品国产| 最新久久zyz资源站| 国产在线一区观看| 91 com成人网| 亚洲韩国一区二区三区| 99视频超级精品| 国产无一区二区| 精品在线一区二区三区| 欧美丰满一区二区免费视频| 亚洲黄色片在线观看| eeuss鲁片一区二区三区在线观看| 日韩三区在线观看| 午夜在线成人av| 97se亚洲国产综合自在线不卡 | 色先锋aa成人| 国产精品青草久久| 成人免费高清在线| 欧美国产1区2区| 成人在线一区二区三区| 亚洲国产精华液网站w| 国产成人精品综合在线观看 | 欧美亚洲国产一卡| 亚洲黄色免费电影| 色婷婷精品大视频在线蜜桃视频| 中文字幕在线一区二区三区| 丁香激情综合国产| 中文字幕乱码久久午夜不卡 | 国产亚洲综合av| 国产一区二区不卡老阿姨| 26uuu欧美日本| 国产一区视频网站| 久久精品一区二区三区不卡| 国产一区二区三区黄视频| 久久免费精品国产久精品久久久久| 久99久精品视频免费观看| 久久综合九色综合97_久久久| 国产老女人精品毛片久久| 国产网红主播福利一区二区| 99精品1区2区| 亚洲一区二区三区免费视频| 在线综合+亚洲+欧美中文字幕| 日韩国产在线观看| 国产午夜精品久久久久久久| 91亚洲国产成人精品一区二区三| 亚洲一区在线视频观看| 欧美一级一级性生活免费录像| 美女免费视频一区| 国产色产综合色产在线视频| 91蝌蚪porny成人天涯| 日韩精品免费视频人成| 久久蜜桃av一区精品变态类天堂 | 久久精品av麻豆的观看方式| 久久综合av免费| 91麻豆自制传媒国产之光| 天天影视涩香欲综合网| 久久欧美一区二区| 欧美视频一区二区三区四区| 久久电影网站中文字幕| 亚洲激情图片一区| 久久综合九色综合久久久精品综合 | 精品福利在线导航| 91在线观看免费视频| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品福利一区二区三区| 欧美日韩国产一级二级| 成人精品小蝌蚪| 久久激五月天综合精品| 中文字幕日韩一区| 欧美xxxxx牲另类人与| 91久久国产最好的精华液| 麻豆精品新av中文字幕| 亚洲另类在线一区| 精品黑人一区二区三区久久| 在线观看亚洲精品视频| 国产成人免费网站| 九色综合国产一区二区三区| 亚洲高清不卡在线| 国产精品久久久久久久久晋中| 欧美一区二区三区视频免费播放| 91一区二区三区在线观看| 久久精品久久精品| 日韩成人免费看| 一区二区久久久久久| 国产精品美女视频| 久久久久久久久久看片| 日韩视频一区二区| 91精品国产91久久久久久最新毛片 | 成人av电影在线网| 国内外成人在线| 美女视频黄免费的久久| 亚洲成人你懂的| 亚洲精品国产无套在线观| 国产精品卡一卡二卡三| 欧美极品美女视频| 久久精品一区八戒影视| 久久女同精品一区二区| 精品国产凹凸成av人导航| 精品欧美久久久| 精品日韩在线观看| 久久久久久99精品| 精品成人一区二区三区四区| 日韩欧美一二区| 欧美成va人片在线观看| 精品捆绑美女sm三区| 2019国产精品| 欧美精彩视频一区二区三区| 久久精品人人做| 中文字幕av一区二区三区免费看 | 成人一级片网址| 成人激情开心网| 成人avav在线| 96av麻豆蜜桃一区二区| 欧洲亚洲国产日韩| 欧美人与禽zozo性伦| 日韩一区二区在线播放| 欧美va亚洲va在线观看蝴蝶网| 欧美不卡视频一区| 中文在线一区二区| 亚洲永久精品国产| 亚洲成人免费看| 美女视频第一区二区三区免费观看网站| 日韩精品一区二区三区视频在线观看| 欧美成人在线直播| 久久精品一区二区三区不卡| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲精品ww久久久久久p站| 亚洲国产精品久久久久婷婷884| 性久久久久久久| 国产在线精品免费| 成人18视频在线播放| 在线观看网站黄不卡| 日韩一级精品视频在线观看| 国产欧美日韩在线| 一区二区三区影院| 激情久久五月天| 色综合久久99| 久久综合色播五月| 夜夜操天天操亚洲| 国产毛片精品国产一区二区三区| 91色porny| 欧美va亚洲va香蕉在线| 亚洲自拍偷拍九九九| 国产成人99久久亚洲综合精品| 欧美亚洲一区二区三区四区| 久久无码av三级| 日韩电影在线观看电影| 91在线免费看| 国产亚洲一区字幕|