📄 libm_atan2_reg.s
字号:
(p9) add r40 = r40, r42;;(p9) ldfd f48 = [r40],8 nop 999;; // EMbo added ... } { .mmi(p0) ldfe f67 = [r39],-16;;(p9) ldfs f49 = [r40],8 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...//// U_prime_hi = U + V * z_hi// Load the Tbl_lo(0)//(p0) fma.s1 f40 = f36, f39, f35 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fnma.s1 f42 = f35, f39, f36 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) mov f52 = f48 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) frcpa.s1 f43, p6 = f1, f40 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// U_prime_lo = U - U_prime_hi// k = k * 256 - result can be 0, 256, or 512.//(p0) fsub.s1 f41 = f35, f40(p0) cmp.eq.unc p7, p6 = 0x00000, r38 } { .mfi nop 999 // EMbo added ...(p0) fmpy.s1 f52 = f34, f52 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p7) fadd.s1 f54 = f0, f1 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p6) fsub.s1 f54 = f0, f1 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fnma.s1 f80 = f43, f40, f1 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fadd.s1 f79 = f41, f40 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f41 = f36, f39, f41 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f56 = f54, f52, f50 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f43 = f80, f43, f43 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// U_prime_lo = U - U_hold// lookup -> lookup * 16 + k////// V_prime = V - U * z_hi// U_prime_lo = V * z_hi + U_prime_lo//(p0) fsub.s1 f79 = f35, f79 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fnma.s1 f80 = f43, f40, f1 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// C_hi = frcpa(1,U_prime_hi)// U_prime_lo = U_prime_lo + U_hold////// C_hi_hold = 1 - C_hi * U_prime_hi (1)////// C_hi = C_hi + C_hi * C_hi_hold (1)////// C_hi_hold = 1 - C_hi * U_prime_hi (2)//(p0) fadd.s1 f41 = f41, f79 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// C_hi = C_hi + C_hi * C_hi_hold (2)//(p0) fma.s1 f43 = f80, f43, f43 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// C_hi_hold = 1 - C_hi * U_prime_hi (3)//(p0) fnma.s1 f80 = f43, f40, f1 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// C_hi = C_hi + C_hi * C_hi_hold (3)//(p0) fma.s1 f43 = f80, f43, f43 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// w_hi = V_prime * C_hi//(p0) fmpy.s1 f44 = f42, f43 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fmpy.s1 f46 = f44, f44 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...//// wsq = w_hi * w_hi// w_lo = = V_prime - w_hi * U_prime_hi//(p0) fnma.s1 f45 = f44, f40, f42 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f47 = f46, f73, f71 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...//// poly = Q_3 + wsq * Q_4// w_lo = = w_lo - w_hi * U_prime_lo//(p0) fnma.s1 f45 = f44, f41, f45 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f47 = f46, f47, f69 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...//// poly = Q_2 + wsq * poly// w_lo = = w_lo * C_hi//(p0) fmpy.s1 f45 = f43, f45 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f47 = f46, f47, f67 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...//// poly = Q_1 + wsq * poly// A_lo = Tbl_lo + w_lo// swap = xor(swap,sign_X)//(p0) fadd.s1 f53 = f49, f45 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// Is (swap) != 0 ?// poly = wsq * poly// A_hi = Tbl_hi//(p0) fmpy.s1 f47 = f46, f47 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// poly = wsq * poly////// if (p6) sigma = -1.0// if (p7) sigma = 1.0//(p0) fmpy.s1 f47 = f44, f47 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// P_hi = s_Y * P_hi// A_lo = A_lo + poly//(p0) fadd.s1 f53 = f53, f47 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// A_lo = A_lo + w_hi// A_hi = s_Y * A_hi//(p0) fadd.s1 f53 = f53, f44 nop 999;; // EMbo added ... } { .mfb nop 999 // EMbo added ...//// result_hi = P_hi + sigma * A_hi// result_lo = P_lo + sigma * A_lo//(p0) fma.s1 f55 = f54, f53, f51(p0) br.cond.sptk L(RETURN_ATAN);;} //// result = result_hi + result_lo * s_Y (User Supplied Rounding Mode)//// (p0) fma.d.s0 f57 = f55, f34, f56//// /**************************************************/// /********************* STEP4 **********************/// /**************************************************///L(ATAN_POLY):{ .mmi(p0) xor r38 = r36,r38(p0) addl r39 = @ltoff(Constants_atan#), gp nop.i 999};;{ .mmi ld8 r39 = [r39] nop.m 999 nop.i 999};;{ .mlx nop 999 // EMbo added ...(p0) movl r47 = 0x24005;; } { .mfi(p0) add r39 = 128, r39(p0) fnma.s1 f81 = f37, f35, f1(p0) cmp.eq.unc p7, p6 = 0x00000, r38;; } { .mmf nop 999 // EMbo added ...(p0) ldfe f77 = [r39],-16//// Iterate 3 times E = E + E*(1.0 - E*U)// Also load P_8, P_7, P_6, P_5, P_4// E_hold = 1.0 - E * U (1)// A_temp = Q//(p0) mov f85 = f38;; } { .mmf nop 999 // EMbo added ...(p0) ldfe f76 = [r39],-16(p6) fsub.s1 f54 = f0, f1;; } { .mmf nop 999 // EMbo added ...(p0) ldfe f75 = [r39],-16//// E = E + E_hold*E (1)// Point to P_8.//(p0) fma.s1 f37 = f37, f81, f37;; } { .mmf nop 999 // EMbo added ...(p0) ldfe f74 = [r39],-16(p0) fnma.s1 f64 = f85, f35, f36;; } { .mmf nop 999 // EMbo added ...(p0) ldfe f72 = [r39],-16(p7) fadd.s1 f54 = f0, f1;; } { .mmf nop 999 // EMbo added ...(p0) ldfe f70 = [r39],-16//// E_hold = 1.0 - E * U (2)//(p0) fnma.s1 f81 = f37, f35, f1;; } { .mmf nop 999 // EMbo added ...(p0) ldfe f68 = [r39],-16(p0) fmpy.s1 f50 = f34, f50;; } { .mmf nop 999 // EMbo added ...(p0) ldfe f66 = [r39],-16(p0) fmpy.d.s0 f67 = f67, f67 } { .mfi nop 999 // EMbo added ...//// E = E + E_hold*E (2)//(p0) fma.s1 f37 = f37, f81, f37 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// E_hold = 1.0 - E * U (3)//(p0) fnma.s1 f81 = f37, f35, f1 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// E = E + E_hold*E (3)// At this point E approximates 1/U to roughly working precision// z = V*E approximates V/U//(p0) fma.s1 f37 = f37, f81, f37 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// z = V * E//(p0) fmpy.s1 f59 = f36, f37 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fmpy.s1 f64 = f64, f37 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// zsq = z * z// Also load P_3//(p0) fmpy.s1 f60 = f59, f59 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fadd.s1 f52 = f85, f64 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f62 = f60, f77, f76 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f63 = f60, f70, f68 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// z8 = zsq * zsq// Also load P_2//(p0) fmpy.s1 f61 = f60, f60 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fsub.s1 f85 = f85, f52 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fmerge.s f65 = f52,f52 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f62 = f60, f62, f75 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f63 = f60, f63, f66 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...//// z8 = z8 * z8// Also load P_1// poly1 = _4 + zsq*(P_5 + zsq*(P_6 + zsq*(P_7 + zsq*P_8)))// poly2 = zsq*(P_1 + zsq*(P_2 + zsq*P_3))////// poly1 = P_7 + zsq * P_8// poly2 = P_2 + zsq * P_3// poly1 = P_4 + zsq*(P_5 + zsq*(P_6 + zsq*poly1))// poly2 = zsq*(P_1 + zsq*poly2)////// poly1 = P_6 + zsq * poly1// poly2 = P_1 + zsq * poly2// poly1 = P_4 + zsq*(P_5 + zsq*poly1)// poly2 = zsq*poly2//(p0) fmpy.s1 f61 = f61, f61 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fadd.s1 f64 = f85, f64 nop 999;; // EMbo added ... } { .mfi nop 999 // EMbo added ...(p0) fma.s1 f62 = f60, f62, f74 nop 999 // EMbo added ... } { .mfi nop 999 // EMbo added ...//// poly1 = P_5 + zsq * poly1// poly2 = zsq * poly2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -