📄 e_powl.s
字号:
.file "powl.s"// Copyright (C) 2000, 2001, Intel Corporation// All rights reserved.// // Contributed 2/2/2000 by John Harrison, Ted Kubaska, Bob Norin, Shane Story,// and Ping Tak Peter Tang of the Computational Software Lab, Intel Corporation.//// Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions are// met://// * Redistributions of source code must retain the above copyright// notice, this list of conditions and the following disclaimer.//// * Redistributions in binary form must reproduce the above copyright// notice, this list of conditions and the following disclaimer in the// documentation and/or other materials provided with the distribution.//// * The name of Intel Corporation may not be used to endorse or promote// products derived from this software without specific prior written// permission.//// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // Intel Corporation is the author of this code, and requests that all// problem reports or change requests be submitted to it directly at // http://developer.intel.com/opensource.//// *********************************************************************//// Function: powl(x,y), where// y// powl(x,y) = x , for double extended precision x and y values//// *********************************************************************//// History: // 2/02/00 (Hand Optimized)// 4/04/00 Unwind support added// 8/15/00 Bundle added after call to __libm_error_support to properly// set [the previously overwritten] GR_Parameter_RESULT.// 1/22/01 Corrected results for powl(1,inf), powl(1,nan), and// powl(snan,0) to be 1 per C99, not nan. Fixed many flag settings.// 2/06/01 Call __libm_error support if over/underflow when y=2.//// *********************************************************************//// Resources Used://// Floating-Point Registers: // f8 (Input and Return Value)// f9-f15,f32-f63,f99 //// General Purpose Registers:// Locals r32 - r61// Parameters to __libm_error_support r62,r63,r64,r65//// Predicate Registers: p6-p15//// *********************************************************************//// Special Cases and IEEE special conditions://// Denormal fault raised on denormal inputs// Overflow exceptions raised when appropriate for pow // Underflow exceptions raised when appropriate for pow // (Error Handling Routine called for overflow and Underflow)// Inexact raised when appropriate by algorithm//// 1. (anything) ** NatVal or (NatVal) ** anything is NatVal// 2. X or Y unsupported or sNaN is qNaN/Invalid// 3. (anything) ** 0 is 1// 4. (anything) ** 1 is itself// 5. (anything except 1) ** qNAN is qNAN// 6. qNAN ** (anything except 0) is qNAN// 7. +-(|x| > 1) ** +INF is +INF// 8. +-(|x| > 1) ** -INF is +0// 9. +-(|x| < 1) ** +INF is +0// 10. +-(|x| < 1) ** -INF is +INF// 11. +-1 ** +-INF is +1// 12. +0 ** (+anything except 0, NAN) is +0// 13. -0 ** (+anything except 0, NAN, odd integer) is +0// 14. +0 ** (-anything except 0, NAN) is +INF/div_0// 15. -0 ** (-anything except 0, NAN, odd integer) is +INF/div_0// 16. -0 ** (odd integer) = -( +0 ** (odd integer) )// 17. +INF ** (+anything except 0,NAN) is +INF// 18. +INF ** (-anything except 0,NAN) is +0// 19. -INF ** (anything except NAN) = -0 ** (-anything)// 20. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer)// 21. (-anything except 0 and inf) ** (non-integer) is qNAN/Invalid// 22. X or Y denorm/unorm and denorm/unorm operand trap is enabled,// generate denorm/unorm fault except if invalid or div_0 raised.//// *********************************************************************// // Algorithm// =========//// Special Cases//// If Y = 2, return X*X.// If Y = 0.5, return sqrt(X).//// Compute log(X) to extra precision.// // ker_log_80( X, logX_hi, logX_lo, Safe );//// ...logX_hi + logX_lo approximates log(X) to roughly 80 // ...significant bits of accuracy.//// Compute Y*log(X) to extra precision.//// P_hi := Y * logX_hi// P_lo := Y * logX_hi - P_hi ...using FMA// P_lo := Y * logX_lo + P_lo ...using FMA//// Compute exp(P_hi + P_lo)//// Flag := 2; // Expo_Range := 2; (assuming double-extended power function)// ker_exp_64( P_hi, P_lo, Flag, Expo_Range, // Z_hi, Z_lo, scale, Safe )//// scale := sgn * scale//// If (Safe) then ...result will not over/underflow// return scale*Z_hi + (scale*Z_lo)// quickly// Else// take necessary precaution in computing // scale*Z_hi + (scale*Z_lo)// to set possible exceptions correctly.// End If//// Case_Y_Special//// ...Follow the order of the case checks//// If Y is +-0, return +1 without raising any exception.// If Y is +1, return X without raising any exception.// If Y is qNaN, return Y without exception.// If X is qNaN, return X without exception.//// At this point, X is real and Y is +-inf. // Thus |X| can only be 1, strictly bigger than 1, or // strictly less than 1.//// If |X| < 1, then// return ( Y == +inf? +0 : +inf )// elseif |X| > 1, then// return ( Y == +inf? +0 : +inf )// else// goto Case_Invalid//// Case_X_Special//// ...Follow the order of the case checks// ...Note that Y is real, finite, non-zero, and not +1.//// If X is qNaN, return X without exception.// // If X is +-0, // return ( Y > 0 ? +0 : +inf )//// If X is +inf// return ( Y > 0 ? +inf : +0 )//// If X is -inf// return -0 ** -Y// return ( Y > 0 ? +inf : +0 )//// Case_Invalid //// Return 0 * inf to generate a quiet NaN together// with an invalid exception.// // Implementation// ==============//// We describe the quick branch since this part is important// in reaching the normal case efficiently.//// STAGE 1// -------// This stage contains two threads. //// Stage1.Thread1//// fclass.m X_excep, X_ok = X, (NatVal or s/qNaN) or// +-0, +-infinity//// fclass.nm X_unsupp, X_supp = X, (NatVal or s/qNaN) or// +-(0, unnorm, norm, infinity)//// X_norm := fnorm( X ) with traps disabled//// If (X_excep) goto Filtering (Step 2)// If (X_unsupp) goto Filtering (Step 2)//// Stage1.Thread2// .............. //// fclass.m Y_excep, Y_ok = Y, (NatVal or s/qNaN) or// +-0, +-infinity//// fclass.nm Y_unsupp, Y_supp = Y, (NatVal or s/qNaN) or// +-(0, unnorm, norm, infinity)//// Y_norm := fnorm( Y ) with traps disabled//// If (Y_excep) goto Filtering (Step 2)// If (Y_unsupp) goto Filtering (Step 2)//// // STAGE 2// -------// This stage contains two threads.//// Stage2.Thread1 // .............. //// Set X_lt_0 if X < 0 (using fcmp)// sgn := +1.0// If (X_lt_0) goto Filtering (Step 2)//// Stage2.Thread2// ..............//// Set Y_is_1 if Y = +1 (using fcmp)// If (Y_is_1) goto Filtering (Step 2)//// STAGE 3// -------// This stage contains two threads.////// Stage3.Thread1 // .............. //// X := fnorm(X) in prevailing traps////// Stage3.Thread2 // .............. //// Y := fnorm(Y) in prevailing traps//// STAGE 4// -------//// Go to Case_Normal.//#include "libm_support.h"#ifdef _LIBC.rodata#else.data#endif// Inv_L, L_hi, L_lo .align 64Constants_exp_64_Arg:ASM_TYPE_DIRECTIVE(Constants_exp_64_Arg,@object)data4 0x5C17F0BC,0xB8AA3B29,0x0000400B,0x00000000 data4 0x00000000,0xB17217F4,0x00003FF2,0x00000000data4 0xF278ECE6,0xF473DE6A,0x00003FD4,0x00000000ASM_SIZE_DIRECTIVE(Constants_exp_64_Arg).align 64Constants_exp_64_Exponents:ASM_TYPE_DIRECTIVE(Constants_exp_64_Exponents,@object)data4 0x0000007E,0x00000000,0xFFFFFF83,0xFFFFFFFFdata4 0x000003FE,0x00000000,0xFFFFFC03,0xFFFFFFFFdata4 0x00003FFE,0x00000000,0xFFFFC003,0xFFFFFFFFdata4 0x00003FFE,0x00000000,0xFFFFC003,0xFFFFFFFFdata4 0xFFFFFFE2,0xFFFFFFFF,0xFFFFFFC4,0xFFFFFFFFdata4 0xFFFFFFBA,0xFFFFFFFF,0xFFFFFFBA,0xFFFFFFFFASM_SIZE_DIRECTIVE(Constants_exp_64_Exponents).align 64Constants_exp_64_A:ASM_TYPE_DIRECTIVE(Constants_exp_64_A,@object)// Reversed data4 0xB1B736A0,0xAAAAAAAB,0x00003FFA,0x00000000data4 0x90CD6327,0xAAAAAAAB,0x00003FFC,0x00000000data4 0xFFFFFFFF,0xFFFFFFFF,0x00003FFD,0x00000000ASM_SIZE_DIRECTIVE(Constants_exp_64_A).align 64Constants_exp_64_P:ASM_TYPE_DIRECTIVE(Constants_exp_64_P,@object)// Reversed data4 0x43914A8A,0xD00D6C81,0x00003FF2,0x00000000data4 0x30304B30,0xB60BC4AC,0x00003FF5,0x00000000data4 0x7474C518,0x88888888,0x00003FF8,0x00000000data4 0x8DAE729D,0xAAAAAAAA,0x00003FFA,0x00000000data4 0xAAAAAF61,0xAAAAAAAA,0x00003FFC,0x00000000data4 0x000004C7,0x80000000,0x00003FFE,0x00000000ASM_SIZE_DIRECTIVE(Constants_exp_64_P).align 64Constants_exp_64_T1:ASM_TYPE_DIRECTIVE(Constants_exp_64_T1,@object)data4 0x3F800000,0x3F8164D2,0x3F82CD87,0x3F843A29 data4 0x3F85AAC3,0x3F871F62,0x3F88980F,0x3F8A14D5 data4 0x3F8B95C2,0x3F8D1ADF,0x3F8EA43A,0x3F9031DCdata4 0x3F91C3D3,0x3F935A2B,0x3F94F4F0,0x3F96942Ddata4 0x3F9837F0,0x3F99E046,0x3F9B8D3A,0x3F9D3EDAdata4 0x3F9EF532,0x3FA0B051,0x3FA27043,0x3FA43516data4 0x3FA5FED7,0x3FA7CD94,0x3FA9A15B,0x3FAB7A3Adata4 0x3FAD583F,0x3FAF3B79,0x3FB123F6,0x3FB311C4data4 0x3FB504F3,0x3FB6FD92,0x3FB8FBAF,0x3FBAFF5Bdata4 0x3FBD08A4,0x3FBF179A,0x3FC12C4D,0x3FC346CDdata4 0x3FC5672A,0x3FC78D75,0x3FC9B9BE,0x3FCBEC15data4 0x3FCE248C,0x3FD06334,0x3FD2A81E,0x3FD4F35Bdata4 0x3FD744FD,0x3FD99D16,0x3FDBFBB8,0x3FDE60F5data4 0x3FE0CCDF,0x3FE33F89,0x3FE5B907,0x3FE8396Adata4 0x3FEAC0C7,0x3FED4F30,0x3FEFE4BA,0x3FF28177data4 0x3FF5257D,0x3FF7D0DF,0x3FFA83B3,0x3FFD3E0CASM_SIZE_DIRECTIVE(Constants_exp_64_T1).align 64Constants_exp_64_T2:ASM_TYPE_DIRECTIVE(Constants_exp_64_T2,@object)data4 0x3F800000,0x3F80058C,0x3F800B18,0x3F8010A4 data4 0x3F801630,0x3F801BBD,0x3F80214A,0x3F8026D7 data4 0x3F802C64,0x3F8031F2,0x3F803780,0x3F803D0E data4 0x3F80429C,0x3F80482B,0x3F804DB9,0x3F805349 data4 0x3F8058D8,0x3F805E67,0x3F8063F7,0x3F806987 data4 0x3F806F17,0x3F8074A8,0x3F807A39,0x3F807FCA data4 0x3F80855B,0x3F808AEC,0x3F80907E,0x3F809610 data4 0x3F809BA2,0x3F80A135,0x3F80A6C7,0x3F80AC5A data4 0x3F80B1ED,0x3F80B781,0x3F80BD14,0x3F80C2A8 data4 0x3F80C83C,0x3F80CDD1,0x3F80D365,0x3F80D8FA data4 0x3F80DE8F,0x3F80E425,0x3F80E9BA,0x3F80EF50 data4 0x3F80F4E6,0x3F80FA7C,0x3F810013,0x3F8105AA data4 0x3F810B41,0x3F8110D8,0x3F81166F,0x3F811C07 data4 0x3F81219F,0x3F812737,0x3F812CD0,0x3F813269 data4 0x3F813802,0x3F813D9B,0x3F814334,0x3F8148CE data4 0x3F814E68,0x3F815402,0x3F81599C,0x3F815F37ASM_SIZE_DIRECTIVE(Constants_exp_64_T2) .align 64Constants_exp_64_W1:ASM_TYPE_DIRECTIVE(Constants_exp_64_W1,@object)data4 0x00000000,0x00000000,0x171EC4B4,0xBE384454data4 0x4AA72766,0xBE694741,0xD42518F8,0xBE5D32B6data4 0x3A319149,0x3E68D96D,0x62415F36,0xBE68F4DAdata4 0xC9C86A3B,0xBE6DDA2F,0xF49228FE,0x3E6B2E50data4 0x1188B886,0xBE49C0C2,0x1A4C2F1F,0x3E64BFC2data4 0x2CB98B54,0xBE6A2FBB,0x9A55D329,0x3E5DC5DEdata4 0x39A7AACE,0x3E696490,0x5C66DBA5,0x3E54728Bdata4 0xBA1C7D7D,0xBE62B0DB,0x09F1AF5F,0x3E576E04data4 0x1A0DD6A1,0x3E612500,0x795FBDEF,0xBE66A419data4 0xE1BD41FC,0xBE5CDE8C,0xEA54964F,0xBE621376data4 0x476E76EE,0x3E6370BE,0x3427EB92,0x3E390D1A data4 0x2BF82BF8,0x3E1336DE,0xD0F7BD9E,0xBE5FF1CB data4 0x0CEB09DD,0xBE60A355,0x0980F30D,0xBE5CA37E data4 0x4C082D25,0xBE5C541B,0x3B467D29,0xBE5BBECA data4 0xB9D946C5,0xBE400D8A,0x07ED374A,0xBE5E2A08 data4 0x365C8B0A,0xBE66CB28,0xD3403BCA,0x3E3AAD5B data4 0xC7EA21E0,0x3E526055,0xE72880D6,0xBE442C75 data4 0x85222A43,0x3E58B2BB,0x522C42BF,0xBE5AAB79 data4 0x469DC2BC,0xBE605CB4,0xA48C40DC,0xBE589FA7 data4 0x1AA42614,0xBE51C214,0xC37293F4,0xBE48D087 data4 0xA2D673E0,0x3E367A1C,0x114F7A38,0xBE51BEBB data4 0x661A4B48,0xBE6348E5,0x1D3B9962,0xBDF52643 data4 0x35A78A53,0x3E3A3B5E,0x1CECD788,0xBE46C46C data4 0x7857D689,0xBE60B7EC,0xD14F1AD7,0xBE594D3D data4 0x4C9A8F60,0xBE4F9C30,0x02DFF9D2,0xBE521873 data4 0x55E6D68F,0xBE5E4C88,0x667F3DC4,0xBE62140F data4 0x3BF88747,0xBE36961B,0xC96EC6AA,0x3E602861 data4 0xD57FD718,0xBE3B5151,0xFC4A627B,0x3E561CD0 data4 0xCA913FEA,0xBE3A5217,0x9A5D193A,0x3E40A3CC data4 0x10A9C312,0xBE5AB713,0xC5F57719,0x3E4FDADB data4 0xDBDF59D5,0x3E361428,0x61B4180D,0x3E5DB5DB data4 0x7408D856,0xBE42AD5F,0x31B2B707,0x3E2A3148ASM_SIZE_DIRECTIVE(Constants_exp_64_W1).align 64Constants_exp_64_W2:ASM_TYPE_DIRECTIVE(Constants_exp_64_W2,@object)data4 0x00000000,0x00000000,0x37A3D7A2,0xBE641F25 data4 0xAD028C40,0xBE68DD57,0xF212B1B6,0xBE5C77D8 data4 0x1BA5B070,0x3E57878F,0x2ECAE6FE,0xBE55A36A data4 0x569DFA3B,0xBE620608,0xA6D300A3,0xBE53B50E data4 0x223F8F2C,0x3E5B5EF2,0xD6DE0DF4,0xBE56A0D9 data4 0xEAE28F51,0xBE64EEF3,0x367EA80B,0xBE5E5AE2 data4 0x5FCBC02D,0x3E47CB1A,0x9BDAFEB7,0xBE656BA0 data4 0x805AFEE7,0x3E6E70C6,0xA3415EBA,0xBE6E0509 data4 0x49BFF529,0xBE56856B,0x00508651,0x3E66DD33 data4 0xC114BC13,0x3E51165F,0xC453290F,0x3E53333D data4 0x05539FDA,0x3E6A072B,0x7C0A7696,0xBE47CD87 data4 0xEB05C6D9,0xBE668BF4,0x6AE86C93,0xBE67C3E3 data4 0xD0B3E84B,0xBE533904,0x556B53CE,0x3E63E8D9 data4 0x63A98DC8,0x3E212C89,0x032A7A22,0xBE33138F data4 0xBC584008,0x3E530FA9,0xCCB93C97,0xBE6ADF82 data4 0x8370EA39,0x3E5F9113,0xFB6A05D8,0x3E5443A4 data4 0x181FEE7A,0x3E63DACD,0xF0F67DEC,0xBE62B29D data4 0x3DDE6307,0x3E65C483,0xD40A24C1,0x3E5BF030 data4 0x14E437BE,0x3E658B8F,0xED98B6C7,0xBE631C29 data4 0x04CF7C71,0x3E6335D2,0xE954A79D,0x3E529EEDdata4 0xF64A2FB8,0x3E5D9257,0x854ED06C,0xBE6BED1B data4 0xD71405CB,0x3E5096F6,0xACB9FDF5,0xBE3D4893 data4 0x01B68349,0xBDFEB158,0xC6A463B9,0x3E628D35 data4 0xADE45917,0xBE559725,0x042FC476,0xBE68C29C data4 0x01E511FA,0xBE67593B,0x398801ED,0xBE4A4313 data4 0xDA7C3300,0x3E699571,0x08062A9E,0x3E5349BE data4 0x755BB28E,0x3E5229C4,0x77A1F80D,0x3E67E426 data4 0x6B69C352,0xBE52B33F,0x084DA57F,0xBE6B3550 data4 0xD1D09A20,0xBE6DB03F,0x2161B2C1,0xBE60CBC4 data4 0x78A2B771,0x3E56ED9C,0x9D0FA795,0xBE508E31 data4 0xFD1A54E9,0xBE59482A,0xB07FD23E,0xBE2A17CE data4 0x17365712,0x3E68BF5C,0xB3785569,0x3E3956F9ASM_SIZE_DIRECTIVE(Constants_exp_64_W2).align 64Constants_log_80_P:ASM_TYPE_DIRECTIVE(Constants_log_80_P,@object)// 1/2, P_8, P_7, ..., P_1 data4 0x00000000, 0x80000000, 0x00003FFE, 0x00000000data4 0x3B1042BC, 0xCCCE8B88, 0x0000BFFB, 0x00000000data4 0xCADC2149, 0xE38997B7, 0x00003FFB, 0x00000000data4 0xB1ACB090, 0xFFFFFFFE, 0x0000BFFB, 0x00000000data4 0x06481C81, 0x92492498, 0x00003FFC, 0x00000000data4 0xAAAAB0EF, 0xAAAAAAAA, 0x0000BFFC, 0x00000000data4 0xCCC91416, 0xCCCCCCCC, 0x00003FFC, 0x00000000data4 0x00000000, 0x80000000, 0x0000BFFD, 0x00000000data4 0xAAAAAAAB, 0xAAAAAAAA, 0x00003FFDASM_SIZE_DIRECTIVE(Constants_log_80_P).align 64Constants_log_80_Q:ASM_TYPE_DIRECTIVE(Constants_log_80_Q,@object)// log2_hi, log2_lo, Q_6, Q_5, Q_4, Q_3, Q_2, Q_1 data4 0x00000000,0xB1721800,0x00003FFE,0x00000000data4 0x4361C4C6,0x82E30865,0x0000BFE2,0x00000000data4 0xA51BE0AF,0x92492453,0x00003FFC,0x00000000data4 0xA0CFD29F,0xAAAAAB73,0x0000BFFC,0x00000000data4 0xCCCE3872,0xCCCCCCCC,0x00003FFC,0x00000000data4 0xFFFFB4FB,0xFFFFFFFF,0x0000BFFC,0x00000000data4 0xAAAAAAAB,0xAAAAAAAA,0x00003FFD,0x00000000data4 0x00000000,0x80000000,0x0000BFFE,0x00000000ASM_SIZE_DIRECTIVE(Constants_log_80_Q).align 64Constants_log_80_Z_G_H_h1:ASM_TYPE_DIRECTIVE(Constants_log_80_Z_G_H_h1,@object)// Z1 - 16 bit fixed, G1 and H1 IEEE single, h1 IEEE double data4 0x00008000,0x3F800000,0x00000000,0x00000000data4 0x00000000,0x00000000,0x00000000,0x00000000 data4 0x00007879,0x3F70F0F0,0x3D785196,0x00000000data4 0xEBA0E0D1,0x8B1D330B,0x00003FDA,0x00000000data4 0x000071C8,0x3F638E38,0x3DF13843,0x00000000data4 0x9EADD553,0xE2AF365E,0x00003FE2,0x00000000data4 0x00006BCB,0x3F579430,0x3E2FF9A0,0x00000000data4 0x752F34A2,0xF585FEC3,0x0000BFE3,0x00000000 data4 0x00006667,0x3F4CCCC8,0x3E647FD6,0x00000000data4 0x893B03F3,0xF3546435,0x00003FE2,0x00000000 data4 0x00006187,0x3F430C30,0x3E8B3AE7,0x00000000 data4 0x39CDD2AC,0xBABA62E0,0x00003FE4,0x00000000 data4 0x00005D18,0x3F3A2E88,0x3EA30C68,0x00000000 data4 0x457978A1,0x8718789F,0x00003FE2,0x00000000data4 0x0000590C,0x3F321640,0x3EB9CEC8,0x00000000 data4 0x3185E56A,0x9442DF96,0x0000BFE4,0x00000000 data4 0x00005556,0x3F2AAAA8,0x3ECF9927,0x00000000 data4 0x2BBE2CBD,0xCBF9A4BF,0x00003FE4,0x00000000 data4 0x000051EC,0x3F23D708,0x3EE47FC5,0x00000000 data4 0x852D5935,0xF3537535,0x00003FE3,0x00000000 data4 0x00004EC5,0x3F1D89D8,0x3EF8947D,0x00000000 data4 0x46CDF32F,0xA1F1E699,0x0000BFDF,0x00000000 data4 0x00004BDB,0x3F17B420,0x3F05F3A1,0x00000000 data4 0xD8484CE3,0x84A61856,0x00003FE4,0x00000000 data4 0x00004925,0x3F124920,0x3F0F4303,0x00000000data4 0xFF28821B,0xC7DD97E0,0x0000BFE2,0x00000000 data4 0x0000469F,0x3F0D3DC8,0x3F183EBF,0x00000000 data4 0xEF1FD32F,0xD3C4A887,0x00003FE3,0x00000000 data4 0x00004445,0x3F088888,0x3F20EC80,0x00000000 data4 0x464C76DA,0x84672BE6,0x00003FE5,0x00000000 data4 0x00004211,0x3F042108,0x3F29516A,0x00000000data4 0x18835FB9,0x9A43A511,0x0000BFE5,0x00000000 ASM_SIZE_DIRECTIVE(Constants_log_80_Z_G_H_h1).align 64Constants_log_80_Z_G_H_h2:ASM_TYPE_DIRECTIVE(Constants_log_80_Z_G_H_h2,@object)// Z2 - 16 bit fixed, G2 and H2 IEEE single, h2 IEEE double data4 0x00008000,0x3F800000,0x00000000,0x00000000 data4 0x00000000,0x00000000,0x00000000,0x00000000 data4 0x00007F81,0x3F7F00F8,0x3B7F875D,0x00000000 data4 0x211398BF,0xAD08B116,0x00003FDB,0x00000000data4 0x00007F02,0x3F7E03F8,0x3BFF015B,0x00000000 data4 0xC376958E,0xB106790F,0x00003FDE,0x00000000 data4 0x00007E85,0x3F7D08E0,0x3C3EE393,0x00000000 data4 0x79A7679A,0xFD03F242,0x0000BFDA,0x00000000 data4 0x00007E08,0x3F7C0FC0,0x3C7E0586,0x00000000 data4 0x05E7AE08,0xF03F81C3,0x0000BFDF,0x00000000 data4 0x00007D8D,0x3F7B1880,0x3C9E75D2,0x00000000 data4 0x049EB22F,0xD1B87D3C,0x00003FDE,0x00000000data4 0x00007D12,0x3F7A2328,0x3CBDC97A,0x00000000 data4 0x3A9E81E0,0xFABC8B95,0x00003FDF,0x00000000 data4 0x00007C98,0x3F792FB0,0x3CDCFE47,0x00000000data4 0x7C4B5443,0xF5F3653F,0x00003FDF,0x00000000 data4 0x00007C20,0x3F783E08,0x3CFC15D0,0x00000000 data4 0xF65A1773,0xE78AB204,0x00003FE0,0x00000000 data4 0x00007BA8,0x3F774E38,0x3D0D874D,0x00000000 data4 0x7B8EF695,0xDB7CBFFF,0x0000BFE0,0x00000000 data4 0x00007B31,0x3F766038,0x3D1CF49B,0x00000000 data4 0xCF773FB3,0xC0241AEA,0x0000BFE0,0x00000000 data4 0x00007ABB,0x3F757400,0x3D2C531D,0x00000000 data4 0xC9539FDF,0xFC8F4D48,0x00003FE1,0x00000000 data4 0x00007A45,0x3F748988,0x3D3BA322,0x00000000 data4 0x954665C2,0x9CD035FB,0x0000BFE1,0x00000000 data4 0x000079D1,0x3F73A0D0,0x3D4AE46F,0x00000000 data4 0xDD367A30,0xEC9017C7,0x00003FE1,0x00000000 data4 0x0000795D,0x3F72B9D0,0x3D5A1756,0x00000000 data4 0xCB11189C,0xEE6625D3,0x0000BFE1,0x00000000 data4 0x000078EB,0x3F71D488,0x3D693B9D,0x00000000 data4 0xBE11C424,0xA49C8DB5,0x0000BFE0,0x00000000ASM_SIZE_DIRECTIVE(Constants_log_80_Z_G_H_h2) .align 64Constants_log_80_h3_G_H:ASM_TYPE_DIRECTIVE(Constants_log_80_h3_G_H,@object)// h3 IEEE double extended, H3 and G3 IEEE single data4 0x112666B0,0xAAACAAB1,0x00003FD3,0x3F7FFC00 data4 0x9B7FAD21,0x90051030,0x00003FD8,0x3F7FF400data4 0xF4D783C4,0xA6B46F46,0x00003FDA,0x3F7FEC00 data4 0x11C6DDCA,0xDA148D88,0x0000BFD8,0x3F7FE400 data4 0xCA964D95,0xCE65C1D8,0x0000BFD8,0x3F7FDC00data4 0x23412D13,0x883838EE,0x0000BFDB,0x3F7FD400 data4 0x983ED687,0xB7E5CFA1,0x00003FDB,0x3F7FCC08 data4 0xE3C3930B,0xDBE23B16,0x0000BFD9,0x3F7FC408 data4 0x48AA4DFC,0x9B92F1FC,0x0000BFDC,0x3F7FBC10 data4 0xCE9C8F7E,0x9A8CEB15,0x0000BFD9,0x3F7FB410 data4 0x0DECE74A,0x8C220879,0x00003FDC,0x3F7FAC18 data4 0x2F053150,0xB25CA912,0x0000BFDA,0x3F7FA420data4 0xD9A5BE20,0xA5876555,0x00003FDB,0x3F7F9C20 data4 0x2053F087,0xC919BB6E,0x00003FD9,0x3F7F9428 data4 0x041E9A77,0xB70BDA79,0x00003FDC,0x3F7F8C30 data4 0xEA1C9C30,0xF18A5C08,0x00003FDA,0x3F7F8438 data4 0x796D89E5,0xA3790D84,0x0000BFDD,0x3F7F7C40 data4 0xA2915A3A,0xE1852369,0x0000BFDD,0x3F7F7448 data4 0xA39ED868,0xD803858F,0x00003FDC,0x3F7F6C50 data4 0x9417EBB7,0xB2EEE356,0x0000BFDD,0x3F7F6458 data4 0x9BB0D07F,0xED5C1F8A,0x0000BFDC,0x3F7F5C68 data4 0xE87C740A,0xD6D201A0,0x0000BFDD,0x3F7F5470 data4 0x1CA74025,0xE8DEBF5E,0x00003FDC,0x3F7F4C78 data4 0x1F34A7EB,0x9A995A97,0x0000BFDC,0x3F7F4488data4 0x359EED97,0x9CB0F742,0x0000BFDA,0x3F7F3C90 data4 0xBBC6A1C8,0xD6F833C2,0x0000BFDD,0x3F7F34A0 data4 0xE71090EC,0xE1F68F2A,0x00003FDC,0x3F7F2CA8 data4 0xC160A74F,0xD1881CF1,0x0000BFDB,0x3F7F24B8 data4 0xD78CB5A4,0x9AD05AE2,0x00003FD6,0x3F7F1CC8 data4 0x9A77DC4B,0xE658CB8E,0x0000BFDD,0x3F7F14D8 data4 0x6BD6D312,0xBA281296,0x00003FDC,0x3F7F0CE0 data4 0xF95210D0,0xB478BBEB,0x0000BFDB,0x3F7F04F0 data4 0x38800100,0x39400480,0x39A00640,0x39E00C41 // H's start here data4 0x3A100A21,0x3A300F22,0x3A4FF51C,0x3A6FFC1D data4 0x3A87F20B,0x3A97F68B,0x3AA7EB86,0x3AB7E101data4 0x3AC7E701,0x3AD7DD7B,0x3AE7D474,0x3AF7CBED data4 0x3B03E1F3,0x3B0BDE2F,0x3B13DAAA,0x3B1BD766 data4 0x3B23CC5C,0x3B2BC997,0x3B33C711,0x3B3BBCC6 data4 0x3B43BAC0,0x3B4BB0F4,0x3B53AF6D,0x3B5BA620 data4 0x3B639D12,0x3B6B9444,0x3B7393BC,0x3B7B8B6D ASM_SIZE_DIRECTIVE(Constants_log_80_h3_G_H).align 64Constant_half:ASM_TYPE_DIRECTIVE(Constant_half,@object)data4 0x00000000,0x80000000,0x00003FFEASM_SIZE_DIRECTIVE(Constant_half)GR_Expo_Range = r32GR_Flag = r33GR_Table_Ptr = r34GR_Table_Ptr1 = r35GR_BIAS = r35GR_Index1 = r36GR_sign_mask = r36GR_Index2 = r37GR_Expo_X = r37GR_signif_Z = r38GR_M = r38GR_X_0 = r39GR_Mask = r39
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -