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

📄 e_atanhf.s

📁 glibc 2.9,最新版的C语言库函数
💻 S
📖 第 1 页 / 共 2 页
字号:
data8 0x3fd237c1841a502e    //log(1/frcpa(1+196/256))/2data8 0x3fd24cfce6f80d9a    //log(1/frcpa(1+197/256))/2data8 0x3fd25b2c55cd5762    //log(1/frcpa(1+198/256))/2data8 0x3fd2707f4d5f7c41    //log(1/frcpa(1+199/256))/2data8 0x3fd285e0842ca384    //log(1/frcpa(1+200/256))/2data8 0x3fd294294708b773    //log(1/frcpa(1+201/256))/2data8 0x3fd2a9a2670aff0c    //log(1/frcpa(1+202/256))/2data8 0x3fd2b7fb2c8d1cc1    //log(1/frcpa(1+203/256))/2data8 0x3fd2c65a6395f5f5    //log(1/frcpa(1+204/256))/2data8 0x3fd2dbf557b0df43    //log(1/frcpa(1+205/256))/2data8 0x3fd2ea64c3f97655    //log(1/frcpa(1+206/256))/2data8 0x3fd3001823684d73    //log(1/frcpa(1+207/256))/2data8 0x3fd30e97e9a8b5cd    //log(1/frcpa(1+208/256))/2data8 0x3fd32463ebdd34ea    //log(1/frcpa(1+209/256))/2data8 0x3fd332f4314ad796    //log(1/frcpa(1+210/256))/2data8 0x3fd348d90e7464d0    //log(1/frcpa(1+211/256))/2data8 0x3fd35779f8c43d6e    //log(1/frcpa(1+212/256))/2data8 0x3fd36621961a6a99    //log(1/frcpa(1+213/256))/2data8 0x3fd37c299f3c366a    //log(1/frcpa(1+214/256))/2data8 0x3fd38ae2171976e7    //log(1/frcpa(1+215/256))/2data8 0x3fd399a157a603e7    //log(1/frcpa(1+216/256))/2data8 0x3fd3afccfe77b9d1    //log(1/frcpa(1+217/256))/2data8 0x3fd3be9d503533b5    //log(1/frcpa(1+218/256))/2data8 0x3fd3cd7480b4a8a3    //log(1/frcpa(1+219/256))/2data8 0x3fd3e3c43918f76c    //log(1/frcpa(1+220/256))/2data8 0x3fd3f2acb27ed6c7    //log(1/frcpa(1+221/256))/2data8 0x3fd4019c2125ca93    //log(1/frcpa(1+222/256))/2data8 0x3fd4181061389722    //log(1/frcpa(1+223/256))/2data8 0x3fd42711518df545    //log(1/frcpa(1+224/256))/2data8 0x3fd436194e12b6bf    //log(1/frcpa(1+225/256))/2data8 0x3fd445285d68ea69    //log(1/frcpa(1+226/256))/2data8 0x3fd45bcc464c893a    //log(1/frcpa(1+227/256))/2data8 0x3fd46aed21f117fc    //log(1/frcpa(1+228/256))/2data8 0x3fd47a1527e8a2d3    //log(1/frcpa(1+229/256))/2data8 0x3fd489445efffccc    //log(1/frcpa(1+230/256))/2data8 0x3fd4a018bcb69835    //log(1/frcpa(1+231/256))/2data8 0x3fd4af5a0c9d65d7    //log(1/frcpa(1+232/256))/2data8 0x3fd4bea2a5bdbe87    //log(1/frcpa(1+233/256))/2data8 0x3fd4cdf28f10ac46    //log(1/frcpa(1+234/256))/2data8 0x3fd4dd49cf994058    //log(1/frcpa(1+235/256))/2data8 0x3fd4eca86e64a684    //log(1/frcpa(1+236/256))/2data8 0x3fd503c43cd8eb68    //log(1/frcpa(1+237/256))/2data8 0x3fd513356667fc57    //log(1/frcpa(1+238/256))/2data8 0x3fd522ae0738a3d8    //log(1/frcpa(1+239/256))/2data8 0x3fd5322e26867857    //log(1/frcpa(1+240/256))/2data8 0x3fd541b5cb979809    //log(1/frcpa(1+241/256))/2data8 0x3fd55144fdbcbd62    //log(1/frcpa(1+242/256))/2data8 0x3fd560dbc45153c7    //log(1/frcpa(1+243/256))/2data8 0x3fd5707a26bb8c66    //log(1/frcpa(1+244/256))/2data8 0x3fd587f60ed5b900    //log(1/frcpa(1+245/256))/2data8 0x3fd597a7977c8f31    //log(1/frcpa(1+246/256))/2data8 0x3fd5a760d634bb8b    //log(1/frcpa(1+247/256))/2data8 0x3fd5b721d295f10f    //log(1/frcpa(1+248/256))/2data8 0x3fd5c6ea94431ef9    //log(1/frcpa(1+249/256))/2data8 0x3fd5d6bb22ea86f6    //log(1/frcpa(1+250/256))/2data8 0x3fd5e6938645d390    //log(1/frcpa(1+251/256))/2data8 0x3fd5f673c61a2ed2    //log(1/frcpa(1+252/256))/2data8 0x3fd6065bea385926    //log(1/frcpa(1+253/256))/2data8 0x3fd6164bfa7cc06b    //log(1/frcpa(1+254/256))/2data8 0x3fd62643fecf9743    //log(1/frcpa(1+255/256))/2LOCAL_OBJECT_END(atanhf_data2).section .textGLOBAL_LIBM_ENTRY(atanhf){ .mfi      getf.exp      rArgSExpb = f8      fclass.m      p9,p0 = f8, 0x0b        // is arg denormal ?      mov           rExpbMask = 0x1ffff}{ .mfi      addl          DataPtr = @ltoff(atanhf_data), gp      fnma.s1       fOneMx = f8, f1, f1     // 1 - x      mov           rBias = 0xffff};;{ .mfi      nop.m         0      fclass.m      p7,p0 = f8, 0xc7        // is arg NaN or +/-0 ?      mov           rNearZeroBound = 0xffeb // 2^(-20)}{ .mfi      ld8           DataPtr = [DataPtr]      fma.s1        fOnePx = f8, f1, f1     // 1 + x      nop.i         0};;{ .mfb      nop.m         0      fnorm.s1      fNormX = f8                     // Normalize x(p9)  br.cond.spnt  ATANH_UNORM                     // Branch if x=unorm};;ATANH_COMMON:// Return here if x=unorm and not denorm{ .mfi      ldfpd         fP3, fP2 = [DataPtr], 16      fma.s1        fX2 = f8, f8, f0        // x^2      nop.i         0}{ .mfb      nop.m         0(p7)  fma.s.s0      f8 =  f8,f1,f8          // NaN or +/-0(p7)  br.ret.spnt   b0};;{ .mfi      ldfpd         fP1, fHalf = [DataPtr], 16      frcpa.s1      fRcpM, p9 = f1, fOneMx  // rcpm = frcpa(1 - x)      nop.i         0};;{ .mfi      getf.exp      rExpbm = fOneMx      frcpa.s1      fRcpP, p0 = f1, fOnePx  // rcpp = frcpa(1 + x)      // biased exponent      and           rArgExpb = rArgSExpb, rExpbMask};;{ .mmi      getf.exp      rExpbp = fOnePx      // is |x| < 2^(-20) ?      cmp.gt        p8,p0 = rNearZeroBound, rArgExpb      cmp.ge        p6,p0 = rArgExpb, rBias // is |x| >= 1 ?};;{ .mmb      getf.sig      rSigm = fOneMx      nop.m         0(p6)  br.cond.spnt  atanhf_ge_one};;{ .mfb      getf.sig      rSigp = fOnePx(p8)  fma.s.s0      f8 =  fX2, f8, f8  // x + x^3(p8)  br.ret.spnt   b0                 // Exit for MAX_DENORM_ABS < |x| < 2^-20};;{ .mfi      ldfd          fLog2 = [DataPtr], 16      fms.s1        fRm = fRcpM, fOneMx, f1 // rm = rcpm * (1 - x) - 1      nop.i         0};;{ .mmf      // (1 - x) is always positive here and we need not mask sign bit      sub           rNm = rExpbm, rBias      // (1 + x) is always positive here and we need not mask sign bit      sub           rNp = rExpbp, rBias      fms.s1        fRp = fRcpP, fOnePx, f1 // rp = rcpp * (1 + x) - 1};;{ .mmi      setf.sig      fN4CvtM = rNm      setf.sig      fN4CvtP = rNp      extr.u        rIndm = rSigm,55,8                // Extract 8 bits};;{ .mmi      shladd        RcpTablePtrM = rIndm, 3, DataPtr      nop.m         0      extr.u        rIndp = rSigp,55,8                // Extract 8 bits};;{ .mmi      ldfd          fLogTm = [RcpTablePtrM]      shladd        RcpTablePtrP = rIndp, 3, DataPtr      nop.i         0};;{ .mfi      ldfd          fLogTp = [RcpTablePtrP]      fma.s1        fRm2 = fRm, fRm, f0     // rm^2      nop.i         0}{ .mfi      nop.m         0      fma.s1        fP32m = fP3, fRm, fP2   // P3*rm + P2      nop.i         0};;{ .mfi      nop.m         0      fma.s1        fRp2 = fRp, fRp, f0     // rp^2      nop.i         0}{ .mfi      nop.m         0      fma.s1        fP10m = fP1, fRm, fHalf   // P1*rm + 1      nop.i         0};;{ .mfi      nop.m         0      fma.s1        fP32p = fP3, fRp, fP2   // P3*rp + P2      nop.i         0}{ .mfi      nop.m         0      fma.s1        fP10p = fP1, fRp, fHalf   // P1*rp + 1      nop.i         0};;{ .mfi      nop.m         0      fcvt.xf       fNm = fN4CvtM      nop.i         0}{ .mfi      nop.m         0      fcvt.xf       fNp = fN4CvtP      nop.i         0};;{ .mfi      nop.m         0      // (P3*rm + P2)*rm^2 + (P1*rm + 1)      fma.s1        fP32m = fP32m, fRm2, fP10m      nop.i         0}{ .mfi      nop.m         0      // (P3*rp + P2)*rp^2 + (P1*rp + 1)      fma.s1        fP32p = fP32p, fRp2, fP10p      nop.i         0};;{ .mfi      nop.m         0      // Nm*ln(2)/2 + Tm/2      fma.s1        fLogTm = fNm, fLog2, fLogTm      nop.i         0}{ .mfi      nop.m         0      // Np*ln(2)/2 + Tp/2      fma.s1        fLogTp = fNp, fLog2, fLogTp      nop.i         0};;{ .mfi      nop.m         0      // ((P3*rm + P2)*rm^2 + (P3*rm + 1))*0.5*rm + (Nm*ln(2)/2 + Tm/2)      fma.d.s1      fP32m = fP32m, fRm, fLogTm      nop.i         0}{ .mfi      nop.m         0      // ((P3*rp + P2)*rp^2 + (P3*rp + 1))*0.5*rp + (Np*ln(2)/2 + Tp/2)      fma.d.s1      fP32p = fP32p, fRp, fLogTp      nop.i         0};;{ .mfb      nop.m         0      // atanhf(x) = 0.5 * (log(1 + x) - log(1 - x))      fnma.s.s0     f8 = fP32m, f1, fP32p      br.ret.sptk   b0                      // Exit for 2^(-20) <= |x| < 1.0};;ATANH_UNORM:// Here if x=unorm{ .mfi      getf.exp      rArgSExpb = fNormX           // Recompute if x unorm      fclass.m      p0,p9 = fNormX, 0x0b         // Test x denorm      nop.i         0};;{ .mfb      nop.m         0      fcmp.lt.s0    p10,p11 = f8, f0      // Set denormal flag(p9)  br.cond.sptk  ATANH_COMMON          // Continue if x unorm and not denorm};;.pred.rel "mutex",p6,p7{ .mfi      nop.m         0(p6)  fnma.s.s0     f8 = f8,f8,f8                // Result x-x^2 if x=-denorm      nop.i         0}{ .mfb      nop.m         0(p7)  fma.s.s0      f8 = f8,f8,f8                // Result x+x^2 if x=+denorm      br.ret.spnt   b0                           // Exit if denorm};;// Here if |x| >= 1.0atanhf_ge_one:{ .mfi      alloc         r32 = ar.pfs,1,3,4,0      fmerge.s      fArgAbs = f0, f8        // Form |x|      nop.i         0};;{ .mfi      nop.m         0      fmerge.s      f10 = f8, f8            // Save input for error call      nop.i         0};;{ .mfi      nop.m         0      fcmp.eq.s1    p6,p7 = fArgAbs, f1     // Test for |x| = 1.0      nop.i         0};;// Set error tag and result, and raise invalid flag if |x| > 1.0{ .mfi(p7)  mov           atanh_GR_tag = 133(p7)  frcpa.s0      f8, p0 = f0, f0         // Get QNaN, and raise invalid      nop.i         0};;// Set error tag and result, and raise Z flag if |x| = 1.0{ .mfi      nop.m         0(p6)  frcpa.s0      fRm, p0 = f1, f0        // Get inf, and raise Z flag      nop.i         0};;{ .mfb(p6)  mov           atanh_GR_tag = 134(p6)  fmerge.s      f8 = f8, fRm            // result is +-inf      br.cond.sptk  __libm_error_region     // Exit if |x| >= 1.0};;GLOBAL_LIBM_END(atanhf)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      stfs [GR_Parameter_Y] = f1,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{ .mib      stfs [GR_Parameter_X] = f10           // STORE Parameter 1 on stack      // Parameter 3 address      add   GR_Parameter_RESULT = 0,GR_Parameter_Y      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      add   GR_Parameter_RESULT = 48,sp      nop.m 0      nop.i 0};;{ .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#

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -