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

📄 libm_lgammaf.s

📁 glibc 2.9,最新版的C语言库函数
💻 S
📖 第 1 页 / 共 5 页
字号:
      shladd        GR_ad_T = GR_Ind4T,3,GR_ad_Data      fma.s1        FR_Xf4 = FR_Xf2,FR_Xf2,f0      nop.i         0};;{ .mfi(p14) sub           GR_SignOfGamma = r0,GR_SignOfGamma // set signgam to -1      fma.s1        FR_S6 = FR_S8,FR_Xf2,FR_S6      nop.i         0}{ .mfi      // set p9  if signgum is 32-bit int      // set p10 if signgum is 64-bit int      cmp.eq        p10,p9 = 8,r34      fma.s1        FR_S2 = FR_S4,FR_Xf2,FR_S2      nop.i         0};;{ .mfi      ldfd          FR_Tf = [GR_ad_T]      fma.s1        FR_Ln = FR_P32,FR_r,FR_T      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_LnSqrt2Pi = FR_LnSqrt2Pi,f1,FR_NormX      nop.i         0};;.pred.rel "mutex",p9,p10{ .mfi(p9)  st4           [r33] = GR_SignOfGamma  // as 32-bit int      fma.s1        FR_rf2 = FR_rf,FR_rf,f0      nop.i         0}{ .mfi(p10) st8           [r33] = GR_SignOfGamma  // as 64-bit int      fma.s1        FR_S10 = FR_S14,FR_Xf4,FR_S10      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_P32f = FR_P3,FR_rf,FR_P2      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_Xf8 = FR_Xf4,FR_Xf4,f0      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_P10f = FR_P1,FR_rf,f1      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_S2 = FR_S6,FR_Xf4,FR_S2      nop.i         0};;{ .mfi      nop.m         0      fms.s1        FR_Ln = FR_Ln,FR_xm05,FR_LnSqrt2Pi      nop.i         0};;{ .mfi      nop.m         0      fcvt.xf       FR_Nf = FR_int_Ln      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_S2 = FR_S10,FR_Xf8,FR_S2      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_Tf = FR_Nf,FR_Ln2,FR_Tf      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_P32f = FR_P32f,FR_rf2,FR_P10f // ??????      nop.i         0};;{ .mfi      nop.m         0      fnma.s1       FR_Ln = FR_S2,FR_Xf2,FR_Ln      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_Lnf = FR_P32f,FR_rf,FR_Tf      nop.i         0};;{ .mfb      nop.m         0      fms.s.s0      f8 = FR_Ln,f1,FR_Lnf      br.ret.sptk   b0};;// branch for calculating of ln(GAMMA(x)) for -2^13 < x < -9//---------------------------------------------------------------------.align 32lgammaf_negpoly:{ .mfi      getf.d        GR_Arg = FR_Xf      frcpa.s1      FR_InvXf,p0 = f1,FR_Xf      mov           GR_ExpBias = 0x3FF}{ .mfi      nop.m         0      fma.s1        FR_Xf2 = FR_Xf,FR_Xf,f0      nop.i         0};;{ .mfi      getf.sig      GR_N = FR_int_Ntrunc      fcvt.xf       FR_N = FR_int_Ln      mov           GR_SignOfGamma = 1}{ .mfi      nop.m         0      fma.s1        FR_A9 = FR_A10,FR_x,FR_A9      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_P10 = FR_P1,FR_r,f1      extr.u        GR_Exp = GR_Arg,52,11}{ .mfi      nop.m         0      fma.s1        FR_x4 = FR_x2,FR_x2,f0      nop.i         0};;{ .mfi      sub           GR_PureExp = GR_Exp,GR_ExpBias      fma.s1        FR_A7 = FR_A8,FR_x,FR_A7      tbit.z        p14,p0 = GR_N,0}{ .mfi      nop.m         0      fma.s1        FR_A5 = FR_A6,FR_x,FR_A5      nop.i         0};;{ .mfi      setf.sig      FR_int_Ln = GR_PureExp      fma.s1        FR_A3 = FR_A4,FR_x,FR_A3      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_A1 = FR_A2,FR_x,FR_A1(p14) sub           GR_SignOfGamma = r0,GR_SignOfGamma};;{ .mfi      nop.m         0      fms.s1        FR_rf = FR_InvXf,FR_Xf,f1      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_Xf4 = FR_Xf2,FR_Xf2,f0      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_S14 = FR_S16,FR_Xf2,FR_S14      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_S10 = FR_S12,FR_Xf2,FR_S10      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_T = FR_N,FR_Ln2,FR_T      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_P32 = FR_P32,FR_r2,FR_P10      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_S6 = FR_S8,FR_Xf2,FR_S6      extr.u        GR_Ind4T = GR_Arg,44,8}{ .mfi      nop.m         0      fma.s1        FR_S2 = FR_S4,FR_Xf2,FR_S2      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_A7 = FR_A9,FR_x2,FR_A7      nop.i         0}{ .mfi      shladd        GR_ad_T = GR_Ind4T,3,GR_ad_Data      fma.s1        FR_A3 = FR_A5,FR_x2,FR_A3      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_Xf8 = FR_Xf4,FR_Xf4,f0      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_rf2 = FR_rf,FR_rf,f0      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_P32f = FR_P3,FR_rf,FR_P2      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_P10f = FR_P1,FR_rf,f1      nop.i         0};;{ .mfi      ldfd          FR_Tf = [GR_ad_T]      fma.s1        FR_Ln = FR_P32,FR_r,FR_T      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_A0 = FR_A1,FR_x,FR_A0      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_S10 = FR_S14,FR_Xf4,FR_S10      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_S2 = FR_S6,FR_Xf4,FR_S2      nop.i         0};;{ .mfi      nop.m         0      fcvt.xf       FR_Nf = FR_int_Ln      nop.i         0}{ .mfi      nop.m         0      fma.s1        FR_A3 = FR_A7,FR_x4,FR_A3      nop.i         0};;{ .mfi      nop.m         0      fcmp.eq.s1    p13,p0 = FR_NormX,FR_Ntrunc      nop.i         0}{ .mfi      nop.m         0      fnma.s1       FR_x3 = FR_x2,FR_x,f0 // -x^3      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_P32f = FR_P32f,FR_rf2,FR_P10f      nop.i         0};;{ .mfb      // set p9  if signgum is 32-bit int      // set p10 if signgum is 64-bit int      cmp.eq        p10,p9 = 8,r34      fma.s1        FR_S2 = FR_S10,FR_Xf8,FR_S2(p13) br.cond.spnt  lgammaf_singularity};;.pred.rel "mutex",p9,p10{ .mmf(p9)  st4           [r33] = GR_SignOfGamma  // as 32-bit int(p10) st8           [r33] = GR_SignOfGamma  // as 64-bit int      fms.s1        FR_A0 = FR_A3,FR_x3,FR_A0 // -A3*x^3-A0};;{ .mfi      nop.m         0      fma.s1        FR_Tf = FR_Nf,FR_Ln2,FR_Tf      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_Ln = FR_S2,FR_Xf2,FR_Ln // S2*Xf^2+Ln      nop.i         0};;{ .mfi      nop.m         0      fma.s1        FR_Lnf = FR_P32f,FR_rf,FR_Tf      nop.i         0};;{ .mfi      nop.m         0      fms.s1        FR_Ln = FR_A0,f1,FR_Ln      nop.i         0};;{ .mfb      nop.m         0      fms.s.s0      f8 = FR_Ln,f1,FR_Lnf      br.ret.sptk   b0};;// branch for handling +/-0, NaT, QNaN, +/-INF and denormalised numbers//---------------------------------------------------------------------.align 32lgammaf_spec:{ .mfi      getf.exp      GR_SignExp = FR_NormX      fclass.m      p6,p0 = f8,0x21 // is arg +INF?      mov           GR_SignOfGamma = 1 // set signgam to 1};;{ .mfi      getf.sig      GR_Sig = FR_NormX      fclass.m      p7,p0 = f8,0xB // is x deno?      // set p11 if signgum is 32-bit int      // set p12 if signgum is 64-bit int      cmp.eq        p12,p11 = 8,r34};;.pred.rel "mutex",p11,p12{ .mfi      // store sign of gamma(x) as 32-bit int(p11) st4           [r33] = GR_SignOfGamma      fclass.m      p8,p0 = f8,0x1C0 // is arg NaT or NaN?      dep.z         GR_Ind = GR_SignExp,3,4}{ .mib      // store sign of gamma(x) as 64-bit int(p12) st8           [r33] = GR_SignOfGamma      and           GR_Exp = GR_ExpMask,GR_SignExp(p6)  br.ret.spnt   b0 // exit for +INF};;{ .mfi      sub           GR_PureExp = GR_Exp,GR_ExpBias      fclass.m      p9,p0 = f8,0x22 // is arg -INF?      extr.u        GR_Ind4T = GR_Sig,55,8}{ .mfb      nop.m         0(p7)  fma.s0        FR_tmp = f1,f1,f8(p7)  br.cond.sptk  lgammaf_core};;{ .mfb      nop.m         0(p8)  fms.s.s0      f8 = f8,f1,f8(p8)  br.ret.spnt   b0 // exit for NaT and NaN};;{ .mfb      nop.m         0(p9)  fmerge.s      f8 = f1,f8(p9)  br.ret.spnt   b0 // exit -INF};;// branch for handling negative integers and +/-0//---------------------------------------------------------------------.align 32lgammaf_singularity:{ .mfi      mov           GR_SignOfGamma = 1 // set signgam to 1      fclass.m      p6,p0 = f8,0x6 // is x -0?      mov           GR_TAG = 109 // negative}{ .mfi      mov           GR_ad_SignGam = r33      fma.s1        FR_X = f0,f0,f8      nop.i         0};;{ .mfi      nop.m         0      frcpa.s0      f8,p0 = f1,f0      // set p9  if signgum is 32-bit int      // set p10 if signgum is 64-bit int      cmp.eq        p10,p9 = 8,r34}{ .mib      nop.m         0(p6)  sub           GR_SignOfGamma = r0,GR_SignOfGamma      br.cond.sptk  lgammaf_libm_err};;// overflow (x > OVERFLOV_BOUNDARY)//---------------------------------------------------------------------.align 32lgammaf_overflow:{ .mfi      nop.m         0      nop.f         0      mov           r8 = 0x1FFFE};;{ .mfi      setf.exp      f9 = r8      fmerge.s      FR_X = f8,f8      mov           GR_TAG = 108 // overflow};;{ .mfi      mov           GR_ad_SignGam = r33      nop.f         0      // set p9  if signgum is 32-bit int      // set p10 if signgum is 64-bit int      cmp.eq        p10,p9 = 8,r34}{ .mfi      nop.m         0      fma.s.s0      f8 = f9,f9,f0 // Set I,O and +INF result      nop.i         0};;// gate to __libm_error_support#//---------------------------------------------------------------------.align 32lgammaf_libm_err:{ .mmi      alloc        r32 = ar.pfs,1,4,4,0      mov          GR_Parameter_TAG = GR_TAG      nop.i        0};;.pred.rel "mutex",p9,p10{ .mmi      // store sign of gamma(x) as 32-bit int(p9)  st4          [GR_ad_SignGam] = GR_SignOfGamma      // store sign of gamma(x) as 64-bit int(p10) st8          [GR_ad_SignGam] = GR_SignOfGamma      nop.i        0};;GLOBAL_LIBM_END(__libm_lgammaf)LOCAL_LIBM_

⌨️ 快捷键说明

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