e_acos.s
来自「Glibc 2.3.2源代码(解压后有100多M)」· S 代码 · 共 920 行 · 第 1/2 页
S
920 行
nop.m 999 fma.s1 acos_63by8 = acos_5by2,acos_11by4,f1 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_poly_p13 = acos_t,acos_coeff_P14,acos_coeff_P13 nop.i 999} { .mfi nop.m 999 fma.s1 acos_18by4 = acos_3by2,acos_5by2,acos_3by4 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_l1 = acos_5by2,acos_d,acos_3by2 nop.i 999} { .mfi nop.m 999 fma.s1 acos_d2 = acos_d,acos_d,f0 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_poly_p15 = acos_t2,acos_poly_p17,acos_poly_p15 nop.i 999} { .mfi nop.m 999 fma.s1 acos_T0 = acos_d,acos_S0,f0 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_poly_p19 = acos_t2,acos_coeff_P21,acos_poly_p19 nop.i 999} { .mfi nop.m 999 fma.s1 acos_poly_p4 = acos_t2,acos_poly_p6,acos_poly_p4 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_d1 = acos_35by8,acos_d,f0 nop.i 999} { .mfi nop.m 999 fma.s1 acos_231by16 = acos_3by2,acos_35by8,acos_63by8 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_poly_p2 = acos_t,acos_coeff_P3,acos_coeff_P2 nop.i 999} { .mfi nop.m 999 fma.s1 acos_poly_p8 = acos_t2,acos_coeff_P10,acos_poly_p8 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_poly_p11 = acos_t,acos_coeff_P12,acos_coeff_P11 nop.i 999} { .mfi nop.m 999 fma.s1 acos_e0 = acos_d2,acos_l1,acos_d nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_1poly_p15 = acos_tx,acos_coeff_P16,acos_coeff_P15 nop.i 999} { .mfi nop.m 999 fma.s1 acos_poly_p0 = acos_t,acos_coeff_P1,f1 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_1poly_p19 = acos_tx,acos_coeff_P20,acos_coeff_P19 nop.i 999} { .mfi nop.m 999 fma.s1 acos_1poly_p4 = acos_tx,acos_coeff_P5,acos_coeff_P4 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_1poly_p8 = acos_tx,acos_coeff_P9,acos_coeff_P8 nop.i 999} { .mfi nop.m 999 fma.s1 acos_l2 = acos_231by16,acos_d,acos_63by8 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_d3 = acos_d2,acos_d,f0 nop.i 999} { .mfi nop.m 999 fma.s1 acos_T3 = acos_d2,acos_T0,f0 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_429by16 = acos_18by4,acos_11by4,acos_231by16 nop.i 999} { .mfi nop.m 999 fma.s1 acos_S1 = acos_e0,acos_S0,acos_S0 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_poly_p4 = acos_t4,acos_poly_p8,acos_poly_p4 nop.i 999} { .mfi nop.m 999 fma.s1 acos_poly_p15 = acos_t4,acos_poly_p19,acos_poly_p15 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_poly_p0 = acos_t2,acos_poly_p2,acos_poly_p0 nop.i 999} { .mfi nop.m 999 fma.s1 acos_poly_p11 = acos_t2,acos_poly_p13,acos_poly_p11 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_t8 = acos_t4,acos_t4,f0 nop.i 999} { .mfi nop.m 999 fma.s1 acos_e1 = acos_d2,acos_l2,acos_d1 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_1poly_p4 = acos_tx2,acos_1poly_p6,acos_1poly_p4 nop.i 999} { .mfi nop.m 999 fma.s1 acos_1poly_p15 = acos_tx2,acos_1poly_p17,acos_1poly_p15 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_1poly_p8 = acos_tx2,acos_coeff_P10,acos_1poly_p8 nop.i 999} { .mfi nop.m 999 fma.s1 acos_1poly_p19 = acos_tx2,acos_coeff_P21,acos_1poly_p19 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_1poly_p2 = acos_tx,acos_coeff_P3,acos_coeff_P2 nop.i 999} { .mfi nop.m 999 fma.s1 acos_1poly_p13 = acos_tx,acos_coeff_P14,acos_coeff_P13 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_1poly_p0 = acos_tx,acos_coeff_P1,f1 nop.i 999} { .mfi nop.m 999 fma.s1 acos_1poly_p11 = acos_tx,acos_coeff_P12,acos_coeff_P11 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_l3 = acos_429by16,acos_d,f0 nop.i 999} { .mfi nop.m 999 fma.s1 acos_z = acos_e1,acos_T3,acos_S1 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_poly_p11 = acos_t4,acos_poly_p15,acos_poly_p11 nop.i 999} { .mfi nop.m 999 fma.s1 acos_T6 = acos_T3,acos_d3,f0 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_t11 = acos_t8,acos_t3,f0 nop.i 999} { .mfi nop.m 999 fma.s1 acos_poly_p0 = acos_t4,acos_poly_p4,acos_poly_p0 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_1poly_p4 = acos_tx4,acos_1poly_p8,acos_1poly_p4 nop.i 999} { .mfi nop.m 999 fma.s1 acos_1poly_p15 = acos_tx4,acos_1poly_p19,acos_1poly_p15 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_1poly_p0 = acos_tx2,acos_1poly_p2,acos_1poly_p0 nop.i 999} { .mfi nop.m 999 fma.s1 acos_1poly_p11 = acos_tx2,acos_1poly_p13,acos_1poly_p11 nop.i 999;;} { .mfi nop.m 999// fcmp.le.s1 acos_pred_LEsqrt2by2,acos_pred_GTsqrt2by2 = acos_abs_x,acos_const_sqrt2by2 fcmp.le.s1 p7,p8 = acos_abs_x,acos_const_sqrt2by2 nop.i 999} { .mfi nop.m 999 fma.s1 acos_tx8 = acos_tx4,acos_tx4,f0 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_z = acos_l3,acos_T6,acos_z nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_series_t = acos_t11,acos_poly_p11,acos_poly_p0 nop.i 999}{ .mfi nop.m 999(p11) fma.s1 acos_const_add = acos_const_piby2, f1, acos_const_piby2 nop.i 999};;{ .mfi nop.m 999(p12) fma.s1 acos_const_add = f1,f0,f0 nop.i 999};; { .mfi nop.m 999 fma.s1 acos_1poly_p0 = acos_tx4,acos_1poly_p4,acos_1poly_p0 nop.i 999} { .mfi nop.m 999 fma.s1 acos_1poly_p11 = acos_tx4,acos_1poly_p15,acos_1poly_p11 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_tx11 = acos_tx8,acos_tx3,f0 nop.i 999;;} { .mfi nop.m 999//(acos_pred_GTsqrt2by2) fnma.s1 answer2 = acos_z,acos_series_t,acos_const_piby2(p8) fnma.s1 answer2 = acos_z,acos_series_t,f0 nop.i 999;;} { .mfi nop.m 999 fma.s1 acos_series_tx = acos_tx11,acos_1poly_p11,acos_1poly_p0 nop.i 999;;} { .mfi nop.m 999//(acos_pred_GTsqrt2by2) fnma.d f8 = acos_sgn_x,answer2,acos_const_piby2(p8) fnma.d f8 = acos_sgn_x,answer2,acos_const_add nop.i 999;;} { .mfb nop.m 999//(acos_pred_LEsqrt2by2) fnma.d f8 = f8,acos_series_tx,acos_const_piby2(p7) fnma.d f8 = f8,acos_series_tx,acos_const_piby2 br.ret.sptk b0 ;;} L(ACOS_ZERO):// Here if x=0{ .mfb nop.m 999 fma.d f8 = acos_const_piby2,f1,f0 br.ret.sptk b0 ;;} L(ACOS_ABS_ONE):.pred.rel "mutex",p11,p12// Here if |x|=1{ .mfi nop.m 999(p11) fma.d f8 = acos_const_piby2,f1,acos_const_piby2 // acos(-1)=pi nop.i 999} { .mfb nop.m 999(p12) fma.d f8 = f1,f0,f0 // acos(1)=0 br.ret.sptk b0 ;;} .endp acosASM_SIZE_DIRECTIVE(acos).proc __libm_error_region__libm_error_region:.prologue{ .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};;{ .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 frcpa.s0 f9,p0 = f0,f0;;{ .mib stfd [GR_Parameter_X] = f8 // Store Parameter 1 on stack add GR_Parameter_RESULT = 0,GR_Parameter_Y nop.b 0 // Parameter 3 address}{ .mib stfd [GR_Parameter_Y] = f9,-16 // Store Parameter 3 on stack adds r32 = 48,sp br.call.sptk b0=__libm_error_support# // Call error handling function};;{ .mmi ldfd f8 = [r32] // 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
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?