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

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

?? e_fmod.s

?? glibc 庫, 不僅可以學習使用庫函數,還可以學習函數的具體實現,是提高功力的好資料
?? S
字號:
.file "fmod.s"// Copyright (c) 2000 - 2003, Intel Corporation// All rights reserved.//// Contributed 2000 by the Intel Numerics Group, Intel Corporation//// 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.//// * The name of Intel Corporation may not 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 INTEL OR ITS// 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.//// Intel Corporation is the author of this code, and requests that all// problem reports or change requests be submitted to it directly at// http://www.intel.com/software/products/opensource/libraries/num.htm.//// History//====================================================================// 02/02/00 Initial version// 03/02/00 New Algorithm// 04/04/00 Unwind support added// 08/15/00 Bundle added after call to __libm_error_support to properly//          set [the previously overwritten] GR_Parameter_RESULT.// 11/28/00 Set FR_Y to f9// 03/11/02 Fixed flags for fmod(qnan,zero)// 05/20/02 Cleaned up namespace and sf0 syntax// 02/10/03 Reordered header: .section, .global, .proc, .align// 04/28/03 Fix: fmod(sNaN,0) no longer sets errno//// API//====================================================================// double fmod(double,double);//// Overview of operation//====================================================================//  fmod(a,b)=a-i*b,//  where i is an integer such that, if b!=0,//  |i|<|a/b| and |a/b-i|<1//// Algorithm//====================================================================// a). if |a|<|b|, return a// b). get quotient and reciprocal overestimates accurate to//     33 bits (q2,y2)// c). if the exponent difference (exponent(a)-exponent(b))//     is less than 32, truncate quotient to integer and//     finish in one iteration// d). if exponent(a)-exponent(b)>=32 (q2>=2^32)//     round quotient estimate to single precision (k=RN(q2)),//     calculate partial remainder (a'=a-k*b),//     get quotient estimate (a'*y2), and repeat from c).//// Special cases//====================================================================// b=+/-0: return NaN, call libm_error_support// a=+/-Inf, a=NaN or b=NaN: return NaN//// Registers used//====================================================================// Predicate registers: p6-p11// General registers:   r2,r29,r32 (ar.pfs), r33-r39// Floating point registers: f6-f15GR_SAVE_B0                    = r33GR_SAVE_PFS                   = r34GR_SAVE_GP                    = r35GR_SAVE_SP                    = r36GR_Parameter_X                = r37GR_Parameter_Y                = r38GR_Parameter_RESULT           = r39GR_Parameter_TAG              = r40FR_X             = f10FR_Y             = f9FR_RESULT        = f8.section .textGLOBAL_IEEE754_ENTRY(fmod)// inputs in f8, f9// result in f8{ .mfi  alloc r32=ar.pfs,1,4,4,0  // f6=|a|  fmerge.s f6=f0,f8  mov r2 = 0x0ffdd}  {.mfi  nop.m 0  // f7=|b|  fmerge.s f7=f0,f9  nop.i 0;;}{ .mfi  setf.exp f11 = r2  // (1) y0  frcpa.s1 f10,p6=f6,f7  nop.i 0}// Y +-NAN, +-inf, +-0?     p7{ .mfi      nop.m 999      fclass.m.unc  p7,p0 = f9, 0xe7      nop.i 999;;}// qnan snan inf norm     unorm 0 -+// 1    1    1   0        0     0 11// e                      3// X +-NAN, +-inf, ?        p9{ .mfi      nop.m 999      fclass.m.unc  p9,p0 = f8, 0xe3      nop.i 999}// |x| < |y|? Return x p8{ .mfi      nop.m 999      fcmp.lt.unc.s1 p8,p0 = f6,f7      nop.i 999 ;;}{ .mfi  nop.m 0  // normalize y (if |x|<|y|)  (p8) fma.s0 f9=f9,f1,f0  nop.i 0;;}  { .mfi  mov r2=0x1001f  // (2) q0=a*y0  (p6) fma.s1 f13=f6,f10,f0  nop.i 0}{ .mfi  nop.m 0  // (3) e0 = 1 - b * y0  (p6) fnma.s1 f12=f7,f10,f1  nop.i 0;;}  {.mfi  nop.m 0  // normalize x (if |x|<|y|)  (p8) fma.d.s0 f8=f8,f1,f0  nop.i 0}{.bbb  (p9) br.cond.spnt FMOD_X_NAN_INF  (p7) br.cond.spnt FMOD_Y_NAN_INF_ZERO  // if |x|<|y|, return  (p8) br.ret.spnt    b0;;}  {.mfi  nop.m 0  // normalize x  fma.s0 f6=f6,f1,f0  nop.i 0}{.mfi  nop.m 0  // normalize y  fma.s0 f7=f7,f1,f0  nop.i 0;;}  {.mfi  // f15=2^32  setf.exp f15=r2  // (4) q1=q0+e0*q0  (p6) fma.s1 f13=f12,f13,f13  nop.i 0}{ .mfi  nop.m 0  // (5) e1 = e0 * e0 + 2^-34  (p6) fma.s1 f14=f12,f12,f11  nop.i 0;;}{.mlx  nop.m 0  movl r2=0x33a00000;;}{ .mfi  nop.m 0  // (6) y1 = y0 + e0 * y0  (p6) fma.s1 f10=f12,f10,f10  nop.i 0;;}{.mfi  // set f12=1.25*2^{-24}  setf.s f12=r2  // (7) q2=q1+e1*q1  (p6) fma.s1 f13=f13,f14,f13  nop.i 0;;}{.mfi  nop.m 0  fmerge.s f9=f8,f9  nop.i 0}{ .mfi  nop.m 0  // (8) y2 = y1 + e1 * y1  (p6) fma.s1 f10=f14,f10,f10  // set p6=0, p10=0  cmp.ne.and p6,p10=r0,r0;;}.align 32loop53:  {.mfi  nop.m 0  // compare q2, 2^32  fcmp.lt.unc.s1 p8,p7=f13,f15  nop.i 0}  {.mfi  nop.m 0  // will truncate quotient to integer, if exponent<32 (in advance)  fcvt.fx.trunc.s1 f11=f13  nop.i 0;;}  {.mfi  nop.m 0  // if exponent>32, round quotient to single precision (perform in advance)  fma.s.s1 f13=f13,f1,f0  nop.i 0;;}  {.mfi  nop.m 0  // set f12=sgn(a)  (p8) fmerge.s f12=f8,f1  nop.i 0}  {.mfi  nop.m 0  // normalize truncated quotient  (p8) fcvt.xf f13=f11  nop.i 0;;}  { .mfi  nop.m 0  // calculate remainder (assuming f13=RZ(Q))  (p7) fnma.s1 f14=f13,f7,f6  nop.i 0}  {.mfi  nop.m 0  // also if exponent>32, round quotient to single precision  // and subtract 1 ulp: q=q-q*(1.25*2^{-24})  (p7) fnma.s.s1 f11=f13,f12,f13  nop.i 0;;}  {.mfi  nop.m 0  // (p8) calculate remainder (82-bit format)  (p8) fnma.s1 f11=f13,f7,f6  nop.i 0}  {.mfi  nop.m 0  // (p7) calculate remainder (assuming f11=RZ(Q))  (p7) fnma.s1 f6=f11,f7,f6  nop.i 0;;}  {.mfi  nop.m 0  // Final iteration (p8): is f6 the correct remainder (quotient was not overestimated) ?  (p8) fcmp.lt.unc.s1 p6,p10=f11,f0  nop.i 0;;}  {.mfi  nop.m 0  // get new quotient estimation: a'*y2  (p7) fma.s1 f13=f14,f10,f0  nop.i 0}  {.mfb  nop.m 0  // was f14=RZ(Q) ? (then new remainder f14>=0)  (p7) fcmp.lt.unc.s1 p7,p9=f14,f0  nop.b 0;;}.pred.rel "mutex",p6,p10  {.mfb  nop.m 0  // add b to estimated remainder (to cover the case when the quotient was overestimated)  // also set correct sign by using f9=|b|*sgn(a), f12=sgn(a)  (p6) fma.d.s0 f8=f11,f12,f9  nop.b 0}  {.mfb  nop.m 0  // calculate remainder (single precision)  // set correct sign of result before returning  (p10) fma.d.s0 f8=f11,f12,f0  (p8) br.ret.sptk b0;;}  {.mfi  nop.m 0  // if f13!=RZ(Q), get alternative quotient estimation: a''*y2  (p7) fma.s1 f13=f6,f10,f0  nop.i 0}  {.mfb  nop.m 0  // if f14 was RZ(Q), set remainder to f14  (p9) mov f6=f14  br.cond.sptk loop53;;}FMOD_X_NAN_INF:// Y zero ?{.mfi  nop.m 0  fclass.m p10,p0=f8,0xc3     // Test x=nan  nop.i 0}{.mfi  nop.m 0  fma.s1 f10=f9,f1,f0  nop.i 0;;}{.mfi  nop.m 0  fma.s0 f8=f8,f1,f0  nop.i 0}{.mfi  nop.m 0(p10) fclass.m p10,p0=f9,0x07 // Test x=nan, and y=zero  nop.i 0;;}{.mfb nop.m 0 fcmp.eq.unc.s1 p11,p0=f10,f0(p10) br.ret.spnt b0;;        // Exit with result=x if x=nan and y=zero}{.mib  nop.m 0  nop.i 0  // if Y zero  (p11) br.cond.spnt FMOD_Y_ZERO;;}// X infinity? Return QNAN indefinite{ .mfi      nop.m 999      fclass.m.unc  p8,p9 = f8, 0x23      nop.i 999;;}// Y NaN ?{.mfi     nop.m 999(p8) fclass.m p9,p8=f9,0xc3     nop.i 0;;}{.mfi      nop.m 999(p8)  frcpa.s0 f8,p0 = f8,f8      nop.i 0}{ .mfi      nop.m 999    // also set Denormal flag if necessary(p8)  fma.s0 f9=f9,f1,f0      nop.i 999 ;;}{ .mfb      nop.m 999(p8)  fma.d.s0 f8=f8,f1,f0      nop.b 999 ;;}{ .mfb      nop.m 999(p9)  frcpa.s0 f8,p7=f8,f9      br.ret.sptk   b0 ;;}FMOD_Y_NAN_INF_ZERO:// Y INF{ .mfi      nop.m 999      fclass.m.unc  p7,p0 = f9, 0x23      nop.i 999 ;;}{ .mfb      nop.m 999(p7)  fma.d.s0 f8=f8,f1,f0(p7)  br.ret.spnt    b0 ;;}// Y NAN?{ .mfi      nop.m 999      fclass.m.unc  p9,p0 = f9, 0xc3      nop.i 999 ;;}{ .mfb      nop.m 999(p9)  fma.d.s0 f8=f9,f1,f0(p9)  br.ret.spnt    b0 ;;}FMOD_Y_ZERO:// Y zero? Must be zero at this point// because it is the only choice left.// Return QNAN indefinite{.mfi  nop.m 0  // set Invalid  frcpa.s0 f12,p0=f0,f0  nop.i 0}// X NAN?{ .mfi      nop.m 999      fclass.m.unc  p9,p10 = f8, 0xc3      nop.i 999 ;;}{ .mfi      nop.m 999(p10)  fclass.nm  p9,p10 = f8, 0xff      nop.i 999 ;;}{.mfi nop.m 999 (p9) frcpa.s0 f11,p7=f8,f0 nop.i 0;;}{ .mfi      nop.m 999(p10)  frcpa.s0         f11,p7 = f9,f9      mov        GR_Parameter_TAG = 121 ;;}{ .mfi      nop.m 999      fmerge.s      f10 = f8, f8      nop.i 999}{ .mfb      nop.m 999      fma.d.s0 f8=f11,f1,f0      br.sptk __libm_error_region;;}GLOBAL_IEEE754_END(fmod)LOCAL_LIBM_ENTRY(__libm_error_region).prologue{ .mfi        add   GR_Parameter_Y=-32,sp             // Parameter 2 value        nop.f 0.save   ar.pfs,GR_SAVE_PFS        mov  GR_SAVE_PFS=ar.pfs                 // Save ar.pfs}{ .mfi.fframe 64        add sp=-64,sp                           // Create new stack        nop.f 0        mov GR_SAVE_GP=gp                       // Save gp};;{ .mmi        stfd [GR_Parameter_Y] = FR_Y,16         // Save Parameter 2 on stack        add GR_Parameter_X = 16,sp              // Parameter 1 address.save   b0, GR_SAVE_B0        mov GR_SAVE_B0=b0                       // Save b0};;.body{ .mib        stfd [GR_Parameter_X] = FR_X            // Store Parameter 1 on stack        add   GR_Parameter_RESULT = 0,GR_Parameter_Y    nop.b 0                                 // Parameter 3 address}{ .mib        stfd [GR_Parameter_Y] = FR_RESULT      // Store Parameter 3 on stack        add   GR_Parameter_Y = -16,GR_Parameter_Y        br.call.sptk b0=__libm_error_support#  // Call error handling function};;{ .mmi        nop.m 0        nop.m 0        add   GR_Parameter_RESULT = 48,sp};;{ .mmi        ldfd  f8 = [GR_Parameter_RESULT]       // Get return result off stack.restore sp        add   sp = 64,sp                       // Restore stack pointer        mov   b0 = GR_SAVE_B0                  // Restore return address};;{ .mib        mov   gp = GR_SAVE_GP                  // Restore gp        mov   ar.pfs = GR_SAVE_PFS             // Restore ar.pfs        br.ret.sptk     b0                     // Return};;LOCAL_LIBM_END(__libm_error_region).type   __libm_error_support#,@function.global __libm_error_support#

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产三级人妇 | 中文字幕五月欧美| 国产精品自拍av| 精品少妇一区二区三区日产乱码 | 亚洲一区二区3| 欧美日韩一区二区三区免费看 | 日韩黄色在线观看| 日韩视频在线一区二区| 经典三级视频一区| 国产日韩欧美a| 91片在线免费观看| 亚洲一二三四区| 欧美电影免费提供在线观看| 国产一区二三区好的| 国产精品久久久久桃色tv| 色综合夜色一区| 日韩成人av影视| 国产偷国产偷精品高清尤物| 99精品视频一区| 五月天激情综合网| 国产亚洲一区字幕| 91久久线看在观草草青青| 日本成人在线网站| 欧美国产一区二区| 欧美午夜不卡视频| 久久激情五月激情| 亚洲精品视频在线观看免费| 欧美丰满高潮xxxx喷水动漫| 国产乱子轮精品视频| 亚洲欧洲精品一区二区三区| 精品视频在线看| 婷婷久久综合九色综合绿巨人| 精品捆绑美女sm三区| 色综合天天综合色综合av| 日韩和欧美一区二区三区| 国产精品午夜在线| 欧美色综合网站| 国产98色在线|日韩| 午夜成人免费电影| 国产精品网曝门| 亚洲免费观看高清完整版在线 | 美女性感视频久久| 亚洲色图视频免费播放| 日韩免费看的电影| 91网上在线视频| 国模套图日韩精品一区二区| 亚洲自拍偷拍麻豆| 中文字幕在线不卡国产视频| 日韩一级高清毛片| 欧美亚洲一区二区在线| 日本不卡中文字幕| 亚洲国产日韩a在线播放| 国产精品免费丝袜| 久久久影视传媒| 欧美电影免费提供在线观看| 欧美性猛片xxxx免费看久爱| 97久久精品人人澡人人爽| 国产精品一线二线三线精华| 免费视频最近日韩| 亚洲成av人在线观看| 亚洲欧美日韩中文播放| 国产精品久久久一本精品 | 国产免费久久精品| 日韩欧美国产一二三区| 欧美午夜精品久久久久久超碰| www.欧美精品一二区| 国产经典欧美精品| 国产精品中文字幕欧美| 国产一区不卡在线| 精品在线免费观看| 久久99精品久久久久久国产越南 | 久久久久久久综合狠狠综合| 日韩视频中午一区| 欧美一区二区三区免费大片 | 91美女片黄在线观看| 9色porny自拍视频一区二区| 欧美三级中文字幕| 欧美日韩一级二级三级| 欧洲一区在线观看| 欧美色老头old∨ideo| 欧美性感一类影片在线播放| 欧美日韩亚洲国产综合| 欧美日韩视频不卡| 欧美日本一区二区| 精品少妇一区二区三区免费观看| 日韩欧美一区二区久久婷婷| 日韩免费高清av| 精品美女在线播放| 亚洲国产精品国自产拍av| 国产精品麻豆欧美日韩ww| 1000部国产精品成人观看| ㊣最新国产の精品bt伙计久久| 中文字幕五月欧美| 亚洲女人的天堂| 亚洲成人在线免费| 蜜臀精品久久久久久蜜臀| 国产在线观看一区二区| www.视频一区| 欧美日产国产精品| 久久精品无码一区二区三区| 国产精品女主播在线观看| 伊人色综合久久天天| 亚洲成人免费影院| 国产一区欧美二区| av一二三不卡影片| 欧美一区二区视频观看视频| 久久久亚洲精品一区二区三区| 国产精品久久久久久久久动漫| 亚洲精品伦理在线| 美国十次了思思久久精品导航| 国产成人精品一区二区三区四区| 91免费在线看| 日韩视频一区二区| 亚洲欧洲日韩综合一区二区| 日韩高清中文字幕一区| 九九九久久久精品| 一本色道久久综合精品竹菊| 日韩亚洲欧美中文三级| 中文欧美字幕免费| 日韩国产精品久久| 成人午夜视频在线| 欧美肥妇bbw| 久久久美女艺术照精彩视频福利播放| 奇米色777欧美一区二区| 成人免费高清视频在线观看| 欧美日本一区二区三区| 亚洲精品在线电影| 成人免费在线视频观看| 国产综合成人久久大片91| 欧美写真视频网站| 国产精品久久久久久久久久久免费看 | 久久99精品国产91久久来源| 亚洲综合网站在线观看| 美女国产一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 午夜欧美大尺度福利影院在线看| 精品免费视频.| 丁香桃色午夜亚洲一区二区三区| 欧美性猛片aaaaaaa做受| 久久精品一区四区| 精品一区二区三区免费毛片爱 | 亚洲国产高清不卡| 视频在线观看一区二区三区| 不卡的电影网站| 久久亚洲精精品中文字幕早川悠里| 亚洲国产精品久久久久婷婷884| 丰满少妇久久久久久久| 3751色影院一区二区三区| 亚洲一区在线观看免费 | 亚洲激情自拍视频| 国产91精品精华液一区二区三区| 欧美电影免费观看高清完整版 | 一区二区三区高清不卡| 欧美精品久久99久久在免费线| 日精品一区二区三区| 免费成人美女在线观看| 亚洲视频一区二区在线| 欧美在线视频日韩| 99精品视频在线观看免费| 五月婷婷久久丁香| 综合激情成人伊人| 国产精品另类一区| 亚洲国产裸拍裸体视频在线观看乱了| 精品一区二区久久| 国产精品网站一区| 欧美视频一区二区| 一本色道亚洲精品aⅴ| 91精品国产综合久久精品| 久久综合久久综合亚洲| 国产精品美女一区二区| 亚洲成人精品一区二区| 欧美在线视频日韩| 日日噜噜夜夜狠狠视频欧美人| 欧美精品v日韩精品v韩国精品v| 亚洲综合在线免费观看| 欧美视频一区二| 丝袜诱惑亚洲看片| 欧美成人一区二区三区片免费| 韩国精品主播一区二区在线观看 | 日韩福利视频网| 中文字幕在线观看一区| 日韩视频在线永久播放| 国产毛片精品视频| 美女一区二区在线观看| 亚洲视频一区二区在线| 欧美不卡在线视频| 97精品久久久午夜一区二区三区| 久久se这里有精品| 欧美日韩小视频| 亚洲综合男人的天堂| 色香色香欲天天天影视综合网| 欧美精品一区在线观看| 韩国一区二区三区| 欧美精品 日韩| 亚洲在线成人精品| 色综合天天性综合| 亚洲美女免费在线| 在线欧美日韩国产| 亚洲韩国精品一区| 884aa四虎影成人精品一区|