/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ .file "__vpowf.S" #include "libm.h" RO_DATA .align 64 ! __mt_constexp2fa: .word 0x3ff00000, 0x00000000, 0x3ff00b1a, 0xfa5abcbf .word 0x3ff0163d, 0xa9fb3335, 0x3ff02168, 0x143b0281 .word 0x3ff02c9a, 0x3e778061, 0x3ff037d4, 0x2e11bbcc .word 0x3ff04315, 0xe86e7f85, 0x3ff04e5f, 0x72f654b1 .word 0x3ff059b0, 0xd3158574, 0x3ff0650a, 0x0e3c1f89 .word 0x3ff0706b, 0x29ddf6de, 0x3ff07bd4, 0x2b72a836 .word 0x3ff08745, 0x18759bc8, 0x3ff092bd, 0xf66607e0 .word 0x3ff09e3e, 0xcac6f383, 0x3ff0a9c7, 0x9b1f3919 .word 0x3ff0b558, 0x6cf9890f, 0x3ff0c0f1, 0x45e46c85 .word 0x3ff0cc92, 0x2b7247f7, 0x3ff0d83b, 0x23395dec .word 0x3ff0e3ec, 0x32d3d1a2, 0x3ff0efa5, 0x5fdfa9c5 .word 0x3ff0fb66, 0xaffed31b, 0x3ff10730, 0x28d7233e .word 0x3ff11301, 0xd0125b51, 0x3ff11edb, 0xab5e2ab6 .word 0x3ff12abd, 0xc06c31cc, 0x3ff136a8, 0x14f204ab .word 0x3ff1429a, 0xaea92de0, 0x3ff14e95, 0x934f312e .word 0x3ff15a98, 0xc8a58e51, 0x3ff166a4, 0x5471c3c2 .word 0x3ff172b8, 0x3c7d517b, 0x3ff17ed4, 0x8695bbc0 .word 0x3ff18af9, 0x388c8dea, 0x3ff19726, 0x58375d2f .word 0x3ff1a35b, 0xeb6fcb75, 0x3ff1af99, 0xf8138a1c .word 0x3ff1bbe0, 0x84045cd4, 0x3ff1c82f, 0x95281c6b .word 0x3ff1d487, 0x3168b9aa, 0x3ff1e0e7, 0x5eb44027 .word 0x3ff1ed50, 0x22fcd91d, 0x3ff1f9c1, 0x8438ce4d .word 0x3ff2063b, 0x88628cd6, 0x3ff212be, 0x3578a819 .word 0x3ff21f49, 0x917ddc96, 0x3ff22bdd, 0xa27912d1 .word 0x3ff2387a, 0x6e756238, 0x3ff2451f, 0xfb82140a .word 0x3ff251ce, 0x4fb2a63f, 0x3ff25e85, 0x711ece75 .word 0x3ff26b45, 0x65e27cdd, 0x3ff2780e, 0x341ddf29 .word 0x3ff284df, 0xe1f56381, 0x3ff291ba, 0x7591bb70 .word 0x3ff29e9d, 0xf51fdee1, 0x3ff2ab8a, 0x66d10f13 .word 0x3ff2b87f, 0xd0dad990, 0x3ff2c57e, 0x39771b2f .word 0x3ff2d285, 0xa6e4030b, 0x3ff2df96, 0x1f641589 .word 0x3ff2ecaf, 0xa93e2f56, 0x3ff2f9d2, 0x4abd886b .word 0x3ff306fe, 0x0a31b715, 0x3ff31432, 0xedeeb2fd .word 0x3ff32170, 0xfc4cd831, 0x3ff32eb8, 0x3ba8ea32 .word 0x3ff33c08, 0xb26416ff, 0x3ff34962, 0x66e3fa2d .word 0x3ff356c5, 0x5f929ff1, 0x3ff36431, 0xa2de883b .word 0x3ff371a7, 0x373aa9cb, 0x3ff37f26, 0x231e754a .word 0x3ff38cae, 0x6d05d866, 0x3ff39a40, 0x1b7140ef .word 0x3ff3a7db, 0x34e59ff7, 0x3ff3b57f, 0xbfec6cf4 .word 0x3ff3c32d, 0xc313a8e5, 0x3ff3d0e5, 0x44ede173 .word 0x3ff3dea6, 0x4c123422, 0x3ff3ec70, 0xdf1c5175 .word 0x3ff3fa45, 0x04ac801c, 0x3ff40822, 0xc367a024 .word 0x3ff4160a, 0x21f72e2a, 0x3ff423fb, 0x2709468a .word 0x3ff431f5, 0xd950a897, 0x3ff43ffa, 0x3f84b9d4 .word 0x3ff44e08, 0x6061892d, 0x3ff45c20, 0x42a7d232 .word 0x3ff46a41, 0xed1d0057, 0x3ff4786d, 0x668b3237 .word 0x3ff486a2, 0xb5c13cd0, 0x3ff494e1, 0xe192aed2 .word 0x3ff4a32a, 0xf0d7d3de, 0x3ff4b17d, 0xea6db7d7 .word 0x3ff4bfda, 0xd5362a27, 0x3ff4ce41, 0xb817c114 .word 0x3ff4dcb2, 0x99fddd0d, 0x3ff4eb2d, 0x81d8abff .word 0x3ff4f9b2, 0x769d2ca7, 0x3ff50841, 0x7f4531ee .word 0x3ff516da, 0xa2cf6642, 0x3ff5257d, 0xe83f4eef .word 0x3ff5342b, 0x569d4f82, 0x3ff542e2, 0xf4f6ad27 .word 0x3ff551a4, 0xca5d920f, 0x3ff56070, 0xdde910d2 .word 0x3ff56f47, 0x36b527da, 0x3ff57e27, 0xdbe2c4cf .word 0x3ff58d12, 0xd497c7fd, 0x3ff59c08, 0x27ff07cc .word 0x3ff5ab07, 0xdd485429, 0x3ff5ba11, 0xfba87a03 .word 0x3ff5c926, 0x8a5946b7, 0x3ff5d845, 0x90998b93 .word 0x3ff5e76f, 0x15ad2148, 0x3ff5f6a3, 0x20dceb71 .word 0x3ff605e1, 0xb976dc09, 0x3ff6152a, 0xe6cdf6f4 .word 0x3ff6247e, 0xb03a5585, 0x3ff633dd, 0x1d1929fd .word 0x3ff64346, 0x34ccc320, 0x3ff652b9, 0xfebc8fb7 .word 0x3ff66238, 0x82552225, 0x3ff671c1, 0xc70833f6 .word 0x3ff68155, 0xd44ca973, 0x3ff690f4, 0xb19e9538 .word 0x3ff6a09e, 0x667f3bcd, 0x3ff6b052, 0xfa75173e .word 0x3ff6c012, 0x750bdabf, 0x3ff6cfdc, 0xddd47645 .word 0x3ff6dfb2, 0x3c651a2f, 0x3ff6ef92, 0x98593ae5 .word 0x3ff6ff7d, 0xf9519484, 0x3ff70f74, 0x66f42e87 .word 0x3ff71f75, 0xe8ec5f74, 0x3ff72f82, 0x86ead08a .word 0x3ff73f9a, 0x48a58174, 0x3ff74fbd, 0x35d7cbfd .word 0x3ff75feb, 0x564267c9, 0x3ff77024, 0xb1ab6e09 .word 0x3ff78069, 0x4fde5d3f, 0x3ff790b9, 0x38ac1cf6 .word 0x3ff7a114, 0x73eb0187, 0x3ff7b17b, 0x0976cfdb .word 0x3ff7c1ed, 0x0130c132, 0x3ff7d26a, 0x62ff86f0 .word 0x3ff7e2f3, 0x36cf4e62, 0x3ff7f387, 0x8491c491 .word 0x3ff80427, 0x543e1a12, 0x3ff814d2, 0xadd106d9 .word 0x3ff82589, 0x994cce13, 0x3ff8364c, 0x1eb941f7 .word 0x3ff8471a, 0x4623c7ad, 0x3ff857f4, 0x179f5b21 .word 0x3ff868d9, 0x9b4492ed, 0x3ff879ca, 0xd931a436 .word 0x3ff88ac7, 0xd98a6699, 0x3ff89bd0, 0xa478580f .word 0x3ff8ace5, 0x422aa0db, 0x3ff8be05, 0xbad61778 .word 0x3ff8cf32, 0x16b5448c, 0x3ff8e06a, 0x5e0866d9 .word 0x3ff8f1ae, 0x99157736, 0x3ff902fe, 0xd0282c8a .word 0x3ff9145b, 0x0b91ffc6, 0x3ff925c3, 0x53aa2fe2 .word 0x3ff93737, 0xb0cdc5e5, 0x3ff948b8, 0x2b5f98e5 .word 0x3ff95a44, 0xcbc8520f, 0x3ff96bdd, 0x9a7670b3 .word 0x3ff97d82, 0x9fde4e50, 0x3ff98f33, 0xe47a22a2 .word 0x3ff9a0f1, 0x70ca07ba, 0x3ff9b2bb, 0x4d53fe0d .word 0x3ff9c491, 0x82a3f090, 0x3ff9d674, 0x194bb8d5 .word 0x3ff9e863, 0x19e32323, 0x3ff9fa5e, 0x8d07f29e .word 0x3ffa0c66, 0x7b5de565, 0x3ffa1e7a, 0xed8eb8bb .word 0x3ffa309b, 0xec4a2d33, 0x3ffa42c9, 0x80460ad8 .word 0x3ffa5503, 0xb23e255d, 0x3ffa674a, 0x8af46052 .word 0x3ffa799e, 0x1330b358, 0x3ffa8bfe, 0x53c12e59 .word 0x3ffa9e6b, 0x5579fdbf, 0x3ffab0e5, 0x21356eba .word 0x3ffac36b, 0xbfd3f37a, 0x3ffad5ff, 0x3a3c2774 .word 0x3ffae89f, 0x995ad3ad, 0x3ffafb4c, 0xe622f2ff .word 0x3ffb0e07, 0x298db666, 0x3ffb20ce, 0x6c9a8952 .word 0x3ffb33a2, 0xb84f15fb, 0x3ffb4684, 0x15b749b1 .word 0x3ffb5972, 0x8de5593a, 0x3ffb6c6e, 0x29f1c52a .word 0x3ffb7f76, 0xf2fb5e47, 0x3ffb928c, 0xf22749e4 .word 0x3ffba5b0, 0x30a1064a, 0x3ffbb8e0, 0xb79a6f1f .word 0x3ffbcc1e, 0x904bc1d2, 0x3ffbdf69, 0xc3f3a207 .word 0x3ffbf2c2, 0x5bd71e09, 0x3ffc0628, 0x6141b33d .word 0x3ffc199b, 0xdd85529c, 0x3ffc2d1c, 0xd9fa652c .word 0x3ffc40ab, 0x5fffd07a, 0x3ffc5447, 0x78fafb22 .word 0x3ffc67f1, 0x2e57d14b, 0x3ffc7ba8, 0x8988c933 .word 0x3ffc8f6d, 0x9406e7b5, 0x3ffca340, 0x5751c4db .word 0x3ffcb720, 0xdcef9069, 0x3ffccb0f, 0x2e6d1675 .word 0x3ffcdf0b, 0x555dc3fa, 0x3ffcf315, 0x5b5bab74 .word 0x3ffd072d, 0x4a07897c, 0x3ffd1b53, 0x2b08c968 .word 0x3ffd2f87, 0x080d89f2, 0x3ffd43c8, 0xeacaa1d6 .word 0x3ffd5818, 0xdcfba487, 0x3ffd6c76, 0xe862e6d3 .word 0x3ffd80e3, 0x16c98398, 0x3ffd955d, 0x71ff6075 .word 0x3ffda9e6, 0x03db3285, 0x3ffdbe7c, 0xd63a8315 .word 0x3ffdd321, 0xf301b460, 0x3ffde7d5, 0x641c0658 .word 0x3ffdfc97, 0x337b9b5f, 0x3ffe1167, 0x6b197d17 .word 0x3ffe2646, 0x14f5a129, 0x3ffe3b33, 0x3b16ee12 .word 0x3ffe502e, 0xe78b3ff6, 0x3ffe6539, 0x24676d76 .word 0x3ffe7a51, 0xfbc74c83, 0x3ffe8f79, 0x77cdb740 .word 0x3ffea4af, 0xa2a490da, 0x3ffeb9f4, 0x867cca6e .word 0x3ffecf48, 0x2d8e67f1, 0x3ffee4aa, 0xa2188510 .word 0x3ffefa1b, 0xee615a27, 0x3fff0f9c, 0x1cb6412a .word 0x3fff252b, 0x376bba97, 0x3fff3ac9, 0x48dd7274 .word 0x3fff5076, 0x5b6e4540, 0x3fff6632, 0x798844f8 .word 0x3fff7bfd, 0xad9cbe14, 0x3fff91d8, 0x02243c89 .word 0x3fffa7c1, 0x819e90d8, 0x3fffbdba, 0x3692d514 .word 0x3fffd3c2, 0x2b8f71f1, 0x3fffe9d9, 0x6b2a23d9 ! __mt_constexp2fb: .word 0x36900000, 0x36a00000, 0x36b00000, 0x36c00000 .word 0x36d00000, 0x36e00000, 0x36f00000, 0x37000000 .word 0x37100000, 0x37200000, 0x37300000, 0x37400000 .word 0x37500000, 0x37600000, 0x37700000, 0x37800000 .word 0x37900000, 0x37a00000, 0x37b00000, 0x37c00000 .word 0x37d00000, 0x37e00000, 0x37f00000, 0x38000000 .word 0x38100000, 0x38200000, 0x38300000, 0x38400000 .word 0x38500000, 0x38600000, 0x38700000, 0x38800000 .word 0x38900000, 0x38a00000, 0x38b00000, 0x38c00000 .word 0x38d00000, 0x38e00000, 0x38f00000, 0x39000000 .word 0x39100000, 0x39200000, 0x39300000, 0x39400000 .word 0x39500000, 0x39600000, 0x39700000, 0x39800000 .word 0x39900000, 0x39a00000, 0x39b00000, 0x39c00000 .word 0x39d00000, 0x39e00000, 0x39f00000, 0x3a000000 .word 0x3a100000, 0x3a200000, 0x3a300000, 0x3a400000 .word 0x3a500000, 0x3a600000, 0x3a700000, 0x3a800000 .word 0x3a900000, 0x3aa00000, 0x3ab00000, 0x3ac00000 .word 0x3ad00000, 0x3ae00000, 0x3af00000, 0x3b000000 .word 0x3b100000, 0x3b200000, 0x3b300000, 0x3b400000 .word 0x3b500000, 0x3b600000, 0x3b700000, 0x3b800000 .word 0x3b900000, 0x3ba00000, 0x3bb00000, 0x3bc00000 .word 0x3bd00000, 0x3be00000, 0x3bf00000, 0x3c000000 .word 0x3c100000, 0x3c200000, 0x3c300000, 0x3c400000 .word 0x3c500000, 0x3c600000, 0x3c700000, 0x3c800000 .word 0x3c900000, 0x3ca00000, 0x3cb00000, 0x3cc00000 .word 0x3cd00000, 0x3ce00000, 0x3cf00000, 0x3d000000 .word 0x3d100000, 0x3d200000, 0x3d300000, 0x3d400000 .word 0x3d500000, 0x3d600000, 0x3d700000, 0x3d800000 .word 0x3d900000, 0x3da00000, 0x3db00000, 0x3dc00000 .word 0x3dd00000, 0x3de00000, 0x3df00000, 0x3e000000 .word 0x3e100000, 0x3e200000, 0x3e300000, 0x3e400000 .word 0x3e500000, 0x3e600000, 0x3e700000, 0x3e800000 .word 0x3e900000, 0x3ea00000, 0x3eb00000, 0x3ec00000 .word 0x3ed00000, 0x3ee00000, 0x3ef00000, 0x3f000000 .word 0x3f100000, 0x3f200000, 0x3f300000, 0x3f400000 .word 0x3f500000, 0x3f600000, 0x3f700000, 0x3f800000 .word 0x3f900000, 0x3fa00000, 0x3fb00000, 0x3fc00000 .word 0x3fd00000, 0x3fe00000, 0x3ff00000, 0x40000000 .word 0x40100000, 0x40200000, 0x40300000, 0x40400000 .word 0x40500000, 0x40600000, 0x40700000, 0x40800000 .word 0x40900000, 0x40a00000, 0x40b00000, 0x40c00000 .word 0x40d00000, 0x40e00000, 0x40f00000, 0x41000000 .word 0x41100000, 0x41200000, 0x41300000, 0x41400000 .word 0x41500000, 0x41600000, 0x41700000, 0x41800000 .word 0x41900000, 0x41a00000, 0x41b00000, 0x41c00000 .word 0x41d00000, 0x41e00000, 0x41f00000, 0x42000000 .word 0x42100000, 0x42200000, 0x42300000, 0x42400000 .word 0x42500000, 0x42600000, 0x42700000, 0x42800000 .word 0x42900000, 0x42a00000, 0x42b00000, 0x42c00000 .word 0x42d00000, 0x42e00000, 0x42f00000, 0x43000000 .word 0x43100000, 0x43200000, 0x43300000, 0x43400000 .word 0x43500000, 0x43600000, 0x43700000, 0x43800000 .word 0x43900000, 0x43a00000, 0x43b00000, 0x43c00000 .word 0x43d00000, 0x43e00000, 0x43f00000, 0x44000000 .word 0x44100000, 0x44200000, 0x44300000, 0x44400000 .word 0x44500000, 0x44600000, 0x44700000, 0x44800000 .word 0x44900000, 0x44a00000, 0x44b00000, 0x44c00000 .word 0x44d00000, 0x44e00000, 0x44f00000, 0x45000000 .word 0x45100000, 0x45200000, 0x45300000, 0x45400000 .word 0x45500000, 0x45600000, 0x45700000, 0x45800000 .word 0x45900000, 0x45a00000, 0x45b00000, 0x45c00000 .word 0x45d00000, 0x45e00000, 0x45f00000, 0x46000000 .word 0x46100000, 0x46200000, 0x46300000, 0x46400000 .word 0x46500000, 0x46600000, 0x46700000, 0x46800000 .word 0x46900000, 0x46a00000, 0x46b00000, 0x46c00000 .word 0x46d00000, 0x46e00000, 0x46f00000, 0x47000000 .word 0x47100000, 0x47200000, 0x47300000, 0x47400000 .word 0x47500000, 0x47600000, 0x47700000, 0x47800000 .word 0x47900000, 0x47a00000, 0x47b00000, 0x47c00000 .word 0x47d00000, 0x47e00000, 0x47f00000, 0x00000000 .word 0,0,0,0 .word 0,0,0,0 .CONST_TBL: ! __mt_constlog4f: .word 0x00000000, 0x00000000, 0x3e800000, 0x00000000 .word 0x4006fe50, 0xb6ef0851, 0x3e7fc07f, 0x01fc07f0 .word 0x4016e796, 0x85c2d22a, 0x3e7f81f8, 0x1f81f820 .word 0x40211cd1, 0xd5133413, 0x3e7f4465, 0x9e4a4271 .word 0x4026bad3, 0x758efd87, 0x3e7f07c1, 0xf07c1f08 .word 0x402c4dfa, 0xb90aab5f, 0x3e7ecc07, 0xb301ecc0 .word 0x4030eb38, 0x9fa29f9b, 0x3e7e9131, 0xabf0b767 .word 0x4033aa2f, 0xdd27f1c3, 0x3e7e573a, 0xc901e574 .word 0x403663f6, 0xfac91316, 0x3e7e1e1e, 0x1e1e1e1e .word 0x403918a1, 0x6e46335b, 0x3e7de5d6, 0xe3f8868a .word 0x403bc842, 0x40adabba, 0x3e7dae60, 0x76b981db .word 0x403e72ec, 0x117fa5b2, 0x3e7d77b6, 0x54b82c34 .word 0x40408c58, 0x8cda79e4, 0x3e7d41d4, 0x1d41d41d .word 0x4041dcd1, 0x97552b7b, 0x3e7d0cb5, 0x8f6ec074 .word 0x40432ae9, 0xe278ae1a, 0x3e7cd856, 0x89039b0b .word 0x404476a9, 0xf983f74d, 0x3e7ca4b3, 0x055ee191 .word 0x4045c01a, 0x39fbd688, 0x3e7c71c7, 0x1c71c71c .word 0x40470742, 0xd4ef027f, 0x3e7c3f8f, 0x01c3f8f0 .word 0x40484c2b, 0xd02f03b3, 0x3e7c0e07, 0x0381c0e0 .word 0x40498edd, 0x077e70df, 0x3e7bdd2b, 0x899406f7 .word 0x404acf5e, 0x2db4ec94, 0x3e7bacf9, 0x14c1bad0 .word 0x404c0db6, 0xcdd94dee, 0x3e7b7d6c, 0x3dda338b .word 0x404d49ee, 0x4c325970, 0x3e7b4e81, 0xb4e81b4f .word 0x404e840b, 0xe74e6a4d, 0x3e7b2036, 0x406c80d9 .word 0x404fbc16, 0xb902680a, 0x3e7af286, 0xbca1af28 .word 0x4050790a, 0xdbb03009, 0x3e7ac570, 0x1ac5701b .word 0x40511307, 0xdad30b76, 0x3e7a98ef, 0x606a63be .word 0x4051ac05, 0xb291f070, 0x3e7a6d01, 0xa6d01a6d .word 0x40524407, 0xab0e073a, 0x3e7a41a4, 0x1a41a41a .word 0x4052db10, 0xfc4d9aaf, 0x3e7a16d3, 0xf97a4b02 .word 0x40537124, 0xcea4cded, 0x3e79ec8e, 0x951033d9 .word 0x40540646, 0x3b1b0449, 0x3e79c2d1, 0x4ee4a102 .word 0x40549a78, 0x4bcd1b8b, 0x3e799999, 0x9999999a .word 0x40552dbd, 0xfc4c96b3, 0x3e7970e4, 0xf80cb872 .word 0x4055c01a, 0x39fbd688, 0x3e7948b0, 0xfcd6e9e0 .word 0x4056518f, 0xe4677ba7, 0x3e7920fb, 0x49d0e229 .word 0x4056e221, 0xcd9d0cde, 0x3e78f9c1, 0x8f9c18fa .word 0x405771d2, 0xba7efb3c, 0x3e78d301, 0x8d3018d3 .word 0x405800a5, 0x63161c54, 0x3e78acb9, 0x0f6bf3aa .word 0x40588e9c, 0x72e0b226, 0x3e7886e5, 0xf0abb04a .word 0x40591bba, 0x891f1709, 0x3e786186, 0x18618618 .word 0x4059a802, 0x391e232f, 0x3e783c97, 0x7ab2bedd .word 0x405a3376, 0x0a7f6051, 0x3e781818, 0x18181818 .word 0x405abe18, 0x797f1f49, 0x3e77f405, 0xfd017f40 .word 0x405b47eb, 0xf73882a1, 0x3e77d05f, 0x417d05f4 .word 0x405bd0f2, 0xe9e79031, 0x3e77ad22, 0x08e0ecc3 .word 0x405c592f, 0xad295b56, 0x3e778a4c, 0x8178a4c8 .word 0x405ce0a4, 0x923a587d, 0x3e7767dc, 0xe434a9b1 .word 0x405d6753, 0xe032ea0f, 0x3e7745d1, 0x745d1746 .word 0x405ded3f, 0xd442364c, 0x3e772428, 0x7f46debc .word 0x405e726a, 0xa1e754d2, 0x3e7702e0, 0x5c0b8170 .word 0x405ef6d6, 0x7328e220, 0x3e76e1f7, 0x6b4337c7 .word 0x405f7a85, 0x68cb06cf, 0x3e76c16c, 0x16c16c17 .word 0x405ffd79, 0x9a83ff9b, 0x3e76a13c, 0xd1537290 .word 0x40603fda, 0x8b97997f, 0x3e768168, 0x16816817 .word 0x4060809c, 0xf27f703d, 0x3e7661ec, 0x6a5122f9 .word 0x4060c105, 0x00d63aa6, 0x3e7642c8, 0x590b2164 .word 0x40610113, 0xb153c8ea, 0x3e7623fa, 0x77016240 .word 0x406140c9, 0xfaa1e544, 0x3e760581, 0x60581606 .word 0x40618028, 0xcf72976a, 0x3e75e75b, 0xb8d015e7 .word 0x4061bf31, 0x1e95d00e, 0x3e75c988, 0x2b931057 .word 0x4061fde3, 0xd30e8126, 0x3e75ac05, 0x6b015ac0 .word 0x40623c41, 0xd42727c8, 0x3e758ed2, 0x308158ed .word 0x40627a4c, 0x0585cbf8, 0x3e7571ed, 0x3c506b3a .word 0x4062b803, 0x473f7ad1, 0x3e755555, 0x55555555 .word 0x4062f568, 0x75eb3f26, 0x3e753909, 0x48f40feb .word 0x4063327c, 0x6ab49ca7, 0x3e751d07, 0xeae2f815 .word 0x40636f3f, 0xfb6d9162, 0x3e750150, 0x15015015 .word 0x4063abb3, 0xfaa02167, 0x3e74e5e0, 0xa72f0539 .word 0x4063e7d9, 0x379f7016, 0x3e74cab8, 0x8725af6e .word 0x406423b0, 0x7e986aa9, 0x3e74afd6, 0xa052bf5b .word 0x40645f3a, 0x98a20739, 0x3e749539, 0xe3b2d067 .word 0x40649a78, 0x4bcd1b8b, 0x3e747ae1, 0x47ae147b .word 0x4064d56a, 0x5b33cec4, 0x3e7460cb, 0xc7f5cf9a .word 0x40651011, 0x8708a8f9, 0x3e7446f8, 0x6562d9fb .word 0x40654a6e, 0x8ca5438e, 0x3e742d66, 0x25d51f87 .word 0x40658482, 0x26989d34, 0x3e741414, 0x14141414 .word 0x4065be4d, 0x0cb51435, 0x3e73fb01, 0x3fb013fb .word 0x4065f7cf, 0xf41e09af, 0x3e73e22c, 0xbce4a902 .word 0x4066310b, 0x8f553048, 0x3e73c995, 0xa47babe7 .word 0x40666a00, 0x8e4788cc, 0x3e73b13b, 0x13b13b14 .word 0x4066a2af, 0x9e5a0f0a, 0x3e73991c, 0x2c187f63 .word 0x4066db19, 0x6a76194a, 0x3e738138, 0x13813814 .word 0x4067133e, 0x9b156c7c, 0x3e73698d, 0xf3de0748 .word 0x40674b1f, 0xd64e0754, 0x3e73521c, 0xfb2b78c1 .word 0x406782bd, 0xbfdda657, 0x3e733ae4, 0x5b57bcb2 .word 0x4067ba18, 0xf93502e4, 0x3e7323e3, 0x4a2b10bf .word 0x4067f132, 0x2182cf16, 0x3e730d19, 0x0130d190 .word 0x40682809, 0xd5be7073, 0x3e72f684, 0xbda12f68 .word 0x40685ea0, 0xb0b27b26, 0x3e72e025, 0xc04b8097 .word 0x406894f7, 0x4b06ef8b, 0x3e72c9fb, 0x4d812ca0 .word 0x4068cb0e, 0x3b4b3bbe, 0x3e72b404, 0xad012b40 .word 0x406900e6, 0x160002cd, 0x3e729e41, 0x29e4129e .word 0x4069367f, 0x6da0ab2f, 0x3e7288b0, 0x1288b013 .word 0x40696bda, 0xd2acb5f6, 0x3e727350, 0xb8812735 .word 0x4069a0f8, 0xd3b0e050, 0x3e725e22, 0x708092f1 .word 0x4069d5d9, 0xfd5010b3, 0x3e724924, 0x92492492 .word 0x406a0a7e, 0xda4c112d, 0x3e723456, 0x789abcdf .word 0x406a3ee7, 0xf38e181f, 0x3e721fb7, 0x8121fb78 .word 0x406a7315, 0xd02f20c8, 0x3e720b47, 0x0c67c0d9 .word 0x406aa708, 0xf58014d3, 0x3e71f704, 0x7dc11f70 .word 0x406adac1, 0xe711c833, 0x3e71e2ef, 0x3b3fb874 .word 0x406b0e41, 0x26bcc86c, 0x3e71cf06, 0xada2811d .word 0x406b4187, 0x34a9008c, 0x3e71bb4a, 0x4046ed29 .word 0x406b7494, 0x8f5532da, 0x3e71a7b9, 0x611a7b96 .word 0x406ba769, 0xb39e4964, 0x3e719453, 0x808ca29c .word 0x406bda07, 0x1cc67e6e, 0x3e718118, 0x11811812 .word 0x406c0c6d, 0x447c5dd3, 0x3e716e06, 0x89427379 .word 0x406c3e9c, 0xa2e1a055, 0x3e715b1e, 0x5f75270d .word 0x406c7095, 0xae91e1c7, 0x3e71485f, 0x0e0acd3b .word 0x406ca258, 0xdca93316, 0x3e7135c8, 0x1135c811 .word 0x406cd3e6, 0xa0ca8907, 0x3e712358, 0xe75d3033 .word 0x406d053f, 0x6d260896, 0x3e711111, 0x11111111 .word 0x406d3663, 0xb27f31d5, 0x3e70fef0, 0x10fef011 .word 0x406d6753, 0xe032ea0f, 0x3e70ecf5, 0x6be69c90 .word 0x406d9810, 0x643d6615, 0x3e70db20, 0xa88f4696 .word 0x406dc899, 0xab3ff56c, 0x3e70c971, 0x4fbcda3b .word 0x406df8f0, 0x2086af2c, 0x3e70b7e6, 0xec259dc8 .word 0x406e2914, 0x2e0e0140, 0x3e70a681, 0x0a6810a7 .word 0x406e5906, 0x3c8822ce, 0x3e70953f, 0x39010954 .word 0x406e88c6, 0xb3626a73, 0x3e708421, 0x08421084 .word 0x406eb855, 0xf8ca88fb, 0x3e707326, 0x0a47f7c6 .word 0x406ee7b4, 0x71b3a950, 0x3e70624d, 0xd2f1a9fc .word 0x406f16e2, 0x81db7630, 0x3e705197, 0xf7d73404 .word 0x406f45e0, 0x8bcf0655, 0x3e704104, 0x10410410 .word 0x406f74ae, 0xf0efafae, 0x3e703091, 0xb51f5e1a .word 0x406fa34e, 0x1177c233, 0x3e702040, 0x81020408 .word 0x406fd1be, 0x4c7f2af9, 0x3e701010, 0x10101010 .word 0x40700000, 0x00000000, 0x3e700000, 0x00000000 ! __mt_constexp2f: .word 0x3ff00000, 0x00000000, 0x3ff00b1a, 0xfa5abcbf .word 0x3ff0163d, 0xa9fb3335, 0x3ff02168, 0x143b0281 .word 0x3ff02c9a, 0x3e778061, 0x3ff037d4, 0x2e11bbcc .word 0x3ff04315, 0xe86e7f85, 0x3ff04e5f, 0x72f654b1 .word 0x3ff059b0, 0xd3158574, 0x3ff0650a, 0x0e3c1f89 .word 0x3ff0706b, 0x29ddf6de, 0x3ff07bd4, 0x2b72a836 .word 0x3ff08745, 0x18759bc8, 0x3ff092bd, 0xf66607e0 .word 0x3ff09e3e, 0xcac6f383, 0x3ff0a9c7, 0x9b1f3919 .word 0x3fefb558, 0x6cf9890f, 0x3fefc0f1, 0x45e46c85 .word 0x3fefcc92, 0x2b7247f7, 0x3fefd83b, 0x23395dec .word 0x3fefe3ec, 0x32d3d1a2, 0x3fefefa5, 0x5fdfa9c5 .word 0x3feffb66, 0xaffed31b, 0x3ff00730, 0x28d7233e .word 0x3ff01301, 0xd0125b51, 0x3ff01edb, 0xab5e2ab6 .word 0x3ff02abd, 0xc06c31cc, 0x3ff036a8, 0x14f204ab .word 0x3ff0429a, 0xaea92de0, 0x3ff04e95, 0x934f312e .word 0x3ff05a98, 0xc8a58e51, 0x3ff066a4, 0x5471c3c2 .word 0x3fef72b8, 0x3c7d517b, 0x3fef7ed4, 0x8695bbc0 .word 0x3fef8af9, 0x388c8dea, 0x3fef9726, 0x58375d2f .word 0x3fefa35b, 0xeb6fcb75, 0x3fefaf99, 0xf8138a1c .word 0x3fefbbe0, 0x84045cd4, 0x3fefc82f, 0x95281c6b .word 0x3fefd487, 0x3168b9aa, 0x3fefe0e7, 0x5eb44027 .word 0x3fefed50, 0x22fcd91d, 0x3feff9c1, 0x8438ce4d .word 0x3ff0063b, 0x88628cd6, 0x3ff012be, 0x3578a819 .word 0x3ff01f49, 0x917ddc96, 0x3ff02bdd, 0xa27912d1 .word 0x3fef387a, 0x6e756238, 0x3fef451f, 0xfb82140a .word 0x3fef51ce, 0x4fb2a63f, 0x3fef5e85, 0x711ece75 .word 0x3fef6b45, 0x65e27cdd, 0x3fef780e, 0x341ddf29 .word 0x3fef84df, 0xe1f56381, 0x3fef91ba, 0x7591bb70 .word 0x3fef9e9d, 0xf51fdee1, 0x3fefab8a, 0x66d10f13 .word 0x3fefb87f, 0xd0dad990, 0x3fefc57e, 0x39771b2f .word 0x3fefd285, 0xa6e4030b, 0x3fefdf96, 0x1f641589 .word 0x3fefecaf, 0xa93e2f56, 0x3feff9d2, 0x4abd886b .word 0x3fef06fe, 0x0a31b715, 0x3fef1432, 0xedeeb2fd .word 0x3fef2170, 0xfc4cd831, 0x3fef2eb8, 0x3ba8ea32 .word 0x3fef3c08, 0xb26416ff, 0x3fef4962, 0x66e3fa2d .word 0x3fef56c5, 0x5f929ff1, 0x3fef6431, 0xa2de883b .word 0x3fef71a7, 0x373aa9cb, 0x3fef7f26, 0x231e754a .word 0x3fef8cae, 0x6d05d866, 0x3fef9a40, 0x1b7140ef .word 0x3fefa7db, 0x34e59ff7, 0x3fefb57f, 0xbfec6cf4 .word 0x3fefc32d, 0xc313a8e5, 0x3fefd0e5, 0x44ede173 .word 0x3feedea6, 0x4c123422, 0x3feeec70, 0xdf1c5175 .word 0x3feefa45, 0x04ac801c, 0x3fef0822, 0xc367a024 .word 0x3fef160a, 0x21f72e2a, 0x3fef23fb, 0x2709468a .word 0x3fef31f5, 0xd950a897, 0x3fef3ffa, 0x3f84b9d4 .word 0x3fef4e08, 0x6061892d, 0x3fef5c20, 0x42a7d232 .word 0x3fef6a41, 0xed1d0057, 0x3fef786d, 0x668b3237 .word 0x3fef86a2, 0xb5c13cd0, 0x3fef94e1, 0xe192aed2 .word 0x3fefa32a, 0xf0d7d3de, 0x3fefb17d, 0xea6db7d7 .word 0x3feebfda, 0xd5362a27, 0x3feece41, 0xb817c114 .word 0x3feedcb2, 0x99fddd0d, 0x3feeeb2d, 0x81d8abff .word 0x3feef9b2, 0x769d2ca7, 0x3fef0841, 0x7f4531ee .word 0x3fef16da, 0xa2cf6642, 0x3fef257d, 0xe83f4eef .word 0x3fef342b, 0x569d4f82, 0x3fef42e2, 0xf4f6ad27 .word 0x3fef51a4, 0xca5d920f, 0x3fef6070, 0xdde910d2 .word 0x3fef6f47, 0x36b527da, 0x3fef7e27, 0xdbe2c4cf .word 0x3fef8d12, 0xd497c7fd, 0x3fef9c08, 0x27ff07cc .word 0x3feeab07, 0xdd485429, 0x3feeba11, 0xfba87a03 .word 0x3feec926, 0x8a5946b7, 0x3feed845, 0x90998b93 .word 0x3feee76f, 0x15ad2148, 0x3feef6a3, 0x20dceb71 .word 0x3fef05e1, 0xb976dc09, 0x3fef152a, 0xe6cdf6f4 .word 0x3fef247e, 0xb03a5585, 0x3fef33dd, 0x1d1929fd .word 0x3fef4346, 0x34ccc320, 0x3fef52b9, 0xfebc8fb7 .word 0x3fef6238, 0x82552225, 0x3fef71c1, 0xc70833f6 .word 0x3fef8155, 0xd44ca973, 0x3fef90f4, 0xb19e9538 .word 0x3feea09e, 0x667f3bcd, 0x3feeb052, 0xfa75173e .word 0x3feec012, 0x750bdabf, 0x3feecfdc, 0xddd47645 .word 0x3feedfb2, 0x3c651a2f, 0x3feeef92, 0x98593ae5 .word 0x3feeff7d, 0xf9519484, 0x3fef0f74, 0x66f42e87 .word 0x3fef1f75, 0xe8ec5f74, 0x3fef2f82, 0x86ead08a .word 0x3fef3f9a, 0x48a58174, 0x3fef4fbd, 0x35d7cbfd .word 0x3fef5feb, 0x564267c9, 0x3fef7024, 0xb1ab6e09 .word 0x3fef8069, 0x4fde5d3f, 0x3fef90b9, 0x38ac1cf6 .word 0x3feea114, 0x73eb0187, 0x3feeb17b, 0x0976cfdb .word 0x3feec1ed, 0x0130c132, 0x3feed26a, 0x62ff86f0 .word 0x3feee2f3, 0x36cf4e62, 0x3feef387, 0x8491c491 .word 0x3fef0427, 0x543e1a12, 0x3fef14d2, 0xadd106d9 .word 0x3fef2589, 0x994cce13, 0x3fef364c, 0x1eb941f7 .word 0x3fef471a, 0x4623c7ad, 0x3fef57f4, 0x179f5b21 .word 0x3fef68d9, 0x9b4492ed, 0x3fef79ca, 0xd931a436 .word 0x3fef8ac7, 0xd98a6699, 0x3fef9bd0, 0xa478580f .word 0x3feeace5, 0x422aa0db, 0x3feebe05, 0xbad61778 .word 0x3feecf32, 0x16b5448c, 0x3feee06a, 0x5e0866d9 .word 0x3feef1ae, 0x99157736, 0x3fef02fe, 0xd0282c8a .word 0x3fef145b, 0x0b91ffc6, 0x3fef25c3, 0x53aa2fe2 .word 0x3fef3737, 0xb0cdc5e5, 0x3fef48b8, 0x2b5f98e5 .word 0x3fef5a44, 0xcbc8520f, 0x3fef6bdd, 0x9a7670b3 .word 0x3fef7d82, 0x9fde4e50, 0x3fef8f33, 0xe47a22a2 .word 0x3fefa0f1, 0x70ca07ba, 0x3fefb2bb, 0x4d53fe0d .word 0x3feec491, 0x82a3f090, 0x3feed674, 0x194bb8d5 .word 0x3feee863, 0x19e32323, 0x3feefa5e, 0x8d07f29e .word 0x3fef0c66, 0x7b5de565, 0x3fef1e7a, 0xed8eb8bb .word 0x3fef309b, 0xec4a2d33, 0x3fef42c9, 0x80460ad8 .word 0x3fef5503, 0xb23e255d, 0x3fef674a, 0x8af46052 .word 0x3fef799e, 0x1330b358, 0x3fef8bfe, 0x53c12e59 .word 0x3fef9e6b, 0x5579fdbf, 0x3fefb0e5, 0x21356eba .word 0x3fefc36b, 0xbfd3f37a, 0x3fefd5ff, 0x3a3c2774 .word 0x3feee89f, 0x995ad3ad, 0x3feefb4c, 0xe622f2ff .word 0x3fef0e07, 0x298db666, 0x3fef20ce, 0x6c9a8952 .word 0x3fef33a2, 0xb84f15fb, 0x3fef4684, 0x15b749b1 .word 0x3fef5972, 0x8de5593a, 0x3fef6c6e, 0x29f1c52a .word 0x3fef7f76, 0xf2fb5e47, 0x3fef928c, 0xf22749e4 .word 0x3fefa5b0, 0x30a1064a, 0x3fefb8e0, 0xb79a6f1f .word 0x3fefcc1e, 0x904bc1d2, 0x3fefdf69, 0xc3f3a207 .word 0x3feff2c2, 0x5bd71e09, 0x3ff00628, 0x6141b33d .word 0x3fef199b, 0xdd85529c, 0x3fef2d1c, 0xd9fa652c .word 0x3fef40ab, 0x5fffd07a, 0x3fef5447, 0x78fafb22 .word 0x3fef67f1, 0x2e57d14b, 0x3fef7ba8, 0x8988c933 .word 0x3fef8f6d, 0x9406e7b5, 0x3fefa340, 0x5751c4db .word 0x3fefb720, 0xdcef9069, 0x3fefcb0f, 0x2e6d1675 .word 0x3fefdf0b, 0x555dc3fa, 0x3feff315, 0x5b5bab74 .word 0x3ff0072d, 0x4a07897c, 0x3ff01b53, 0x2b08c968 .word 0x3ff02f87, 0x080d89f2, 0x3ff043c8, 0xeacaa1d6 .word 0x3fef5818, 0xdcfba487, 0x3fef6c76, 0xe862e6d3 .word 0x3fef80e3, 0x16c98398, 0x3fef955d, 0x71ff6075 .word 0x3fefa9e6, 0x03db3285, 0x3fefbe7c, 0xd63a8315 .word 0x3fefd321, 0xf301b460, 0x3fefe7d5, 0x641c0658 .word 0x3feffc97, 0x337b9b5f, 0x3ff01167, 0x6b197d17 .word 0x3ff02646, 0x14f5a129, 0x3ff03b33, 0x3b16ee12 .word 0x3ff0502e, 0xe78b3ff6, 0x3ff06539, 0x24676d76 .word 0x3ff07a51, 0xfbc74c83, 0x3ff08f79, 0x77cdb740 .word 0x3fefa4af, 0xa2a490da, 0x3fefb9f4, 0x867cca6e .word 0x3fefcf48, 0x2d8e67f1, 0x3fefe4aa, 0xa2188510 .word 0x3feffa1b, 0xee615a27, 0x3ff00f9c, 0x1cb6412a .word 0x3ff0252b, 0x376bba97, 0x3ff03ac9, 0x48dd7274 .word 0x3ff05076, 0x5b6e4540, 0x3ff06632, 0x798844f8 .word 0x3ff07bfd, 0xad9cbe14, 0x3ff091d8, 0x02243c89 .word 0x3ff0a7c1, 0x819e90d8, 0x3ff0bdba, 0x3692d514 .word 0x3ff0d3c2, 0x2b8f71f1, 0x3ff0e9d9, 0x6b2a23d9 .word 0xc057150d, 0x5f6e1c54 ! KA3 = -3.60659926599003171364e-01*256.0 .word 0x405ec71c, 0x2e92efda ! KA2 = 4.80902715189356683026e-01*256.0 .word 0xc0671547, 0x653cbec4 ! KA1 = -7.21347520569871841065e-01*256.0 .word 0x40771547, 0x652af190 ! KA0 = 1.44269504088069658645e+00*256.0 .word 0x3ecebfbe, 0x9d182250 ! KB2 = 3.66556671660783833261e-06 .word 0x3f662e43, 0xe2528362 ! KB1 = 2.70760782821392980564e-03 .word 0x40e00000, 0x00000000 ! HTHRESH = 32768.0 .word 0xc0e2c000, 0x00000000 ! LTHRESH = -38400.0 ; 0.0f .word 0x3f800000, 0x00000000 ! 1.0f ; free #define tmp_px STACK_BIAS-48 #define tmp_py STACK_BIAS-40 #define tmp_counter STACK_BIAS-32 #define tmp0 STACK_BIAS-28 #define tmp1 STACK_BIAS-24 #define tmp2 STACK_BIAS-20 #define tmp3 STACK_BIAS-16 #define tmp4 STACK_BIAS-12 #define tmp5 STACK_BIAS-8 #define tmp6 STACK_BIAS-4 #define KA3 %f34 #define KA2 %f36 #define KA1 %f38 #define KA0 %f40 #define KB2 %f42 #define KB1 %f44 #define HTHRESHOLD %f30 #define LTHRESHOLD %f32 #define counter %o7 #define stridex %i0 #define stridey %i4 #define stridez %l3 #define CONST_0x8000 %l1 #define MASK_0x007fffff %l4 #define MASK_0x7fffffff %l5 ! sizeof temp storage - must be a multiple of 16 for V9 #define tmps 0x30 !-------------------------------------------------------------------- ! !!!!! vpowf algorithm !!!!! ! uy = *(unsigned int*)py; ! ux = *(unsigned int*)px; ! ay = uy & 0x7fffffff; ! ax0 = ux & 0x7fffffff; ! sx = ux >> 31; ! yisint0 = 0; /* Y - non-integer */ ! if (ax0 >= 0x7f800000 || ay >= 0x7f800000) { /* |X| or |Y| = Inf,Nan */ ! if (ax0 > 0x7f800000 || ay > 0x7f800000) /* |X| or |Y| = Nan */ ! pz[0] = *px * *py; ! goto next; ! if (ay == 0x7f800000) { /* |Y| = Inf */ ! float fy; ! if (ax0 == 0x3f800000) fy = *py - *py; /* +-1 ** +-Inf = NaN */ ! else fy = ((ax0 < 0x3f800000) != (uy >> 31)) ? ZERO : *(float*) &ay; ! pz[0] = fy; ! goto next; ! } ! if (sx) { /* X = -Inf */ ! exp = ay >> 23; ! if (exp >= 0x97) /* |Y| >= 2^24 */ ! yisint0 = 2; /* Y - even */ ! else { ! if (exp >= 0x7f) { /* |Y| >= 1 */ ! i0 = ay >> ((0x7f + 23) - exp); ! if ((i0 << ((0x7f + 23) - exp)) == ay) yisint0 = 2 - (i0 & 1); ! } ! } ! } ! if (uy >> 31) ax0 = 0; ! ax0 += yisint0 << 31; ! pz[0] = *(float*)&ax0; ! goto next; ! } ! exp0 = (ax0 >> 23) - 127; ! if ((int)ux < 0x00800000) { /* X = denormal or negative */ ! if ((int)ax0 < 0x00800000) { /* X = denormal */ ! *((float*) &ax0) = (float) (int)ax0; ! exp0 = (ax0 >> 23) - (127 + 149); ! } ! if ((int)ux <= 0) { /* X <= 0 */ ! exp = ay >> 23; ! if (exp >= 0x97) /* |Y| >= 2^24 */ ! yisint0 = 2; /* Y - even */ ! else { ! if (exp >= 0x7f) { /* |Y| >= 1 */ ! i0 = ay >> ((0x7f + 23) - exp); ! if ((i0 << ((0x7f + 23) - exp)) == ay) yisint0 = 2 - (i0 & 1); ! } ! } ! if (ax0 == 0) { /* pow(0,Y) */ ! float fy; ! fy = (uy >> 31) ? ONE / ZERO : ZERO; ! if (sx & yisint0) fy = -fy; ! pz[0] = fy; ! goto next; ! } ! if (yisint0 == 0) { /* pow(neg,non-integer) */ ! pz[0] = ZERO / ZERO; /* NaN */ ! goto next; ! } ! } ! } ! ! ax0 = *px; ! exp0 = ax0 & 0x7fffffff; ! exp0 >>= 23; ! exp0 -= 127; ! exp0 <<= 8; ! ax0 &= 0x007fffff; ! i0 = ax0 + 0x8000; ! i0 &= 0xffff0000; ! ind0 = i0 >> 12; ! ind0 &= -8; ! i0 = ax0 - i0; ! dtmp0 = (double) i0; ! dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); ! y0 = dtmp0 * dtmp1; ! dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); ! dtmp1 = (double) exp0; ! yy0 = dtmp0 + dtmp1; ! dtmp0 = KA3 * y0; ! dtmp0 += KA2; ! dtmp0 *= y0; ! dtmp0 += KA1; ! dtmp0 *= y0; ! dtmp0 += KA0; ! dtmp0 *= y0; ! yy0 += dtmp0; ! ftmp0 = *py0; ! dtmp0 = (double)ftmp0; ! yy0 *= dtmp0; ! if (yy0 >= HTHRESH) ! yy0 = HTHRESH; ! if (yy0 <= LTHRESH) ! yy0 = LTHRESH; ! ind0 = (int) yy0; ! ((int*)&dtmp1)[0] = ind0; ! ((int*)&dtmp1)[1] = 0; ! dtmp1 = vis_fpackfix(dtmp1); ! dtmp0 = (double)ind0; ! y0 = yy0 - dtmp0; ! dtmp0 = KB2 * y0; ! dtmp0 += KB1; ! yy0 = dtmp0 * y0; ! ind0 &= 255; ! ind0 <<= 3; ! di0 = *(double*)((char*)__mt_constexp2f + ind0); ! di0 = vis_fpadd32(di0,dtmp1); ! yy0 *= di0; ! yy0 += di0; ! ftmp0 = (float)yy0; ! *pz0 = ftmp0; !-------------------------------------------------------------------- ! !!!!! vpowf algorithm,stridex=0 !!!!! ! ! ax = ax0 = *px; ! exp0 = ax0 & 0x7fffffff; ! exp0 >>= 23; ! exp0 -= 127; ! exp0 <<= 8; ! ax0 &= 0x007fffff; ! i0 = ax0 + 0x8000; ! i0 &= 0xffff0000; ! ind0 = i0 >> 12; ! ind0 &= -8; ! i0 = ax0 - i0; ! dtmp0 = (double) i0; ! dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); ! y0 = dtmp0 * dtmp1; ! dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); ! dtmp1 = (double) exp0; ! yy0 = dtmp0 + dtmp1; ! dtmp0 = KA3 * y0; ! dtmp0 += KA2; ! dtmp0 *= y0; ! dtmp0 += KA1; ! dtmp0 *= y0; ! dtmp0 += KA0; ! dtmp0 *= y0; ! yy = yy0 + dtmp0; ! ! uy = ((int*)py)[0]; ! ay = uy & 0x7fffffff; ! if (ay >= 0x7f800000) { /* |Y| = Inf or Nan */ ! float fy; ! if (ay > 0x7f800000) fy = *py + *py; /* |Y| = Nan */ ! else fy = ((ax < 0x3f800000) != (uy >> 31)) ? ZERO : *(float*)&ay; ! pz[0] = fy; ! goto next; ! } ! ! ! ftmp0 = py[0]; ! dtmp0 = (double)ftmp0; ! yy0 = dtmp0 * yy; ! if (yy0 >= HTHRESH) ! if (yy0 <= LTHRESH) ! yy0 = HTHRESH; ! yy0 = LTHRESH; ! ii0 = (int) yy0; ! dtmp0 = (double)ii0; ! i0 = ii0 >> 5; ! i0 &= -8; ! di0 = ((double*)((char*)(__mt_constexp2fb + 150) + i0))[0]; ! y0 = yy0 - dtmp0; ! dtmp0 = KB2 * y0; ! dtmp0 += KB1; ! yy0 = dtmp0 * y0; ! ii0 &= 255; ! ii0 <<= 3; ! dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; ! di0 *= dtmp0; ! dtmp0 = yy0 * di0; ! dtmp0 += di0; ! ftmp0 = (float)dtmp0; ! pz[0] = ftmp0; !-------------------------------------------------------------------- ENTRY(__vpowf) save %sp,-SA(MINFRAME)-tmps,%sp PIC_SETUP(l7) PIC_SET(l7,.CONST_TBL,l2) wr %g0,0x60,%gsr #ifdef __sparcv9 ldx [%fp+STACK_BIAS+176],stridez #else ld [%fp+STACK_BIAS+92],stridez #endif ld [%i1],%o3 add %l2,2064,%l0 st %i0,[%fp+tmp_counter] add %l0,2048,%l6 ldd [%l6],KA3 ldd [%l6+8],KA2 sll stridey,2,stridey ldd [%l6+16],KA1 sll stridez,2,stridez ldd [%l6+24],KA0 sll %i2,2,stridex ldd [%l6+32],KB2 sethi %hi(0x7ffffc00),MASK_0x7fffffff fzero %f2 ldd [%l6+40],KB1 add MASK_0x7fffffff,1023,MASK_0x7fffffff fzero %f10 ldd [%l6+48],HTHRESHOLD sethi %hi(0x7ffc00),MASK_0x007fffff fzero %f20 ldd [%l6+56],LTHRESHOLD sethi %hi(0x8000),CONST_0x8000 add MASK_0x007fffff,1023,MASK_0x007fffff cmp stridex,0 bne,pt %icc,.common_case sethi %hi(0x00800000),%l6 cmp %o3,%l6 bl,pn %icc,.common_case sethi %hi(0x7f800000),%o1 cmp %o3,%o1 bge,pn %icc,.common_case sethi %hi(0x3f800000),%l6 cmp %o3,%l6 bne,pt %icc,.stridex_zero nop .common_case: stx %i1,[%fp+tmp_px] stx %i3,[%fp+tmp_py] .begin: ld [%fp+tmp_counter],counter ldx [%fp+tmp_px],%o2 ldx [%fp+tmp_py],%i2 st %g0,[%fp+tmp_counter] .begin1: cmp counter,0 ble,pn %icc,.exit lda [%o2]0x82,%i1 ! (Y0_2) ax0 = *px; lda [%i2]0x82,%l7 sethi %hi(0xffff0000),%l6 sethi %hi(0x7f800000),%o5 and %i1,MASK_0x7fffffff,%i3 ! (Y0_2) exp0 = ax0 & 0x7fffffff; and %i1,MASK_0x007fffff,%g5 ! (Y0_2) ax0 &= 0x007fffff; cmp %i3,%o5 ! (Y0_2) ax0 ? 0x7f800000 bge,pn %icc,.spec1 ! (Y0_2) if( ax0 >= 0x7f800000 ) and %l7,MASK_0x7fffffff,%o4 cmp %o4,%o5 ! (Y0_2) ay0 ? 0x7f800000 bge,pn %icc,.spec1 ! (Y0_2) if( ay0 >= 0x7f800000 ) nop cmp %i1,MASK_0x007fffff ! (Y0_2) ux0 ? 0x800000 ble,pn %icc,.spec2 ! (Y0_2) if(ux0 < 0x800000) srl %i3,23,%o3 ! (Y0_2) exp0 >>= 23; sub %o3,127,%o3 ! (Y0_2) exp0 -= 127; add %g5,CONST_0x8000,%i3 ! (Y0_2) i0 = ax0 + 0x8000; sll %o3,8,%o4 ! (Y0_2) exp0 <<= 8; and %i3,%l6,%i3 ! (Y0_2) i0 &= 0xffff0000; st %o4,[%fp+tmp3] ! (Y0_2) STORE exp0 sub %g5,%i3,%o4 ! (Y0_2) i0 = ax0 - i0; st %o4,[%fp+tmp2] ! (Y0_2) STORE i0 add %o2,stridex,%o2 ! px += stridex sra %i3,12,%o0 ! (Y0_2) ind0 = i0 >> 12; lda [%o2]0x82,%o3 ! (Y1_2) ax0 = *px; and %o0,-8,%g5 ! (Y0_2) ind0 &= -8; ld [%fp+tmp2],%f14 ! (Y0_2) dtmp0 = (double) i0; and %o3,MASK_0x7fffffff,%i3 ! (Y1_2) exp0 = ax0 & 0x7fffffff; and %o3,MASK_0x007fffff,%o0 ! (Y1_2) ax0 &= 0x007fffff; cmp %i3,%o5 ! (Y1_2) ax0 ? 0x7f800000 add %l2,%g5,%g1 ! (Y0_2) (char*)__mt_constlog4f + ind0 srl %i3,23,%i3 ! (Y1_2) exp0 >>= 23; add %o0,CONST_0x8000,%i1 ! (Y1_2) i0 = ax0 + 0x8000; ldd [%g1+8],%f48 ! (Y0_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); sub %i3,127,%i3 ! (Y1_2) exp0 -= 127; fitod %f14,%f60 ! (Y0_2) dtmp0 = (double) i0; sll %i3,8,%i3 ! (Y1_2) exp0 <<= 8; and %i1,%l6,%i1 ! (Y1_2) i0 &= 0xffff0000; st %i3,[%fp+tmp4] ! (Y1_2) STORE exp0 sub %o0,%i1,%o0 ! (Y1_2) i0 = ax0 - i0; st %o0,[%fp+tmp5] ! (Y1_2) STORE i0 bge,pn %icc,.update0 ! (Y1_2) if(ax0 >= 0x7f800000) nop .cont0: cmp %o3,MASK_0x007fffff ! (Y1_2) ux0 ? 0x800000 fmuld %f60,%f48,%f48 ! (Y0_2) y0 = dtmp0 * dtmp1; ble,pn %icc,.update1 ! (Y1_2) if(ux0 < 0x800000) nop .cont1: fmuld KA3,%f48,%f62 ! (Y0_2) dtmp0 = KA3 * y0; faddd %f62,KA2,%f22 ! (Y0_2) dtmp0 += KA2; sra %i1,12,%o1 ! (Y1_2) ind0 = i0 >> 12; add %o2,stridex,%i3 ! px += stridex lda [stridex+%o2]0x82,%g1 ! (Y2_2) ax0 = *px; and %o1,-8,%o0 ! (Y1_2) ind0 &= -8; ld [%fp+tmp5],%f12 ! (Y1_2) LOAD i0 and %g1,MASK_0x7fffffff,%i1 ! (Y2_2) exp0 = ax0 & 0x7fffffff; and %g1,MASK_0x007fffff,%o2 ! (Y2_2) ax0 &= 0x007fffff; lda [%i2]0x82,%f0 ! (Y0_2) ftmp0 = *py0; srl %i1,23,%o3 ! (Y2_2) exp0 >>= 23; cmp %i1,%o5 ! (Y2_2) ax0 ? 0x7f800000 fmuld %f22,%f48,%f26 ! (Y0_2) dtmp0 *= y0; add %l2,%o0,%i1 ! (Y1_2) (char*)__mt_constlog4f + ind0 sub %o3,127,%l7 ! (Y2_2) exp0 -= 127; add %o2,CONST_0x8000,%o1 ! (Y2_2) i0 = ax0 + 0x8000; ldd [%i1+8],%f50 ! (Y1_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); fitod %f12,%f28 ! (Y1_2) dtmp0 = (double) i0; sll %l7,8,%l7 ! (Y2_2) exp0 <<= 8; and %o1,%l6,%o1 ! (Y2_2) i0 &= 0xffff0000; st %l7,[%fp+tmp6] ! (Y2_2) STORE exp0 sub %o2,%o1,%i1 ! (Y2_2) i0 = ax0 - i0; st %i1,[%fp+tmp2] ! (Y2_2) STORE i0 bge,pn %icc,.update2 ! (Y2_2) if(ax0 >= 0x7f800000) nop .cont2: cmp %g1,MASK_0x007fffff ! (Y2_2) ux0 ? 0x800000 fmuld %f28,%f50,%f46 ! (Y1_2) y0 = dtmp0 * dtmp1; ble,pn %icc,.update3 ! (Y2_2) if(ux0 < 0x800000) faddd %f26,KA1,%f50 ! (Y0_2) dtmp0 += KA1; .cont3: ld [%fp+tmp3],%f4 ! (Y0_2) dtmp1 = (double) exp0; fstod %f0,%f24 ! (Y0_2) dtmp0 = (double)ftmp0; fmuld KA3,%f46,%f28 ! (Y1_1) dtmp0 = KA3 * y0; fitod %f4,%f26 ! (Y0_1) dtmp1 = (double) exp0; fmuld %f50,%f48,%f50 ! (Y0_1) dtmp0 *= y0; faddd %f28,KA2,%f28 ! (Y1_1) dtmp0 += KA2; ldd [%l2+%g5],%f60 ! (Y0_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); add %i3,stridex,%o2 ! px += stridex lda [%o2]0x82,%i1 ! (Y0_2) ax0 = *px; sra %o1,12,%g5 ! (Y2_1) ind0 = i0 >> 12; faddd %f50,KA0,%f58 ! (Y0_1) dtmp0 += KA0; and %g5,-8,%o1 ! (Y2_1) ind0 &= -8; ld [%fp+tmp2],%f6 ! (Y2_1) dtmp0 = (double) i0; and %i1,MASK_0x7fffffff,%i3 ! (Y0_2) exp0 = ax0 & 0x7fffffff; and %i1,MASK_0x007fffff,%g5 ! (Y0_2) ax0 &= 0x007fffff; srl %i3,23,%o3 ! (Y0_2) exp0 >>= 23; add %l2,%o1,%g1 ! (Y2_1) (char*)__mt_constlog4f + ind0 faddd %f60,%f26,%f26 ! (Y0_1) yy0 = dtmp0 + dtmp1; fmuld %f28,%f46,%f50 ! (Y1_1) dtmp0 *= y0; sub %o3,127,%o3 ! (Y0_2) exp0 -= 127; cmp %i3,%o5 ! (Y0_2) ax0 ? 0x7f800000 fmuld %f58,%f48,%f48 ! (Y0_1) dtmp0 *= y0; add %g5,CONST_0x8000,%i3 ! (Y0_2) i0 = ax0 + 0x8000; ldd [%g1+8],%f58 ! (Y2_1) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); fitod %f6,%f54 ! (Y2_1) dtmp0 = (double) i0; sll %o3,8,%o4 ! (Y0_2) exp0 <<= 8; and %i3,%l6,%i3 ! (Y0_2) i0 &= 0xffff0000; st %o4,[%fp+tmp3] ! (Y0_2) STORE exp0 sub %g5,%i3,%o4 ! (Y0_2) i0 = ax0 - i0; st %o4,[%fp+tmp2] ! (Y0_2) STORE i0 bge,pn %icc,.update4 ! (Y0_2) if( ax0 >= 0x7f800000 ) nop .cont4: lda [stridey+%i2]0x82,%g1 ! (Y1_1) ay0 = *(unsigned*)py0 add %i2,stridey,%o4 ! py += stridey cmp %i1,MASK_0x007fffff ! (Y0_2) ux0 ? 0x800000 fmuld %f54,%f58,%f28 ! (Y2_1) y0 = dtmp0 * dtmp1; lda [stridey+%i2]0x82,%f2 ! (Y1_1) ftmp0 = *py0; ble,pn %icc,.update5 ! (Y0_2) if(ux0 < 0x800000) faddd %f50,KA1,%f54 ! (Y1_1) dtmp0 += KA1; .cont5: and %g1,MASK_0x7fffffff,%g1 ! (Y1_1) ay0 &= 0x7fffffff; ld [%fp+tmp4],%f1 ! (Y1_1) LOAD exp0 faddd %f26,%f48,%f58 ! (Y0_1) yy0 += dtmp0; cmp %g1,%o5 ! (Y1_1) ay0 ? 0x7f800000 bge,pn %icc,.update6 ! (Y1_1) if(ay0 >= 0x7f800000) nop .cont6: fmuld KA3,%f28,%f62 ! (Y2_1) dtmp0 = KA3 * y0; fstod %f2,%f22 ! (Y1_1) dtmp0 = (double)ftmp0; fmuld %f24,%f58,%f58 ! (Y0_1) yy0 *= dtmp0; fitod %f1,%f48 ! (Y1_1) dtmp1 = (double) exp0; fmuld %f54,%f46,%f54 ! (Y1_1) dtmp0 *= y0; faddd %f62,KA2,%f26 ! (Y2_1) dtmp0 += KA2; add %o2,stridex,%o2 ! px += stridex ldd [%l2+%o0],%f60 ! (Y1_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); fcmped %fcc0,HTHRESHOLD,%f58 ! (Y0_1) if (yy0 >= HTHRESH) sra %i3,12,%o0 ! (Y0_2) ind0 = i0 >> 12; lda [%o2]0x82,%o3 ! (Y1_2) ax0 = *px; faddd %f54,KA0,%f56 ! (Y1_1) dtmp0 += KA0; and %o0,-8,%g5 ! (Y0_2) ind0 &= -8; ld [%fp+tmp2],%f14 ! (Y0_2) dtmp0 = (double) i0; and %o3,MASK_0x7fffffff,%i3 ! (Y1_2) exp0 = ax0 & 0x7fffffff; and %o3,MASK_0x007fffff,%o0 ! (Y1_2) ax0 &= 0x007fffff; cmp %i3,%o5 ! (Y1_2) ax0 ? 0x7f800000 add %l2,%g5,%g1 ! (Y0_2) (char*)__mt_constlog4f + ind0 faddd %f60,%f48,%f12 ! (Y1_1) yy0 = dtmp0 + dtmp1; fmuld %f26,%f28,%f50 ! (Y2_1) dtmp0 *= y0; srl %i3,23,%i3 ! (Y1_2) exp0 >>= 23; add %o0,CONST_0x8000,%i1 ! (Y1_2) i0 = ax0 + 0x8000; fcmped %fcc1,LTHRESHOLD,%f58 ! (Y0_1) if (yy0 <= LTHRESH) fmuld %f56,%f46,%f46 ! (Y1_1) dtmp0 *= y0; ldd [%g1+8],%f48 ! (Y0_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); sub %i3,127,%i3 ! (Y1_2) exp0 -= 127; fitod %f14,%f60 ! (Y0_2) dtmp0 = (double) i0; sll %i3,8,%i2 ! (Y1_2) exp0 <<= 8; and %i1,%l6,%i1 ! (Y1_2) i0 &= 0xffff0000; st %i2,[%fp+tmp4] ! (Y1_2) STORE exp0 sub %o0,%i1,%o0 ! (Y1_2) i0 = ax0 - i0; st %o0,[%fp+tmp5] ! (Y1_2) STORE i0 bge,pn %icc,.update7 ! (Y1_2) if(ax0 >= 0x7f800000) nop .cont7: lda [stridey+%o4]0x82,%i3 ! Y(2_1) ay0 = *py0 cmp %o3,MASK_0x007fffff ! (Y1_2) ux0 ? 0x800000 add %o4,stridey,%i2 ! py += stridey; fmovdl %fcc0,HTHRESHOLD,%f58 ! (Y0_1) yy0 = HTHRESH; fmuld %f60,%f48,%f48 ! (Y0_2) y0 = dtmp0 * dtmp1; lda [stridey+%o4]0x82,%f16 ! (Y2_1) ftmp0 = *py0; ble,pn %icc,.update8 ! (Y1_2) if(ux0 < 0x800000) faddd %f50,KA1,%f52 ! (Y2_1) dtmp0 += KA1; .cont8: and %i3,MASK_0x7fffffff,%i3 ! (Y2_1) ay0 &= 0x7fffffff ld [%fp+tmp6],%f17 ! (Y2_1) dtmp1 = (double) exp0; faddd %f12,%f46,%f60 ! (Y1_1) yy0 += dtmp0; cmp %i3,%o5 ! (Y2_1) ay0 ? 0x7f800000 bge,pn %icc,.update9 ! (Y2_1) if(ay0 >= 0x7f800000) nop .cont9: fmovdg %fcc1,LTHRESHOLD,%f58 ! (Y0_1) yy0 = LTHRESH; fmuld KA3,%f48,%f62 ! (Y0_2) dtmp0 = KA3 * y0; fstod %f16,%f54 ! (Y2_1) dtmp0 = (double)ftmp0; fmuld %f22,%f60,%f56 ! (Y1_1) yy0 *= dtmp0; fitod %f17,%f24 ! (Y2_1) dtmp1 = (double) exp0; fmuld %f52,%f28,%f52 ! (Y2_1) dtmp0 *= y0; fdtoi %f58,%f10 ! (Y0_1) ind0 = (int) yy0; st %f10,[%fp+tmp0] ! (Y0_1) STORE ind0 faddd %f62,KA2,%f22 ! (Y0_2) dtmp0 += KA2; fcmped %fcc0,HTHRESHOLD,%f56 ! (Y1_1) if (yy0 >= HTHRESH) ldd [%l2+%o1],%f60 ! (Y2_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); sra %i1,12,%o1 ! (Y1_2) ind0 = i0 >> 12; add %o2,stridex,%i3 ! px += stridex lda [stridex+%o2]0x82,%g1 ! (Y2_2) ax0 = *px; and %o1,-8,%o0 ! (Y1_2) ind0 &= -8; add %i2,stridey,%i2 ! py += stridey ld [%fp+tmp5],%f12 ! (Y1_2) LOAD i0 faddd %f52,KA0,%f4 ! (Y2_1) dtmp0 += KA0; and %g1,MASK_0x7fffffff,%i1 ! (Y2_2) exp0 = ax0 & 0x7fffffff; and %g1,MASK_0x007fffff,%o2 ! (Y2_2) ax0 &= 0x007fffff; lda [%i2]0x82,%f0 ! (Y0_2) ftmp0 = *py0; fitod %f10,%f52 ! (Y0_1) dtmp0 = (double)ind0; srl %i1,23,%o3 ! (Y2_2) exp0 >>= 23; cmp %i1,%o5 ! (Y2_2) ax0 ? 0x7f800000 faddd %f60,%f24,%f18 ! (Y2_1) yy0 = dtmp0 + dtmp1; fmuld %f22,%f48,%f26 ! (Y0_2) dtmp0 *= y0; add %l2,%o0,%i1 ! (Y1_2) (char*)__mt_constlog4f + ind0 sub %o3,127,%l7 ! (Y2_2) exp0 -= 127; fcmped %fcc1,LTHRESHOLD,%f56 ! (Y1_1) if (yy0 <= LTHRESH) fmuld %f4,%f28,%f24 ! (Y2_1) dtmp0 *= y0; add %o2,CONST_0x8000,%o1 ! (Y2_2) i0 = ax0 + 0x8000; ldd [%i1+8],%f50 ! (Y1_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); fitod %f12,%f28 ! (Y1_2) dtmp0 = (double) i0; sll %l7,8,%l7 ! (Y2_2) exp0 <<= 8; and %o1,%l6,%o1 ! (Y2_2) i0 &= 0xffff0000; st %l7,[%fp+tmp6] ! (Y2_2) STORE exp0 fsubd %f58,%f52,%f60 ! (Y0_1) y0 = yy0 - dtmp0; sub %o2,%o1,%i1 ! (Y2_2) i0 = ax0 - i0; st %i1,[%fp+tmp2] ! (Y2_2) STORE i0 bge,pn %icc,.update10 ! (Y2_2) if(ax0 >= 0x7f800000) nop .cont10: lda [%i2]0x82,%o2 ! (Y0_2) ay0 = *(int*)py0; cmp %g1,MASK_0x007fffff ! (Y2_2) ux0 ? 0x800000 fmovdl %fcc0,HTHRESHOLD,%f56 ! (Y1_1) yy0 = HTHRESH; fmuld %f28,%f50,%f46 ! (Y1_2) y0 = dtmp0 * dtmp1; ble,pn %icc,.update11 ! (Y2_2) if(ux0 < 0x800000) faddd %f26,KA1,%f50 ! (Y0_2) dtmp0 += KA1; .cont11: fmuld KB2,%f60,%f62 ! (Y0_1) dtmp0 = KB2 * y0; and %o2,MASK_0x7fffffff,%o2 ! (Y0_2) ay0 &= 0x7fffffff ld [%fp+tmp3],%f4 ! (Y0_2) dtmp1 = (double) exp0; faddd %f18,%f24,%f52 ! (Y2_1) yy0 += dtmp0; ld [%fp+tmp0],%g1 ! (Y0_1) LAOD ind0 cmp %o2,%o5 ! (Y0_2) ay0 ? 0x7f800000 bge,pn %icc,.update12 ! (Y0_2) if( ay0 >= 0x7f800000) nop .cont12: fstod %f0,%f24 ! (Y0_2) dtmp0 = (double)ftmp0; cmp counter,6 ! counter bl,pn %icc,.tail sub %i5,stridez,%o4 ba .main_loop nop .align 16 .main_loop: fmuld KA3,%f46,%f28 ! (Y1_1) dtmp0 = KA3 * y0; and %g1,255,%o2 ! (Y0_0) ind0 &= 255; sub counter,3,counter ! counter fmovdg %fcc1,LTHRESHOLD,%f56 ! (Y1_0) yy0 = LTHRESH; fmuld %f54,%f52,%f18 ! (Y2_0) yy0 *= dtmp0; sll %o2,3,%i1 ! (Y0_0) ind0 <<= 3; add %o4,stridez,%l7 ! pz += stridez faddd %f62,KB1,%f62 ! (Y0_0) dtmp0 += KB1; fpackfix %f10,%f10 ! (Y0_0) dtmp1 = vis_fpackfix(dtmp1); fitod %f4,%f26 ! (Y0_1) dtmp1 = (double) exp0; ldd [%l0+%i1],%f58 ! (Y0_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); fmuld %f50,%f48,%f50 ! (Y0_1) dtmp0 *= y0; fdtoi %f56,%f20 ! (Y1_0) ind0 = (int) yy0; st %f20,[%fp+tmp1] ! (Y1_0) STORE ind0 faddd %f28,KA2,%f28 ! (Y1_1) dtmp0 += KA2; fmuld %f62,%f60,%f62 ! (Y0_0) yy0 = dtmp0 * y0; ldd [%l2+%g5],%f60 ! (Y0_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); add %i3,stridex,%o2 ! px += stridex fcmped %fcc0,HTHRESHOLD,%f18 ! (Y2_0) if (yy0 >= HTHRESH) lda [%o2]0x82,%i1 ! (Y0_2) ax0 = *px; sra %o1,12,%g5 ! (Y2_1) ind0 = i0 >> 12; fpadd32 %f10,%f58,%f22 ! (Y0_0) di0 = vis_fpadd32(di0,dtmp1); faddd %f50,KA0,%f58 ! (Y0_1) dtmp0 += KA0; and %g5,-8,%o1 ! (Y2_1) ind0 &= -8; ld [%fp+tmp2],%f6 ! (Y2_1) dtmp0 = (double) i0; fitod %f20,%f52 ! (Y1_0) dtmp0 = (double)ind0; and %i1,MASK_0x7fffffff,%i3 ! (Y0_2) exp0 = ax0 & 0x7fffffff; and %i1,MASK_0x007fffff,%g5 ! (Y0_2) ax0 &= 0x007fffff; fmuld %f62,%f22,%f62 ! (Y0_0) yy0 *= di0; srl %i3,23,%o3 ! (Y0_2) exp0 >>= 23; add %l2,%o1,%g1 ! (Y2_1) (char*)__mt_constlog4f + ind0 faddd %f60,%f26,%f26 ! (Y0_1) yy0 = dtmp0 + dtmp1; fmuld %f28,%f46,%f50 ! (Y1_1) dtmp0 *= y0; sub %o3,127,%o3 ! (Y0_2) exp0 -= 127; cmp %i3,%o5 ! (Y0_2) ax0 ? 0x7f800000 fcmped %fcc1,LTHRESHOLD,%f18 ! (Y2_0) if (yy0 <= LTHRESH) fmuld %f58,%f48,%f48 ! (Y0_1) dtmp0 *= y0; add %g5,CONST_0x8000,%i3 ! (Y0_2) i0 = ax0 + 0x8000; ldd [%g1+8],%f58 ! (Y2_1) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); fitod %f6,%f54 ! (Y2_1) dtmp0 = (double) i0; sll %o3,8,%o4 ! (Y0_2) exp0 <<= 8; and %i3,%l6,%i3 ! (Y0_2) i0 &= 0xffff0000; st %o4,[%fp+tmp3] ! (Y0_2) STORE exp0 fsubd %f56,%f52,%f52 ! (Y1_0) y0 = yy0 - dtmp0; sub %g5,%i3,%o4 ! (Y0_2) i0 = ax0 - i0; st %o4,[%fp+tmp2] ! (Y0_2) STORE i0 bge,pn %icc,.update13 ! (Y0_2) if( ax0 >= 0x7f800000 ) faddd %f62,%f22,%f62 ! (Y0_0) yy0 += di0; .cont13: lda [stridey+%i2]0x82,%g1 ! (Y1_1) ay0 = *(unsigned*)py0 add %i2,stridey,%o4 ! py += stridey cmp %i1,MASK_0x007fffff ! (Y0_2) ux0 ? 0x800000 fmovdl %fcc0,HTHRESHOLD,%f18 ! (Y2_0) yy0 = HTHRESH; fmuld %f54,%f58,%f28 ! (Y2_1) y0 = dtmp0 * dtmp1; lda [stridey+%i2]0x82,%f2 ! (Y1_1) ftmp0 = *py0; ble,pn %icc,.update14 ! (Y0_2) if(ux0 < 0x800000) faddd %f50,KA1,%f54 ! (Y1_1) dtmp0 += KA1; .cont14: fmuld KB2,%f52,%f56 ! (Y1_0) dtmp0 = KB2 * y0; and %g1,MASK_0x7fffffff,%g1 ! (Y1_1) ay0 &= 0x7fffffff; ld [%fp+tmp4],%f1 ! (Y1_1) LOAD exp0 faddd %f26,%f48,%f58 ! (Y0_1) yy0 += dtmp0; ld [%fp+tmp1],%g5 ! (Y1_0) ind0 = (int) yy0; cmp %g1,%o5 ! (Y1_1) ay0 ? 0x7f800000 bge,pn %icc,.update15 ! (Y1_1) if(ay0 >= 0x7f800000) fdtos %f62,%f8 ! (Y0_0) ftmp0 = (float)yy0; .cont15: st %f8,[%l7] ! (Y0_0) *pz0 = ftmp0; fmovdg %fcc1,LTHRESHOLD,%f18 ! (Y2_0) yy0 = LTHRESH; add %l7,stridez,%l7 ! pz += stridez fmuld KA3,%f28,%f62 ! (Y2_1) dtmp0 = KA3 * y0; and %g5,255,%g5 ! (Y1_0) ind0 &= 255; fstod %f2,%f22 ! (Y1_1) dtmp0 = (double)ftmp0; fmuld %f24,%f58,%f58 ! (Y0_1) yy0 *= dtmp0; sll %g5,3,%i2 ! (Y1_0) ind0 <<= 3; faddd %f56,KB1,%f60 ! (Y1_0) dtmp0 += KB1; fpackfix %f20,%f20 ! (Y1_0) dtmp1 = vis_fpackfix(dtmp1); fitod %f1,%f48 ! (Y1_1) dtmp1 = (double) exp0; ldd [%l0+%i2],%f56 ! (Y1_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); fmuld %f54,%f46,%f54 ! (Y1_1) dtmp0 *= y0; fdtoi %f18,%f2 ! (Y2_0) ind0 = (int) yy0; st %f2,[%fp+tmp1] ! (Y2_0) STORE ind0 faddd %f62,KA2,%f26 ! (Y2_1) dtmp0 += KA2; fmuld %f60,%f52,%f62 ! (Y1_0) yy0 = dtmp0 * y0; add %o2,stridex,%o2 ! px += stridex ldd [%l2+%o0],%f60 ! (Y1_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); fcmped %fcc0,HTHRESHOLD,%f58 ! (Y0_1) if (yy0 >= HTHRESH) fpadd32 %f20,%f56,%f52 ! (Y1_0) di0 = vis_fpadd32(di0,dtmp1); sra %i3,12,%o0 ! (Y0_2) ind0 = i0 >> 12; lda [%o2]0x82,%o3 ! (Y1_2) ax0 = *px; faddd %f54,KA0,%f56 ! (Y1_1) dtmp0 += KA0; and %o0,-8,%g5 ! (Y0_2) ind0 &= -8; ld [%fp+tmp2],%f14 ! (Y0_2) dtmp0 = (double) i0; fitod %f2,%f54 ! (Y2_0) dtmp0 = (double)ind0; and %o3,MASK_0x7fffffff,%i3 ! (Y1_2) exp0 = ax0 & 0x7fffffff; and %o3,MASK_0x007fffff,%o0 ! (Y1_2) ax0 &= 0x007fffff; fmuld %f62,%f52,%f62 ! (Y1_0) yy0 *= di0; cmp %i3,%o5 ! (Y1_2) ax0 ? 0x7f800000 add %l2,%g5,%g1 ! (Y0_2) (char*)__mt_constlog4f + ind0 faddd %f60,%f48,%f12 ! (Y1_1) yy0 = dtmp0 + dtmp1; fmuld %f26,%f28,%f50 ! (Y2_1) dtmp0 *= y0; srl %i3,23,%i3 ! (Y1_2) exp0 >>= 23; add %o0,CONST_0x8000,%i1 ! (Y1_2) i0 = ax0 + 0x8000; fcmped %fcc1,LTHRESHOLD,%f58 ! (Y0_1) if (yy0 <= LTHRESH) fmuld %f56,%f46,%f46 ! (Y1_1) dtmp0 *= y0; ldd [%g1+8],%f48 ! (Y0_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); sub %i3,127,%i3 ! (Y1_2) exp0 -= 127; fitod %f14,%f60 ! (Y0_2) dtmp0 = (double) i0; sll %i3,8,%i2 ! (Y1_2) exp0 <<= 8; and %i1,%l6,%i1 ! (Y1_2) i0 &= 0xffff0000; st %i2,[%fp+tmp4] ! (Y1_2) STORE exp0 fsubd %f18,%f54,%f26 ! (Y2_0) y0 = yy0 - dtmp0; sub %o0,%i1,%o0 ! (Y1_2) i0 = ax0 - i0; st %o0,[%fp+tmp5] ! (Y1_2) STORE i0 bge,pn %icc,.update16 ! (Y1_2) if(ax0 >= 0x7f800000) faddd %f62,%f52,%f54 ! (Y1_0) yy0 += di0; .cont16: lda [stridey+%o4]0x82,%i3 ! Y(2_1) ay0 = *py0 cmp %o3,MASK_0x007fffff ! (Y1_2) ux0 ? 0x800000 add %o4,stridey,%i2 ! py += stridey; fmovdl %fcc0,HTHRESHOLD,%f58 ! (Y0_1) yy0 = HTHRESH; fmuld %f60,%f48,%f48 ! (Y0_2) y0 = dtmp0 * dtmp1; lda [stridey+%o4]0x82,%f16 ! (Y2_1) ftmp0 = *py0; ble,pn %icc,.update17 ! (Y1_2) if(ux0 < 0x800000) faddd %f50,KA1,%f52 ! (Y2_1) dtmp0 += KA1; .cont17: fmuld KB2,%f26,%f4 ! (Y2_0) dtmp0 = KB2 * y0; and %i3,MASK_0x7fffffff,%i3 ! (Y2_1) ay0 &= 0x7fffffff ld [%fp+tmp6],%f17 ! (Y2_1) dtmp1 = (double) exp0; faddd %f12,%f46,%f60 ! (Y1_1) yy0 += dtmp0; ld [%fp+tmp1],%o0 cmp %i3,%o5 ! (Y2_1) ay0 ? 0x7f800000 bge,pn %icc,.update18 ! (Y2_1) if(ay0 >= 0x7f800000) fdtos %f54,%f15 ! (Y1_0) ftmp0 = (float)yy0; .cont18: st %f15,[%l7] ! (Y1_0) *pz0 = ftmp0; add %l7,stridez,%o4 ! pz += stridez fmovdg %fcc1,LTHRESHOLD,%f58 ! (Y0_1) yy0 = LTHRESH; fmuld KA3,%f48,%f62 ! (Y0_2) dtmp0 = KA3 * y0; and %o0,255,%o0 ! (Y2_0) ind0 &= 255; fstod %f16,%f54 ! (Y2_1) dtmp0 = (double)ftmp0; fmuld %f22,%f60,%f56 ! (Y1_1) yy0 *= dtmp0; sll %o0,3,%l7 ! (Y2_0) ind0 <<= 3; faddd %f4,KB1,%f60 ! (Y2_0) dtmp0 += KB1; fpackfix %f2,%f2 ! (Y2_0) dtmp1 = vis_fpackfix(dtmp1); fitod %f17,%f24 ! (Y2_1) dtmp1 = (double) exp0; ldd [%l0+%l7],%f4 ! (Y2_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); fmuld %f52,%f28,%f52 ! (Y2_1) dtmp0 *= y0; fdtoi %f58,%f10 ! (Y0_1) ind0 = (int) yy0; st %f10,[%fp+tmp0] ! (Y0_1) STORE ind0 faddd %f62,KA2,%f22 ! (Y0_2) dtmp0 += KA2; fmuld %f60,%f26,%f62 ! (Y2_0) yy0 = dtmp0 * y0; fcmped %fcc0,HTHRESHOLD,%f56 ! (Y1_1) if (yy0 >= HTHRESH) ldd [%l2+%o1],%f60 ! (Y2_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); sra %i1,12,%o1 ! (Y1_2) ind0 = i0 >> 12; add %o2,stridex,%i3 ! px += stridex lda [stridex+%o2]0x82,%g1 ! (Y2_2) ax0 = *px; fpadd32 %f2,%f4,%f46 ! (Y2_0) di0 = vis_fpadd32(di0,dtmp1); and %o1,-8,%o0 ! (Y1_2) ind0 &= -8; add %i2,stridey,%i2 ! py += stridey ld [%fp+tmp5],%f12 ! (Y1_2) LOAD i0 faddd %f52,KA0,%f4 ! (Y2_1) dtmp0 += KA0; and %g1,MASK_0x7fffffff,%i1 ! (Y2_2) exp0 = ax0 & 0x7fffffff; and %g1,MASK_0x007fffff,%o2 ! (Y2_2) ax0 &= 0x007fffff; lda [%i2]0x82,%f0 ! (Y0_2) ftmp0 = *py0; fitod %f10,%f52 ! (Y0_1) dtmp0 = (double)ind0; fmuld %f62,%f46,%f62 ! (Y2_0) yy0 *= di0; srl %i1,23,%o3 ! (Y2_2) exp0 >>= 23; cmp %i1,%o5 ! (Y2_2) ax0 ? 0x7f800000 faddd %f60,%f24,%f18 ! (Y2_1) yy0 = dtmp0 + dtmp1; fmuld %f22,%f48,%f26 ! (Y0_2) dtmp0 *= y0; add %l2,%o0,%i1 ! (Y1_2) (char*)__mt_constlog4f + ind0 sub %o3,127,%l7 ! (Y2_2) exp0 -= 127; fcmped %fcc1,LTHRESHOLD,%f56 ! (Y1_1) if (yy0 <= LTHRESH) fmuld %f4,%f28,%f24 ! (Y2_1) dtmp0 *= y0; add %o2,CONST_0x8000,%o1 ! (Y2_2) i0 = ax0 + 0x8000; ldd [%i1+8],%f50 ! (Y1_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); fitod %f12,%f28 ! (Y1_2) dtmp0 = (double) i0; sll %l7,8,%l7 ! (Y2_2) exp0 <<= 8; and %o1,%l6,%o1 ! (Y2_2) i0 &= 0xffff0000; st %l7,[%fp+tmp6] ! (Y2_2) STORE exp0 fsubd %f58,%f52,%f60 ! (Y0_1) y0 = yy0 - dtmp0; sub %o2,%o1,%i1 ! (Y2_2) i0 = ax0 - i0; st %i1,[%fp+tmp2] ! (Y2_2) STORE i0 bge,pn %icc,.update19 ! (Y2_2) if(ax0 >= 0x7f800000) faddd %f62,%f46,%f22 ! (Y2_0) yy0 += di0; .cont19: lda [%i2]0x82,%o2 ! (Y0_2) ay0 = *(int*)py0; cmp %g1,MASK_0x007fffff ! (Y2_2) ux0 ? 0x800000 fmovdl %fcc0,HTHRESHOLD,%f56 ! (Y1_1) yy0 = HTHRESH; fmuld %f28,%f50,%f46 ! (Y1_2) y0 = dtmp0 * dtmp1; ble,pn %icc,.update20 ! (Y2_2) if(ux0 < 0x800000) faddd %f26,KA1,%f50 ! (Y0_2) dtmp0 += KA1; .cont20: fmuld KB2,%f60,%f62 ! (Y0_1) dtmp0 = KB2 * y0; and %o2,MASK_0x7fffffff,%o2 ! (Y0_2) ay0 &= 0x7fffffff ld [%fp+tmp3],%f4 ! (Y0_2) dtmp1 = (double) exp0; faddd %f18,%f24,%f52 ! (Y2_1) yy0 += dtmp0; ld [%fp+tmp0],%g1 ! (Y0_1) LAOD ind0 cmp %o2,%o5 ! (Y0_2) ay0 ? 0x7f800000 bge,pn %icc,.update21 ! (Y0_2) if( ay0 >= 0x7f800000) fdtos %f22,%f12 ! (Y2_0) ftmp0 = (float)yy0; .cont21: st %f12,[%o4] ! (Y2_0) *pz0 = ftmp0; cmp counter,6 ! counter bge,pt %icc,.main_loop fstod %f0,%f24 ! (Y0_2) dtmp0 = (double)ftmp0; .tail: subcc counter,1,counter bneg,pn %icc,.begin add %o4,stridez,%i5 fmuld KA3,%f46,%f28 ! (Y1_1) dtmp0 = KA3 * y0; and %g1,255,%o2 ! (Y0_0) ind0 &= 255; fmovdg %fcc1,LTHRESHOLD,%f56 ! (Y1_0) yy0 = LTHRESH; fmuld %f54,%f52,%f18 ! (Y2_0) yy0 *= dtmp0; sll %o2,3,%i1 ! (Y0_0) ind0 <<= 3; add %o4,stridez,%l7 ! pz += stridez faddd %f62,KB1,%f62 ! (Y0_0) dtmp0 += KB1; fpackfix %f10,%f10 ! (Y0_0) dtmp1 = vis_fpackfix(dtmp1); fitod %f4,%f26 ! (Y0_1) dtmp1 = (double) exp0; ldd [%l0+%i1],%f58 ! (Y0_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); fmuld %f50,%f48,%f50 ! (Y0_1) dtmp0 *= y0; fdtoi %f56,%f20 ! (Y1_0) ind0 = (int) yy0; st %f20,[%fp+tmp1] ! (Y1_0) STORE ind0 faddd %f28,KA2,%f28 ! (Y1_1) dtmp0 += KA2; fmuld %f62,%f60,%f62 ! (Y0_0) yy0 = dtmp0 * y0; ldd [%l2+%g5],%f60 ! (Y0_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); fcmped %fcc0,HTHRESHOLD,%f18 ! (Y2_0) if (yy0 >= HTHRESH) fpadd32 %f10,%f58,%f22 ! (Y0_0) di0 = vis_fpadd32(di0,dtmp1); faddd %f50,KA0,%f58 ! (Y0_1) dtmp0 += KA0; fitod %f20,%f52 ! (Y1_0) dtmp0 = (double)ind0; fmuld %f62,%f22,%f62 ! (Y0_0) yy0 *= di0; faddd %f60,%f26,%f26 ! (Y0_1) yy0 = dtmp0 + dtmp1; fmuld %f28,%f46,%f50 ! (Y1_1) dtmp0 *= y0; fcmped %fcc1,LTHRESHOLD,%f18 ! (Y2_0) if (yy0 <= LTHRESH) fmuld %f58,%f48,%f48 ! (Y0_1) dtmp0 *= y0; fsubd %f56,%f52,%f52 ! (Y1_0) y0 = yy0 - dtmp0; faddd %f62,%f22,%f62 ! (Y0_0) yy0 += di0; lda [stridey+%i2]0x82,%g1 ! (Y1_1) ay0 = *(unsigned*)py0 add %i2,stridey,%o4 ! py += stridey fmovdl %fcc0,HTHRESHOLD,%f18 ! (Y2_0) yy0 = HTHRESH; lda [stridey+%i2]0x82,%f2 ! (Y1_1) ftmp0 = *py0; faddd %f50,KA1,%f54 ! (Y1_1) dtmp0 += KA1; fmuld KB2,%f52,%f56 ! (Y1_0) dtmp0 = KB2 * y0; and %g1,MASK_0x7fffffff,%g1 ! (Y1_1) ay0 &= 0x7fffffff; ld [%fp+tmp4],%f1 ! (Y1_1) LOAD exp0 faddd %f26,%f48,%f58 ! (Y0_1) yy0 += dtmp0; ld [%fp+tmp1],%g5 ! (Y1_0) ind0 = (int) yy0; cmp %g1,%o5 ! (Y1_1) ay0 ? 0x7f800000 bge,pn %icc,.update22 ! (Y1_1) if(ay0 >= 0x7f800000) fdtos %f62,%f8 ! (Y0_0) ftmp0 = (float)yy0; .cont22: st %f8,[%l7] ! (Y0_0) *pz0 = ftmp0; fmovdg %fcc1,LTHRESHOLD,%f18 ! (Y2_0) yy0 = LTHRESH; subcc counter,1,counter bneg,pn %icc,.begin add %l7,stridez,%i5 add %l7,stridez,%l7 ! pz += stridez and %g5,255,%g5 ! (Y1_0) ind0 &= 255; fstod %f2,%f22 ! (Y1_1) dtmp0 = (double)ftmp0; fmuld %f24,%f58,%f58 ! (Y0_1) yy0 *= dtmp0; sll %g5,3,%i2 ! (Y1_0) ind0 <<= 3; faddd %f56,KB1,%f60 ! (Y1_0) dtmp0 += KB1; fpackfix %f20,%f20 ! (Y1_0) dtmp1 = vis_fpackfix(dtmp1); fitod %f1,%f48 ! (Y1_1) dtmp1 = (double) exp0; ldd [%l0+%i2],%f56 ! (Y1_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); fmuld %f54,%f46,%f54 ! (Y1_1) dtmp0 *= y0; fdtoi %f18,%f2 ! (Y2_0) ind0 = (int) yy0; st %f2,[%fp+tmp1] ! (Y2_0) STORE ind0 fmuld %f60,%f52,%f62 ! (Y1_0) yy0 = dtmp0 * y0; ldd [%l2+%o0],%f60 ! (Y1_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); fcmped %fcc0,HTHRESHOLD,%f58 ! (Y0_1) if (yy0 >= HTHRESH) fpadd32 %f20,%f56,%f52 ! (Y1_0) di0 = vis_fpadd32(di0,dtmp1); faddd %f54,KA0,%f56 ! (Y1_1) dtmp0 += KA0; fitod %f2,%f54 ! (Y2_0) dtmp0 = (double)ind0; fmuld %f62,%f52,%f62 ! (Y1_0) yy0 *= di0; faddd %f60,%f48,%f12 ! (Y1_1) yy0 = dtmp0 + dtmp1; fcmped %fcc1,LTHRESHOLD,%f58 ! (Y0_1) if (yy0 <= LTHRESH) fmuld %f56,%f46,%f46 ! (Y1_1) dtmp0 *= y0; fsubd %f18,%f54,%f26 ! (Y2_0) y0 = yy0 - dtmp0; faddd %f62,%f52,%f54 ! (Y1_0) yy0 += di0; fmovdl %fcc0,HTHRESHOLD,%f58 ! (Y0_1) yy0 = HTHRESH; fmuld KB2,%f26,%f4 ! (Y2_0) dtmp0 = KB2 * y0; faddd %f12,%f46,%f60 ! (Y1_1) yy0 += dtmp0; ld [%fp+tmp1],%o0 fdtos %f54,%f15 ! (Y1_0) ftmp0 = (float)yy0; st %f15,[%l7] ! (Y1_0) *pz0 = ftmp0; add %l7,stridez,%o4 ! pz += stridez fmovdg %fcc1,LTHRESHOLD,%f58 ! (Y0_1) yy0 = LTHRESH; subcc counter,1,counter bneg,pn %icc,.begin or %g0,%o4,%i5 and %o0,255,%o0 ! (Y2_0) ind0 &= 255; fmuld %f22,%f60,%f56 ! (Y1_1) yy0 *= dtmp0; sll %o0,3,%l7 ! (Y2_0) ind0 <<= 3; faddd %f4,KB1,%f60 ! (Y2_0) dtmp0 += KB1; fpackfix %f2,%f2 ! (Y2_0) dtmp1 = vis_fpackfix(dtmp1); ldd [%l0+%l7],%f4 ! (Y2_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); fdtoi %f58,%f10 ! (Y0_1) ind0 = (int) yy0; st %f10,[%fp+tmp0] ! (Y0_1) STORE ind0 fmuld %f60,%f26,%f62 ! (Y2_0) yy0 = dtmp0 * y0; fcmped %fcc0,HTHRESHOLD,%f56 ! (Y1_1) if (yy0 >= HTHRESH) fpadd32 %f2,%f4,%f46 ! (Y2_0) di0 = vis_fpadd32(di0,dtmp1); add %i2,stridey,%i2 ! py += stridey fitod %f10,%f52 ! (Y0_1) dtmp0 = (double)ind0; fmuld %f62,%f46,%f62 ! (Y2_0) yy0 *= di0; fcmped %fcc1,LTHRESHOLD,%f56 ! (Y1_1) if (yy0 <= LTHRESH) fsubd %f58,%f52,%f60 ! (Y0_1) y0 = yy0 - dtmp0; faddd %f62,%f46,%f22 ! (Y2_0) yy0 += di0; fmovdl %fcc0,HTHRESHOLD,%f56 ! (Y1_1) yy0 = HTHRESH; fmuld KB2,%f60,%f62 ! (Y0_1) dtmp0 = KB2 * y0; ld [%fp+tmp0],%g1 ! (Y0_1) LAOD ind0 fdtos %f22,%f12 ! (Y2_0) ftmp0 = (float)yy0; st %f12,[%o4] ! (Y2_0) *pz0 = ftmp0; subcc counter,1,counter bneg,pn %icc,.begin add %o4,stridez,%i5 and %g1,255,%o2 ! (Y0_0) ind0 &= 255; fmovdg %fcc1,LTHRESHOLD,%f56 ! (Y1_0) yy0 = LTHRESH; sll %o2,3,%i1 ! (Y0_0) ind0 <<= 3; add %o4,stridez,%l7 ! pz += stridez faddd %f62,KB1,%f62 ! (Y0_0) dtmp0 += KB1; fpackfix %f10,%f10 ! (Y0_0) dtmp1 = vis_fpackfix(dtmp1); ldd [%l0+%i1],%f58 ! (Y0_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); fdtoi %f56,%f20 ! (Y1_0) ind0 = (int) yy0; st %f20,[%fp+tmp1] ! (Y1_0) STORE ind0 fmuld %f62,%f60,%f62 ! (Y0_0) yy0 = dtmp0 * y0; fpadd32 %f10,%f58,%f22 ! (Y0_0) di0 = vis_fpadd32(di0,dtmp1); fitod %f20,%f52 ! (Y1_0) dtmp0 = (double)ind0; fmuld %f62,%f22,%f62 ! (Y0_0) yy0 *= di0; fsubd %f56,%f52,%f52 ! (Y1_0) y0 = yy0 - dtmp0; faddd %f62,%f22,%f62 ! (Y0_0) yy0 += di0; fmuld KB2,%f52,%f56 ! (Y1_0) dtmp0 = KB2 * y0; ld [%fp+tmp1],%g5 ! (Y1_0) ind0 = (int) yy0; fdtos %f62,%f8 ! (Y0_0) ftmp0 = (float)yy0; st %f8,[%l7] ! (Y0_0) *pz0 = ftmp0; subcc counter,1,counter bneg .begin add %l7,stridez,%i5 add %l7,stridez,%l7 ! pz += stridez and %g5,255,%g5 ! (Y1_0) ind0 &= 255; sll %g5,3,%i2 ! (Y1_0) ind0 <<= 3; faddd %f56,KB1,%f60 ! (Y1_0) dtmp0 += KB1; fpackfix %f20,%f20 ! (Y1_0) dtmp1 = vis_fpackfix(dtmp1); ldd [%l0+%i2],%f56 ! (Y1_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); fmuld %f60,%f52,%f62 ! (Y1_0) yy0 = dtmp0 * y0; fpadd32 %f20,%f56,%f52 ! (Y1_0) di0 = vis_fpadd32(di0,dtmp1); fmuld %f62,%f52,%f62 ! (Y1_0) yy0 *= di0; faddd %f62,%f52,%f54 ! (Y1_0) yy0 += di0; fdtos %f54,%f15 ! (Y1_0) ftmp0 = (float)yy0; st %f15,[%l7] ! (Y1_0) *pz0 = ftmp0; ba .begin add %l7,stridez,%i5 ! pz += stridez .exit: ret restore .align 16 .specs_exit: add %i1,stridex,%o2 add %i3,stridey,%i2 st %f4,[%i5] sub counter,1,counter ba .begin1 add %i5,stridez,%i5 .spec1: ld [%l0+2048+64],%f0 ! LOAD 1.0f or %g0,%i1,%o1 or %g0,%i3,%o3 ld [%o2],%f4 ! *px or %g0,%o2,%i1 or %g0,%i2,%i3 ld [%i3],%f6 ! *py or %g0,%l7,%o2 fsubs %f0,%f0,%f5 ! 0.0f sethi %hi(0x7f800000),%l6 cmp %o4,0 ! ay ? 0 be,a,pn %icc,.specs_exit ! if(ay == 0) fmovs %f0,%f4 ! return 1.0f cmp %o3,%l6 ! ax0 ? 0x7f800000 bgu,a %icc,.specs_exit ! ax0 > 0x7f800000 fmuls %f4,%f6,%f4 ! return *px * *py; /* |X| or |Y| = Nan */ cmp %o4,%l6 ! ay ? 0x7f800000 bgu,a .specs_exit ! ay > 0x7f800000 fmuls %f4,%f6,%f4 ! return *px * *py; /* |X| or |Y| = Nan */ sethi %hi(0x3f800000),%o5 bne,a %icc,1f ! if (ay != 0x7f800000) { /* |Y| = Inf */ srl %o1,31,%o1 ! sx = ux >> 31 cmp %o3,%o5 ! ax0 ? 0x3f800000 be,a .specs_exit ! if (ax0 == 0x3f800000) fmuls %f6,%f5,%f4 ! return *py * 0.0f; /* +-1 ** +-Inf = NaN */ sub %o3,%o5,%o3 ! ax0 - 0x3f800000 srl %o2,31,%o2 ! uy >> 31 srlx %o3,63,%o3 ! (ax0 - 0x3f800000) << 63 cmp %o3,%o2 ! ((ax0 - 0x3f800000) << 63) ? (uy >> 31) bne,a .specs_exit fzeros %f4 ! return 0.f; ba .specs_exit fabss %f6,%f4 ! return fabss(*py) 1: cmp %o1,0 ! sx ? 0 be,pn %icc,.spec1_exit ! if (sx == 0) or %g0,%g0,%o5 ! yisint0 = 0; srl %o4,23,%l7 ! exp = ay >> 23; cmp %l7,0x97 ! exp ? 0x97 bge,a,pn %icc,.spec1_exit ! if (exp >= 0x97) /* |Y| >= 2^24 */ add %g0,2,%o5 ! yisint = 2; cmp %l7,0x7f ! exp ? 0x7f bl,pn %icc,.spec1_exit ! if (exp < 0x7f) sub %g0,%l7,%l7 ! exp = -exp; add %l7,(0x7f + 23),%l7 ! exp += (0x07f + 23); srl %o4,%l7,%l6 ! i0 = ay >> exp sll %l6,%l7,%l7 ! i0 << exp cmp %l7,%o4 ! (i0 << exp) ? ay bne,pn %icc,.spec1_exit ! if((i0 << exp) != ay) and %l6,1,%l6 ! i0 &= 1 sub %g0,%l6,%l6 ! i0 = -i0; add %l6,2,%o5 ! yisint0 = 2 + i0; .spec1_exit: srl %o2,31,%o2 ! uy >> 31 cmp %o2,0 ! (uy >> 31) ? 0 movne %icc,%g0,%o3 ! if (uy >> 31) ax0 = 0; sll %o5,31,%o5 ! yisint0 <<= 31; add %o5,%o3,%o5 ! ax0 += yisint0; add %i1,stridex,%o2 ! px += stridex; add %i3,stridey,%i2 ! py += stridey; st %o5,[%i5] ! return *(float*)&ax0; sub counter,1,counter ! counter--; ba .begin1 add %i5,stridez,%i5 ! pz += stridez; .spec2: or %g0,%i1,%o1 or %g0,%i3,%o3 ld [%l0+2048+64],%f0 ! LOAD 1.0f or %g0,%o2,%i1 or %g0,%i2,%i3 or %g0,%l7,%o2 cmp %o4,0 ! ay ? 0 be,a,pn %icc,.specs_exit ! if(ay == 0) fmovs %f0,%f4 ! return 1.0f srl %o3,23,%l7 ! exp0 = (ax0 >> 23); sub %l7,127,%l7 ! exp = exp0 = exp0 - 127; or %g0,%g0,%o5 ! yisint = 0; cmp %o3,MASK_0x007fffff ! (int)ax0 ? 0x00800000 bg,pn %icc,1f ! if ((int)ax0 >= 0x00800000) nop ! X = denormal or negative st %o3,[%fp+tmp0] ! *((float*) &ax0) = (float) (int)ax0; ld [%fp+tmp0],%f4 fitos %f4,%f4 st %f4,[%fp+tmp0] ld [%fp+tmp0],%o3 srl %o3,23,%l7 ! exp = (ax0 >> 23) sub %l7,127+149,%l7 ! exp -= (127+149) 1: cmp %o1,0 ! ux ? 0 bg,a %icc,.spec_proc ! if((int)ux > 0) sethi %hi(0xffff0000),%l6 srl %o4,23,%o0 ! exp = ay >> 23; cmp %o0,0x97 ! exp ? 0x97 bge,a,pn %icc,2f ! if (exp >= 0x97) /* |Y| >= 2^24 */ add %g0,2,%o5 ! yisint0 = 2; /* Y - even */ cmp %o0,0x7f ! exp ? 0x7f bl,pn %icc,2f ! if(exp < 0x7f) nop sub %g0,%o0,%o0 ! exp = -exp; add %o0,(0x7f + 23),%o0 ! exp += (0x7f + 23) srl %o4,%o0,%l6 ! i0 = ay >> ((0x7f + 23) - exp); sll %l6,%o0,%o0 ! i0 << ((0x7f + 23) - exp cmp %o0,%o4 ! (i0 << ((0x7f + 23) - exp)) ? ay bne,pn %icc,2f ! if(i0 << ((0x7f + 23) - exp)) != ay) nop and %l6,1,%l6 ! i0 &= 1; sub %g0,%l6,%l6 ! i0 = -i0; add %l6,2,%o5 ! yisint = i0 + 2; 2: cmp %o3,0 ! ax0 ? 0 bne,pn %icc,4f ! if(ax0 != 0) nop srl %o1,31,%o1 ! sx = ux >> 31 srl %o2,31,%o2 ! uy >> 31 cmp %o2,0 ! (uy >> 31) ? 0 be,a,pn %icc,3f ! if((uy >> 31) == 0) fzeros %f4 ! return ZERO fdivs %f0,%f3,%f4 ! fy = ONE/ZERO 3: andcc %o1,%o5,%g0 ! sx & yisint0 be,pn %icc,.specs_exit ! if( (sx & yisint0) == 0 ) nop ba .specs_exit fnegs %f4,%f4 ! fy = -fy; 4: cmp %o5,0 ! ysisint0 ? 0 be,a %icc,.specs_exit ! if(yisint0 == 0) fdivs %f3,%f3,%f4 ! return ZERO/ZERO sethi %hi(0xffff0000),%l6 .spec_proc: sll %l7,8,%l7 ! exp0 = exp0 << 8; st %l7,[%fp+tmp1] ! STORE exp0 and %o3,MASK_0x007fffff,%g5 ! ax0 &= 0x007fffff; ld [%i3],%f14 ! ftmp0 = py[0] sllx %o5,63,%o5 ! ysisint0 <<= 63; add %g5,CONST_0x8000,%o3 ! i0 = ax0 + 0x8000; stx %o5,[%fp+tmp5] ! STORE yisint0 and %o3,%l6,%l7 ! i0 &= 0xffff0000; sub %g5,%l7,%o1 ! i0 = ax0 - i0; sra %l7,12,%g5 ! ind0 = i0 >> 12; st %o1,[%fp+tmp2] ! STORE i0 fstod %f14,%f54 ! dtmp1 = (double)ftmp0 and %g5,-8,%g5 ! ind0 &= -8; add %l2,%g5,%l7 ! (char*)__mt_constlog4f + ind0 ld [%fp+tmp1],%f18 ! LOAD exp0 ld [%fp+tmp2],%f16 ! LOAD i0 ldd [%l7+8],%f62 ! dtmp2 = *(double *)((char*)__mt_constlog4f + ind0 + 8); ldd [%l2+%g5],%f56 ! dtmp3 = *(double *)((char*)__mt_constlog4f + ind0); fitod %f18,%f58 ! dtmp4 = (double)exp0 fitod %f16,%f60 ! dtmp5 = (double)i0 fmuld %f60,%f62,%f60 ! y0 = dtmp5 * dtmp2; faddd %f56,%f58,%f58 ! yy0 = dtmp3 + dtmp4; fmuld KA3,%f60,%f52 ! dtmp0 = KA3 * y0; faddd %f52,KA2,%f50 ! dtmp0 += KA2; fmuld %f50,%f60,%f48 ! dtmp0 *= y0; faddd %f48,KA1,%f46 ! dtmp0 += KA1; fmuld %f46,%f60,%f62 ! dtmp0 *= y0; ldd [%fp+tmp5],%f24 ! LOAD yisint0 faddd %f62,KA0,%f56 ! dtmp0 += KA0; fmuld %f56,%f60,%f52 ! dtmp0 *= y0; faddd %f58,%f52,%f50 ! yy0 += dtmp1; fmuld %f54,%f50,%f52 ! yy0 *= dtmp1; fcmped %fcc0,HTHRESHOLD,%f52 ! if (yy0 >= HTHRESH) fcmped %fcc1,LTHRESHOLD,%f52 ! yy0 = HTHRESH; fmovdl %fcc0,HTHRESHOLD,%f52 ! if (yy0 <= LTHRESH) fmovdg %fcc1,LTHRESHOLD,%f52 ! yy0 = LTHRESH; fdtoi %f52,%f20 ! ind0 = (int) yy0; st %f20,[%fp+tmp3] ! STORE ind0 fitod %f20,%f58 ! dtmp0 = (double) ind0; fpackfix %f20,%f20 ! dtmp1 = vis_fpackfix(dtmp1) ld [%fp+tmp3],%g1 ! LOAD ind0 fsubd %f52,%f58,%f46 ! y0 = yy0 - dtmp0; fpadd32 %f20,%f24,%f56 ! dtmp1 += yisint0 and %g1,255,%o4 ! ind0 &= 255; sll %o4,3,%o3 ! ind0 <<= 3; ldd [%l0+%o3],%f54 ! di0 = *(double*)((char*)__mt_constexp2f + ind0); fmuld KB2,%f46,%f48 ! dtmp0 = KB2 * y0; fpadd32 %f56,%f54,%f56 ! di0 = vis_fpadd32(di0,dtmp1); faddd %f48,KB1,%f62 ! dtmp0 += KB1; fmuld %f62,%f46,%f60 ! yy0 = dtmp0 * y0; fmuld %f60,%f56,%f52 ! yy0 *= di0; faddd %f52,%f56,%f58 ! yy0 += di0; ba .specs_exit fdtos %f58,%f4 ! ftmp0 = (float)yy0; .align 16 .update0: cmp counter,1 ble .cont0 nop add %i2,stridey,%o1 stx %o2,[%fp+tmp_px] stx %o1,[%fp+tmp_py] sub counter,1,counter st counter,[%fp+tmp_counter] ba .cont0 or %g0,1,counter .align 16 .update1: cmp counter,1 ble .cont1 nop add %i2,stridey,%o1 stx %o2,[%fp+tmp_px] stx %o1,[%fp+tmp_py] sub counter,1,counter st counter,[%fp+tmp_counter] ba .cont1 or %g0,1,counter .align 16 .update2: cmp counter,2 ble .cont2 nop add %i2,stridey,%o2 stx %i3,[%fp+tmp_px] add %o2,stridey,%o2 stx %o2,[%fp+tmp_py] sub counter,2,counter st counter,[%fp+tmp_counter] ba .cont2 or %g0,2,counter .align 16 .update3: cmp counter,2 ble .cont3 nop add %i2,stridey,%o2 stx %i3,[%fp+tmp_px] add %o2,stridey,%o2 stx %o2,[%fp+tmp_py] sub counter,2,counter st counter,[%fp+tmp_counter] ba .cont3 or %g0,2,counter .align 16 .update4: cmp counter,3 ble .cont4 nop sll stridey,1,%g5 add %i2,stridey,%o3 stx %o2,[%fp+tmp_px] add %o3,%g5,%o3 stx %o3,[%fp+tmp_py] sub counter,3,counter st counter,[%fp+tmp_counter] ba .cont4 or %g0,3,counter .align 16 .update5: cmp counter,3 ble .cont5 nop sll stridey,1,%g5 add %i2,stridey,%o3 stx %o2,[%fp+tmp_px] add %o3,%g5,%o3 stx %o3,[%fp+tmp_py] sub counter,3,counter st counter,[%fp+tmp_counter] ba .cont5 or %g0,3,counter .align 16 .update6: fzeros %f2 cmp counter,1 ble .cont6 nop ld [%fp+tmp_counter],%g1 sub %o2,stridex,%o3 stx %o4,[%fp+tmp_py] sub %o3,stridex,%o3 add %g1,counter,counter stx %o3,[%fp+tmp_px] sub counter,1,counter st counter,[%fp+tmp_counter] ba .cont6 or %g0,1,counter .align 16 .update7: cmp counter,4 ble .cont7 nop sll stridey,1,%g1 add %o4,stridey,%o0 stx %o2,[%fp+tmp_px] add %o0,%g1,%o0 stx %o0,[%fp+tmp_py] sub counter,4,counter st counter,[%fp+tmp_counter] ba .cont7 or %g0,4,counter .align 16 .update8: cmp counter,4 ble .cont8 nop sll stridey,1,%g1 add %o4,stridey,%o0 stx %o2,[%fp+tmp_px] add %o0,%g1,%o0 stx %o0,[%fp+tmp_py] sub counter,4,counter st counter,[%fp+tmp_counter] ba .cont8 or %g0,4,counter .align 16 .update9: cmp counter,2 ble .cont9 fzeros %f16 ld [%fp+tmp_counter],%i3 sub %o2,stridex,%g1 stx %i2,[%fp+tmp_py] sub %g1,stridex,%g1 add %i3,counter,counter stx %g1,[%fp+tmp_px] sub counter,2,counter st counter,[%fp+tmp_counter] ba .cont9 or %g0,2,counter .align 16 .update10: cmp counter,5 ble .cont10 nop add %i2,stridey,%i1 stx %i3,[%fp+tmp_px] add %i1,stridey,%i1 stx %i1,[%fp+tmp_py] sub counter,5,counter st counter,[%fp+tmp_counter] ba .cont10 or %g0,5,counter .align 16 .update11: cmp counter,5 ble .cont11 nop add %i2,stridey,%i1 stx %i3,[%fp+tmp_px] add %i1,stridey,%i1 stx %i1,[%fp+tmp_py] sub counter,5,counter st counter,[%fp+tmp_counter] ba .cont11 or %g0,5,counter .align 16 .update12: fzeros %f0 cmp counter,3 ble .cont12 nop ld [%fp+tmp_counter],%o2 sub %i3,stridex,%i1 stx %i2,[%fp+tmp_py] sub %i1,stridex,%i1 add %o2,counter,counter stx %i1,[%fp+tmp_px] sub counter,3,counter st counter,[%fp+tmp_counter] ba .cont12 or %g0,3,counter .align 16 .update13: cmp counter,3 ble .cont13 nop sll stridey,1,%g5 add %i2,stridey,%o3 stx %o2,[%fp+tmp_px] add %o3,%g5,%o3 stx %o3,[%fp+tmp_py] sub counter,3,counter st counter,[%fp+tmp_counter] ba .cont13 or %g0,3,counter .align 16 .update14: cmp counter,3 ble .cont14 nop sll stridey,1,%g5 add %i2,stridey,%o3 stx %o2,[%fp+tmp_px] add %o3,%g5,%o3 stx %o3,[%fp+tmp_py] sub counter,3,counter st counter,[%fp+tmp_counter] ba .cont14 or %g0,3,counter .align 16 .update15: cmp counter,1 ble .cont15 fzeros %f2 ld [%fp+tmp_counter],%g1 sub %o2,stridex,%o3 stx %o4,[%fp+tmp_py] sub %o3,stridex,%o3 add %g1,counter,counter stx %o3,[%fp+tmp_px] sub counter,1,counter st counter,[%fp+tmp_counter] ba .cont15 or %g0,1,counter .align 16 .update16: cmp counter,4 ble .cont16 nop sll stridey,1,%g1 add %o4,stridey,%o0 stx %o2,[%fp+tmp_px] add %o0,%g1,%o0 stx %o0,[%fp+tmp_py] sub counter,4,counter st counter,[%fp+tmp_counter] ba .cont16 or %g0,4,counter .align 16 .update17: cmp counter,4 ble .cont17 nop sll stridey,1,%g1 add %o4,stridey,%o0 stx %o2,[%fp+tmp_px] add %o0,%g1,%o0 stx %o0,[%fp+tmp_py] sub counter,4,counter st counter,[%fp+tmp_counter] ba .cont17 or %g0,4,counter .align 16 .update18: fzeros %f16 cmp counter,2 ble .cont18 nop ld [%fp+tmp_counter],%i3 sub %o2,stridex,%g1 stx %i2,[%fp+tmp_py] sub %g1,stridex,%g1 add %i3,counter,counter stx %g1,[%fp+tmp_px] sub counter,2,counter st counter,[%fp+tmp_counter] ba .cont18 or %g0,2,counter .align 16 .update19: cmp counter,5 ble .cont19 nop add %i2,stridey,%i1 stx %i3,[%fp+tmp_px] add %i1,stridey,%i1 stx %i1,[%fp+tmp_py] sub counter,5,counter st counter,[%fp+tmp_counter] ba .cont19 or %g0,5,counter .align 16 .update20: cmp counter,5 ble .cont20 nop add %i2,stridey,%i1 stx %i3,[%fp+tmp_px] add %i1,stridey,%i1 stx %i1,[%fp+tmp_py] sub counter,5,counter st counter,[%fp+tmp_counter] ba .cont20 or %g0,5,counter .align 16 .update21: cmp counter,3 ble .cont21 fzeros %f0 ld [%fp+tmp_counter],%o2 sub %i3,stridex,%i1 stx %i2,[%fp+tmp_py] sub %i1,stridex,%i1 add %o2,counter,counter stx %i1,[%fp+tmp_px] sub counter,3,counter st counter,[%fp+tmp_counter] ba .cont21 or %g0,3,counter .align 16 .update22: cmp counter,3 ble .cont22 fzeros %f2 ld [%fp+tmp_counter],%g1 sub %i3,stridex,%i2 stx %i2,[%fp+tmp_px] add %g1,counter,counter stx %o4,[%fp+tmp_py] sub counter,3,counter st counter,[%fp+tmp_counter] ba .cont22 or %g0,3,counter .stridex_zero: ld [%fp+tmp_counter],counter stx %i3,[%fp+tmp_py] cmp counter,0 ble,pn %icc,.exit lda [%i1]0x82,%i1 ! (Y0_2) ax0 = *px; and %i1,MASK_0x7fffffff,%i3 ! (Y0_2) exp0 = ax0 & 0x7fffffff; sub %i3,%l6,%l6 and %i1,MASK_0x007fffff,%g5 ! (Y0_2) ax0 &= 0x007fffff; srl %i3,23,%o3 ! (Y0_2) exp0 >>= 23; srl %l6,31,%l6 st %l6,[%fp+tmp5] add %g5,CONST_0x8000,%i3 ! (Y0_2) i0 = ax0 + 0x8000; sethi %hi(0xffff0000),%l6 sub %o3,127,%o3 ! (Y0_2) exp0 -= 127; and %i3,%l6,%i3 ! (Y0_2) i0 &= 0xffff0000; sll %o3,8,%o4 ! (Y0_2) exp0 <<= 8; st %o4,[%fp+tmp3] ! (Y0_2) STORE exp0 sra %i3,12,%o0 ! (Y0_2) ind0 = i0 >> 12; sub %g5,%i3,%o4 ! (Y0_2) i0 = ax0 - i0; st %o4,[%fp+tmp2] ! (Y0_2) STORE i0 and %o0,-8,%g5 ! (Y0_2) ind0 &= -8; ld [%fp+tmp2],%f14 ! (Y0_2) dtmp0 = (double) i0; add %l2,%g5,%g1 ! (Y0_2) (char*)__mt_constlog4f + ind0 ldd [%g1+8],%f48 ! (Y0_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); fitod %f14,%f60 ! (Y0_2) dtmp0 = (double) i0; fmuld %f60,%f48,%f48 ! (Y0_2) y0 = dtmp0 * dtmp1; fmuld KA3,%f48,%f62 ! (Y0_2) dtmp0 = KA3 * y0; faddd %f62,KA2,%f22 ! (Y0_2) dtmp0 += KA2; fmuld %f22,%f48,%f26 ! (Y0_2) dtmp0 *= y0; faddd %f26,KA1,%f50 ! (Y0_2) dtmp0 += KA1; ld [%fp+tmp3],%f4 ! (Y0_2) dtmp1 = (double) exp0; fitod %f4,%f26 ! (Y0_1) dtmp1 = (double) exp0; fmuld %f50,%f48,%f50 ! (Y0_1) dtmp0 *= y0; ldd [%l2+%g5],%f60 ! (Y0_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); faddd %f50,KA0,%f58 ! (Y0_1) dtmp0 += KA0; faddd %f60,%f26,%f26 ! (Y0_1) yy0 = dtmp0 + dtmp1; fmuld %f58,%f48,%f48 ! (Y0_1) dtmp0 *= y0; sub %l2,3200,%o4 sub %l2,1152-600,%o3 faddd %f26,%f48,%f46 ! (Y0_1) yy0 += dtmp0; or %g0,%i5,%g1 sethi %hi(0x7f800000),%o1 .xbegin: ld [%fp+tmp_counter],counter ldx [%fp+tmp_py],%o5 st %g0,[%fp+tmp_counter] .xbegin1: subcc counter,1,counter bneg,pn %icc,.exit nop lda [%o5]0x82,%i5 ! (Y0_0) ay = py[0]; lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; and %i5,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff cmp %i3,%o1 bge,pn %icc,.xspec nop fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; fmuld %f52,%f46,%f26 ! (Y0_0) yy0 = dtmp0 * yy; add %o5,stridey,%o5 ! py += stridey lda [%o5]0x82,%i5 ! (Y1_0) ay = ((int*)py)[0]; lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; and %i5,MASK_0x7fffffff,%i5 ! (Y1_0) ay &= 0x7fffffff fcmped %fcc0,HTHRESHOLD,%f26 ! (Y0_0) if (yy0 >= HTHRESH) cmp %i5,%o1 bge,pn %icc,.xupdate0 nop .xcont0: fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; fcmped %fcc1,LTHRESHOLD,%f26 ! (Y0_1) if (yy0 <= LTHRESH) add %o5,stridey,%o5 ! py += stridey fmuld %f48,%f46,%f28 ! (Y1_1) yy0 = dtmp0 * yy; lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff fmovdl %fcc0,HTHRESHOLD,%f26 ! (Y0_1) yy0 = HTHRESH; cmp %i3,%o1 bge,pn %icc,.xupdate1 fcmped %fcc2,HTHRESHOLD,%f28 ! (Y1_1) if (yy0 >= HTHRESH) .xcont1: fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; fmovdg %fcc1,LTHRESHOLD,%f26 ! (Y0_1) yy0 = LTHRESH; fcmped %fcc3,LTHRESHOLD,%f28 ! (Y1_1) if (yy0 <= LTHRESH) fmuld %f52,%f46,%f22 ! (Y0_0) yy0 = dtmp0 * yy; fdtoi %f26,%f0 ! (Y0_1) ii0 = (int) yy0; add %o5,stridey,%o5 ! py += stridey st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 lda [%o5]0x82,%l7 ! (Y1_0) ay = ((int*)py)[0]; lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; fmovdl %fcc2,HTHRESHOLD,%f28 ! (Y1_1) yy0 = HTHRESH; and %l7,MASK_0x7fffffff,%l7 ! (Y1_0) ay &= 0x7fffffff fcmped %fcc0,HTHRESHOLD,%f22 ! (Y0_0) if (yy0 >= HTHRESH) cmp %l7,%o1 bge,pn %icc,.xupdate2 nop .xcont2: fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; fmovdg %fcc3,LTHRESHOLD,%f28 ! (Y1_2) yy0 = LTHRESH; fcmped %fcc1,LTHRESHOLD,%f22 ! (Y0_1) if (yy0 <= LTHRESH) fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; add %o5,stridey,%o5 ! py += stridey fmuld %f48,%f46,%f24 ! (Y1_1) yy0 = dtmp0 * yy; fdtoi %f28,%f3 ! (Y1_2) ii0 = (int) yy0; lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 fsubd %f26,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff fmovdl %fcc0,HTHRESHOLD,%f22 ! (Y0_1) yy0 = HTHRESH; cmp %i3,%o1 bge,pn %icc,.xupdate3 fcmped %fcc2,HTHRESHOLD,%f24 ! (Y1_1) if (yy0 >= HTHRESH) .xcont3: ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; fmovdg %fcc1,LTHRESHOLD,%f22 ! (Y0_1) yy0 = LTHRESH; sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; and %i2,255,%l7 ! (Y0_2) ii0 &= 255; fcmped %fcc3,LTHRESHOLD,%f24 ! (Y1_1) if (yy0 <= LTHRESH) fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; and %l6,-4,%g5 ! (Y0_2) i0 &= -4; faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; fmuld %f52,%f46,%f26 ! (Y0_0) yy0 = dtmp0 * yy; ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] fdtoi %f22,%f0 ! (Y0_1) ii0 = (int) yy0; ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; add %o5,stridey,%o5 ! py += stridey st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 fsubd %f28,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; lda [%o5]0x82,%i5 ! (Y1_0) ay = ((int*)py)[0]; fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; fmovdl %fcc2,HTHRESHOLD,%f24 ! (Y1_1) yy0 = HTHRESH; lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 and %i5,MASK_0x7fffffff,%i5 ! (Y1_0) ay &= 0x7fffffff fcmped %fcc0,HTHRESHOLD,%f26 ! (Y0_0) if (yy0 >= HTHRESH) cmp %i5,%o1 bge,pn %icc,.xupdate4 .xcont4: fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; fmovdg %fcc3,LTHRESHOLD,%f24 ! (Y1_2) yy0 = LTHRESH; sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; and %g5,255,%i1 ! (Y1_3) ii0 &= 255; fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; fcmped %fcc1,LTHRESHOLD,%f26 ! (Y0_1) if (yy0 <= LTHRESH) sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; and %i0,-4,%i0 ! (Y1_3) i0 &= -4; fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150) + i0))[0]; faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; add %o5,stridey,%o5 ! py += stridey ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; fmuld %f48,%f46,%f28 ! (Y1_1) yy0 = dtmp0 * yy; fdtoi %f24,%f3 ! (Y1_2) ii0 = (int) yy0; lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 fsubd %f22,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff fmovdl %fcc0,HTHRESHOLD,%f26 ! (Y0_1) yy0 = HTHRESH; fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; cmp %i3,%o1 bge,pn %icc,.xupdate5 fcmped %fcc2,HTHRESHOLD,%f28 ! (Y1_1) if (yy0 >= HTHRESH) .xcont5: fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; add %g1,stridez,%i3 ! pz += stridez st %f1,[%g1] ! (Y0_3) pz[0] = ftmp0; subcc counter,1,counter bneg,pn %icc,.xbegin or %g0,%i3,%g1 ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; fmovdg %fcc1,LTHRESHOLD,%f26 ! (Y0_1) yy0 = LTHRESH; fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; and %i2,255,%l7 ! (Y0_2) ii0 &= 255; fcmped %fcc3,LTHRESHOLD,%f28 ! (Y1_1) if (yy0 <= LTHRESH) fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; and %l6,-4,%g5 ! (Y0_2) i0 &= -4; faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; fmuld %f52,%f46,%f22 ! (Y0_0) yy0 = dtmp0 * yy; ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] fdtoi %f26,%f0 ! (Y0_1) ii0 = (int) yy0; ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; add %o5,stridey,%o5 ! py += stridey st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 fsubd %f24,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; lda [%o5]0x82,%l7 ! (Y1_0) ay = ((int*)py)[0]; fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; add %i3,stridez,%i5 ! pz += stridez lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; fmovdl %fcc2,HTHRESHOLD,%f28 ! (Y1_1) yy0 = HTHRESH; fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; and %l7,MASK_0x7fffffff,%l7 ! (Y1_0) ay &= 0x7fffffff ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 fcmped %fcc0,HTHRESHOLD,%f22 ! (Y0_0) if (yy0 >= HTHRESH) fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; cmp %l7,%o1 bge,pn %icc,.xupdate6 .xcont6: fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; cmp counter,8 bl,pn %icc,.xtail nop ba .xmain_loop nop .align 16 .xmain_loop: fmovdg %fcc3,LTHRESHOLD,%f28 ! (Y1_2) yy0 = LTHRESH; sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; and %g5,255,%i1 ! (Y1_3) ii0 &= 255; fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; fcmped %fcc1,LTHRESHOLD,%f22 ! (Y0_1) if (yy0 <= LTHRESH) sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; and %i0,-4,%i0 ! (Y1_3) i0 &= -4; fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; sub counter,4,counter ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; add %o5,stridey,%o5 ! py += stridey ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; fmuld %f48,%f46,%f24 ! (Y1_1) yy0 = dtmp0 * yy; fdtoi %f28,%f3 ! (Y1_2) ii0 = (int) yy0; lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 fsubd %f26,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff fmovdl %fcc0,HTHRESHOLD,%f22 ! (Y0_1) yy0 = HTHRESH; fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; cmp %i3,%o1 bge,pn %icc,.xupdate7 fcmped %fcc2,HTHRESHOLD,%f24 ! (Y1_1) if (yy0 >= HTHRESH) .xcont7: fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; add %i5,stridez,%i3 ! pz += stridez st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; fmovdg %fcc1,LTHRESHOLD,%f22 ! (Y0_1) yy0 = LTHRESH; fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; and %i2,255,%l7 ! (Y0_2) ii0 &= 255; fcmped %fcc3,LTHRESHOLD,%f24 ! (Y1_1) if (yy0 <= LTHRESH) fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; and %l6,-4,%g5 ! (Y0_2) i0 &= -4; faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; fmuld %f52,%f46,%f26 ! (Y0_0) yy0 = dtmp0 * yy; ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] fdtoi %f22,%f0 ! (Y0_1) ii0 = (int) yy0; ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; add %o5,stridey,%o5 ! py += stridey st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 fsubd %f28,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; lda [%o5]0x82,%i5 ! (Y1_0) ay = ((int*)py)[0]; fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; fmovdl %fcc2,HTHRESHOLD,%f24 ! (Y1_1) yy0 = HTHRESH; lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 and %i5,MASK_0x7fffffff,%i5 ! (Y1_0) ay &= 0x7fffffff fcmped %fcc0,HTHRESHOLD,%f26 ! (Y0_0) if (yy0 >= HTHRESH) fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; cmp %i5,%o1 bge,pn %icc,.xupdate8 .xcont8: fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; add %i3,stridez,%i5 ! pz += stridez st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; fmovdg %fcc3,LTHRESHOLD,%f24 ! (Y1_2) yy0 = LTHRESH; sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; and %g5,255,%i1 ! (Y1_3) ii0 &= 255; fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; fcmped %fcc1,LTHRESHOLD,%f26 ! (Y0_1) if (yy0 <= LTHRESH) sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; and %i0,-4,%i0 ! (Y1_3) i0 &= -4; fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; add %o5,stridey,%o5 ! py += stridey ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; fmuld %f48,%f46,%f28 ! (Y1_1) yy0 = dtmp0 * yy; fdtoi %f24,%f3 ! (Y1_2) ii0 = (int) yy0; lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 fsubd %f22,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff fmovdl %fcc0,HTHRESHOLD,%f26 ! (Y0_1) yy0 = HTHRESH; fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; cmp %i3,%o1 bge,pn %icc,.xupdate9 fcmped %fcc2,HTHRESHOLD,%f28 ! (Y1_1) if (yy0 >= HTHRESH) .xcont9: fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; add %i5,stridez,%i3 ! pz += stridez st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; fmovdg %fcc1,LTHRESHOLD,%f26 ! (Y0_1) yy0 = LTHRESH; fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; and %i2,255,%l7 ! (Y0_2) ii0 &= 255; fcmped %fcc3,LTHRESHOLD,%f28 ! (Y1_1) if (yy0 <= LTHRESH) fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; and %l6,-4,%g5 ! (Y0_2) i0 &= -4; faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; fmuld %f52,%f46,%f22 ! (Y0_0) yy0 = dtmp0 * yy; ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] fdtoi %f26,%f0 ! (Y0_1) ii0 = (int) yy0; ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; add %o5,stridey,%o5 ! py += stridey st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 fsubd %f24,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; lda [%o5]0x82,%l7 ! (Y1_0) ay = ((int*)py)[0]; fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; add %i3,stridez,%i5 ! pz += stridez lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; fmovdl %fcc2,HTHRESHOLD,%f28 ! (Y1_1) yy0 = HTHRESH; fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; and %l7,MASK_0x7fffffff,%l7 ! (Y1_0) ay &= 0x7fffffff ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 fcmped %fcc0,HTHRESHOLD,%f22 ! (Y0_0) if (yy0 >= HTHRESH) fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; cmp %l7,%o1 bge,pn %icc,.xupdate10 .xcont10: fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; cmp counter,4 bge,pt %icc,.xmain_loop fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; .xtail: subcc counter,1,counter bneg,pn %icc,.xbegin or %g0,%i5,%g1 fmovdg %fcc3,LTHRESHOLD,%f28 ! (Y1_2) yy0 = LTHRESH; sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; and %g5,255,%i1 ! (Y1_3) ii0 &= 255; fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; fcmped %fcc1,LTHRESHOLD,%f22 ! (Y0_1) if (yy0 <= LTHRESH) sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; and %i0,-4,%i0 ! (Y1_3) i0 &= -4; fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; add %o5,stridey,%o5 ! py += stridey ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; fmuld %f48,%f46,%f24 ! (Y1_1) yy0 = dtmp0 * yy; fdtoi %f28,%f3 ! (Y1_2) ii0 = (int) yy0; lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 fsubd %f26,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff fmovdl %fcc0,HTHRESHOLD,%f22 ! (Y0_1) yy0 = HTHRESH; fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; cmp %i3,%o1 bge,pn %icc,.xupdate11 fcmped %fcc2,HTHRESHOLD,%f24 ! (Y1_1) if (yy0 >= HTHRESH) .xcont11: fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; add %i5,stridez,%i3 ! pz += stridez st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; subcc counter,1,counter bneg,pn %icc,.xbegin or %g0,%i3,%g1 ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; fmovdg %fcc1,LTHRESHOLD,%f22 ! (Y0_1) yy0 = LTHRESH; fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; and %i2,255,%l7 ! (Y0_2) ii0 &= 255; fcmped %fcc3,LTHRESHOLD,%f24 ! (Y1_1) if (yy0 <= LTHRESH) fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; and %l6,-4,%g5 ! (Y0_2) i0 &= -4; faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; fmuld %f52,%f46,%f26 ! (Y0_0) yy0 = dtmp0 * yy; ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] fdtoi %f22,%f0 ! (Y0_1) ii0 = (int) yy0; ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 fsubd %f28,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; fmovdl %fcc2,HTHRESHOLD,%f24 ! (Y1_1) yy0 = HTHRESH; fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 fcmped %fcc0,HTHRESHOLD,%f26 ! (Y0_0) if (yy0 >= HTHRESH) fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; add %i3,stridez,%i5 ! pz += stridez st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; subcc counter,1,counter bneg,pn %icc,.xbegin or %g0,%i5,%g1 fmovdg %fcc3,LTHRESHOLD,%f24 ! (Y1_2) yy0 = LTHRESH; sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; and %g5,255,%i1 ! (Y1_3) ii0 &= 255; fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; fcmped %fcc1,LTHRESHOLD,%f26 ! (Y0_1) if (yy0 <= LTHRESH) sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; and %i0,-4,%i0 ! (Y1_3) i0 &= -4; fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; fdtoi %f24,%f3 ! (Y1_2) ii0 = (int) yy0; faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 fsubd %f22,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; fmovdl %fcc0,HTHRESHOLD,%f26 ! (Y0_1) yy0 = HTHRESH; fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; add %i5,stridez,%i3 ! pz += stridez st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; subcc counter,1,counter bneg,pn %icc,.xbegin or %g0,%i3,%g1 ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; fmovdg %fcc1,LTHRESHOLD,%f26 ! (Y0_1) yy0 = LTHRESH; fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; and %i2,255,%l7 ! (Y0_2) ii0 &= 255; fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; and %l6,-4,%g5 ! (Y0_2) i0 &= -4; faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150) + i0))[0]; fdtoi %f26,%f0 ! (Y0_1) ii0 = (int) yy0; ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 fsubd %f24,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; add %i3,stridez,%i5 ! pz += stridez fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; subcc counter,1,counter bneg,pn %icc,.xbegin or %g0,%i5,%g1 fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; and %g5,255,%i1 ! (Y1_3) ii0 &= 255; fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; and %i0,-4,%i0 ! (Y1_3) i0 &= -4; fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; fsubd %f26,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; add %i5,stridez,%i3 ! pz += stridez st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; subcc counter,1,counter bneg,pn %icc,.xbegin or %g0,%i3,%g1 ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; and %i2,255,%l7 ! (Y0_2) ii0 &= 255; sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; and %l6,-4,%g5 ! (Y0_2) i0 &= -4; faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; add %i3,stridez,%i5 ! pz += stridez st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; subcc counter,1,counter bneg,pn %icc,.xbegin or %g0,%i5,%g1 fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; add %i5,stridez,%i3 ! pz += stridez st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; ba .xbegin or %g0,%i3,%g1 .xspec: bg,a,pn %icc,.yisnan ! if (ay > 0x7f800000) /* |Y| = Nan */ ld [%o5],%f8 ! fy = *py; ld [%fp+tmp5],%l6 ! LOAD (ax-0x3f800000)<<63 srl %i5,31,%i5 ! uy >> 31 cmp %l6,%i5 ! if((ax < 0x3f800000) != (uy >> 31)) be,a,pn %icc,.xspec_exit ! if((ax < 0x3f800000) != (uy >> 31)) st %i3,[%g1] ! fy = *(float*)&ay; st %g0,[%g1] ! fy = ZERO add %g1,stridez,%g1 ba .xbegin1 add %o5,stridey,%o5 .yisnan: fmuls %f8,%f8,%f8 ! fy = *py * *py; /* |Y| = Nan */ st %f8,[%g1] .xspec_exit: add %g1,stridez,%g1 ba .xbegin1 add %o5,stridey,%o5 .align 16 .xupdate0: cmp counter,0 ble .xcont0 fzeros %f7 stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont0 or %g0,0,counter .align 16 .xupdate1: cmp counter,1 ble .xcont1 fzeros %f5 sub counter,1,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont1 or %g0,1,counter .align 16 .xupdate2: cmp counter,2 ble .xcont2 fzeros %f7 sub counter,2,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont2 or %g0,2,counter .align 16 .xupdate3: cmp counter,3 ble .xcont3 fzeros %f5 sub counter,3,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont3 or %g0,3,counter .align 16 .xupdate4: cmp counter,4 ble .xcont4 fzeros %f7 sub counter,4,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont4 or %g0,4,counter .align 16 .xupdate5: cmp counter,5 ble .xcont5 fzeros %f5 sub counter,5,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont5 or %g0,5,counter .align 16 .xupdate6: cmp counter,5 ble .xcont6 fzeros %f7 sub counter,5,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont6 or %g0,5,counter .align 16 .xupdate7: cmp counter,2 ble .xcont7 fzeros %f5 sub counter,2,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont7 or %g0,2,counter .align 16 .xupdate8: cmp counter,3 ble .xcont8 fzeros %f7 sub counter,3,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont8 or %g0,3,counter .align 16 .xupdate9: cmp counter,4 ble .xcont9 fzeros %f5 sub counter,4,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont9 or %g0,4,counter .align 16 .xupdate10: cmp counter,5 ble .xcont10 fzeros %f7 sub counter,5,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont10 or %g0,5,counter .align 16 .xupdate11: cmp counter,5 ble .xcont11 fzeros %f5 sub counter,5,counter stx %o5,[%fp+tmp_py] st counter,[%fp+tmp_counter] ba .xcont11 or %g0,5,counter SET_SIZE(__vpowf)