📄 mathhardalib.s
字号:
1: sub.s $f0, $f0, $f10 j ratanhf4: lw t0, 8(sp) li.s $f0, one bltz t0, 1f j ra1: neg.s $f0 j ra .end tanhf/******************************************************************************** powf - software floating point power function** This routine takes two input single-precision floating point* parameters, <sglX> and <sglY>, and returns the single-precision* value of <sglX> to the <sglY> power.*** float pow (sglX, sglY)* float sglX;* float sglY;** RETURNS: single-precision value of <dblX> to <dblY> power.*/#define ONE_PT_OWE 1.0 .globl powf .ent powfpowf: SETFRAME(powf,1) subu sp, FRAMESZ(powf) /* reserve some space */ SW ra, FRAMERA(powf)(sp) /* store the return addr */ swc1 fp12, FRAMEA0(powf)(sp) /* store passed param sglX */ mfc1 t0, fp14 /* Y = 0.0 ? */ beq t0, zero, 0f li.s fp2, one /* Y = 1.0 ? */ c.eq.s fp2, fp14 nop bc1t 2f nop mov.s fp12, fp14 /* load parameter for isNaN */ jal isNaNSingle /* is Y not a number */ swc1 fp14, FRAMEA1(powf)(sp) /* store passed param sglY */ beq v0, zero, 1f /* if not NaN branch */ mov.s fp0, fp14 /* load return value */ b donePowf /* else we are done */0: /* powf (?, 0.0) = 1.0 */ li.s fp0, one b donePowf1: lwc1 fp12, FRAMEA0(powf)(sp) /* reload passed params */ jal isNaNSingle /* is X not a number */ lwc1 fp14, FRAMEA1(powf)(sp) lwc1 fp12, FRAMEA0(powf)(sp) /* reload passed params */ beq v0, zero, isANf /* if not NaN branch */2: mov.s fp0, fp12 b donePowfisANf: li.s fp2, ONE_PT_OWE /* load 1.0 */ abs.s fp4, fp12 c.eq.s fp4, fp2 /* compare dlbX with 1.0 */ bc1f notOnef /* if not 1.0 */ /* test if Y is +-Inf */ mfc1 t0, fp14 sll t1, t0, 1 srl t0, t1, 1 li t1, INF_HI_SHORT_SINGLE sll t2, t1, 16 beq t0, t2, valueNanf /* powf (1.0, +-Inf) = Nan */ /* powf (1.0, ?) = 1.0 */ mfc1 t0, fp12 bltz t0, notOnef mov.s fp0, fp2 /* load return value */ b donePowf /* else we are done */notOnef: abs.s fp2, fp12 /* |x| */ mfc1 t0, fp2 bne t0, zero, notZerof /* if |X| == 0 ? */ mfc1 t0, fp14 /* load sign bit of dblY into t0 */ sra t2, t0, 31 /* dblY sign bit to t2 */ bne t2, zero, valueInff /* dblY < 0? */ mov.s fp0, fp2 /* return +0.0 */ b donePowfnotZerof: mfc1 t0, fp12 sra t3, t0, 31 /* get sign bit of X */ beq t3, zero, positivef /* if X > 0 */ /* X is negatif */ /* test if Y is +-Inf */ mfc1 t0, fp14 sra t4, t0, 31 /* get sign bit of Y */ sll t1, t0, 1 srl t0, t1, 1 li t1, INF_HI_SHORT_SINGLE sll t2, t1, 16 bne t0, t2, 6f li.s fp2, -1.0 c.lt.s fp12, fp2 nop bc1t 4f c.eq.s fp12, fp2 nop bc1t 6f /* x < -1.0 */ beq t4, zero, 5f b valueInff4: /* x > -1.0 */ beq t4, zero, valueInff5: li.s fp0, 0.0 b donePowf /* else we are done */6: abs.s fp12, fp12 /* get absolute value */positivef: SW t3, FRAMER0(powf)(sp) /* save dblX sign bit */ swc1 fp14, FRAMEA0(powf)(sp) /* save dblX to stack */ jal logf /* take log of dlbX */ lwc1 fp14, FRAMEA0(powf)(sp) /* reload dlbX from stack */ mul.s fp12, fp14, fp0 /* dblY * log result */ jal expf /* exp (dblY * log result) */ LW t3, FRAMER0(powf)(sp) /* restore dblX sign bit */ beq t3, 0, donePowf /* if dblX > 0 */ lwc1 fp14, FRAMEA1(powf)(sp) /* reload dblY */ cvt.w.s fp2, fp14 /* convert to integer */ mfc1 v0, fp2 /* integer part into v0 */ cvt.s.w fp4, fp2 /* convert to double */ c.eq.s fp4, fp14 /* dblY == int(dblY)? */ bc1f valueNanf /* if no, return NaN */ and v0, t3, v0 /* odd or even */ andi v0, v0, 1 /* dblY even */ beq v0, zero, donePowf neg.s fp0, fp0 /* negative value */ b donePowfvalueInff: li v0, INF_HI_SHORT_SINGLE /* set Inf return value */ sll v0, v0, 16 mtc1 v0, fp0 b donePowfvalueNanf: li v0, 0x7fff /* set Nan return value */ sll v0, v0, 16 mtc1 v0, fp0donePowf: LW ra, FRAMERA(powf)(sp) /* restore ra */ addiu sp, FRAMESZ(powf) /* deallocate stack */ j ra /* return to caller */ .end powf/******************************************************************************** isNaNSingle - ** This routine takes an input single-precision floating point* parameter, <sgl>, and returns TRUE if <sgl> contains an IEEE not* a number value.*** BOOL isNaNSingle (sgl)* float sgl;** RETURNS: TRUE if <sgl> is NaN, else FALSE*/ .ent isNaNSingleisNaNSingle: mfc1 v0, fp12 srl v0, v0, 16 li t0, INF_HI_SHORT_SINGLE andi v0, v0, 0x7fff slt v0, t0, v0 j ra .end isNaNSingle#endif /* INCLUDE_SINGLE_PRECISION *//********************************************************************************* c_abs - ** NOMANUAL* This entrypoint provided for FCOM for CABS (complex absolute value),* because FCOM has a hard time calling FHYPOT directly. Also used by* FCOM when user writes INTRINSIC CABS. The latter must use pass by* reference, of course. */ .globl c_abs_ .ent c_abs_c_abs_: .frame sp, 0, ra l.s $f12, 0(a0) l.s $f14, 4(a0) /* just fall through */ .end c_abs_/********************************************************************************* swapINX - **/ .globl swapINX .ent swapINXswapINX: .frame sp, 0, ra cfc1 t0, $31 sll a0, 2 and v0, t0, 1<<2 xor t0, v0 or t0, a0 ctc1 t0, $31 srl v0, 2 j ra .end swapINX/********************************************************************************* swapRM - **/ .globl swapRM .ent swapRMswapRM: .frame sp, 0, ra cfc1 t0, $31 and v0, t0, 3 xor t0, v0 or t0, a0 ctc1 t0, $31 j ra .end swapRM#ifdef INCLUDE_DOUBLE_PRECISION/********************************************************************************* EXP_DAT - data for table driven approach to exp, expm1 ** NOMANUAL*/.rdata .align 3EXP_DAT:.word D(0x3FF00000,0x00000000), D(0x00000000,0x00000000) .word D(0x3FF059B0,0xD3158540), D(0x3D0A1D73,0xE2A475B4) .word D(0x3FF0B558,0x6CF98900), D(0x3CEEC531,0x7256E308) .word D(0x3FF11301,0xD0125B40), D(0x3CF0A4EB,0xBF1AED93) .word D(0x3FF172B8,0x3C7D5140), D(0x3D0D6E6F,0xBE462876) .word D(0x3FF1D487,0x3168B980), D(0x3D053C02,0xDC0144C8) .word D(0x3FF2387A,0x6E756200), D(0x3D0C3360,0xFD6D8E0B) .word D(0x3FF29E9D,0xF51FDEC0), D(0x3D009612,0xE8AFAD12) .word D(0x3FF306FE,0x0A31B700), D(0x3CF52DE8,0xD5A46306) .word D(0x3FF371A7,0x373AA9C0), D(0x3CE54E28,0xAA05E8A9) .word D(0x3FF3DEA6,0x4C123400), D(0x3D011ADA,0x0911F09F) .word D(0x3FF44E08,0x60618900), D(0x3D068189,0xB7A04EF8) .word D(0x3FF4BFDA,0xD5362A00), D(0x3D038EA1,0xCBD7F621) .word D(0x3FF5342B,0x569D4F80), D(0x3CBDF0A8,0x3C49D86A) .word D(0x3FF5AB07,0xDD485400), D(0x3D04AC64,0x980A8C8F) .word D(0x3FF6247E,0xB03A5580), D(0x3CD2C7C3,0xE81BF4B7) .word D(0x3FF6A09E,0x667F3BC0), D(0x3CE92116,0x5F626CDD) .word D(0x3FF71F75,0xE8EC5F40), D(0x3D09EE91,0xB8797785) .word D(0x3FF7A114,0x73EB0180), D(0x3CDB5F54,0x408FDB37) .word D(0x3FF82589,0x994CCE00), D(0x3CF28ACF,0x88AFAB35) .word D(0x3FF8ACE5,0x422AA0C0), D(0x3CFB5BA7,0xC55A192D) .word D(0x3FF93737,0xB0CDC5C0), D(0x3D027A28,0x0E1F92A0) .word D(0x3FF9C491,0x82A3F080), D(0x3CF01C7C,0x46B071F3) .word D(0x3FFA5503,0xB23E2540), D(0x3CFC8B42,0x4491CAF8) .word D(0x3FFAE89F,0x995AD380), D(0x3D06AF43,0x9A68BB99) .word D(0x3FFB7F76,0xF2FB5E40), D(0x3CDBAA9E,0xC206AD4F) .word D(0x3FFC199B,0xDD855280), D(0x3CFC2220,0xCB12A092) .word D(0x3FFCB720,0xDCEF9040), D(0x3D048A81,0xE5E8F4A5) .word D(0x3FFD5818,0xDCFBA480), D(0x3CDC9768,0x16BAD9B8) .word D(0x3FFDFC97,0x337B9B40), D(0x3CFEB968,0xCAC39ED3) .word D(0x3FFEA4AF,0xA2A490C0), D(0x3CF9858F,0x73A18F5E) .word D(0x3FFF5076,0x5B6E4540), D(0x3C99D3E1,0x2DD8A18B)/********************************************************************************* LOGC_TBL - data for table driven approach to log** NOMANUAL*/ .align 3LOGC_TBL:.word D(0x00000000,0x00000000), D(0x00000000,0x00000000) .word D(0x3F7FE02A,0x6B200000), D(0xBD6F30EE,0x07912DF9) .word D(0x3F8FC0A8,0xB1000000), D(0xBD5FE0E1,0x83092C59) .word D(0x3F97B91B,0x07D80000), D(0xBD62772A,0xB6C0559C) .word D(0x3F9F829B,0x0E780000), D(0x3D298026,0x7C7E09E4) .word D(0x3FA39E87,0xBA000000), D(0xBD642A05,0x6FEA4DFD) .word D(0x3FA77458,0xF6340000), D(0xBD62303B,0x9CB0D5E1) .word D(0x3FAB42DD,0x71180000), D(0x3D671BEC,0x28D14C7E) .word D(0x3FAF0A30,0xC0100000), D(0x3D662A66,0x17CC9717) .word D(0x3FB16536,0xEEA40000), D(0xBD60A3E2,0xF3B47D18) .word D(0x3FB341D7,0x961C0000), D(0xBD4717B6,0xB33E44F8) .word D(0x3FB51B07,0x3F060000), D(0x3D383F69,0x278E686A) .word D(0x3FB6F0D2,0x8AE60000), D(0xBD62968C,0x836CC8C2) .word D(0x3FB8C345,0xD6320000), D(0xBD5937C2,0x94D2F567) .word D(0x3FBA926D,0x3A4A0000), D(0x3D6AAC6C,0xA17A4554) .word D(0x3FBC5E54,0x8F5C0000), D(0xBD4C5E75,0x14F4083F) .word D(0x3FBE2707,0x6E2A0000), D(0x3D6E5CBD,0x3D50FFFC) .word D(0x3FBFEC91,0x31DC0000), D(0xBD354555,0xD1AE6607) .word D(0x3FC0D77E,0x7CD10000), D(0xBD6C69A6,0x5A23A170) .word D(0x3FC1B72A,0xD52F0000), D(0x3D69E80A,0x41811A39) .word D(0x3FC29552,0xF8200000), D(0xBD35B967,0xF4471DFC) .word D(0x3FC371FC,0x201F0000), D(0xBD6C22F1,0x0C9A4EA8) .word D(0x3FC44D2B,0x6CCB0000), D(0x3D6F4799,0xF4F6543E) .word D(0x3FC526E5,0xE3A20000), D(0xBD62F217,0x46FF8A47) .word D(0x3FC5FF30,0x70A80000), D(0xBD6B0B0D,0xE3077D7E) .word D(0x3FC6D60F,0xE71A0000), D(0xBD56F1B9,0x55C4D1DA) .word D(0x3FC7AB89,0x02110000), D(0xBD537B72,0x0E4A694B) .word D(0x3FC87FA0,0x65210000), D(0xBD5B77B7,0xEFFB7F41) .word D(0x3FC9525A,0x9CF40000), D(0x3D65AD1D,0x904C1D4E) .word D(0x3FCA23BC,0x1FE30000), D(0xBD62A739,0xB23B93E1) .word D(0x3FCAF3C9,0x4E810000), D(0xBD600349,0xCC67F9B2) .word D(0x3FCBC286,0x742E0000), D(0xBD6CCA75,0x818C5DBC) .word D(0x3FCC8FF7,0xC79B0000), D(0xBD697794,0xF689F843) .word D(0x3FCD5C21,0x6B500000), D(0xBD611BA9,0x1BBCA682) .word D(0x3FCE2707,0x6E2B0000), D(0xBD3A342C,0x2AF0003C) .word D(0x3FCEF0AD,0xCBDC0000), D(0x3D664D94,0x8637950E) .word D(0x3FCFB918,0x6D5E0000), D(0x3D5F1546,0xAAA3361C) .word D(0x3FD04025,0x94B50000), D(0xBD67DF92,0x8EC217A5) .word D(0x3FD0A324,0xE2738000), D(0x3D50E35F,0x73F7A018) .word D(0x3FD1058B,0xF9AE8000), D(0xBD6A9573,0xB02FAA5A) .word D(0x3FD1675C,0xABAB8000), D(0x3D630701,0xCE63EAB9) .word D(0x3FD1C898,0xC1698000), D(0x3D59FAFB,0xC68E7540) .word D(0x3FD22941,0xFBCF8000), D(0xBD3A6976,0xF5EB0963) .word D(0x3FD2895A,0x13DE8000), D(0x3D3A8D7A,0xD24C13F0) .word D(0x3FD2E8E2,0xBAE10000), D(0x3D5D309C,0x2CC91A85) .word D(0x3FD347DD,0x9A988000), D(0xBD25594D,0xD4C58092) .word D(0x3FD3A64C,0x55698000), D(0xBD6D0B1C,0x68651946) .word D(0x3FD40430,0x86868000), D(0x3D63F1DE,0x86093EFA) .word D(0x3FD4618B,0xC21C8000), D(0xBD609EC1,0x7A426426) .word D(0x3FD4BE5F,0x95778000), D(0xBD3D7C92,0xCD9AD824) .word D(0x3FD51AAD,0x872E0000), D(0xBD3F4BD8,0xDB0A7CC1) .word D(0x3FD57677,0x17458000), D(0xBD62C9D5,0xB2A49AF9) .word D(0x3FD5D1BD,0xBF580000), D(0x3D4394A1,0x1B1C1EE4) .word D(0x3FD62C82,0xF2BA0000), D(0xBD6C3568,0x48506EAD) .word D(0x3FD686C8,0x1E9B0000), D(0x3D54AEC4,0x42BE1015) .word D(0x3FD6E08E,0xAA2B8000), D(0x3D60F1C6,0x09C98C6C) .word D(0x3FD739D7,0xF6BC0000), D(0xBD67FCB1,0x8ED9D603) .word D(0x3FD792A5,0x5FDD8000), D(0xBD6C2EC1,0xF512DC03) .word D(0x3FD7EAF8,0x3B828000), D(0x3D67E1B2,0x59D2F3DA) .word D(0x3FD842D1,0xDA1E8000), D(0x3D462E92,0x7628CBC2) .word D(0x3FD89A33,0x86C18000), D(0xBD6ED2A5,0x2C73BF78) .word D(0x3FD8F11E,0x87368000), D(0xBD5D3881,0xE8962A96) .word D(0x3FD94794,0x1C210000), D(0x3D56FABA,0x4CDD147D) .word D(0x3FD99D95,0x81180000), D(0xBD5F7534,0x56D113B8) .word D(0x3FD9F323,0xECBF8000), D(0x3D584BF2,0xB68D766F) .word D(0x3FDA4840,0x90E58000), D(0x3D6D8515,0xFE535B87) .word D(0x3FDA9CEC,0x9A9A0000), D(0x3D40931A,0x909FEA5E) .word D(0x3FDAF129,0x32478000), D(0xBD3E53BB,0x31EED7A9) .word D(0x3FDB44F7,0x7BCC8000), D(0x3D4EC519,0x7DDB55D3) .word D(0x3FDB9858,0x96930000), D(0x3D50FB59,0x8FB14F89) .word D(0x3FDBEB4D,0x9DA70000), D(0x3D5B7BF7,0x861D37AC) .word D(0x3FDC3DD7,0xA7CD8000), D(0x3D66A6B9,0xD9E0A5BD) .word D(0x3FDC8FF7,0xC79A8000), D(0x3D5A21AC,0x25D81EF3) .word D(0x3FDCE1AF,0x0B860000), D(0xBD482909,0x05A86AA6) .word D(0x3FDD32FE,0x7E010000), D(0xBD542A9E,0x21373414) .word D(0x3FDD83E7,0x258A0000), D(0x3D679F28,0x28ADD176) .word D(0x3FDDD46A,0x04C20000), D(0xBD6DAFA0,0x8CECADB1) .word D(0x3FDE2488,0x1A7C8000), D(0xBD53D9E3,0x4270BA6B) .word D(0x3FDE7442,0x61D68000), D(0x3D3E1F8D,0xF68DBCF3) .word D(0x3FDEC399,0xD2468000), D(0x3D49802E,0xB9DCA7E7) .word D(0x3FDF128F,0x5FAF0000), D(0x3D3BB2CD,0x720EC44C) .word D(0x3FDF6123,0xFA700000), D(0x3D645630,0xA2B61E5B) .word D(0x3FDFAF58,0x8F790000), D(0xBD49C24C,0xA098362B) .word D(0x3FDFFD2E,0x08580000), D(0xBD46CF54,0xD05F9367) .word D(0x3FE02552,0xA5A5C000), D(0x3D60FEC6,0x9C695D7F) .word D(0x3FE04BDF,0x9DA94000), D(0xBD692D9A,0x033EFF75) .word D(0x3FE0723E,0x5C1CC000), D(0x3D6F404E,0x57963891) .word D(0x3FE0986F,0x4F574000), D(0xBD55BE8D,0xC04AD601) .word D(0x3FE0BE72,0xE4254000), D(0xBD657D49,0x676844CC) .word D(0x3FE0E449,0x85D1C000), D(0x3D5917ED,0xD5CBBD2D) .word D(0x3FE109F3,0x9E2D4000), D(0x3D592DFB,0xC7D93617) .word D(0x3FE12F71,0x95940000), D(0xBD6043AC,0xFEDCE638) .word D(0x3FE154C3,0xD2F4C000), D(0x3D65E9A9,0x8F33A396) .word D(0x3FE179EA,0xBBD88000), D(0x3D69A0BF,0xC60E6FA0) .word D(0x3FE19EE6,0xB467C000), D(0x3D52DD98,0xB97BAEF0) .word D(0x3FE1C3B8,0x1F714000), D(0xBD3EDA1B,0x58389902) .word D(0x3FE1E85F,0x5E704000), D(0x3D1A07BD,0x8B34BE7C) .word D(0x3FE20CDC,0xD192C000), D(0xBD64926C,0xAFC2F08A) .word D(0x3FE23130,0xD7BEC000), D(0xBD17AFA4,0x392F1BA7) .word D(0x3FE2555B,0xCE990000), D(0xBD506987,0xF78A4A5E) .word D(0x3FE2795E,0x1289C000), D(0xBD5DCA29,0x0F81848D) .word D(0x3FE29D37,0xFEC2C000), D(0xBD5EEA6F,0x465268B4) .word D(0x3FE2C0E9,0xED448000), D(0x3D5D1772,0xF5386374) .word D(0x3FE2E474,0x36E40000), D(0x3D334202,0xA10C3491) .word D(0x3FE307D7,0x334F0000), D(0x3D60BE1F,0xB590A1F5) .word D(0x3FE32B13,0x39120000), D(0x3D6D7132,0x0556B67B) .word D(0x3FE34E28,0x9D9D0000), D(0xBD6E2CE9,0x146D277A) .word D(0x3FE37117,0xB5474000), D(0x3D4ED717,0x74092113) .word D(0x3FE393E0,0xD3564000), D(0xBD65E656,0x3BBD9FC9) .word D(0x3FE3B684,0x4A000000), D(0xBD3EEA83,0x8909F3D3) .word D(0x3FE3D902,0x6A714000), D(0x3D66FAA4,0x04263D0B) .word D(0x3FE3FB5B,0x84D18000), D(0xBD60BDA4,0xB162AFA3) .word D(0x3FE41D8F,0xE8468000), D(0xBD5AA337,0x36867A17) .word D(0x3FE43F9F,0xE2F9C000), D(0x3D5CCEF4,0xE4F736C2) .word D(0x3FE4618B,0xC21C4000), D(0x3D6EC27D,0x0B7B37B3) .word D(0x3FE48353,0xD1EA8000), D(0x3D51BEE7,0xABD17660) .word D(0x3FE4A4F8,0x5DB04000), D(0xBD244FDD,0x840B8591) .word D(0x3FE4C679,0xAFCD0000), D(0xBD61C64E,0x971322CE) .word D(0x3FE4E7D8,0x11B74000), D(0x3D6BB09C,0xB0985646) .word D(0x3FE50913,0xCC018000), D(0xBD6794B4,0x34C5A4F5) .word D(0x3FE52A2D,0x265BC000), D(0x3D46ABB9,0xDF22BC57) .word D(0x3FE54B24,0x67998000), D(0x3D6497A9,0x15428B44) .word D(0x3FE56BF9,0xD5B40000), D(0xBD58CD7D,0xC73BD194) .word D(0x3FE58CAD,0xB5CD8000), D(0xBD49DB3D,0xB43689B4) .word D(0x3FE5AD40,0x4C358000), D(0x3D6F2CFB,0x29AAA5F0) .word D(0x3FE5CDB1,0xDC6C0000), D(0x3D67648C,0xF6E3C5D7) .word D(0x3FE5EE02,0xA9240000), D(0x3D667570,0xD6095FD2) .word D(0x3FE60E32,0xF4478000), D(0x3D51B194,0xF912B417) .word D(0x3FE62E42,0xFEFA4000), D(0xBD48432A,0x1B0E2634)#endif /* INCLUDE_DOUBLE_PRECISION */#ifdef INCLUDE_SINGLE_PRECISION/********************************************************************************* EXPF_DAT - data for table driven approach to expf** NOMANUAL*/.rdata .align 3EXPF_DAT:.word 0x3f800000,0x00000000 .word 0x3f82cd87,0x2850eb9f .word 0x3f85aac3,0x2776298c .word 0x3f88980e,0x2785275e .word 0x3f8b95c2,0x286b737e .word 0x3f8ea43a,0x2829e017 .word 0x3f91c3d3,0x28619b08 .word 0x3f94f4f0,0x2804b097 .word 0x3f9837f0,0x27a96f47 .word 0x3f9b8d3a,0x272a7145 .word 0x3f9ef532,0x2808d6d0 .word 0x3fa27043,0x28340c4e .word 0x3fa5fed7,0x281c750e .word 0x3fa9a15b,0x25ef8542 .word 0x3fad583f,0x28256325 .word 0x3fb123f6,0x26963e1f .word 0x3fb504f3,0x274908b3 .word 0x3fb8fbaf,0x284f748e .word 0x3fbd08a4,0x26dafaa2 .word 0x3fc12c4d,0x2794567c .word 0x3fc5672a,0x27dadd3e .word 0x3fc9b9be,0x2813d140 .word 0x3fce248c,0x2780e3e2 .word 0x3fd2a81e,0x27e45a12 .word 0x3fd744fd,0x28357a1d .word 0x3fdbfbb8,0x26dd54f6 .word 0x3fe0ccdf,0x27e11106 .word 0x3fe5b907,0x2824540f .word 0x3feac0c7,0x26e4bb41 .word 0x3fefe4ba,0x27f5cb46 .word 0x3ff5257d,0x27cc2c7c .word 0x3ffa83b3,0x24ce9f09/********************************************************************************* local_sqrttable - data for table driven approach to sqrt** NOMANUAL*/local_sqrttable: .word 83599<<3 .word 71378<<3 .word 60428<<3 .word 50647<<3 .word 41945<<3 .word 34246<<3 .word 27478<<3 .word 21581<<3 .word 16499<<3 .word 12183<<3 .word 8588<<3 .word 5674<<3 .word 3403<<3 .word 1742<<3 .word 661<<3 .word 130<<3 .word 0<<3 .word 1204<<3 .word 3062<<3 .word 5746<<3 .word 9193<<3 .word 13348<<3 .word 18162<<3 .word 23592<<3 .word 29598<<3 .word 36145<<3 .word 43202<<3 .word 50740<<3 .word 58733<<3 .word 67158<<3 .word 75992<<3 .word 85215<<3#endif /* INCLUDE_SINGLE_PRECISION */ .globl _sqrttable_sqrttable: .word 83599 .word 71378 .word 60428 .word 50647 .word 41945 .word 34246 .word 27478 .word 21581 .word 16499 .word 12183 .word 8588 .word 5674 .word 3403 .word 1742 .word 661 .word 130 .word 0 .word 1204 .word 3062 .word 5746 .word 9193 .word 13348 .word 18162 .word 23592 .word 29598 .word 36145 .word 43202 .word 50740 .word 58733 .word 67158 .word 75992 .word 85215#endif /* PORTABL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -