⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e_atan2.s

📁 glibc 2.9,最新版的C语言库函数
💻 S
📖 第 1 页 / 共 2 页
字号:
}{ .mfi           ldfe         atan2_pi        = [EXP_AD_P1],16(p6)       fma.s1       atan2_w         = atan2_wp_Y, atan2_B1sq_Y,f0           nop.i 999}{ .mfi           ldfe         atan2_pi_by_4       = [EXP_AD_P2],16(p7)       fma.s1       atan2_w         = atan2_wp_X, atan2_B1sq_X,f0           nop.i 999;;}{ .mfi           ldfe         atan2_3pi_by_4       = [EXP_AD_P2],16(p11)      fclass.m.unc p9,p0 = atan2_Y, 0x23  // x not inf, test if y inf           nop.i 999;;}{ .mfi           setf.sig      atan2_sig_near_one = rsig_near_one(p12)      fcmp.gt.unc.s1 p10,p11 = atan2_X,f0 // x inf, y inf, test if x +inf           nop.i 999}{ .mfi           nop.m 999(p6)       fnma.s1       atan2_gV        = atan2_Y, atan2_z, atan2_X           nop.i 999;;}{ .mfi           nop.m 999           frcpa.s1     atan2_F,p0     = f1, atan2_E           nop.i 999}{ .mfi           nop.m 999(p7)       fnma.s1       atan2_gV        = atan2_X, atan2_z, atan2_Y           nop.i 999;;}// p13 ==> x  inf     y !inf{ .mfi           nop.m 999(p13)      fcmp.gt.unc.s1 p14,p15 = atan2_X,f0 // x inf, y !inf, test if x +inf           nop.i 999}{ .mfb           nop.m 999(p9)       fma.d.s0  f8 = atan2_sgnY, atan2_pi_by_2, f0  // +-pi/2 if x !inf, y inf(p9)       br.ret.spnt b0      // exit if x not inf, y inf, result is +-pi/2;;}{ .mfi           nop.m 999           fma.s1       atan2_V13       = atan2_w, atan2_P11, atan2_P10           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W11       = atan2_w, atan2_P21, atan2_P20           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V11       = atan2_w, atan2_P9, atan2_P8           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_V12       = atan2_w, atan2_w, f0           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V8        = atan2_w, atan2_P7 , atan2_P6           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W8        = atan2_w, atan2_P19, atan2_P18           nop.i 999;;}{ .mfi           nop.m 999           fnma.s1      atan2_alpha     = atan2_E, atan2_F, f1           nop.i 999}{ .mfi           nop.m 999           fnma.s1      atan2_alpha_1   = atan2_E, atan2_F, atan2_two           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V7        = atan2_w, atan2_P5 , atan2_P4           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W7        = atan2_w, atan2_P17, atan2_P16           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V4        = atan2_w, atan2_P3 , atan2_P2           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W4        = atan2_w, atan2_P15, atan2_P14           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V3        = atan2_w, atan2_P1 , atan2_P0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W3        = atan2_w, atan2_P13, atan2_P12           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V10       = atan2_V12, atan2_V13, atan2_V11           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_gVF       = atan2_gV, atan2_F, f0           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_alpha_sq  = atan2_alpha, atan2_alpha, f0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_Cp        = atan2_alpha, atan2_alpha_1, f1           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V9        = atan2_V12, atan2_V12, f0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W10       = atan2_V12, atan2_P22 , atan2_W11           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V6        = atan2_V12, atan2_V8 , atan2_V7           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W6        = atan2_V12, atan2_W8 , atan2_W7           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V2        = atan2_V12, atan2_V4 , atan2_V3           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W2        = atan2_V12, atan2_W4  , atan2_W3           nop.i 999;;}// p8 ==> y   0     x?// p9 ==> y  !0     x?{ .mfi           nop.m 999           fclass.m p8,p9 = atan2_Y, 0x07  // Test for y=0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_zcub      = atan2_z, atan2_w, f0           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_alpha_cub = atan2_alpha, atan2_alpha_sq, f0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_C         = atan2_gVF, atan2_Cp, f0           nop.i 999;;}// p12 ==>  y0     x0// p13 ==>  y0     x!0{ .mfi           nop.m 999(p8)       fclass.m.unc p12,p13 = atan2_X, 0x07  // y=0, test if x is 0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W12       = atan2_V9, atan2_V9, f0           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_V5        = atan2_V9, atan2_V10, atan2_V6           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_W5        = atan2_V9, atan2_W10, atan2_W6           nop.i 999;;}// p9 ==>  y!0    x0{ .mfi           nop.m 999(p9)       fclass.m.unc p9,p0 = atan2_X, 0x07  // y not 0, test if x is 0           nop.i 999}// p10 ==> X +INF, Y +-INF{ .mfb           nop.m 999(p10)      fma.d.s0       f8 = atan2_sgnY, atan2_pi_by_4, f0 // x=+inf, y=inf(p10)      br.ret.spnt b0          // Exit for x=+inf, y=inf, result is +-pi/4;;}.pred.rel "mutex",p11,p14{ .mfi           nop.m 999(p14)      fmerge.s    f8 = atan2_sgnY, f0 // x=+inf, y !inf, result +-0           nop.i 999}// p11 ==> X -INF, Y +-INF{ .mfb           nop.m 999(p11)      fma.d.s0       f8 = atan2_sgnY, atan2_3pi_by_4, f0 // x=-inf, y=inf(p11)      br.ret.spnt b0          // Exit for x=-inf, y=inf, result is +-3pi/4;;}{ .mfi           nop.m 999(p13)      fcmp.gt.unc.s1 p10,p11 = atan2_X,f0 // x not 0, y=0, test if x>0           nop.i 999}{ .mfb           nop.m 999           fma.s1       atan2_d         = atan2_alpha_cub, atan2_C, atan2_C(p14)      br.ret.spnt b0         // Exit if x=+inf, y !inf, result +-0;;}{ .mfi           nop.m 999           fma.s1       atan2_W12       = atan2_V9, atan2_W12, f0           nop.i 999}{ .mfb           nop.m 999(p9)       fma.d.s0       f8 = atan2_sgnY, atan2_pi_by_2, f0 // x=0, y not 0(p9)       br.ret.spnt b0      // Exit if x=0 and y not 0, result is +-pi/2;;}{ .mfi           nop.m 999           fma.s1       atan2_V1        = atan2_V9, atan2_V5, atan2_V2           nop.i 999}{ .mfb           nop.m 999           fma.s1       atan2_W1        = atan2_V9, atan2_W5, atan2_W2(p12)      br.spnt ATAN2_ERROR            // Branch if x=0 and y=0;;}{ .mfi           nop.m 999(p10)      fmerge.s     f8              = atan2_sgnY, f0  // +-0 if x>0, y=0           nop.i 999}{ .mfb           nop.m 999(p11)      fma.d.s0        f8 = atan2_sgnY, atan2_pi, f0 // +-pi if x<0, y=0(p13)      br.ret.spnt b0      // Exit if x!0 and y=0;;}{ .mfi           nop.m 999           fma.s1       atan2_pd        = atan2_P0, atan2_d, f0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_dsq       = atan2_d, atan2_d, f0           nop.i 999;;}{ .mfi           nop.m 999           fmerge.se    atan2_near_one = f1, atan2_sig_near_one // Const ~1.0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_Pp        = atan2_W12, atan2_W1, atan2_V1           nop.i 999;;}// p8 true if no swap and X positive// p9 true if no swap and X negative// both are false is swap is true{ .mfi           nop.m 999(p7)       fcmp.ge.unc.s1 p8,p9    = atan2_X,f0           nop.i 999}{ .mfb           nop.m 999(p15)      fma.d.s0        f8              = atan2_sgnY, atan2_pi, f0(p15)      br.ret.spnt b0         // Exit if x=-inf, y !inf, result +-pi;;}{ .mfi           nop.m 999           fma.s1       atan2_sgn_pi_by_2 = atan2_pi_by_2, atan2_sgnY, f0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_A_lo      = atan2_pd, atan2_dsq, atan2_d           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_sgn_pi = atan2_pi, atan2_sgnY, f0           nop.i 999}{ .mfi           nop.m 999           fma.s1       atan2_A_hi      = atan2_zcub, atan2_Pp, atan2_z           nop.i 999;;}// For |Y| <= |X| and X > 0, force inexact in case A_lo is zero{ .mfi           nop.m 999(p8)       fmpy.s0      atan2_tmp       = atan2_P22, atan2_P22           nop.i 999;;}{ .mfi           nop.m 999           fma.s1       atan2_A         = atan2_A_hi, f1, atan2_A_lo           nop.i 999}// For |Y| <= |X| and X > 0, result is A_hi + A_lo{ .mfi           nop.m 999(p8)       fma.d.s0       f8         = atan2_A_hi, f1, atan2_A_lo           nop.i 999;;}.pred.rel "mutex",p6,p9// We perturb A by multiplying by 1.0+1ulp as we produce the result// in order to get symmetrically rounded results in directed rounding modes.// If we don't do this, there are a few cases where the trailing 11 bits of// the significand of the result, before converting to double, are zero.  These// cases do not round symmetrically in round to +infinity or round to -infinity.// The perturbation also insures that the inexact flag is set.// For |Y| > |X|, result is  +- pi/2 - (A_hi + A_lo){ .mfi           nop.m 999(p6)       fnma.d.s0      f8        = atan2_A, atan2_near_one, atan2_sgn_pi_by_2           nop.i 999}// For |Y| <= |X|, and X < 0, result is  +- pi + (A_hi + A_lo){ .mfb           nop.m 999(p9)       fma.d.s0        f8        = atan2_A, atan2_near_one, atan2_sgn_pi           br.ret.sptk  b0;;}ATAN2_ERROR:// Here if x=0 and y=0{ .mfi          nop.m 999          fclass.m p10,p11       = atan2_X,0x05  // Test if x=+0          nop.i 999};;{ .mfi          mov        atan2_GR_tag     = 37(p10)     fmerge.s     f10             = atan2_sgnY, f0 // x=+0, y=0          nop.i 999}{ .mfi          nop.m 999(p11)     fma.d.s0        f10            = atan2_sgnY, atan2_pi, f0 // x=-0, y=0          nop.i 999;;}GLOBAL_IEEE754_END(atan2)LOCAL_LIBM_ENTRY(__libm_error_region).prologue// (1){ .mfi        add   GR_Parameter_Y=-32,sp             // Parameter 2 value        nop.f 999.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        stfd [GR_Parameter_Y] = f8,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        stfd [GR_Parameter_X] = f9            // STORE Parameter 1 on stack        add   GR_Parameter_RESULT = 0,GR_Parameter_Y // Parameter 3 address        nop.b 0}{ .mib        stfd [GR_Parameter_Y] = f10           // 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        add   GR_Parameter_RESULT = 48,sp        nop.m 0        nop.i 0};;// (4){ .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 + -