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

📄 e_asinl.s

📁 Glibc 2.3.2源代码(解压后有100多M)
💻 S
📖 第 1 页 / 共 2 页
字号:
(p8)  br.ret.spnt   b0 ;;                                          }// case 3: 2^-2  <= |x| < 1    // 1- X*X is computed as B + b// Step 1.1:     Get B and b// atan2 will return//   f8  = Z_hi//   f10 = Z_lo//   f11 = s_lo{ .mfi(p0)  mov            asin_GR_fffe = 0xfffe                      (p0)   fmerge.se f8 = asin_ABS_NORM_f8, asin_ABS_NORM_f8                                   nop.i 0};;{ .mmfnop.m 0(p0)   setf.exp       asin_HALF = asin_GR_fffe                   (p0)   fmerge.se f12 = asin_NORM_f8, asin_NORM_f8 ;;                         }{ .mfi      nop.m 999(p0)  fcmp.lt.unc.s1 p6,p7 = asin_ABS_NORM_f8, asin_HALF              nop.i 999 ;;}{ .mfi      nop.m 999(p7)  fma.s1         asin_D   = f1,f1,asin_ABS_NORM_f8                nop.i 999}{ .mfi      nop.m 999(p7)  fms.s1         asin_C   = f1,f1,asin_ABS_NORM_f8                nop.i 999 ;;}{ .mfi      nop.m 999(p7)  fma.s1         asin_B   = asin_C, asin_D, f0                    nop.i 999}{ .mfi      nop.m 999(p7)  fms.s1         asin_1mD = f1,f1,asin_D                          nop.i 999 ;;}{ .mfi      nop.m 999(p7)  fma.s1         asin_Dd  = asin_1mD,f1, asin_ABS_NORM_f8         nop.i 999}{ .mfi      nop.m 999(p7)  fms.s1         asin_Bb  = asin_C, asin_D, asin_B                nop.i 999 ;;}{ .mfi      nop.m 999(p7)  fma.s1         asin_Bb  = asin_C, asin_Dd, asin_Bb              nop.i 999}{ .mfi      nop.m 999(p6)  fma.s1         asin_C   = asin_ABS_NORM_f8, asin_ABS_NORM_f8, f0           nop.i 999 ;;}{ .mfi      nop.m 999(p6)  fms.s1         asin_B   = f1, f1, asin_C                                   nop.i 999}{ .mfi      nop.m 999(p6)  fms.s1         asin_Cc  = asin_ABS_NORM_f8, asin_ABS_NORM_f8, asin_C       nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_Hh     = asin_HALF, asin_B, f0                         nop.i 999}{ .mfi      nop.m 999(p6)  fms.s1         asin_1mB = f1, f1, asin_B                                   nop.i 999 ;;}// Step 1.2: // sqrt(B + b) is computed as W + w// Get W{ .mfi      nop.m 999(p0)  frsqrta.s1     asin_y0,p8  = asin_B                                        nop.i 999 ;;}{ .mfi      nop.m 999(p6)  fms.s1         asin_1mBmC = asin_1mB, f1, asin_C                           nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_t1     = asin_y0, asin_y0, f0                          nop.i 999 ;;}{ .mfi      nop.m 999(p6)  fms.s1         asin_Bb  = asin_1mBmC, f1, asin_Cc                          nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fnma.s1        asin_t2     = asin_t1, asin_Hh, asin_HALF                   nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_y1     = asin_t2, asin_y0, asin_y0                     nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_t3     = asin_y1, asin_Hh, f0                          nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fnma.s1        asin_t4     = asin_t3, asin_y1, asin_HALF                   nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_y2     = asin_t4, asin_y1, asin_y1                     nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_S      = asin_B, asin_y2, f0                           nop.i 999}{ .mfi      nop.m 999(p0)  fma.s1         asin_H      = asin_y2, asin_HALF, f0                        nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_t5     = asin_Hh, asin_y2, f0                          nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fnma.s1        asin_Dd     = asin_S, asin_S, asin_B                        nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_W      = asin_Dd, asin_H, asin_S                       nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_2W       = asin_W, f1, asin_W                          nop.i 999}// Step 1.3// Get w{ .mfi      nop.m 999(p0)  fnma.s1        asin_BmWW     = asin_W, asin_W, asin_B                      nop.i 999 ;;}// Step 2// asin(x) = atan2(X,sqrt(1-X*X))//         = atan2(X, W) -Xw// corr = Xw// asin(x) = Z_hi + (s_lo*Z_lo - corr)// Call atan2(X, W)// Save W in f9 // Save X in f12 // Save w in f13{ .mfi      nop.m 999(p0)   fmerge.se f9 = asin_W, asin_W                                            nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_BmWWpb   = asin_BmWW, f1, asin_Bb                      nop.i 999 ;;}{ .mfi      nop.m 999(p0)  frcpa.s1       asin_1d2W,p9  = f1, asin_2W                                 nop.i 999 ;;}{ .mfi      nop.m 999(p0)  fma.s1         asin_Ww       = asin_BmWWpb, asin_1d2W, f0                  nop.i 999 ;;}.endp asinlASM_SIZE_DIRECTIVE(asinl).proc __libm_callout__libm_callout:.prologue{ .mfi        nop.m 0        nop.f 0.save   ar.pfs,GR_SAVE_PFS        mov  GR_SAVE_PFS=ar.pfs                 // Save ar.pfs};;{ .mfi        mov GR_SAVE_GP=gp                       // Save gp        nop.f 0.save   b0, GR_SAVE_B0        mov GR_SAVE_B0=b0                       // Save b0}.body{.mfb        nop.m 0(p0)    fmerge.se f13 = asin_Ww, asin_Ww                                   (p0)    br.call.sptk.many  b0=__libm_atan2_reg#                  };;{ .mfi        mov   gp = GR_SAVE_GP                  // Restore gp(p0)    fma.s1  asin_XWw  = asin_ABS_NORM_f8,f13,f0                     mov   b0 = GR_SAVE_B0                  // Restore return address};;// asin_XWw = Xw = corr// asin_low = (s_lo * Z_lo - corr)// f8       = Z_hi + (s_lo * Z_lo - corr){ .mfi        nop.m 999(p0)    fms.s1  asin_low  = f11, f10, asin_XWw                                        mov   ar.pfs = GR_SAVE_PFS             // Restore ar.pfs};;{ .mfi      nop.m 999(p0)   fma.s0  f8        = f8, f1, asin_low                                      nop.i 999 ;;}{ .mfb      nop.m 999(p0)   fmerge.s f8 = f12,f8 (p0)  br.ret.sptk   b0 ;;                                                    }.endp __libm_calloutASM_SIZE_DIRECTIVE(__libm_callout).proc SPECIALSPECIAL:L(ASIN_ERROR_RETURN): // If X is 1, return (sign of X)pi/2{ .mfi      nop.m 999(p0)  fcmp.eq.unc p6,p7 = asin_ABS_NORM_f8,f1         nop.i 999 ;;}{ .mfb(p6) ldfe          asin_pi_by_2_lo  = [r40] (p6) fmerge.s      asin_pi_by_2 = f8,asin_pi_by_2               nop.b 0;;}// If X is a NAN, leave// qnan snan inf norm     unorm 0 -+// 1    1    0   0        0     0 11{ .mfb      nop.m 999(p6)  fma.s0     f8 = f8,asin_pi_by_2_lo,asin_pi_by_2              (p6)  br.ret.spnt   b0                           }{ .mfi      nop.m 999(p0)  fclass.m.unc p12,p0 = f8, 0xc3                  nop.i 999 ;;}{ .mfb      nop.m 999(p12) fma.s0 f8 = f8,f1,f0                       (p12) br.ret.spnt   b0 ;;                          }{ .mfi(p0)   mov   GR_Parameter_TAG = 60                   (p0)   frcpa f10, p6 = f0, f0                   nop.i 0};;.endp SPECIALASM_SIZE_DIRECTIVE(SPECIAL).proc __libm_error_region__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        stfe [GR_Parameter_Y] = FR_Y,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        stfe [GR_Parameter_X] = FR_X            // Store Parameter 1 on stack        add   GR_Parameter_RESULT = 0,GR_Parameter_Y        nop.b 0                                 // Parameter 3 address}{ .mib        stfe [GR_Parameter_Y] = FR_RESULT       // 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};;{ .mmi        ldfe  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};; .endp __libm_error_regionASM_SIZE_DIRECTIVE(__libm_error_region).type   __libm_error_support#,@function.global __libm_error_support#.type   __libm_atan2_reg#,@function.global __libm_atan2_reg#

⌨️ 快捷键说明

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