📄 s_tan.s
字号:
{ .mmi getf.sig tan_GR_n = TAN_W_2TO64_RSH ldfpd tan_P2,tan_P3 = [tan_AD] nop.i 999 ;;}// tan_r = -tan_Nfloat * tan_Pi_by_2_hi + x{ .mfi(p12) add tan_GR_n = 0x1, tan_GR_n // N = N + 1 (for cot) fnma.s1 tan_r = TAN_NFLOAT, tan_Pi_by_2_hi, tan_NORM_f8 nop.i 999 ;;}// p8 ==> even// p9 ==> odd{ .mmi and tan_GR_N_odd_even = 0x1, tan_GR_n ;; nop.m 999 cmp.eq.unc p8,p9 = tan_GR_N_odd_even, r0 ;;}.pred.rel "mutex", p11, p12// tan_r = tan_r -tan_Nfloat * tan_Pi_by_2_lo (tan){ .mfi nop.m 999(p11) fnma.s1 tan_r = TAN_NFLOAT, tan_Pi_by_2_lo, tan_r nop.i 999}// tan_r = -(tan_r -tan_Nfloat * tan_Pi_by_2_lo) (cot){ .mfi nop.m 999(p12) fms.s1 tan_r = TAN_NFLOAT, tan_Pi_by_2_lo, tan_r nop.i 999 ;;}{ .mfi nop.m 999 fma.s1 tan_rsq = tan_r, tan_r, f0 nop.i 999 ;;}{ .mfi nop.m 999(p9) frcpa.s1 tan_y0, p0 = f1,tan_r nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v18 = tan_rsq, tan_P15, tan_P14 nop.i 999}{ .mfi nop.m 999(p8) fma.s1 tan_v4 = tan_rsq, tan_P1, tan_P0 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v16 = tan_rsq, tan_P13, tan_P12 nop.i 999}{ .mfi nop.m 999(p8) fma.s1 tan_v17 = tan_rsq, tan_rsq, f0 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v12 = tan_rsq, tan_P9, tan_P8 nop.i 999}{ .mfi nop.m 999(p8) fma.s1 tan_v13 = tan_rsq, tan_P11, tan_P10 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v7 = tan_rsq, tan_P5, tan_P4 nop.i 999}{ .mfi nop.m 999(p8) fma.s1 tan_v8 = tan_rsq, tan_P7, tan_P6 nop.i 999 ;;}{ .mfi nop.m 999(p9) fnma.s1 tan_d = tan_r, tan_y0, f1 nop.i 999}{ .mfi nop.m 999(p8) fma.s1 tan_v5 = tan_rsq, tan_P3, tan_P2 nop.i 999 ;;}{ .mfi nop.m 999(p9) fma.s1 tan_z11 = tan_rsq, tan_Q9, tan_Q8 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_z12 = tan_rsq, tan_rsq, f0 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v15 = tan_v17, tan_v18, tan_v16 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_z7 = tan_rsq, tan_Q5, tan_Q4 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v11 = tan_v17, tan_v13, tan_v12 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_z8 = tan_rsq, tan_Q7, tan_Q6 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v14 = tan_v17, tan_v17, f0 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_z3 = tan_rsq, tan_Q1, tan_Q0 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v3 = tan_v17, tan_v5, tan_v4 nop.i 999}{ .mfi nop.m 999(p8) fma.s1 tan_v6 = tan_v17, tan_v8, tan_v7 nop.i 999 ;;}{ .mfi nop.m 999(p9) fma.s1 tan_y1 = tan_y0, tan_d, tan_y0 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_dsq = tan_d, tan_d, f0 nop.i 999 ;;}{ .mfi nop.m 999(p9) fma.s1 tan_z10 = tan_z12, tan_Q10, tan_z11 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_z9 = tan_z12, tan_z12,f0 nop.i 999 ;;}{ .mfi nop.m 999(p9) fma.s1 tan_z4 = tan_rsq, tan_Q3, tan_Q2 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_z6 = tan_z12, tan_z8, tan_z7 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v10 = tan_v14, tan_v15, tan_v11 nop.i 999 ;;}{ .mfi nop.m 999(p9) fma.s1 tan_y2 = tan_y1, tan_d, tan_y0 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_d4 = tan_dsq, tan_dsq, tan_d nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v2 = tan_v14, tan_v6, tan_v3 nop.i 999}{ .mfi nop.m 999(p8) fma.s1 tan_v9 = tan_v14, tan_v14, f0 nop.i 999 ;;}{ .mfi nop.m 999(p9) fma.s1 tan_z2 = tan_z12, tan_z4, tan_z3 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_z5 = tan_z9, tan_z10, tan_z6 nop.i 999 ;;}{ .mfi nop.m 999(p9) fma.s1 tan_inv_r = tan_d4, tan_y2, tan_y0 nop.i 999}{ .mfi nop.m 999(p8) fma.s1 tan_rcube = tan_rsq, tan_r, f0 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.s1 tan_v1 = tan_v9, tan_v10, tan_v2 nop.i 999}{ .mfi nop.m 999(p9) fma.s1 tan_z1 = tan_z9, tan_z5, tan_z2 nop.i 999 ;;}{ .mfi nop.m 999(p8) fma.d.s0 f8 = tan_v1, tan_rcube, tan_r nop.i 999}{ .mfb nop.m 999(p9) fms.d.s0 f8 = tan_r, tan_z1, tan_inv_r br.ret.sptk b0 ;;}GLOBAL_IEEE754_END(tan)LOCAL_LIBM_ENTRY(__libm_callout)TAN_DBX:.prologue{ .mfi nop.m 0 fmerge.s f9 = f0,f0.save ar.pfs,GR_SAVE_PFS mov GR_SAVE_PFS=ar.pfs};;{ .mfi mov GR_SAVE_GP=gp nop.f 0.save b0, GR_SAVE_B0 mov GR_SAVE_B0=b0}.body{ .mmb nop.m 999 nop.m 999(p11) br.cond.sptk.many call_tanl ;;}// Here if we should call cotl{ .mmb nop.m 999 nop.m 999 br.call.sptk.many b0=__libm_cotl# ;;}{ .mfi mov gp = GR_SAVE_GP fnorm.d.s0 f8 = f8 mov b0 = GR_SAVE_B0};;{ .mib nop.m 999 mov ar.pfs = GR_SAVE_PFS br.ret.sptk b0;;}// Here if we should call tanlcall_tanl:{ .mmb nop.m 999 nop.m 999 br.call.sptk.many b0=__libm_tanl# ;;}{ .mfi mov gp = GR_SAVE_GP fnorm.d.s0 f8 = f8 mov b0 = GR_SAVE_B0};;{ .mib nop.m 999 mov ar.pfs = GR_SAVE_PFS br.ret.sptk b0;;}LOCAL_LIBM_END(__libm_callout).type __libm_tanl#,@function.global __libm_tanl#.type __libm_cotl#,@function.global __libm_cotl#LOCAL_LIBM_ENTRY(__libm_error_region).prologue// (1){ .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};;// (2){ .mmi stfd [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// (3){ .mib stfd [GR_Parameter_X] = arg_copy // STORE Parameter 1 on stack add GR_Parameter_RESULT = 0,GR_Parameter_Y // Parameter 3 address nop.b 0}{ .mib stfd [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 nop.m 0 nop.m 0 add GR_Parameter_RESULT = 48,sp};;// (4){ .mmi ldfd 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 + -