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

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

?? ppc_fadd.s

?? powerpc 405 優(yōu)化過的硬浮點庫
?? S
?? 第 1 頁 / 共 2 頁
字號:
/* fpopt/ppc_fadd.S, pl_FPE_common, pl_linux 11/24/03 16:17:25                                                                  */
/*----------------------------------------------------------------------------- */
/*  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: add two double floating point numbers. frt = fpa + fpb             */
/* Input:    r3,r4(fpa)                                                         */
/*           r5,r6(fpb)                                                         */
/* Output:   r3,r4(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.                                    */
/*          3. This file contains code common to both addition and subtraction. */
/*          4. Eventually, the smaller magnitude argument (based on the high    */
/*             word only) will be in <r9,r10>, and the larger in <r8, r7>.      */
/*             GPRs <r9-r12> are used as a 128-bit register for developing the  */
/*             sum of the fractions. The signs of the arguments are dumped      */
/*             into the CR, and logical operations are used to decide if the    */
/*             smaller argument should be subtracted.                           */
/*             CR4 is used to remember the sign of the "big" argument, and      */
/*             whether the signs of the args were different.                    */
/*                                                                              */
/*----------------------------------------------------------------------------- */

#define cr4_lt 16 
#define cr4_eq 18 
#define cr6_lt 24 
#define cr7_lt 28 

#include <ppc4xx.inc>

function_prolog(__adddf3)

     mr        r7,r5                  /* load B(high) */
/*                                                                              */
/* from here on is common code                                                  */
/*                                                                              */
     .globl     _ppc_fadd_common
_ppc_fadd_common:
     mfcr      r0                      /* save cr */
     mtctr     r0
     mr        r8,r3                 /* load A(high) */
     rlwinm    r0,r8,12,0x7FF        /* isolate exponent of A */
     cmpwi     cr0,r0,0x7FF          /* check A for INF/NaN */
     rlwinm    r12,r7,12,0x7FF       /* isolate exponent of B */
     cmpwi     cr1,r12,0x7FF         /* check B for INF/NaN */
     cmpwi     cr6,r8,0              /* CR6_lt == fra sign bit */
     beq       cr0,A_is_spec         /* A is INF/NaN */
     cmpwi     cr7,r7,0              /* CR7_lt == frb sign bit */
     beq       cr1,B_is_spec         /* B is INF/NaN */
/*                                                                              */
/* Neither A nor B is INF or NaN.  Signs are captured in CR6 & CR7. */
/*                                                                              */
     rlwinm    r8,r8,0,0x7FFFFFFF    /* strip signs */
     rlwinm    r7,r7,0,0x7FFFFFFF    /* strip signs */
     cmpw      cr0,r8,r7             /* compare A(high) with B(high) */
     blt       cr0,A_small           /* A operand is smaller */
/*                                                                              */
     rlwinm    r9,r7,0,0x000FFFFF    /* high fraction into r9 */
     mr        r10,r6                /* low fraction to r10 */
     cror      cr4_lt,cr6_lt,cr6_lt  /* sign of result is sign of A */
     rlwinm    r6,r7,12,0x7FF        /* exp(B) to r6 */
     mr        r7,r4                 /* low fraction of A to r7 */
     crxor     cr4_eq,cr6_lt,cr7_lt  /* true iff signs differ */
     rlwinm    r5,r8,12,0x7FF        /* exp(A) to r5 */
     rlwinm    r8,r8,0,0x000FFFFF    /* high fraction (A) to r8 */
     b         ready                 /* jump to common code */
/*                                                                              */
A_small:
     rlwinm    r9,r8,0,0x000FFFFF    /* high fraction into r9 */
     mr        r10,r4                /* low fraction to r10 */
     cror      cr4_lt,cr7_lt,cr7_lt  /* sign of result is sign of B */
     rlwinm    r8,r7,0,0x000FFFFF    /* high fraction     (B) to r8 */
     rlwinm    r5,r7,12,0x7FF        /* exp(B) to r5 */
     crxor     cr4_eq,cr6_lt,cr7_lt  /* true iff signs differ */
     mr        r7,r6                 /* low fraction of B to r7 */
     ori       r6,r0,0               /* copy exp(A) to r6 */
/*                                                                              */
/* now things are set up                                                        */
/*  r5 = exp(big),  r8 = high frac(big),  r7  = low frac(big)             */
/*  r6 = exp(small), r9 = high frac(small), r10 = low frac(small)           */
/*                                                                              */
ready:
     cmpwi     cr0,r6,0              /* check for denorm/Zero */
     cmpwi     cr1,r5,0
     oris      r8,r8,0x0010          /* materialize "hidden" bit */
     oris      r9,r9,0x0010          /* materialize "hidden" bit */
     bne       cr0,adone             /* is small special? */
     xoris     r9,r9,0x0010          /* yes. clear the leading bit */
     addi      r6,r6,1               /* and correct exponent */
