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

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

?? s_nexttowardf.s

?? linux下的C語言庫源碼有一百多M解壓后很不錯(cuò)
?? S
字號(hào):
.file "nexttowardf.s"// Copyright (c) 2001 - 2004, Intel Corporation// All rights reserved.//// Contributed 2001 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//==============================================================// 08/15/01 Initial version // 08/23/01 Corrected error tag number// 05/20/02 Cleaned up namespace and sf0 syntax// 02/10/03 Reordered header: .section, .global, .proc, .align// 12/14/04 Added error handling on underflow.//// API//==============================================================// float nexttowardf( float x, long double y );// input  floating point f8, f9// output floating point f8//// Registers used//==============================================================GR_max_pexp     = r14GR_min_pexp     = r15GR_exp          = r16GR_sig          = r17GR_lnorm_sig    = r18GR_sign_mask    = r19GR_exp_mask     = r20GR_sden_sig     = r21GR_new_sig      = r22GR_new_exp      = r23GR_lden_sig     = r24GR_snorm_sig    = r25GR_exp1         = r26GR_x_exp        = r27GR_min_den_rexp = r28// r36-39 parameters for libm_error_supportGR_SAVE_B0                = r34GR_SAVE_GP                = r35GR_SAVE_PFS               = r32GR_Parameter_X            = r36GR_Parameter_Y            = r37GR_Parameter_RESULT       = r38GR_Parameter_TAG          = r39FR_lnorm_sig       = f10FR_lnorm_exp       = f11FR_lnorm           = f12FR_sden_sig        = f13FR_sden_exp        = f14FR_sden            = f15FR_save_f8         = f33FR_new_exp         = f34FR_new_sig         = f35FR_lden_sig        = f36FR_snorm_sig       = f37FR_exp1            = f38FR_tmp             = f39//// Overview of operation//==============================================================// nexttowardf determines the next representable value // after x in the direction of y. .section .textGLOBAL_LIBM_ENTRY(nexttowardf)// Extract signexp from x// Form smallest denormal significand = ulp size{ .mlx      getf.exp GR_exp      = f8      movl GR_sden_sig = 0x0000010000000000}// Form largest normal exponent// Is x < y ?  p10 if yes, p11 if no// Form smallest normal exponent{ .mfi      addl GR_max_pexp = 0x1007e, r0      fcmp.lt.s1 p10,p11 = f8, f9      addl GR_min_pexp = 0x0ff81, r0 ;;}// Is x=y?{ .mfi      getf.sig GR_sig      = f8      fcmp.eq.s0 p6,p0 = f8, f9      nop.i 0}// Extract significand from x// Form largest normal significand{ .mlx      nop.m 0       movl GR_lnorm_sig = 0xffffff0000000000 ;;}// Move largest normal significand to fp reg for special cases{ .mfi      setf.sig FR_lnorm_sig = GR_lnorm_sig      nop.f 0       addl GR_sign_mask = 0x20000, r0 ;;}// Move smallest denormal significand and signexp to fp regs// Is x=nan?// Set p12 and p13 based on whether significand increases or decreases// It increases (p12 set) if x<y and x>=0 or if x>y and x<0// It decreases (p13 set) if x<y and x<0  or if x>y and x>=0{ .mfi      setf.sig FR_sden_sig = GR_sden_sig      fclass.m  p8,p0 = f8, 0xc3           (p10) cmp.lt p12,p13 = GR_exp, GR_sign_mask}{ .mfi      setf.exp FR_sden_exp = GR_min_pexp      nop.f 999(p11) cmp.ge p12,p13 = GR_exp, GR_sign_mask ;;}.pred.rel "mutex",p12,p13// Form expected new significand, adding or subtracting 1 ulp increment// If x=y set result to y// Form smallest normal significand and largest denormal significand{ .mfi(p12) add GR_new_sig = GR_sig, GR_sden_sig(p6)  fnorm.s.s0 f8=f9   //Normalise      dep.z GR_snorm_sig = 1,63,1 // 0x8000000000000000}{ .mlx(p13) sub GR_new_sig = GR_sig, GR_sden_sig      movl GR_lden_sig = 0x7fffff0000000000 ;;}// Move expected result significand and signexp to fp regs// Is y=nan?// Form new exponent in case result exponent needs incrementing or decrementing{ .mfi      setf.exp FR_new_exp = GR_exp      fclass.m  p9,p0 = f9, 0xc3           (p12) add GR_exp1 = 1, GR_exp}{ .mib      setf.sig FR_new_sig = GR_new_sig(p13) add GR_exp1 = -1, GR_exp(p6)  br.ret.spnt    b0 ;;             // Exit if x=y}// Move largest normal signexp to fp reg for special cases// Is x=zero?{ .mfi      setf.exp FR_lnorm_exp = GR_max_pexp      fclass.m  p7,p0 = f8, 0x7      nop.i 999}{ .mfb      nop.m 999(p8)  fma.s0 f8 = f8,f1,f9                     (p8)  br.ret.spnt    b0 ;;             // Exit if x=nan}// Move exp+-1 and smallest normal significand to fp regs for special cases// Is x=inf?{ .mfi      setf.exp FR_exp1 = GR_exp1      fclass.m  p6,p0 = f8, 0x23                 addl GR_exp_mask = 0x1ffff, r0}{ .mfb      setf.sig FR_snorm_sig = GR_snorm_sig(p9)  fma.s0 f8 = f8,f1,f9                     (p9)  br.ret.spnt    b0 ;;             // Exit if y=nan}// Move largest denormal significand to fp regs for special cases// Save x{ .mfb      setf.sig FR_lden_sig = GR_lden_sig      mov FR_save_f8 = f8(p7)  br.cond.spnt NEXT_ZERO ;;   // Exit if x=0   }// Mask off the sign to get x_exp{ .mfb      and GR_x_exp = GR_exp_mask, GR_exp      nop.f 999(p6)  br.cond.spnt NEXT_INF ;;   // Exit if x=inf   }// Check 6 special cases when significand rolls over://  1 sig size incr, x_sig=max_sig, x_exp < max_exp//     Set p6, result is sig=min_sig, exp++//  2 sig size incr, x_sig=max_sig, x_exp >= max_exp//     Set p7, result is inf, signal overflow//  3 sig size decr, x_sig=min_sig, x_exp > min_exp//     Set p8, result is sig=max_sig, exp--//  4 sig size decr, x_sig=min_sig, x_exp = min_exp//     Set p9, result is sig=max_den_sig, exp same, signal underflow and inexact//  5 sig size decr, x_sig=min_den_sig, x_exp = min_exp//     Set p10, result is zero, sign of x, signal underflow and inexact//  6 sig size decr, x_sig=min_sig, x_exp < min_exp //     Set p14, result is zero, sign of x, signal underflow and inexact//// Form exponent of smallest float denormal (if normalized register format){ .mmi      adds GR_min_den_rexp = -23, GR_min_pexp(p12) cmp.eq.unc p6,p0 = GR_new_sig, r0(p13) cmp.eq.unc p8,p10 = GR_new_sig, GR_lden_sig ;;}{ .mmi(p6)  cmp.lt.unc p6,p7 = GR_x_exp, GR_max_pexp(p8)  cmp.gt.unc p8,p9 = GR_x_exp, GR_min_pexp(p10) cmp.eq.unc p10,p0 = GR_new_sig, r0 ;;}// Create small normal in case need to generate underflow flag{ .mfi(p10) cmp.le.unc p10,p0 = GR_x_exp, GR_min_pexp      fmerge.se FR_tmp = FR_sden_exp, FR_lnorm_sig(p9)  cmp.gt.unc p9,p14 = GR_x_exp, GR_min_den_rexp}// Branch if cases 1, 2, 3{ .bbb(p6)  br.cond.spnt NEXT_EXPUP(p7)  br.cond.spnt NEXT_OVERFLOW(p8)  br.cond.spnt NEXT_EXPDOWN ;;}// Branch if cases 4, 5, 6{ .bbb(p9)  br.cond.spnt NEXT_NORM_TO_DENORM(p10) br.cond.spnt NEXT_UNDERFLOW_TO_ZERO(p14) br.cond.spnt NEXT_UNDERFLOW_TO_ZERO ;;}// Here if no special cases// Set p6 if result will be a denormal, so can force underflow flag//    Case 1:  x_exp=min_exp, x_sig=unnormalized//    Case 2:  x_exp<min_exp{ .mfi      cmp.lt p6,p7 = GR_x_exp, GR_min_pexp      fmerge.se f8 = FR_new_exp, FR_new_sig      nop.i 999 ;;}{ .mfi      nop.m 999      nop.f 999(p7)  tbit.z p6,p0 = GR_new_sig, 63 ;;}NEXT_COMMON_FINISH:// Force underflow and inexact if denormal result{ .mfi      nop.m 999(p6)  fma.s.s0 FR_tmp = FR_tmp,FR_tmp,f0      nop.i 999}{ .mfb      nop.m 999      fnorm.s.s0 f8 = f8 // Final normalization to result precision(p6)  br.cond.spnt NEXT_UNDERFLOW ;;}{ .mfb      nop.m 999      nop.f 999      br.ret.sptk b0;;}//Special casesNEXT_EXPUP:{ .mfb      cmp.lt p6,p7 = GR_x_exp, GR_min_pexp      fmerge.se f8 = FR_exp1, FR_snorm_sig      br.cond.sptk NEXT_COMMON_FINISH ;;}NEXT_EXPDOWN:{ .mfb      cmp.lt p6,p7 = GR_x_exp, GR_min_pexp      fmerge.se f8 = FR_exp1, FR_lnorm_sig      br.cond.sptk NEXT_COMMON_FINISH ;;}NEXT_NORM_TO_DENORM:{ .mfi      nop.m 999      fmerge.se f8 = FR_new_exp, FR_lden_sig      nop.i 999}// Force underflow and inexact{ .mfb      nop.m 999      fma.s.s0 FR_tmp = FR_tmp,FR_tmp,f0      br.cond.sptk NEXT_UNDERFLOW ;;}NEXT_UNDERFLOW_TO_ZERO:{ .mfb      cmp.eq p6,p0 = r0,r0      fmerge.s f8 = FR_save_f8,f0      br.cond.sptk NEXT_COMMON_FINISH ;;}NEXT_INF: // Here if f8 is +- infinity// INF// if f8 is +inf, no matter what y is return  largest float// if f8 is -inf, no matter what y is return -largest float{ .mfi      nop.m 999      fmerge.se FR_lnorm = FR_lnorm_exp,FR_lnorm_sig      nop.i 999 ;;}{ .mfb      nop.m 999      fmerge.s f8 = f8,FR_lnorm                      br.ret.sptk    b0 ;;                        }NEXT_ZERO: // Here if f8 is +- zero// ZERO// if f8 is zero and y is +, return + smallest float denormal // if f8 is zero and y is -, return - smallest float denormal { .mfi      nop.m 999      fmerge.se FR_sden = FR_sden_exp,FR_sden_sig      nop.i 999 ;;}// Create small normal to generate underflow flag{ .mfi      nop.m 999      fmerge.se FR_tmp = FR_sden_exp, FR_lnorm_sig      nop.i 999 ;;}// Add correct sign from direction arg{ .mfi      nop.m 999      fmerge.s f8 = f9,FR_sden                      nop.i 999 ;;}// Force underflow and inexact flags{ .mfb      nop.m 999      fma.s.s0 FR_tmp = FR_tmp,FR_tmp,f0      br.cond.sptk NEXT_UNDERFLOW ;;}NEXT_UNDERFLOW: // Here if result is a denorm, or input is finite and result is zero// Call error support to report possible range error{ .mib      alloc          r32=ar.pfs,2,2,4,0      mov           GR_Parameter_TAG = 272      // Error code      br.cond.sptk  __libm_error_region    // Branch to error call};;NEXT_OVERFLOW: // Here if input is finite, but result will be infinite// Use frcpa to generate infinity of correct sign// Call error support to report possible range error{ .mfi      alloc          r32=ar.pfs,2,2,4,0      frcpa.s1 f8,p6 = FR_save_f8, f0      nop.i 999 ;;}// Create largest double{ .mfi      nop.m 999      fmerge.se FR_lnorm = FR_lnorm_exp,FR_lnorm_sig      nop.i 999 ;;}// Force overflow and inexact flags to be set{ .mfb      mov           GR_Parameter_TAG = 200      // Error code      fma.s.s0 FR_tmp = FR_lnorm,FR_lnorm,f0      br.cond.sptk  __libm_error_region    // Branch to error call};;GLOBAL_LIBM_END(nexttowardf)LOCAL_LIBM_ENTRY(__libm_error_region).prologue// (1){ .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};;// (2){ .mmi        stfs [GR_Parameter_Y] = f9,16         // STORE 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// (3){ .mib        stfs [GR_Parameter_X] = FR_save_f8              // STORE Parameter 1 on stack        add   GR_Parameter_RESULT = 0,GR_Parameter_Y           // Parameter 3 address        nop.b 0                                }{ .mib        stfs [GR_Parameter_Y] = f8              // 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};;// (4){ .mmi        ldfs  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#

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产97人人爽人人喊| 久久久精品一品道一区| 国产日韩一级二级三级| 欧美日韩亚洲综合在线 | 色哟哟欧美精品| 福利视频网站一区二区三区| 激情偷乱视频一区二区三区| 五月开心婷婷久久| 亚洲成人高清在线| 亚洲女厕所小便bbb| 国产精品乱码人人做人人爱| 国产午夜精品一区二区三区视频| 精品国产一区二区三区久久久蜜月 | caoporn国产精品| 成人中文字幕电影| 国产a精品视频| 欧洲日韩一区二区三区| 欧美亚洲尤物久久| 91 com成人网| 91麻豆精品国产91久久久使用方法| 欧美v亚洲v综合ⅴ国产v| 久久久久久久网| 亚洲综合视频网| 午夜私人影院久久久久| 国产一区999| 久久99精品国产麻豆不卡| 精品一区二区免费| 色女孩综合影院| 久久亚洲免费视频| 国产精品久久夜| 亚洲精品国产视频| 日日欢夜夜爽一区| 九九视频精品免费| 在线免费精品视频| 国产午夜精品在线观看| 日本欧美韩国一区三区| 国产精品一区二区三区四区| 91同城在线观看| 欧美日韩不卡在线| 精品91自产拍在线观看一区| 亚洲一区二区在线免费观看视频| 国产精品66部| 欧美tk丨vk视频| 三级在线观看一区二区| 91在线观看地址| 国产三级一区二区| 另类成人小视频在线| 成人黄色综合网站| 欧美人动与zoxxxx乱| 综合久久久久久| 秋霞午夜av一区二区三区| 国产成人丝袜美腿| 在线亚洲人成电影网站色www| 制服丝袜av成人在线看| 亚洲精选视频在线| 不卡的av在线| 欧美国产激情一区二区三区蜜月| 麻豆精品一二三| 色94色欧美sute亚洲线路一久| 欧美极品少妇xxxxⅹ高跟鞋| 国产在线一区二区综合免费视频| 91精品国产全国免费观看| 国产精品毛片无遮挡高清| 国产麻豆91精品| 精品久久久久久无| 美女视频黄 久久| 91精品久久久久久久99蜜桃| 午夜影院久久久| 欧美午夜精品电影| 亚洲一区二区三区免费视频| 一本久久综合亚洲鲁鲁五月天| 中文字幕在线观看不卡| 久久国产福利国产秒拍| 91精品久久久久久久91蜜桃 | 欧美男同性恋视频网站| 一区二区三国产精华液| 国产主播一区二区| 精品国产污污免费网站入口| 久久99国产精品免费网站| 精品成人私密视频| 国产乱色国产精品免费视频| 久久精品欧美一区二区三区麻豆 | 欧美国产丝袜视频| 国产东北露脸精品视频| 国产欧美一区二区在线| 高清国产一区二区三区| 中文字幕日本不卡| 色老汉av一区二区三区| 亚洲香肠在线观看| av午夜一区麻豆| 最新热久久免费视频| 色香蕉成人二区免费| 亚洲香肠在线观看| 日韩三级视频在线观看| 亚洲va韩国va欧美va| 欧美精品在欧美一区二区少妇| 亚洲乱码国产乱码精品精98午夜| 91玉足脚交白嫩脚丫在线播放| 亚洲另类春色国产| 欧美日韩国产小视频在线观看| 青青草一区二区三区| 久久夜色精品国产噜噜av| 不卡视频一二三| 亚洲成人综合网站| 日韩精品一区二区三区蜜臀| 秋霞影院一区二区| 久久久91精品国产一区二区精品| 成人动漫一区二区在线| 亚洲影视资源网| 日韩午夜小视频| 国产福利精品导航| 亚洲综合男人的天堂| 欧美一区二区三区白人| 国产福利一区在线| 亚洲亚洲人成综合网络| 2021久久国产精品不只是精品 | 欧美韩日一区二区三区| 91免费国产视频网站| 日韩经典中文字幕一区| 日本一区二区三区在线观看| 色狠狠综合天天综合综合| 日本在线不卡一区| 国产精品久久久久久一区二区三区 | 色婷婷狠狠综合| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美激情一区二区三区蜜桃视频 | 亚洲视频 欧洲视频| 91麻豆精品国产91久久久久久| 国产真实乱偷精品视频免| 亚洲宅男天堂在线观看无病毒| 日韩欧美国产1| 色悠悠亚洲一区二区| 精品一区二区日韩| 亚洲自拍都市欧美小说| 久久你懂得1024| 欧美午夜片在线看| 成人a免费在线看| 久久电影网电视剧免费观看| 亚洲日韩欧美一区二区在线| 精品少妇一区二区三区在线视频| 99riav久久精品riav| 亚洲香肠在线观看| 欧美激情资源网| 欧美成人官网二区| 欧美天堂一区二区三区| 成人免费av网站| 久久精品国产亚洲高清剧情介绍 | 91在线视频播放| 精品在线你懂的| 婷婷开心激情综合| 亚洲老司机在线| 国产精品免费av| 26uuu久久综合| 在线综合视频播放| 色欧美乱欧美15图片| 成人av在线一区二区| 国产一区二区在线电影| 日本va欧美va精品发布| 亚洲午夜在线视频| 亚洲美女视频在线观看| 国产精品午夜电影| 久久人人爽人人爽| 亚洲精品一区二区三区在线观看| 精品视频在线看| 色视频成人在线观看免| 99久久精品99国产精品| 北条麻妃一区二区三区| 国产精品中文字幕一区二区三区| 全国精品久久少妇| 免费观看成人av| 日韩在线观看一区二区| 亚洲午夜在线电影| 亚洲一区二区三区四区不卡| 亚洲图片欧美激情| 综合欧美亚洲日本| 最新久久zyz资源站| 国产精品久久久久婷婷二区次| 欧美激情在线免费观看| 中文成人av在线| 国产精品久久午夜夜伦鲁鲁| 国产欧美日本一区视频| 国产三级精品三级在线专区| 国产无一区二区| 亚洲国产高清在线| 国产精品精品国产色婷婷| 中文字幕av一区二区三区| 中文字幕乱码亚洲精品一区| 国产亚洲一区二区三区在线观看| 久久精品一区二区三区av| 日本一区二区三区在线不卡| 国产精品美女久久福利网站| 国产精品对白交换视频| 亚洲视频免费在线观看| 亚洲色图欧美偷拍| 一区二区三区日韩在线观看| 亚洲国产成人精品视频| 午夜精品久久久久久| 日日摸夜夜添夜夜添精品视频| 男人的j进女人的j一区| 国产一区二区三区精品欧美日韩一区二区三区|