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

📄 e_acoshf.s

📁 glibc 2.9,最新版的C语言库函数
💻 S
📖 第 1 页 / 共 3 页
字号:
      fma.s1     log_arg = log_y_rs_iter1,log_y_rs,f8 // (0.5*z)*(3-(y*z)*z)      adds       log_table_address3 = 0x40, NR_table_address};;///////////////////////////////// The end NR iterations /////////////////////{ .mmi      //significant bit destruction      and        log_GR_exp_f8 = log_GR_signexp_f8, log_GR_exp_17_ones;;      //BIAS subtraction      sub        log_GR_true_exp_f8 = log_GR_exp_f8, log_GR_exp_16_ones      nop.i      0};;{ .mfi      setf.sig   log_int_Nfloat = log_GR_true_exp_f8      fms.s1     log_r = log_C,log_arg,f1  // C = frcpa(x); r = C * x - 1      extr.u     log_GR_index = log_GR_significand_f8,55,8 //Extract 8 bits};;{ .mmi      //pre-index*8 + index      shladd     log_table_address3 = log_GR_index,3,log_table_address3;;      ldfd       log_T = [log_table_address3]      nop.i      0};;{ .mfi      nop.m      0      fma.s1     log_rsq = log_r, log_r, f0         //r^2      nop.i      0}{ .mfi      nop.m      0      fma.s1     log_rp_p32 = log_P3, log_r, log_P2 //P3*r + P2      nop.i      0};;{ .mfi      nop.m      0      fma.s1     log_rp_p10 = log_P1, log_r, f1     //P1*r + 1.0      nop.i      0};;{ .mfi      nop.m      0      //convert N to the floating-point format log_Nfloat      fcvt.xf    log_Nfloat = log_int_Nfloat      nop.i      0};;{ .mfi      nop.m      0      //(P3*r + P2)*r^2 + P1*r + 1.0      fma.s1     log_rp_p2 = log_rp_p32, log_rsq, log_rp_p10      nop.i      0};;{ .mfi      nop.m      0      fma.s1     log_T_plus_Nlog2 = log_Nfloat,log2,log_T    //N*log2 + T      nop.i      0};;{ .mfb      nop.m      0      fma.s.s0   f8 = log_rp_p2,log_r,log_T_plus_Nlog2      br.ret.sptk b0          // Exit main path, path 3: 1.0005 <= x < 2^51};;// Here if path 2, 1.0 < x < 1.0005ACOSH_NEAR_ONE:// The first NR iteration{ .mfi      nop.m      0      fma.s1     acosh_w_iter1 = acosh_w_rs,log_w,f0  //t*w      nop.i      0}{ .mfi      nop.m      0      fma.s1     acosh_w_1 = f8,log_C2,log_C1         //x*C2 + C1      nop.i      0};;{ .mfi      nop.m      0      fma.s1     acosh_w_iter2 = acosh_w_rs,NR1,f0    //t*0.5      nop.i      0}{ .mfi      nop.m      0      fnma.s1    acosh_w_iter1 = acosh_w_iter1,acosh_w_rs,NR2 //3-t*t*w      nop.i      0};;{ .mfi      nop.m      0      //(3-t*t*w)*t*0.5      fma.s1     acosh_w_iter2 = acosh_w_iter2,acosh_w_iter1,f0      nop.i      0}{ .mfi      nop.m      0      fma.s1     acosh_w_1 = acosh_w_1,log_w,log_C0 //(x*C2 + C1)*(x-1) + C0      nop.i      0};;// The second NR iteration{ .mfi      nop.m      0      fma.s1     acosh_w_rs = acosh_w_iter2,log_w,f0  //t*w      nop.i      0};;{ .mfi      nop.m      0      fnma.s1    acosh_w_iter1 = acosh_w_iter2,acosh_w_rs,NR2      nop.i      0}{ .mfi      nop.m      0      fma.s1     acosh_w_iter2 = acosh_w_iter2,NR1,f0      nop.i      0};;{ .mfi      nop.m      0      fma.s1     acosh_w_iter2 = acosh_w_iter2,acosh_w_iter1,f0      nop.i      0};;{ .mfi      nop.m      0      fma.s1     acosh_w_sqrt = acosh_w_iter2,log_w,f0      nop.i      0};;{ .mfb      nop.m      0      fma.s.s0   f8 = acosh_w_1,acosh_w_sqrt,f0      br.ret.sptk b0          // Exit path 2, 1.0 < x < 1.0005};;// Here if path 4, x >= 2^51LOG_COMMON1:{ .mfi      ldfpd      log_P3,log_P2 = [NR_table_address],16      frcpa.s1   log_C,p0 = f1,log_arg      nop.i      0};;{ .mmi      getf.exp   log_GR_signexp_f8 = log_arg      ldfpd      log_P1,log2 = [NR_table_address],16      nop.i      0};;{ .mmi      getf.sig   log_GR_significand_f8 = log_arg      nop.m      0      nop.i      0};;{ .mfi      adds       log_table_address3 = 0x40, NR_table_address      nop.f      0      //significant bit destruction      and        log_GR_exp_f8 = log_GR_signexp_f8, log_GR_exp_17_ones};;{ .mmf      nop.m      0      //BIAS subtraction      sub        log_GR_true_exp_f8 = log_GR_exp_f8, log_GR_exp_16_ones      fms.s1     log_r = log_C,log_arg,f1  // C = frcpa(x); r = C * x - 1};;{ .mfi      setf.sig   log_int_Nfloat = log_GR_true_exp_f8      nop.f      0      extr.u     log_GR_index = log_GR_significand_f8,55,8 //Extract 8 bits};;{ .mmi      //pre-index*8 + index      shladd     log_table_address3 = log_GR_index,3,log_table_address3;;      ldfd       log_T = [log_table_address3]      nop.i      0};;{ .mfi      nop.m      0      fma.s1     log_rsq = log_r, log_r, f0         //r^2      nop.i      0}{ .mfi      nop.m      0      fma.s1     log_rp_p32 = log_P3, log_r, log_P2 //P3*r + P2      nop.i      0};;{ .mfi      nop.m      0      fma.s1     log_rp_p10 = log_P1, log_r, f1     //P1*r + 1.0      nop.i      0};;{ .mfi      nop.m      0      //convert N to the floating-point format log_Nfloat      fcvt.xf    log_Nfloat = log_int_Nfloat      nop.i      0}{ .mfi      nop.m      0      fma.s1     log_rp_p2 = log_rp_p32, log_rsq, log_rp_p10      nop.i      0};;{ .mfi      nop.m      0      fma.s1     log_T_plus_Nlog2 = log_Nfloat,log2,log_T    //N*log2 + T      nop.i      0};;{ .mfb      nop.m      0      fma.s.s0   f8 = log_rp_p2,log_r,log_T_plus_Nlog2      br.ret.sptk b0        // Exit path 4, x >= 2^51};;// Here if path 7, x < 1.0ACOSH_LESS_ONE:{ .mfi      alloc      r32 = ar.pfs,1,3,4,0      fmerge.s   f10 = f8,f8      nop.i      0};;{ .mfb      mov        acosh_GR_tag = 137      frcpa.s0   f8,p0 = f0,f0      br.cond.sptk __libm_error_region};;GLOBAL_LIBM_END(acoshf)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        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        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 + -