📄 s_erfc.s
字号:
{ .mfi add GR_P_A12 = GR_ERFC_P_TB, GR_ShftA12 // pointer to A12 fnma.s1 exp_r = EXP_Nfloat, exp_ln2_by_128_hi, EXP_NORM_f8 nop.i 0};;{ .mfi ldfe FR_A12 = [GR_P_A12], -64 nop.f 0 and exp_GR_index_2_16 = 0x70, exp_GR_N }{ .mfi ldfe FR_A13 = [GR_P_A13], -64 nop.f 0 shladd EXP_AD_T1 = exp_GR_index_1, 4, EXP_AD_TB1 };; { .mmi ldfe FR_A8 = [GR_P_A12], 32 ldfe FR_A9 = [GR_P_A13], 32 add EXP_AD_T2 = EXP_AD_TB2, exp_GR_index_2_16};;{ .mmi ldfe FR_A10 = [GR_P_A12], -96 ldfe FR_A11 = [GR_P_A13], -96 nop.i 0 };;{ .mmi ldfe FR_A4 = [GR_P_A12], 32 ldfe FR_A5 = [GR_P_A13], 32 shr r2 = exp_GR_N, 0x7};;{ .mfi ldfe FR_A6 = [GR_P_A12], -64 fma.s1 exp_rP4pP3 = exp_r, exp_P4, exp_P3 nop.i 0}{ .mfi ldfe FR_A7 = [GR_P_A13], -64 fma.s1 exp_rsq = exp_r, exp_r, f0 nop.i 0};;{ .mmi ldfe FR_A2 = [GR_P_A12], -32 ldfe FR_A3 = [GR_P_A13], -32 addl exp_GR_biased_M = 0xffff, r2};;{ .mmi ldfe FR_A0 = [GR_P_A12], 224 ldfe FR_A1 = [GR_P_A13] nop.i 0};;{ .mfi ldfe FR_A14 = [GR_P_A12] fms.s1 FR_LocArg = FR_AbsArg, f1, FR_Xb // xloc = x - x[i] nop.i 0};;{ .mmi setf.exp EXP_2M = exp_GR_biased_M ldfe exp_T1 = [EXP_AD_T1] nop.i 0};;{ .mfi ldfe exp_T2 = [EXP_AD_T2] fma.s1 exp_P_hi = exp_rsq, exp_P1, exp_r nop.i 0};;{ .mfi nop.m 0 fma.s1 exp_rcube = exp_r, exp_rsq, f0 nop.i 0} { .mfi nop.m 0 fma.s1 exp_P_lo = exp_r, exp_rP4pP3, exp_P2 nop.i 0};;{ .mfi nop.m 0 fnma.s1 exp_f = EXP_Nfloat, exp_ln2_by_128_lo, f8_sq_lo nop.i 0 };; { .mfi nop.m 0 fma.s1 FR_P14_0_1 = FR_LocArg, FR_LocArg, f0 // xloc ^2 nop.i 0 }{ .mfi nop.m 0 fma.s1 FR_P14_0_2 = FR_A13, FR_LocArg, FR_A12 nop.i 0 };;{ .mfi nop.m 0 fma.s1 FR_P14_1_1 = FR_A9, FR_LocArg, FR_A8 nop.i 0}{ .mfi nop.m 0 fma.s1 FR_P14_1_2 = FR_A11, FR_LocArg, FR_A10 nop.i 0};;{ .mfi nop.m 0 fma.s1 FR_P14_2_1 = FR_A5, FR_LocArg, FR_A4 nop.i 0 }{ .mfi nop.m 0 fma.s1 FR_P14_2_2 = FR_A7, FR_LocArg, FR_A6 nop.i 0};; { .mfi nop.m 0 fma.s1 FR_P14_3_1 = FR_A1, FR_LocArg, FR_A0 nop.i 0}{ .mfi nop.m 0 fma.s1 FR_P14_3_2 = FR_A3, FR_LocArg, FR_A2 nop.i 0};;{ .mfi nop.m 0 fma.s1 FR_P14_6_1 = FR_P14_0_1, FR_A14, FR_P14_0_2 nop.i 0}{ .mfi nop.m 0 fma.s1 FR_P14_7_2 = FR_P14_0_1, FR_P14_0_1, f0 nop.i 0};;{ .mfi nop.m 0 fma.s1 FR_P14_7_1 = FR_P14_0_1, FR_P14_1_2, FR_P14_1_1 nop.i 0}{ .mfi nop.m 0 fma.s1 exp_S2 = exp_f, exp_T2, f0 nop.i 0};;{ .mfi nop.m 0 fma.s1 exp_S1 = EXP_2M, exp_T1, f0 nop.i 0};;{ .mfi nop.m 0 fma.s1 FR_P14_8_1 = FR_P14_0_1, FR_P14_3_2, FR_P14_3_1 nop.i 0}{ .mfi nop.m 0 fma.s1 FR_P14_8_2 = FR_P14_0_1, FR_P14_2_2, FR_P14_2_1 nop.i 0};;{ .mfi nop.m 0 fma.s1 FR_P14_12_1 = FR_P14_7_2, FR_P14_6_1, FR_P14_7_1 nop.i 0};;{ .mfi nop.m 0 fma.s1 exp_S = exp_S1, exp_S2, f0 nop.i 0 }{ .mfi nop.m 0 fma.s1 exp_P = exp_rcube, exp_P_lo, exp_P_hi nop.i 0};;{ .mfi nop.m 0 fma.s1 FR_P14_13_1 = FR_P14_7_2, FR_P14_8_2, FR_P14_8_1 nop.i 0}{ .mfi nop.m 0 fma.s1 FR_P14_13_2 = FR_P14_7_2, FR_P14_7_2, f0 // xloc^8 nop.i 0};;{ .mfi nop.m 0 fma.s1 FR_Exp = exp_S, exp_P, exp_S // exp(-x^2) nop.i 0 }{ .mfi nop.m 0 fma.s1 FR_Pol = FR_P14_13_2, FR_P14_12_1, FR_P14_13_1 nop.i 0};;{ .mfi nop.m 0 fma.d.s0 FR_Tmpf = f8, f1, f0 // flag d nop.i 0 };;//p6: result for 0 < x < = 28.0,//p7: result for -6.0 <= x < 0,//p8: exit for - 6.0 <= x < UnfBound ~=~ 26.54.. .pred.rel "mutex",p6,p7{ .mfi nop.m 0(p6) fma.d.s0 f8 = FR_Exp, FR_Pol, f0 nop.i 0 }{ .mfb mov GR_Parameter_TAG = 208(p7) fnma.d.s0 f8 = FR_Exp, FR_Pol, FR_2 (p8) br.ret.sptk b0 };;GLOBAL_LIBM_END(erfc)// call via (p15) br.cond.spnt __libm_error_region// for x > ARG_ASYMP = 28.0// or//// after .endp erfc for UnfBound < = x < = ARG_ASYMP = 28.0LOCAL_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 stfd [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 stfd [GR_Parameter_X] = FR_X // STORE Parameter 1 on stack add GR_Parameter_RESULT = 0,GR_Parameter_Y // Parameter 3 address nop.b 0 }{ .mib stfd [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 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 + -