adone:     
     xor       r12,r12,r12           /* clear register */
     bne       cr1,bdone             /* is big special? */
     xoris     r8,r8,0x0010          /* yes. clear the leading bit */
     addi      r5,r5,1               /* and correct exponent */
bdone:
/*                                                                              */
/* now pre-shift "small" so exponents match                             */
/*                                                                              */
     subfc.    r0,r6,r5              /* get difference in exponents */
     cmpwi     cr1,r0,54             /* check max pre-shift amount */
     cmpwi     cr2,r0,32             /* */
     xor       r11,r11,r11           /* clear register (wasted if pre-alignment needed) */
     beq       cr0,aligned           /* equal */
     rlwinm.   r6,r0,0,0x1F          /* get part-word shift amount */
     bgt       cr1,ret_big           /* difference > 53 - "big" is result */
     beq       cr0,check_32          /* make sure some shift amount mod 32 */

     subfic    r12,r6,32             /* get complementary shift amount */
     slw       r11,r10,r12           /* */
     srw       r10,r10,r6            /* shift */
     slw       r12,r9,r12            /* */
     or        r10,r10,r12
     srw       r9,r9,r6              /* */

check_32:
     xor       r12,r12,r12           /* clear register (again) */
     blt       cr2,aligned           /* shift at least 32 bits? */

     ori       r12,r11,0             /* move r11 to r12 */
     ori       r11,r10,0             /* move r10 to r11 */
     ori       r10,r9,0              /* move r9 to r10 */
     xor       r9,r9,r9              /* zero r9 */
/*                                                                              */
aligned:
     beq       cr4,do_sub            /* do subtract if signs different */
     addc      r10,r10,r7            /* add the fractions */
     adde      r9,r9,r8              /* */
/*                                                                              */
     cntlzw    r0,r9                 /* check     leading     zero bits */
     cmpwi     cr0,r0,11             /* */
     beq       cr0,do_round          /* just right.  round to     double */
     bgt       cr0,do_sign           /* unnormalized - must be zero or denorm */
/*                                                                              */
right_1:
     rlwinm    r0,r11,0,0x1          /* get last bit */
     rlwinm    r11,r11,31,0x7FFFFFFF /* right     shift 1 */
     rlwimi    r11,r10,31,0x80000000 /* */
     rlwinm    r10,r10,31,0x7FFFFFFF /* right     shift 1 */
     rlwimi    r10,r9,31,0x80000000  /* */
     addi      r5,r5,1               /* bump exponent */
     cmpli     cr2,r5,0x7fe          /* is exponent OK? */
     srwi      r9,r9,1               /* */
     or        r12,r12,r0            /* bag up last bit from r11 */
     bgt       cr2,out_of_range      /* final     exp is > max */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费伊人电影| 日韩精品一区二区三区在线播放| 欧美激情综合在线| 粉嫩av亚洲一区二区图片| 久久久久久久久久电影| 国产成人在线影院| 亚洲欧美另类在线| 欧美日韩精品一区视频| 免费高清在线一区| 国产日本欧美一区二区| 91丝袜美腿高跟国产极品老师| 亚洲综合男人的天堂| 欧美女孩性生活视频| 精品在线视频一区| 国产精品乱人伦一区二区| 日本久久电影网| 免费欧美高清视频| 中文字幕成人网| 欧美性受xxxx黑人xyx| 麻豆国产精品777777在线| 国产日韩欧美不卡| 欧美色图免费看| 国产美女视频91| 黄网站免费久久| 一区免费观看视频| 91麻豆精品国产91久久久久| 国产精品综合视频| 亚洲小说春色综合另类电影| 久久综合网色—综合色88| 99久久er热在这里只有精品15| 午夜伊人狠狠久久| 亚洲国产激情av| 91精品免费在线| av一二三不卡影片| 激情五月激情综合网| 亚洲午夜免费福利视频| 国产精品每日更新| 精品国产一区二区在线观看| 色婷婷综合久久久中文字幕| 国产一区二区在线观看视频| 亚洲高清久久久| 国产精品乱码一区二三区小蝌蚪| 91精品国产福利| 91最新地址在线播放| 激情久久久久久久久久久久久久久久| 一区二区三区日韩| 中文字幕欧美三区| 精品久久人人做人人爽| 欧美日韩高清一区| 91浏览器入口在线观看| 国产精品一区二区果冻传媒| 日本午夜精品一区二区三区电影| 亚洲码国产岛国毛片在线| 久久久久高清精品| 精品国免费一区二区三区| 精品视频一区二区三区免费| 91老师片黄在线观看| 国产成人精品影院| 国产一区二区精品久久| 男女男精品网站| 日韩综合在线视频| 亚洲韩国精品一区| 亚洲高清视频中文字幕| 亚洲精品成人精品456| 国产精品久久久久久久裸模| 国产欧美一区二区三区网站| 久久理论电影网| 久久久精品中文字幕麻豆发布| 精品入口麻豆88视频| 日韩欧美精品三级| 精品粉嫩aⅴ一区二区三区四区| 日韩一级片网址| 日韩一区二区三区免费观看| 日韩欧美区一区二| 精品国产一区二区三区久久影院| 日韩午夜小视频| 精品免费视频一区二区| 日韩精品一区二区三区四区| 欧美一区二区免费观在线| 日韩欧美激情一区| www激情久久| 国产日韩欧美综合在线| 国产精品免费免费| 亚洲欧美激情一区二区| 亚洲一区视频在线观看视频| 亚洲国产精品一区二区久久恐怖片| 一区二区三区欧美日| 三级精品在线观看| 韩国精品主播一区二区在线观看| 国产福利精品导航| 91麻豆高清视频| 欧美日韩在线综合| 日韩精品一区二区在线| 久久精品视频一区| 伊人开心综合网| 一本到不卡免费一区二区| 在线观看视频一区| 日韩欧美在线观看一区二区三区| 久久这里只有精品视频网| 亚洲国产精品成人综合| 亚洲精品乱码久久久久久黑人| 亚瑟在线精品视频| 国产一区二区三区免费观看| 99久久精品免费| 日韩一区二区免费在线电影 | 成人一区二区三区中文字幕| 不卡av免费在线观看| 欧美三级乱人伦电影| 日韩一区二区高清| 1区2区3区欧美| 免费成人av资源网| 99久久免费精品高清特色大片| 欧美人牲a欧美精品| 久久久精品国产免大香伊| 一区二区三区精品久久久| 美洲天堂一区二卡三卡四卡视频| 不卡一卡二卡三乱码免费网站| 欧美挠脚心视频网站| 国产丝袜在线精品| 日韩高清国产一区在线| 成人激情免费网站| 欧美日韩亚洲综合一区| 国产精品亲子伦对白| 五月开心婷婷久久| 91小视频免费观看| xvideos.蜜桃一区二区| 性久久久久久久| www.亚洲人| 久久噜噜亚洲综合| 日韩av午夜在线观看| 99re8在线精品视频免费播放| 欧美一级欧美一级在线播放| 亚洲欧美日韩国产手机在线| 国产精一区二区三区| 欧美一区二区久久久| 亚洲综合丝袜美腿| 91在线看国产| 国产清纯白嫩初高生在线观看91 | 91精品国产一区二区| 亚洲欧美在线视频| 国产精品888| 日韩精品一区二区三区视频| 亚洲bdsm女犯bdsm网站| 99精品在线观看视频| 亚洲精品在线免费播放| 亚洲成人福利片| 在线视频一区二区三| 国产精品久久久久四虎| 国产精品一二一区| 精品国产一区二区国模嫣然| 免费人成黄页网站在线一区二区| 欧美视频一区二区三区四区| 亚洲情趣在线观看| 成人黄页在线观看| 中文字幕免费观看一区| 国产精品88888| 国产欧美日韩不卡免费| 国产aⅴ综合色| 国产精品蜜臀av| 99国产欧美久久久精品| ...xxx性欧美| 91美女精品福利| 亚洲永久精品大片| 精品视频一区 二区 三区| 亚洲国产精品久久艾草纯爱| 欧美日韩精品一区二区三区蜜桃| 亚洲午夜精品网| 在线91免费看| 毛片一区二区三区| 久久精品夜夜夜夜久久| 欧美日韩激情一区二区三区| 欧美日韩mp4| 亚瑟在线精品视频| 欧美欧美欧美欧美首页| 日韩黄色小视频| 欧美一二三四区在线| 91在线精品秘密一区二区| 亚洲视频 欧洲视频| 色综合天天综合狠狠| 亚洲自拍与偷拍| 欧美精三区欧美精三区| 乱中年女人伦av一区二区| 欧美电影免费观看高清完整版| 国内外成人在线| 国产精品美女久久久久久久久| 色婷婷综合久久久久中文| 亚洲国产精品久久不卡毛片| 欧美电影免费观看高清完整版在 | 亚洲青青青在线视频| 欧美色成人综合| 久久国产视频网| 国产精品久久久久久久久动漫| 欧美优质美女网站| 日本人妖一区二区| 亚洲国产精品99久久久久久久久| 欧美制服丝袜第一页| 久久99国产精品成人| 亚洲欧洲精品一区二区三区不卡| 欧美日韩不卡在线| 国产精品123|