1*25c28e83SPiotr Jasiukajtis/* 2*25c28e83SPiotr Jasiukajtis * CDDL HEADER START 3*25c28e83SPiotr Jasiukajtis * 4*25c28e83SPiotr Jasiukajtis * The contents of this file are subject to the terms of the 5*25c28e83SPiotr Jasiukajtis * Common Development and Distribution License (the "License"). 6*25c28e83SPiotr Jasiukajtis * You may not use this file except in compliance with the License. 7*25c28e83SPiotr Jasiukajtis * 8*25c28e83SPiotr Jasiukajtis * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*25c28e83SPiotr Jasiukajtis * or http://www.opensolaris.org/os/licensing. 10*25c28e83SPiotr Jasiukajtis * See the License for the specific language governing permissions 11*25c28e83SPiotr Jasiukajtis * and limitations under the License. 12*25c28e83SPiotr Jasiukajtis * 13*25c28e83SPiotr Jasiukajtis * When distributing Covered Code, include this CDDL HEADER in each 14*25c28e83SPiotr Jasiukajtis * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*25c28e83SPiotr Jasiukajtis * If applicable, add the following below this CDDL HEADER, with the 16*25c28e83SPiotr Jasiukajtis * fields enclosed by brackets "[]" replaced with your own identifying 17*25c28e83SPiotr Jasiukajtis * information: Portions Copyright [yyyy] [name of copyright owner] 18*25c28e83SPiotr Jasiukajtis * 19*25c28e83SPiotr Jasiukajtis * CDDL HEADER END 20*25c28e83SPiotr Jasiukajtis */ 21*25c28e83SPiotr Jasiukajtis/* 22*25c28e83SPiotr Jasiukajtis * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 23*25c28e83SPiotr Jasiukajtis */ 24*25c28e83SPiotr Jasiukajtis/* 25*25c28e83SPiotr Jasiukajtis * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 26*25c28e83SPiotr Jasiukajtis * Use is subject to license terms. 27*25c28e83SPiotr Jasiukajtis */ 28*25c28e83SPiotr Jasiukajtis 29*25c28e83SPiotr Jasiukajtis .file "__vpowf.S" 30*25c28e83SPiotr Jasiukajtis 31*25c28e83SPiotr Jasiukajtis#include "libm.h" 32*25c28e83SPiotr Jasiukajtis 33*25c28e83SPiotr Jasiukajtis RO_DATA 34*25c28e83SPiotr Jasiukajtis .align 64 35*25c28e83SPiotr Jasiukajtis 36*25c28e83SPiotr Jasiukajtis! __mt_constexp2fa: 37*25c28e83SPiotr Jasiukajtis .word 0x3ff00000, 0x00000000, 0x3ff00b1a, 0xfa5abcbf 38*25c28e83SPiotr Jasiukajtis .word 0x3ff0163d, 0xa9fb3335, 0x3ff02168, 0x143b0281 39*25c28e83SPiotr Jasiukajtis .word 0x3ff02c9a, 0x3e778061, 0x3ff037d4, 0x2e11bbcc 40*25c28e83SPiotr Jasiukajtis .word 0x3ff04315, 0xe86e7f85, 0x3ff04e5f, 0x72f654b1 41*25c28e83SPiotr Jasiukajtis .word 0x3ff059b0, 0xd3158574, 0x3ff0650a, 0x0e3c1f89 42*25c28e83SPiotr Jasiukajtis .word 0x3ff0706b, 0x29ddf6de, 0x3ff07bd4, 0x2b72a836 43*25c28e83SPiotr Jasiukajtis .word 0x3ff08745, 0x18759bc8, 0x3ff092bd, 0xf66607e0 44*25c28e83SPiotr Jasiukajtis .word 0x3ff09e3e, 0xcac6f383, 0x3ff0a9c7, 0x9b1f3919 45*25c28e83SPiotr Jasiukajtis .word 0x3ff0b558, 0x6cf9890f, 0x3ff0c0f1, 0x45e46c85 46*25c28e83SPiotr Jasiukajtis .word 0x3ff0cc92, 0x2b7247f7, 0x3ff0d83b, 0x23395dec 47*25c28e83SPiotr Jasiukajtis .word 0x3ff0e3ec, 0x32d3d1a2, 0x3ff0efa5, 0x5fdfa9c5 48*25c28e83SPiotr Jasiukajtis .word 0x3ff0fb66, 0xaffed31b, 0x3ff10730, 0x28d7233e 49*25c28e83SPiotr Jasiukajtis .word 0x3ff11301, 0xd0125b51, 0x3ff11edb, 0xab5e2ab6 50*25c28e83SPiotr Jasiukajtis .word 0x3ff12abd, 0xc06c31cc, 0x3ff136a8, 0x14f204ab 51*25c28e83SPiotr Jasiukajtis .word 0x3ff1429a, 0xaea92de0, 0x3ff14e95, 0x934f312e 52*25c28e83SPiotr Jasiukajtis .word 0x3ff15a98, 0xc8a58e51, 0x3ff166a4, 0x5471c3c2 53*25c28e83SPiotr Jasiukajtis .word 0x3ff172b8, 0x3c7d517b, 0x3ff17ed4, 0x8695bbc0 54*25c28e83SPiotr Jasiukajtis .word 0x3ff18af9, 0x388c8dea, 0x3ff19726, 0x58375d2f 55*25c28e83SPiotr Jasiukajtis .word 0x3ff1a35b, 0xeb6fcb75, 0x3ff1af99, 0xf8138a1c 56*25c28e83SPiotr Jasiukajtis .word 0x3ff1bbe0, 0x84045cd4, 0x3ff1c82f, 0x95281c6b 57*25c28e83SPiotr Jasiukajtis .word 0x3ff1d487, 0x3168b9aa, 0x3ff1e0e7, 0x5eb44027 58*25c28e83SPiotr Jasiukajtis .word 0x3ff1ed50, 0x22fcd91d, 0x3ff1f9c1, 0x8438ce4d 59*25c28e83SPiotr Jasiukajtis .word 0x3ff2063b, 0x88628cd6, 0x3ff212be, 0x3578a819 60*25c28e83SPiotr Jasiukajtis .word 0x3ff21f49, 0x917ddc96, 0x3ff22bdd, 0xa27912d1 61*25c28e83SPiotr Jasiukajtis .word 0x3ff2387a, 0x6e756238, 0x3ff2451f, 0xfb82140a 62*25c28e83SPiotr Jasiukajtis .word 0x3ff251ce, 0x4fb2a63f, 0x3ff25e85, 0x711ece75 63*25c28e83SPiotr Jasiukajtis .word 0x3ff26b45, 0x65e27cdd, 0x3ff2780e, 0x341ddf29 64*25c28e83SPiotr Jasiukajtis .word 0x3ff284df, 0xe1f56381, 0x3ff291ba, 0x7591bb70 65*25c28e83SPiotr Jasiukajtis .word 0x3ff29e9d, 0xf51fdee1, 0x3ff2ab8a, 0x66d10f13 66*25c28e83SPiotr Jasiukajtis .word 0x3ff2b87f, 0xd0dad990, 0x3ff2c57e, 0x39771b2f 67*25c28e83SPiotr Jasiukajtis .word 0x3ff2d285, 0xa6e4030b, 0x3ff2df96, 0x1f641589 68*25c28e83SPiotr Jasiukajtis .word 0x3ff2ecaf, 0xa93e2f56, 0x3ff2f9d2, 0x4abd886b 69*25c28e83SPiotr Jasiukajtis .word 0x3ff306fe, 0x0a31b715, 0x3ff31432, 0xedeeb2fd 70*25c28e83SPiotr Jasiukajtis .word 0x3ff32170, 0xfc4cd831, 0x3ff32eb8, 0x3ba8ea32 71*25c28e83SPiotr Jasiukajtis .word 0x3ff33c08, 0xb26416ff, 0x3ff34962, 0x66e3fa2d 72*25c28e83SPiotr Jasiukajtis .word 0x3ff356c5, 0x5f929ff1, 0x3ff36431, 0xa2de883b 73*25c28e83SPiotr Jasiukajtis .word 0x3ff371a7, 0x373aa9cb, 0x3ff37f26, 0x231e754a 74*25c28e83SPiotr Jasiukajtis .word 0x3ff38cae, 0x6d05d866, 0x3ff39a40, 0x1b7140ef 75*25c28e83SPiotr Jasiukajtis .word 0x3ff3a7db, 0x34e59ff7, 0x3ff3b57f, 0xbfec6cf4 76*25c28e83SPiotr Jasiukajtis .word 0x3ff3c32d, 0xc313a8e5, 0x3ff3d0e5, 0x44ede173 77*25c28e83SPiotr Jasiukajtis .word 0x3ff3dea6, 0x4c123422, 0x3ff3ec70, 0xdf1c5175 78*25c28e83SPiotr Jasiukajtis .word 0x3ff3fa45, 0x04ac801c, 0x3ff40822, 0xc367a024 79*25c28e83SPiotr Jasiukajtis .word 0x3ff4160a, 0x21f72e2a, 0x3ff423fb, 0x2709468a 80*25c28e83SPiotr Jasiukajtis .word 0x3ff431f5, 0xd950a897, 0x3ff43ffa, 0x3f84b9d4 81*25c28e83SPiotr Jasiukajtis .word 0x3ff44e08, 0x6061892d, 0x3ff45c20, 0x42a7d232 82*25c28e83SPiotr Jasiukajtis .word 0x3ff46a41, 0xed1d0057, 0x3ff4786d, 0x668b3237 83*25c28e83SPiotr Jasiukajtis .word 0x3ff486a2, 0xb5c13cd0, 0x3ff494e1, 0xe192aed2 84*25c28e83SPiotr Jasiukajtis .word 0x3ff4a32a, 0xf0d7d3de, 0x3ff4b17d, 0xea6db7d7 85*25c28e83SPiotr Jasiukajtis .word 0x3ff4bfda, 0xd5362a27, 0x3ff4ce41, 0xb817c114 86*25c28e83SPiotr Jasiukajtis .word 0x3ff4dcb2, 0x99fddd0d, 0x3ff4eb2d, 0x81d8abff 87*25c28e83SPiotr Jasiukajtis .word 0x3ff4f9b2, 0x769d2ca7, 0x3ff50841, 0x7f4531ee 88*25c28e83SPiotr Jasiukajtis .word 0x3ff516da, 0xa2cf6642, 0x3ff5257d, 0xe83f4eef 89*25c28e83SPiotr Jasiukajtis .word 0x3ff5342b, 0x569d4f82, 0x3ff542e2, 0xf4f6ad27 90*25c28e83SPiotr Jasiukajtis .word 0x3ff551a4, 0xca5d920f, 0x3ff56070, 0xdde910d2 91*25c28e83SPiotr Jasiukajtis .word 0x3ff56f47, 0x36b527da, 0x3ff57e27, 0xdbe2c4cf 92*25c28e83SPiotr Jasiukajtis .word 0x3ff58d12, 0xd497c7fd, 0x3ff59c08, 0x27ff07cc 93*25c28e83SPiotr Jasiukajtis .word 0x3ff5ab07, 0xdd485429, 0x3ff5ba11, 0xfba87a03 94*25c28e83SPiotr Jasiukajtis .word 0x3ff5c926, 0x8a5946b7, 0x3ff5d845, 0x90998b93 95*25c28e83SPiotr Jasiukajtis .word 0x3ff5e76f, 0x15ad2148, 0x3ff5f6a3, 0x20dceb71 96*25c28e83SPiotr Jasiukajtis .word 0x3ff605e1, 0xb976dc09, 0x3ff6152a, 0xe6cdf6f4 97*25c28e83SPiotr Jasiukajtis .word 0x3ff6247e, 0xb03a5585, 0x3ff633dd, 0x1d1929fd 98*25c28e83SPiotr Jasiukajtis .word 0x3ff64346, 0x34ccc320, 0x3ff652b9, 0xfebc8fb7 99*25c28e83SPiotr Jasiukajtis .word 0x3ff66238, 0x82552225, 0x3ff671c1, 0xc70833f6 100*25c28e83SPiotr Jasiukajtis .word 0x3ff68155, 0xd44ca973, 0x3ff690f4, 0xb19e9538 101*25c28e83SPiotr Jasiukajtis .word 0x3ff6a09e, 0x667f3bcd, 0x3ff6b052, 0xfa75173e 102*25c28e83SPiotr Jasiukajtis .word 0x3ff6c012, 0x750bdabf, 0x3ff6cfdc, 0xddd47645 103*25c28e83SPiotr Jasiukajtis .word 0x3ff6dfb2, 0x3c651a2f, 0x3ff6ef92, 0x98593ae5 104*25c28e83SPiotr Jasiukajtis .word 0x3ff6ff7d, 0xf9519484, 0x3ff70f74, 0x66f42e87 105*25c28e83SPiotr Jasiukajtis .word 0x3ff71f75, 0xe8ec5f74, 0x3ff72f82, 0x86ead08a 106*25c28e83SPiotr Jasiukajtis .word 0x3ff73f9a, 0x48a58174, 0x3ff74fbd, 0x35d7cbfd 107*25c28e83SPiotr Jasiukajtis .word 0x3ff75feb, 0x564267c9, 0x3ff77024, 0xb1ab6e09 108*25c28e83SPiotr Jasiukajtis .word 0x3ff78069, 0x4fde5d3f, 0x3ff790b9, 0x38ac1cf6 109*25c28e83SPiotr Jasiukajtis .word 0x3ff7a114, 0x73eb0187, 0x3ff7b17b, 0x0976cfdb 110*25c28e83SPiotr Jasiukajtis .word 0x3ff7c1ed, 0x0130c132, 0x3ff7d26a, 0x62ff86f0 111*25c28e83SPiotr Jasiukajtis .word 0x3ff7e2f3, 0x36cf4e62, 0x3ff7f387, 0x8491c491 112*25c28e83SPiotr Jasiukajtis .word 0x3ff80427, 0x543e1a12, 0x3ff814d2, 0xadd106d9 113*25c28e83SPiotr Jasiukajtis .word 0x3ff82589, 0x994cce13, 0x3ff8364c, 0x1eb941f7 114*25c28e83SPiotr Jasiukajtis .word 0x3ff8471a, 0x4623c7ad, 0x3ff857f4, 0x179f5b21 115*25c28e83SPiotr Jasiukajtis .word 0x3ff868d9, 0x9b4492ed, 0x3ff879ca, 0xd931a436 116*25c28e83SPiotr Jasiukajtis .word 0x3ff88ac7, 0xd98a6699, 0x3ff89bd0, 0xa478580f 117*25c28e83SPiotr Jasiukajtis .word 0x3ff8ace5, 0x422aa0db, 0x3ff8be05, 0xbad61778 118*25c28e83SPiotr Jasiukajtis .word 0x3ff8cf32, 0x16b5448c, 0x3ff8e06a, 0x5e0866d9 119*25c28e83SPiotr Jasiukajtis .word 0x3ff8f1ae, 0x99157736, 0x3ff902fe, 0xd0282c8a 120*25c28e83SPiotr Jasiukajtis .word 0x3ff9145b, 0x0b91ffc6, 0x3ff925c3, 0x53aa2fe2 121*25c28e83SPiotr Jasiukajtis .word 0x3ff93737, 0xb0cdc5e5, 0x3ff948b8, 0x2b5f98e5 122*25c28e83SPiotr Jasiukajtis .word 0x3ff95a44, 0xcbc8520f, 0x3ff96bdd, 0x9a7670b3 123*25c28e83SPiotr Jasiukajtis .word 0x3ff97d82, 0x9fde4e50, 0x3ff98f33, 0xe47a22a2 124*25c28e83SPiotr Jasiukajtis .word 0x3ff9a0f1, 0x70ca07ba, 0x3ff9b2bb, 0x4d53fe0d 125*25c28e83SPiotr Jasiukajtis .word 0x3ff9c491, 0x82a3f090, 0x3ff9d674, 0x194bb8d5 126*25c28e83SPiotr Jasiukajtis .word 0x3ff9e863, 0x19e32323, 0x3ff9fa5e, 0x8d07f29e 127*25c28e83SPiotr Jasiukajtis .word 0x3ffa0c66, 0x7b5de565, 0x3ffa1e7a, 0xed8eb8bb 128*25c28e83SPiotr Jasiukajtis .word 0x3ffa309b, 0xec4a2d33, 0x3ffa42c9, 0x80460ad8 129*25c28e83SPiotr Jasiukajtis .word 0x3ffa5503, 0xb23e255d, 0x3ffa674a, 0x8af46052 130*25c28e83SPiotr Jasiukajtis .word 0x3ffa799e, 0x1330b358, 0x3ffa8bfe, 0x53c12e59 131*25c28e83SPiotr Jasiukajtis .word 0x3ffa9e6b, 0x5579fdbf, 0x3ffab0e5, 0x21356eba 132*25c28e83SPiotr Jasiukajtis .word 0x3ffac36b, 0xbfd3f37a, 0x3ffad5ff, 0x3a3c2774 133*25c28e83SPiotr Jasiukajtis .word 0x3ffae89f, 0x995ad3ad, 0x3ffafb4c, 0xe622f2ff 134*25c28e83SPiotr Jasiukajtis .word 0x3ffb0e07, 0x298db666, 0x3ffb20ce, 0x6c9a8952 135*25c28e83SPiotr Jasiukajtis .word 0x3ffb33a2, 0xb84f15fb, 0x3ffb4684, 0x15b749b1 136*25c28e83SPiotr Jasiukajtis .word 0x3ffb5972, 0x8de5593a, 0x3ffb6c6e, 0x29f1c52a 137*25c28e83SPiotr Jasiukajtis .word 0x3ffb7f76, 0xf2fb5e47, 0x3ffb928c, 0xf22749e4 138*25c28e83SPiotr Jasiukajtis .word 0x3ffba5b0, 0x30a1064a, 0x3ffbb8e0, 0xb79a6f1f 139*25c28e83SPiotr Jasiukajtis .word 0x3ffbcc1e, 0x904bc1d2, 0x3ffbdf69, 0xc3f3a207 140*25c28e83SPiotr Jasiukajtis .word 0x3ffbf2c2, 0x5bd71e09, 0x3ffc0628, 0x6141b33d 141*25c28e83SPiotr Jasiukajtis .word 0x3ffc199b, 0xdd85529c, 0x3ffc2d1c, 0xd9fa652c 142*25c28e83SPiotr Jasiukajtis .word 0x3ffc40ab, 0x5fffd07a, 0x3ffc5447, 0x78fafb22 143*25c28e83SPiotr Jasiukajtis .word 0x3ffc67f1, 0x2e57d14b, 0x3ffc7ba8, 0x8988c933 144*25c28e83SPiotr Jasiukajtis .word 0x3ffc8f6d, 0x9406e7b5, 0x3ffca340, 0x5751c4db 145*25c28e83SPiotr Jasiukajtis .word 0x3ffcb720, 0xdcef9069, 0x3ffccb0f, 0x2e6d1675 146*25c28e83SPiotr Jasiukajtis .word 0x3ffcdf0b, 0x555dc3fa, 0x3ffcf315, 0x5b5bab74 147*25c28e83SPiotr Jasiukajtis .word 0x3ffd072d, 0x4a07897c, 0x3ffd1b53, 0x2b08c968 148*25c28e83SPiotr Jasiukajtis .word 0x3ffd2f87, 0x080d89f2, 0x3ffd43c8, 0xeacaa1d6 149*25c28e83SPiotr Jasiukajtis .word 0x3ffd5818, 0xdcfba487, 0x3ffd6c76, 0xe862e6d3 150*25c28e83SPiotr Jasiukajtis .word 0x3ffd80e3, 0x16c98398, 0x3ffd955d, 0x71ff6075 151*25c28e83SPiotr Jasiukajtis .word 0x3ffda9e6, 0x03db3285, 0x3ffdbe7c, 0xd63a8315 152*25c28e83SPiotr Jasiukajtis .word 0x3ffdd321, 0xf301b460, 0x3ffde7d5, 0x641c0658 153*25c28e83SPiotr Jasiukajtis .word 0x3ffdfc97, 0x337b9b5f, 0x3ffe1167, 0x6b197d17 154*25c28e83SPiotr Jasiukajtis .word 0x3ffe2646, 0x14f5a129, 0x3ffe3b33, 0x3b16ee12 155*25c28e83SPiotr Jasiukajtis .word 0x3ffe502e, 0xe78b3ff6, 0x3ffe6539, 0x24676d76 156*25c28e83SPiotr Jasiukajtis .word 0x3ffe7a51, 0xfbc74c83, 0x3ffe8f79, 0x77cdb740 157*25c28e83SPiotr Jasiukajtis .word 0x3ffea4af, 0xa2a490da, 0x3ffeb9f4, 0x867cca6e 158*25c28e83SPiotr Jasiukajtis .word 0x3ffecf48, 0x2d8e67f1, 0x3ffee4aa, 0xa2188510 159*25c28e83SPiotr Jasiukajtis .word 0x3ffefa1b, 0xee615a27, 0x3fff0f9c, 0x1cb6412a 160*25c28e83SPiotr Jasiukajtis .word 0x3fff252b, 0x376bba97, 0x3fff3ac9, 0x48dd7274 161*25c28e83SPiotr Jasiukajtis .word 0x3fff5076, 0x5b6e4540, 0x3fff6632, 0x798844f8 162*25c28e83SPiotr Jasiukajtis .word 0x3fff7bfd, 0xad9cbe14, 0x3fff91d8, 0x02243c89 163*25c28e83SPiotr Jasiukajtis .word 0x3fffa7c1, 0x819e90d8, 0x3fffbdba, 0x3692d514 164*25c28e83SPiotr Jasiukajtis .word 0x3fffd3c2, 0x2b8f71f1, 0x3fffe9d9, 0x6b2a23d9 165*25c28e83SPiotr Jasiukajtis 166*25c28e83SPiotr Jasiukajtis! __mt_constexp2fb: 167*25c28e83SPiotr Jasiukajtis .word 0x36900000, 0x36a00000, 0x36b00000, 0x36c00000 168*25c28e83SPiotr Jasiukajtis .word 0x36d00000, 0x36e00000, 0x36f00000, 0x37000000 169*25c28e83SPiotr Jasiukajtis .word 0x37100000, 0x37200000, 0x37300000, 0x37400000 170*25c28e83SPiotr Jasiukajtis .word 0x37500000, 0x37600000, 0x37700000, 0x37800000 171*25c28e83SPiotr Jasiukajtis .word 0x37900000, 0x37a00000, 0x37b00000, 0x37c00000 172*25c28e83SPiotr Jasiukajtis .word 0x37d00000, 0x37e00000, 0x37f00000, 0x38000000 173*25c28e83SPiotr Jasiukajtis .word 0x38100000, 0x38200000, 0x38300000, 0x38400000 174*25c28e83SPiotr Jasiukajtis .word 0x38500000, 0x38600000, 0x38700000, 0x38800000 175*25c28e83SPiotr Jasiukajtis .word 0x38900000, 0x38a00000, 0x38b00000, 0x38c00000 176*25c28e83SPiotr Jasiukajtis .word 0x38d00000, 0x38e00000, 0x38f00000, 0x39000000 177*25c28e83SPiotr Jasiukajtis .word 0x39100000, 0x39200000, 0x39300000, 0x39400000 178*25c28e83SPiotr Jasiukajtis .word 0x39500000, 0x39600000, 0x39700000, 0x39800000 179*25c28e83SPiotr Jasiukajtis .word 0x39900000, 0x39a00000, 0x39b00000, 0x39c00000 180*25c28e83SPiotr Jasiukajtis .word 0x39d00000, 0x39e00000, 0x39f00000, 0x3a000000 181*25c28e83SPiotr Jasiukajtis .word 0x3a100000, 0x3a200000, 0x3a300000, 0x3a400000 182*25c28e83SPiotr Jasiukajtis .word 0x3a500000, 0x3a600000, 0x3a700000, 0x3a800000 183*25c28e83SPiotr Jasiukajtis .word 0x3a900000, 0x3aa00000, 0x3ab00000, 0x3ac00000 184*25c28e83SPiotr Jasiukajtis .word 0x3ad00000, 0x3ae00000, 0x3af00000, 0x3b000000 185*25c28e83SPiotr Jasiukajtis .word 0x3b100000, 0x3b200000, 0x3b300000, 0x3b400000 186*25c28e83SPiotr Jasiukajtis .word 0x3b500000, 0x3b600000, 0x3b700000, 0x3b800000 187*25c28e83SPiotr Jasiukajtis .word 0x3b900000, 0x3ba00000, 0x3bb00000, 0x3bc00000 188*25c28e83SPiotr Jasiukajtis .word 0x3bd00000, 0x3be00000, 0x3bf00000, 0x3c000000 189*25c28e83SPiotr Jasiukajtis .word 0x3c100000, 0x3c200000, 0x3c300000, 0x3c400000 190*25c28e83SPiotr Jasiukajtis .word 0x3c500000, 0x3c600000, 0x3c700000, 0x3c800000 191*25c28e83SPiotr Jasiukajtis .word 0x3c900000, 0x3ca00000, 0x3cb00000, 0x3cc00000 192*25c28e83SPiotr Jasiukajtis .word 0x3cd00000, 0x3ce00000, 0x3cf00000, 0x3d000000 193*25c28e83SPiotr Jasiukajtis .word 0x3d100000, 0x3d200000, 0x3d300000, 0x3d400000 194*25c28e83SPiotr Jasiukajtis .word 0x3d500000, 0x3d600000, 0x3d700000, 0x3d800000 195*25c28e83SPiotr Jasiukajtis .word 0x3d900000, 0x3da00000, 0x3db00000, 0x3dc00000 196*25c28e83SPiotr Jasiukajtis .word 0x3dd00000, 0x3de00000, 0x3df00000, 0x3e000000 197*25c28e83SPiotr Jasiukajtis .word 0x3e100000, 0x3e200000, 0x3e300000, 0x3e400000 198*25c28e83SPiotr Jasiukajtis .word 0x3e500000, 0x3e600000, 0x3e700000, 0x3e800000 199*25c28e83SPiotr Jasiukajtis .word 0x3e900000, 0x3ea00000, 0x3eb00000, 0x3ec00000 200*25c28e83SPiotr Jasiukajtis .word 0x3ed00000, 0x3ee00000, 0x3ef00000, 0x3f000000 201*25c28e83SPiotr Jasiukajtis .word 0x3f100000, 0x3f200000, 0x3f300000, 0x3f400000 202*25c28e83SPiotr Jasiukajtis .word 0x3f500000, 0x3f600000, 0x3f700000, 0x3f800000 203*25c28e83SPiotr Jasiukajtis .word 0x3f900000, 0x3fa00000, 0x3fb00000, 0x3fc00000 204*25c28e83SPiotr Jasiukajtis .word 0x3fd00000, 0x3fe00000, 0x3ff00000, 0x40000000 205*25c28e83SPiotr Jasiukajtis .word 0x40100000, 0x40200000, 0x40300000, 0x40400000 206*25c28e83SPiotr Jasiukajtis .word 0x40500000, 0x40600000, 0x40700000, 0x40800000 207*25c28e83SPiotr Jasiukajtis .word 0x40900000, 0x40a00000, 0x40b00000, 0x40c00000 208*25c28e83SPiotr Jasiukajtis .word 0x40d00000, 0x40e00000, 0x40f00000, 0x41000000 209*25c28e83SPiotr Jasiukajtis .word 0x41100000, 0x41200000, 0x41300000, 0x41400000 210*25c28e83SPiotr Jasiukajtis .word 0x41500000, 0x41600000, 0x41700000, 0x41800000 211*25c28e83SPiotr Jasiukajtis .word 0x41900000, 0x41a00000, 0x41b00000, 0x41c00000 212*25c28e83SPiotr Jasiukajtis .word 0x41d00000, 0x41e00000, 0x41f00000, 0x42000000 213*25c28e83SPiotr Jasiukajtis .word 0x42100000, 0x42200000, 0x42300000, 0x42400000 214*25c28e83SPiotr Jasiukajtis .word 0x42500000, 0x42600000, 0x42700000, 0x42800000 215*25c28e83SPiotr Jasiukajtis .word 0x42900000, 0x42a00000, 0x42b00000, 0x42c00000 216*25c28e83SPiotr Jasiukajtis .word 0x42d00000, 0x42e00000, 0x42f00000, 0x43000000 217*25c28e83SPiotr Jasiukajtis .word 0x43100000, 0x43200000, 0x43300000, 0x43400000 218*25c28e83SPiotr Jasiukajtis .word 0x43500000, 0x43600000, 0x43700000, 0x43800000 219*25c28e83SPiotr Jasiukajtis .word 0x43900000, 0x43a00000, 0x43b00000, 0x43c00000 220*25c28e83SPiotr Jasiukajtis .word 0x43d00000, 0x43e00000, 0x43f00000, 0x44000000 221*25c28e83SPiotr Jasiukajtis .word 0x44100000, 0x44200000, 0x44300000, 0x44400000 222*25c28e83SPiotr Jasiukajtis .word 0x44500000, 0x44600000, 0x44700000, 0x44800000 223*25c28e83SPiotr Jasiukajtis .word 0x44900000, 0x44a00000, 0x44b00000, 0x44c00000 224*25c28e83SPiotr Jasiukajtis .word 0x44d00000, 0x44e00000, 0x44f00000, 0x45000000 225*25c28e83SPiotr Jasiukajtis .word 0x45100000, 0x45200000, 0x45300000, 0x45400000 226*25c28e83SPiotr Jasiukajtis .word 0x45500000, 0x45600000, 0x45700000, 0x45800000 227*25c28e83SPiotr Jasiukajtis .word 0x45900000, 0x45a00000, 0x45b00000, 0x45c00000 228*25c28e83SPiotr Jasiukajtis .word 0x45d00000, 0x45e00000, 0x45f00000, 0x46000000 229*25c28e83SPiotr Jasiukajtis .word 0x46100000, 0x46200000, 0x46300000, 0x46400000 230*25c28e83SPiotr Jasiukajtis .word 0x46500000, 0x46600000, 0x46700000, 0x46800000 231*25c28e83SPiotr Jasiukajtis .word 0x46900000, 0x46a00000, 0x46b00000, 0x46c00000 232*25c28e83SPiotr Jasiukajtis .word 0x46d00000, 0x46e00000, 0x46f00000, 0x47000000 233*25c28e83SPiotr Jasiukajtis .word 0x47100000, 0x47200000, 0x47300000, 0x47400000 234*25c28e83SPiotr Jasiukajtis .word 0x47500000, 0x47600000, 0x47700000, 0x47800000 235*25c28e83SPiotr Jasiukajtis .word 0x47900000, 0x47a00000, 0x47b00000, 0x47c00000 236*25c28e83SPiotr Jasiukajtis .word 0x47d00000, 0x47e00000, 0x47f00000, 0x00000000 237*25c28e83SPiotr Jasiukajtis 238*25c28e83SPiotr Jasiukajtis .word 0,0,0,0 239*25c28e83SPiotr Jasiukajtis .word 0,0,0,0 240*25c28e83SPiotr Jasiukajtis 241*25c28e83SPiotr Jasiukajtis.CONST_TBL: 242*25c28e83SPiotr Jasiukajtis! __mt_constlog4f: 243*25c28e83SPiotr Jasiukajtis .word 0x00000000, 0x00000000, 0x3e800000, 0x00000000 244*25c28e83SPiotr Jasiukajtis .word 0x4006fe50, 0xb6ef0851, 0x3e7fc07f, 0x01fc07f0 245*25c28e83SPiotr Jasiukajtis .word 0x4016e796, 0x85c2d22a, 0x3e7f81f8, 0x1f81f820 246*25c28e83SPiotr Jasiukajtis .word 0x40211cd1, 0xd5133413, 0x3e7f4465, 0x9e4a4271 247*25c28e83SPiotr Jasiukajtis .word 0x4026bad3, 0x758efd87, 0x3e7f07c1, 0xf07c1f08 248*25c28e83SPiotr Jasiukajtis .word 0x402c4dfa, 0xb90aab5f, 0x3e7ecc07, 0xb301ecc0 249*25c28e83SPiotr Jasiukajtis .word 0x4030eb38, 0x9fa29f9b, 0x3e7e9131, 0xabf0b767 250*25c28e83SPiotr Jasiukajtis .word 0x4033aa2f, 0xdd27f1c3, 0x3e7e573a, 0xc901e574 251*25c28e83SPiotr Jasiukajtis .word 0x403663f6, 0xfac91316, 0x3e7e1e1e, 0x1e1e1e1e 252*25c28e83SPiotr Jasiukajtis .word 0x403918a1, 0x6e46335b, 0x3e7de5d6, 0xe3f8868a 253*25c28e83SPiotr Jasiukajtis .word 0x403bc842, 0x40adabba, 0x3e7dae60, 0x76b981db 254*25c28e83SPiotr Jasiukajtis .word 0x403e72ec, 0x117fa5b2, 0x3e7d77b6, 0x54b82c34 255*25c28e83SPiotr Jasiukajtis .word 0x40408c58, 0x8cda79e4, 0x3e7d41d4, 0x1d41d41d 256*25c28e83SPiotr Jasiukajtis .word 0x4041dcd1, 0x97552b7b, 0x3e7d0cb5, 0x8f6ec074 257*25c28e83SPiotr Jasiukajtis .word 0x40432ae9, 0xe278ae1a, 0x3e7cd856, 0x89039b0b 258*25c28e83SPiotr Jasiukajtis .word 0x404476a9, 0xf983f74d, 0x3e7ca4b3, 0x055ee191 259*25c28e83SPiotr Jasiukajtis .word 0x4045c01a, 0x39fbd688, 0x3e7c71c7, 0x1c71c71c 260*25c28e83SPiotr Jasiukajtis .word 0x40470742, 0xd4ef027f, 0x3e7c3f8f, 0x01c3f8f0 261*25c28e83SPiotr Jasiukajtis .word 0x40484c2b, 0xd02f03b3, 0x3e7c0e07, 0x0381c0e0 262*25c28e83SPiotr Jasiukajtis .word 0x40498edd, 0x077e70df, 0x3e7bdd2b, 0x899406f7 263*25c28e83SPiotr Jasiukajtis .word 0x404acf5e, 0x2db4ec94, 0x3e7bacf9, 0x14c1bad0 264*25c28e83SPiotr Jasiukajtis .word 0x404c0db6, 0xcdd94dee, 0x3e7b7d6c, 0x3dda338b 265*25c28e83SPiotr Jasiukajtis .word 0x404d49ee, 0x4c325970, 0x3e7b4e81, 0xb4e81b4f 266*25c28e83SPiotr Jasiukajtis .word 0x404e840b, 0xe74e6a4d, 0x3e7b2036, 0x406c80d9 267*25c28e83SPiotr Jasiukajtis .word 0x404fbc16, 0xb902680a, 0x3e7af286, 0xbca1af28 268*25c28e83SPiotr Jasiukajtis .word 0x4050790a, 0xdbb03009, 0x3e7ac570, 0x1ac5701b 269*25c28e83SPiotr Jasiukajtis .word 0x40511307, 0xdad30b76, 0x3e7a98ef, 0x606a63be 270*25c28e83SPiotr Jasiukajtis .word 0x4051ac05, 0xb291f070, 0x3e7a6d01, 0xa6d01a6d 271*25c28e83SPiotr Jasiukajtis .word 0x40524407, 0xab0e073a, 0x3e7a41a4, 0x1a41a41a 272*25c28e83SPiotr Jasiukajtis .word 0x4052db10, 0xfc4d9aaf, 0x3e7a16d3, 0xf97a4b02 273*25c28e83SPiotr Jasiukajtis .word 0x40537124, 0xcea4cded, 0x3e79ec8e, 0x951033d9 274*25c28e83SPiotr Jasiukajtis .word 0x40540646, 0x3b1b0449, 0x3e79c2d1, 0x4ee4a102 275*25c28e83SPiotr Jasiukajtis .word 0x40549a78, 0x4bcd1b8b, 0x3e799999, 0x9999999a 276*25c28e83SPiotr Jasiukajtis .word 0x40552dbd, 0xfc4c96b3, 0x3e7970e4, 0xf80cb872 277*25c28e83SPiotr Jasiukajtis .word 0x4055c01a, 0x39fbd688, 0x3e7948b0, 0xfcd6e9e0 278*25c28e83SPiotr Jasiukajtis .word 0x4056518f, 0xe4677ba7, 0x3e7920fb, 0x49d0e229 279*25c28e83SPiotr Jasiukajtis .word 0x4056e221, 0xcd9d0cde, 0x3e78f9c1, 0x8f9c18fa 280*25c28e83SPiotr Jasiukajtis .word 0x405771d2, 0xba7efb3c, 0x3e78d301, 0x8d3018d3 281*25c28e83SPiotr Jasiukajtis .word 0x405800a5, 0x63161c54, 0x3e78acb9, 0x0f6bf3aa 282*25c28e83SPiotr Jasiukajtis .word 0x40588e9c, 0x72e0b226, 0x3e7886e5, 0xf0abb04a 283*25c28e83SPiotr Jasiukajtis .word 0x40591bba, 0x891f1709, 0x3e786186, 0x18618618 284*25c28e83SPiotr Jasiukajtis .word 0x4059a802, 0x391e232f, 0x3e783c97, 0x7ab2bedd 285*25c28e83SPiotr Jasiukajtis .word 0x405a3376, 0x0a7f6051, 0x3e781818, 0x18181818 286*25c28e83SPiotr Jasiukajtis .word 0x405abe18, 0x797f1f49, 0x3e77f405, 0xfd017f40 287*25c28e83SPiotr Jasiukajtis .word 0x405b47eb, 0xf73882a1, 0x3e77d05f, 0x417d05f4 288*25c28e83SPiotr Jasiukajtis .word 0x405bd0f2, 0xe9e79031, 0x3e77ad22, 0x08e0ecc3 289*25c28e83SPiotr Jasiukajtis .word 0x405c592f, 0xad295b56, 0x3e778a4c, 0x8178a4c8 290*25c28e83SPiotr Jasiukajtis .word 0x405ce0a4, 0x923a587d, 0x3e7767dc, 0xe434a9b1 291*25c28e83SPiotr Jasiukajtis .word 0x405d6753, 0xe032ea0f, 0x3e7745d1, 0x745d1746 292*25c28e83SPiotr Jasiukajtis .word 0x405ded3f, 0xd442364c, 0x3e772428, 0x7f46debc 293*25c28e83SPiotr Jasiukajtis .word 0x405e726a, 0xa1e754d2, 0x3e7702e0, 0x5c0b8170 294*25c28e83SPiotr Jasiukajtis .word 0x405ef6d6, 0x7328e220, 0x3e76e1f7, 0x6b4337c7 295*25c28e83SPiotr Jasiukajtis .word 0x405f7a85, 0x68cb06cf, 0x3e76c16c, 0x16c16c17 296*25c28e83SPiotr Jasiukajtis .word 0x405ffd79, 0x9a83ff9b, 0x3e76a13c, 0xd1537290 297*25c28e83SPiotr Jasiukajtis .word 0x40603fda, 0x8b97997f, 0x3e768168, 0x16816817 298*25c28e83SPiotr Jasiukajtis .word 0x4060809c, 0xf27f703d, 0x3e7661ec, 0x6a5122f9 299*25c28e83SPiotr Jasiukajtis .word 0x4060c105, 0x00d63aa6, 0x3e7642c8, 0x590b2164 300*25c28e83SPiotr Jasiukajtis .word 0x40610113, 0xb153c8ea, 0x3e7623fa, 0x77016240 301*25c28e83SPiotr Jasiukajtis .word 0x406140c9, 0xfaa1e544, 0x3e760581, 0x60581606 302*25c28e83SPiotr Jasiukajtis .word 0x40618028, 0xcf72976a, 0x3e75e75b, 0xb8d015e7 303*25c28e83SPiotr Jasiukajtis .word 0x4061bf31, 0x1e95d00e, 0x3e75c988, 0x2b931057 304*25c28e83SPiotr Jasiukajtis .word 0x4061fde3, 0xd30e8126, 0x3e75ac05, 0x6b015ac0 305*25c28e83SPiotr Jasiukajtis .word 0x40623c41, 0xd42727c8, 0x3e758ed2, 0x308158ed 306*25c28e83SPiotr Jasiukajtis .word 0x40627a4c, 0x0585cbf8, 0x3e7571ed, 0x3c506b3a 307*25c28e83SPiotr Jasiukajtis .word 0x4062b803, 0x473f7ad1, 0x3e755555, 0x55555555 308*25c28e83SPiotr Jasiukajtis .word 0x4062f568, 0x75eb3f26, 0x3e753909, 0x48f40feb 309*25c28e83SPiotr Jasiukajtis .word 0x4063327c, 0x6ab49ca7, 0x3e751d07, 0xeae2f815 310*25c28e83SPiotr Jasiukajtis .word 0x40636f3f, 0xfb6d9162, 0x3e750150, 0x15015015 311*25c28e83SPiotr Jasiukajtis .word 0x4063abb3, 0xfaa02167, 0x3e74e5e0, 0xa72f0539 312*25c28e83SPiotr Jasiukajtis .word 0x4063e7d9, 0x379f7016, 0x3e74cab8, 0x8725af6e 313*25c28e83SPiotr Jasiukajtis .word 0x406423b0, 0x7e986aa9, 0x3e74afd6, 0xa052bf5b 314*25c28e83SPiotr Jasiukajtis .word 0x40645f3a, 0x98a20739, 0x3e749539, 0xe3b2d067 315*25c28e83SPiotr Jasiukajtis .word 0x40649a78, 0x4bcd1b8b, 0x3e747ae1, 0x47ae147b 316*25c28e83SPiotr Jasiukajtis .word 0x4064d56a, 0x5b33cec4, 0x3e7460cb, 0xc7f5cf9a 317*25c28e83SPiotr Jasiukajtis .word 0x40651011, 0x8708a8f9, 0x3e7446f8, 0x6562d9fb 318*25c28e83SPiotr Jasiukajtis .word 0x40654a6e, 0x8ca5438e, 0x3e742d66, 0x25d51f87 319*25c28e83SPiotr Jasiukajtis .word 0x40658482, 0x26989d34, 0x3e741414, 0x14141414 320*25c28e83SPiotr Jasiukajtis .word 0x4065be4d, 0x0cb51435, 0x3e73fb01, 0x3fb013fb 321*25c28e83SPiotr Jasiukajtis .word 0x4065f7cf, 0xf41e09af, 0x3e73e22c, 0xbce4a902 322*25c28e83SPiotr Jasiukajtis .word 0x4066310b, 0x8f553048, 0x3e73c995, 0xa47babe7 323*25c28e83SPiotr Jasiukajtis .word 0x40666a00, 0x8e4788cc, 0x3e73b13b, 0x13b13b14 324*25c28e83SPiotr Jasiukajtis .word 0x4066a2af, 0x9e5a0f0a, 0x3e73991c, 0x2c187f63 325*25c28e83SPiotr Jasiukajtis .word 0x4066db19, 0x6a76194a, 0x3e738138, 0x13813814 326*25c28e83SPiotr Jasiukajtis .word 0x4067133e, 0x9b156c7c, 0x3e73698d, 0xf3de0748 327*25c28e83SPiotr Jasiukajtis .word 0x40674b1f, 0xd64e0754, 0x3e73521c, 0xfb2b78c1 328*25c28e83SPiotr Jasiukajtis .word 0x406782bd, 0xbfdda657, 0x3e733ae4, 0x5b57bcb2 329*25c28e83SPiotr Jasiukajtis .word 0x4067ba18, 0xf93502e4, 0x3e7323e3, 0x4a2b10bf 330*25c28e83SPiotr Jasiukajtis .word 0x4067f132, 0x2182cf16, 0x3e730d19, 0x0130d190 331*25c28e83SPiotr Jasiukajtis .word 0x40682809, 0xd5be7073, 0x3e72f684, 0xbda12f68 332*25c28e83SPiotr Jasiukajtis .word 0x40685ea0, 0xb0b27b26, 0x3e72e025, 0xc04b8097 333*25c28e83SPiotr Jasiukajtis .word 0x406894f7, 0x4b06ef8b, 0x3e72c9fb, 0x4d812ca0 334*25c28e83SPiotr Jasiukajtis .word 0x4068cb0e, 0x3b4b3bbe, 0x3e72b404, 0xad012b40 335*25c28e83SPiotr Jasiukajtis .word 0x406900e6, 0x160002cd, 0x3e729e41, 0x29e4129e 336*25c28e83SPiotr Jasiukajtis .word 0x4069367f, 0x6da0ab2f, 0x3e7288b0, 0x1288b013 337*25c28e83SPiotr Jasiukajtis .word 0x40696bda, 0xd2acb5f6, 0x3e727350, 0xb8812735 338*25c28e83SPiotr Jasiukajtis .word 0x4069a0f8, 0xd3b0e050, 0x3e725e22, 0x708092f1 339*25c28e83SPiotr Jasiukajtis .word 0x4069d5d9, 0xfd5010b3, 0x3e724924, 0x92492492 340*25c28e83SPiotr Jasiukajtis .word 0x406a0a7e, 0xda4c112d, 0x3e723456, 0x789abcdf 341*25c28e83SPiotr Jasiukajtis .word 0x406a3ee7, 0xf38e181f, 0x3e721fb7, 0x8121fb78 342*25c28e83SPiotr Jasiukajtis .word 0x406a7315, 0xd02f20c8, 0x3e720b47, 0x0c67c0d9 343*25c28e83SPiotr Jasiukajtis .word 0x406aa708, 0xf58014d3, 0x3e71f704, 0x7dc11f70 344*25c28e83SPiotr Jasiukajtis .word 0x406adac1, 0xe711c833, 0x3e71e2ef, 0x3b3fb874 345*25c28e83SPiotr Jasiukajtis .word 0x406b0e41, 0x26bcc86c, 0x3e71cf06, 0xada2811d 346*25c28e83SPiotr Jasiukajtis .word 0x406b4187, 0x34a9008c, 0x3e71bb4a, 0x4046ed29 347*25c28e83SPiotr Jasiukajtis .word 0x406b7494, 0x8f5532da, 0x3e71a7b9, 0x611a7b96 348*25c28e83SPiotr Jasiukajtis .word 0x406ba769, 0xb39e4964, 0x3e719453, 0x808ca29c 349*25c28e83SPiotr Jasiukajtis .word 0x406bda07, 0x1cc67e6e, 0x3e718118, 0x11811812 350*25c28e83SPiotr Jasiukajtis .word 0x406c0c6d, 0x447c5dd3, 0x3e716e06, 0x89427379 351*25c28e83SPiotr Jasiukajtis .word 0x406c3e9c, 0xa2e1a055, 0x3e715b1e, 0x5f75270d 352*25c28e83SPiotr Jasiukajtis .word 0x406c7095, 0xae91e1c7, 0x3e71485f, 0x0e0acd3b 353*25c28e83SPiotr Jasiukajtis .word 0x406ca258, 0xdca93316, 0x3e7135c8, 0x1135c811 354*25c28e83SPiotr Jasiukajtis .word 0x406cd3e6, 0xa0ca8907, 0x3e712358, 0xe75d3033 355*25c28e83SPiotr Jasiukajtis .word 0x406d053f, 0x6d260896, 0x3e711111, 0x11111111 356*25c28e83SPiotr Jasiukajtis .word 0x406d3663, 0xb27f31d5, 0x3e70fef0, 0x10fef011 357*25c28e83SPiotr Jasiukajtis .word 0x406d6753, 0xe032ea0f, 0x3e70ecf5, 0x6be69c90 358*25c28e83SPiotr Jasiukajtis .word 0x406d9810, 0x643d6615, 0x3e70db20, 0xa88f4696 359*25c28e83SPiotr Jasiukajtis .word 0x406dc899, 0xab3ff56c, 0x3e70c971, 0x4fbcda3b 360*25c28e83SPiotr Jasiukajtis .word 0x406df8f0, 0x2086af2c, 0x3e70b7e6, 0xec259dc8 361*25c28e83SPiotr Jasiukajtis .word 0x406e2914, 0x2e0e0140, 0x3e70a681, 0x0a6810a7 362*25c28e83SPiotr Jasiukajtis .word 0x406e5906, 0x3c8822ce, 0x3e70953f, 0x39010954 363*25c28e83SPiotr Jasiukajtis .word 0x406e88c6, 0xb3626a73, 0x3e708421, 0x08421084 364*25c28e83SPiotr Jasiukajtis .word 0x406eb855, 0xf8ca88fb, 0x3e707326, 0x0a47f7c6 365*25c28e83SPiotr Jasiukajtis .word 0x406ee7b4, 0x71b3a950, 0x3e70624d, 0xd2f1a9fc 366*25c28e83SPiotr Jasiukajtis .word 0x406f16e2, 0x81db7630, 0x3e705197, 0xf7d73404 367*25c28e83SPiotr Jasiukajtis .word 0x406f45e0, 0x8bcf0655, 0x3e704104, 0x10410410 368*25c28e83SPiotr Jasiukajtis .word 0x406f74ae, 0xf0efafae, 0x3e703091, 0xb51f5e1a 369*25c28e83SPiotr Jasiukajtis .word 0x406fa34e, 0x1177c233, 0x3e702040, 0x81020408 370*25c28e83SPiotr Jasiukajtis .word 0x406fd1be, 0x4c7f2af9, 0x3e701010, 0x10101010 371*25c28e83SPiotr Jasiukajtis .word 0x40700000, 0x00000000, 0x3e700000, 0x00000000 372*25c28e83SPiotr Jasiukajtis 373*25c28e83SPiotr Jasiukajtis! __mt_constexp2f: 374*25c28e83SPiotr Jasiukajtis .word 0x3ff00000, 0x00000000, 0x3ff00b1a, 0xfa5abcbf 375*25c28e83SPiotr Jasiukajtis .word 0x3ff0163d, 0xa9fb3335, 0x3ff02168, 0x143b0281 376*25c28e83SPiotr Jasiukajtis .word 0x3ff02c9a, 0x3e778061, 0x3ff037d4, 0x2e11bbcc 377*25c28e83SPiotr Jasiukajtis .word 0x3ff04315, 0xe86e7f85, 0x3ff04e5f, 0x72f654b1 378*25c28e83SPiotr Jasiukajtis .word 0x3ff059b0, 0xd3158574, 0x3ff0650a, 0x0e3c1f89 379*25c28e83SPiotr Jasiukajtis .word 0x3ff0706b, 0x29ddf6de, 0x3ff07bd4, 0x2b72a836 380*25c28e83SPiotr Jasiukajtis .word 0x3ff08745, 0x18759bc8, 0x3ff092bd, 0xf66607e0 381*25c28e83SPiotr Jasiukajtis .word 0x3ff09e3e, 0xcac6f383, 0x3ff0a9c7, 0x9b1f3919 382*25c28e83SPiotr Jasiukajtis .word 0x3fefb558, 0x6cf9890f, 0x3fefc0f1, 0x45e46c85 383*25c28e83SPiotr Jasiukajtis .word 0x3fefcc92, 0x2b7247f7, 0x3fefd83b, 0x23395dec 384*25c28e83SPiotr Jasiukajtis .word 0x3fefe3ec, 0x32d3d1a2, 0x3fefefa5, 0x5fdfa9c5 385*25c28e83SPiotr Jasiukajtis .word 0x3feffb66, 0xaffed31b, 0x3ff00730, 0x28d7233e 386*25c28e83SPiotr Jasiukajtis .word 0x3ff01301, 0xd0125b51, 0x3ff01edb, 0xab5e2ab6 387*25c28e83SPiotr Jasiukajtis .word 0x3ff02abd, 0xc06c31cc, 0x3ff036a8, 0x14f204ab 388*25c28e83SPiotr Jasiukajtis .word 0x3ff0429a, 0xaea92de0, 0x3ff04e95, 0x934f312e 389*25c28e83SPiotr Jasiukajtis .word 0x3ff05a98, 0xc8a58e51, 0x3ff066a4, 0x5471c3c2 390*25c28e83SPiotr Jasiukajtis .word 0x3fef72b8, 0x3c7d517b, 0x3fef7ed4, 0x8695bbc0 391*25c28e83SPiotr Jasiukajtis .word 0x3fef8af9, 0x388c8dea, 0x3fef9726, 0x58375d2f 392*25c28e83SPiotr Jasiukajtis .word 0x3fefa35b, 0xeb6fcb75, 0x3fefaf99, 0xf8138a1c 393*25c28e83SPiotr Jasiukajtis .word 0x3fefbbe0, 0x84045cd4, 0x3fefc82f, 0x95281c6b 394*25c28e83SPiotr Jasiukajtis .word 0x3fefd487, 0x3168b9aa, 0x3fefe0e7, 0x5eb44027 395*25c28e83SPiotr Jasiukajtis .word 0x3fefed50, 0x22fcd91d, 0x3feff9c1, 0x8438ce4d 396*25c28e83SPiotr Jasiukajtis .word 0x3ff0063b, 0x88628cd6, 0x3ff012be, 0x3578a819 397*25c28e83SPiotr Jasiukajtis .word 0x3ff01f49, 0x917ddc96, 0x3ff02bdd, 0xa27912d1 398*25c28e83SPiotr Jasiukajtis .word 0x3fef387a, 0x6e756238, 0x3fef451f, 0xfb82140a 399*25c28e83SPiotr Jasiukajtis .word 0x3fef51ce, 0x4fb2a63f, 0x3fef5e85, 0x711ece75 400*25c28e83SPiotr Jasiukajtis .word 0x3fef6b45, 0x65e27cdd, 0x3fef780e, 0x341ddf29 401*25c28e83SPiotr Jasiukajtis .word 0x3fef84df, 0xe1f56381, 0x3fef91ba, 0x7591bb70 402*25c28e83SPiotr Jasiukajtis .word 0x3fef9e9d, 0xf51fdee1, 0x3fefab8a, 0x66d10f13 403*25c28e83SPiotr Jasiukajtis .word 0x3fefb87f, 0xd0dad990, 0x3fefc57e, 0x39771b2f 404*25c28e83SPiotr Jasiukajtis .word 0x3fefd285, 0xa6e4030b, 0x3fefdf96, 0x1f641589 405*25c28e83SPiotr Jasiukajtis .word 0x3fefecaf, 0xa93e2f56, 0x3feff9d2, 0x4abd886b 406*25c28e83SPiotr Jasiukajtis .word 0x3fef06fe, 0x0a31b715, 0x3fef1432, 0xedeeb2fd 407*25c28e83SPiotr Jasiukajtis .word 0x3fef2170, 0xfc4cd831, 0x3fef2eb8, 0x3ba8ea32 408*25c28e83SPiotr Jasiukajtis .word 0x3fef3c08, 0xb26416ff, 0x3fef4962, 0x66e3fa2d 409*25c28e83SPiotr Jasiukajtis .word 0x3fef56c5, 0x5f929ff1, 0x3fef6431, 0xa2de883b 410*25c28e83SPiotr Jasiukajtis .word 0x3fef71a7, 0x373aa9cb, 0x3fef7f26, 0x231e754a 411*25c28e83SPiotr Jasiukajtis .word 0x3fef8cae, 0x6d05d866, 0x3fef9a40, 0x1b7140ef 412*25c28e83SPiotr Jasiukajtis .word 0x3fefa7db, 0x34e59ff7, 0x3fefb57f, 0xbfec6cf4 413*25c28e83SPiotr Jasiukajtis .word 0x3fefc32d, 0xc313a8e5, 0x3fefd0e5, 0x44ede173 414*25c28e83SPiotr Jasiukajtis .word 0x3feedea6, 0x4c123422, 0x3feeec70, 0xdf1c5175 415*25c28e83SPiotr Jasiukajtis .word 0x3feefa45, 0x04ac801c, 0x3fef0822, 0xc367a024 416*25c28e83SPiotr Jasiukajtis .word 0x3fef160a, 0x21f72e2a, 0x3fef23fb, 0x2709468a 417*25c28e83SPiotr Jasiukajtis .word 0x3fef31f5, 0xd950a897, 0x3fef3ffa, 0x3f84b9d4 418*25c28e83SPiotr Jasiukajtis .word 0x3fef4e08, 0x6061892d, 0x3fef5c20, 0x42a7d232 419*25c28e83SPiotr Jasiukajtis .word 0x3fef6a41, 0xed1d0057, 0x3fef786d, 0x668b3237 420*25c28e83SPiotr Jasiukajtis .word 0x3fef86a2, 0xb5c13cd0, 0x3fef94e1, 0xe192aed2 421*25c28e83SPiotr Jasiukajtis .word 0x3fefa32a, 0xf0d7d3de, 0x3fefb17d, 0xea6db7d7 422*25c28e83SPiotr Jasiukajtis .word 0x3feebfda, 0xd5362a27, 0x3feece41, 0xb817c114 423*25c28e83SPiotr Jasiukajtis .word 0x3feedcb2, 0x99fddd0d, 0x3feeeb2d, 0x81d8abff 424*25c28e83SPiotr Jasiukajtis .word 0x3feef9b2, 0x769d2ca7, 0x3fef0841, 0x7f4531ee 425*25c28e83SPiotr Jasiukajtis .word 0x3fef16da, 0xa2cf6642, 0x3fef257d, 0xe83f4eef 426*25c28e83SPiotr Jasiukajtis .word 0x3fef342b, 0x569d4f82, 0x3fef42e2, 0xf4f6ad27 427*25c28e83SPiotr Jasiukajtis .word 0x3fef51a4, 0xca5d920f, 0x3fef6070, 0xdde910d2 428*25c28e83SPiotr Jasiukajtis .word 0x3fef6f47, 0x36b527da, 0x3fef7e27, 0xdbe2c4cf 429*25c28e83SPiotr Jasiukajtis .word 0x3fef8d12, 0xd497c7fd, 0x3fef9c08, 0x27ff07cc 430*25c28e83SPiotr Jasiukajtis .word 0x3feeab07, 0xdd485429, 0x3feeba11, 0xfba87a03 431*25c28e83SPiotr Jasiukajtis .word 0x3feec926, 0x8a5946b7, 0x3feed845, 0x90998b93 432*25c28e83SPiotr Jasiukajtis .word 0x3feee76f, 0x15ad2148, 0x3feef6a3, 0x20dceb71 433*25c28e83SPiotr Jasiukajtis .word 0x3fef05e1, 0xb976dc09, 0x3fef152a, 0xe6cdf6f4 434*25c28e83SPiotr Jasiukajtis .word 0x3fef247e, 0xb03a5585, 0x3fef33dd, 0x1d1929fd 435*25c28e83SPiotr Jasiukajtis .word 0x3fef4346, 0x34ccc320, 0x3fef52b9, 0xfebc8fb7 436*25c28e83SPiotr Jasiukajtis .word 0x3fef6238, 0x82552225, 0x3fef71c1, 0xc70833f6 437*25c28e83SPiotr Jasiukajtis .word 0x3fef8155, 0xd44ca973, 0x3fef90f4, 0xb19e9538 438*25c28e83SPiotr Jasiukajtis .word 0x3feea09e, 0x667f3bcd, 0x3feeb052, 0xfa75173e 439*25c28e83SPiotr Jasiukajtis .word 0x3feec012, 0x750bdabf, 0x3feecfdc, 0xddd47645 440*25c28e83SPiotr Jasiukajtis .word 0x3feedfb2, 0x3c651a2f, 0x3feeef92, 0x98593ae5 441*25c28e83SPiotr Jasiukajtis .word 0x3feeff7d, 0xf9519484, 0x3fef0f74, 0x66f42e87 442*25c28e83SPiotr Jasiukajtis .word 0x3fef1f75, 0xe8ec5f74, 0x3fef2f82, 0x86ead08a 443*25c28e83SPiotr Jasiukajtis .word 0x3fef3f9a, 0x48a58174, 0x3fef4fbd, 0x35d7cbfd 444*25c28e83SPiotr Jasiukajtis .word 0x3fef5feb, 0x564267c9, 0x3fef7024, 0xb1ab6e09 445*25c28e83SPiotr Jasiukajtis .word 0x3fef8069, 0x4fde5d3f, 0x3fef90b9, 0x38ac1cf6 446*25c28e83SPiotr Jasiukajtis .word 0x3feea114, 0x73eb0187, 0x3feeb17b, 0x0976cfdb 447*25c28e83SPiotr Jasiukajtis .word 0x3feec1ed, 0x0130c132, 0x3feed26a, 0x62ff86f0 448*25c28e83SPiotr Jasiukajtis .word 0x3feee2f3, 0x36cf4e62, 0x3feef387, 0x8491c491 449*25c28e83SPiotr Jasiukajtis .word 0x3fef0427, 0x543e1a12, 0x3fef14d2, 0xadd106d9 450*25c28e83SPiotr Jasiukajtis .word 0x3fef2589, 0x994cce13, 0x3fef364c, 0x1eb941f7 451*25c28e83SPiotr Jasiukajtis .word 0x3fef471a, 0x4623c7ad, 0x3fef57f4, 0x179f5b21 452*25c28e83SPiotr Jasiukajtis .word 0x3fef68d9, 0x9b4492ed, 0x3fef79ca, 0xd931a436 453*25c28e83SPiotr Jasiukajtis .word 0x3fef8ac7, 0xd98a6699, 0x3fef9bd0, 0xa478580f 454*25c28e83SPiotr Jasiukajtis .word 0x3feeace5, 0x422aa0db, 0x3feebe05, 0xbad61778 455*25c28e83SPiotr Jasiukajtis .word 0x3feecf32, 0x16b5448c, 0x3feee06a, 0x5e0866d9 456*25c28e83SPiotr Jasiukajtis .word 0x3feef1ae, 0x99157736, 0x3fef02fe, 0xd0282c8a 457*25c28e83SPiotr Jasiukajtis .word 0x3fef145b, 0x0b91ffc6, 0x3fef25c3, 0x53aa2fe2 458*25c28e83SPiotr Jasiukajtis .word 0x3fef3737, 0xb0cdc5e5, 0x3fef48b8, 0x2b5f98e5 459*25c28e83SPiotr Jasiukajtis .word 0x3fef5a44, 0xcbc8520f, 0x3fef6bdd, 0x9a7670b3 460*25c28e83SPiotr Jasiukajtis .word 0x3fef7d82, 0x9fde4e50, 0x3fef8f33, 0xe47a22a2 461*25c28e83SPiotr Jasiukajtis .word 0x3fefa0f1, 0x70ca07ba, 0x3fefb2bb, 0x4d53fe0d 462*25c28e83SPiotr Jasiukajtis .word 0x3feec491, 0x82a3f090, 0x3feed674, 0x194bb8d5 463*25c28e83SPiotr Jasiukajtis .word 0x3feee863, 0x19e32323, 0x3feefa5e, 0x8d07f29e 464*25c28e83SPiotr Jasiukajtis .word 0x3fef0c66, 0x7b5de565, 0x3fef1e7a, 0xed8eb8bb 465*25c28e83SPiotr Jasiukajtis .word 0x3fef309b, 0xec4a2d33, 0x3fef42c9, 0x80460ad8 466*25c28e83SPiotr Jasiukajtis .word 0x3fef5503, 0xb23e255d, 0x3fef674a, 0x8af46052 467*25c28e83SPiotr Jasiukajtis .word 0x3fef799e, 0x1330b358, 0x3fef8bfe, 0x53c12e59 468*25c28e83SPiotr Jasiukajtis .word 0x3fef9e6b, 0x5579fdbf, 0x3fefb0e5, 0x21356eba 469*25c28e83SPiotr Jasiukajtis .word 0x3fefc36b, 0xbfd3f37a, 0x3fefd5ff, 0x3a3c2774 470*25c28e83SPiotr Jasiukajtis .word 0x3feee89f, 0x995ad3ad, 0x3feefb4c, 0xe622f2ff 471*25c28e83SPiotr Jasiukajtis .word 0x3fef0e07, 0x298db666, 0x3fef20ce, 0x6c9a8952 472*25c28e83SPiotr Jasiukajtis .word 0x3fef33a2, 0xb84f15fb, 0x3fef4684, 0x15b749b1 473*25c28e83SPiotr Jasiukajtis .word 0x3fef5972, 0x8de5593a, 0x3fef6c6e, 0x29f1c52a 474*25c28e83SPiotr Jasiukajtis .word 0x3fef7f76, 0xf2fb5e47, 0x3fef928c, 0xf22749e4 475*25c28e83SPiotr Jasiukajtis .word 0x3fefa5b0, 0x30a1064a, 0x3fefb8e0, 0xb79a6f1f 476*25c28e83SPiotr Jasiukajtis .word 0x3fefcc1e, 0x904bc1d2, 0x3fefdf69, 0xc3f3a207 477*25c28e83SPiotr Jasiukajtis .word 0x3feff2c2, 0x5bd71e09, 0x3ff00628, 0x6141b33d 478*25c28e83SPiotr Jasiukajtis .word 0x3fef199b, 0xdd85529c, 0x3fef2d1c, 0xd9fa652c 479*25c28e83SPiotr Jasiukajtis .word 0x3fef40ab, 0x5fffd07a, 0x3fef5447, 0x78fafb22 480*25c28e83SPiotr Jasiukajtis .word 0x3fef67f1, 0x2e57d14b, 0x3fef7ba8, 0x8988c933 481*25c28e83SPiotr Jasiukajtis .word 0x3fef8f6d, 0x9406e7b5, 0x3fefa340, 0x5751c4db 482*25c28e83SPiotr Jasiukajtis .word 0x3fefb720, 0xdcef9069, 0x3fefcb0f, 0x2e6d1675 483*25c28e83SPiotr Jasiukajtis .word 0x3fefdf0b, 0x555dc3fa, 0x3feff315, 0x5b5bab74 484*25c28e83SPiotr Jasiukajtis .word 0x3ff0072d, 0x4a07897c, 0x3ff01b53, 0x2b08c968 485*25c28e83SPiotr Jasiukajtis .word 0x3ff02f87, 0x080d89f2, 0x3ff043c8, 0xeacaa1d6 486*25c28e83SPiotr Jasiukajtis .word 0x3fef5818, 0xdcfba487, 0x3fef6c76, 0xe862e6d3 487*25c28e83SPiotr Jasiukajtis .word 0x3fef80e3, 0x16c98398, 0x3fef955d, 0x71ff6075 488*25c28e83SPiotr Jasiukajtis .word 0x3fefa9e6, 0x03db3285, 0x3fefbe7c, 0xd63a8315 489*25c28e83SPiotr Jasiukajtis .word 0x3fefd321, 0xf301b460, 0x3fefe7d5, 0x641c0658 490*25c28e83SPiotr Jasiukajtis .word 0x3feffc97, 0x337b9b5f, 0x3ff01167, 0x6b197d17 491*25c28e83SPiotr Jasiukajtis .word 0x3ff02646, 0x14f5a129, 0x3ff03b33, 0x3b16ee12 492*25c28e83SPiotr Jasiukajtis .word 0x3ff0502e, 0xe78b3ff6, 0x3ff06539, 0x24676d76 493*25c28e83SPiotr Jasiukajtis .word 0x3ff07a51, 0xfbc74c83, 0x3ff08f79, 0x77cdb740 494*25c28e83SPiotr Jasiukajtis .word 0x3fefa4af, 0xa2a490da, 0x3fefb9f4, 0x867cca6e 495*25c28e83SPiotr Jasiukajtis .word 0x3fefcf48, 0x2d8e67f1, 0x3fefe4aa, 0xa2188510 496*25c28e83SPiotr Jasiukajtis .word 0x3feffa1b, 0xee615a27, 0x3ff00f9c, 0x1cb6412a 497*25c28e83SPiotr Jasiukajtis .word 0x3ff0252b, 0x376bba97, 0x3ff03ac9, 0x48dd7274 498*25c28e83SPiotr Jasiukajtis .word 0x3ff05076, 0x5b6e4540, 0x3ff06632, 0x798844f8 499*25c28e83SPiotr Jasiukajtis .word 0x3ff07bfd, 0xad9cbe14, 0x3ff091d8, 0x02243c89 500*25c28e83SPiotr Jasiukajtis .word 0x3ff0a7c1, 0x819e90d8, 0x3ff0bdba, 0x3692d514 501*25c28e83SPiotr Jasiukajtis .word 0x3ff0d3c2, 0x2b8f71f1, 0x3ff0e9d9, 0x6b2a23d9 502*25c28e83SPiotr Jasiukajtis 503*25c28e83SPiotr Jasiukajtis .word 0xc057150d, 0x5f6e1c54 ! KA3 = -3.60659926599003171364e-01*256.0 504*25c28e83SPiotr Jasiukajtis .word 0x405ec71c, 0x2e92efda ! KA2 = 4.80902715189356683026e-01*256.0 505*25c28e83SPiotr Jasiukajtis .word 0xc0671547, 0x653cbec4 ! KA1 = -7.21347520569871841065e-01*256.0 506*25c28e83SPiotr Jasiukajtis .word 0x40771547, 0x652af190 ! KA0 = 1.44269504088069658645e+00*256.0 507*25c28e83SPiotr Jasiukajtis .word 0x3ecebfbe, 0x9d182250 ! KB2 = 3.66556671660783833261e-06 508*25c28e83SPiotr Jasiukajtis .word 0x3f662e43, 0xe2528362 ! KB1 = 2.70760782821392980564e-03 509*25c28e83SPiotr Jasiukajtis .word 0x40e00000, 0x00000000 ! HTHRESH = 32768.0 510*25c28e83SPiotr Jasiukajtis .word 0xc0e2c000, 0x00000000 ! LTHRESH = -38400.0 ; 0.0f 511*25c28e83SPiotr Jasiukajtis .word 0x3f800000, 0x00000000 ! 1.0f ; free 512*25c28e83SPiotr Jasiukajtis 513*25c28e83SPiotr Jasiukajtis#define tmp_px STACK_BIAS-48 514*25c28e83SPiotr Jasiukajtis#define tmp_py STACK_BIAS-40 515*25c28e83SPiotr Jasiukajtis#define tmp_counter STACK_BIAS-32 516*25c28e83SPiotr Jasiukajtis#define tmp0 STACK_BIAS-28 517*25c28e83SPiotr Jasiukajtis#define tmp1 STACK_BIAS-24 518*25c28e83SPiotr Jasiukajtis#define tmp2 STACK_BIAS-20 519*25c28e83SPiotr Jasiukajtis#define tmp3 STACK_BIAS-16 520*25c28e83SPiotr Jasiukajtis#define tmp4 STACK_BIAS-12 521*25c28e83SPiotr Jasiukajtis#define tmp5 STACK_BIAS-8 522*25c28e83SPiotr Jasiukajtis#define tmp6 STACK_BIAS-4 523*25c28e83SPiotr Jasiukajtis 524*25c28e83SPiotr Jasiukajtis 525*25c28e83SPiotr Jasiukajtis#define KA3 %f34 526*25c28e83SPiotr Jasiukajtis#define KA2 %f36 527*25c28e83SPiotr Jasiukajtis#define KA1 %f38 528*25c28e83SPiotr Jasiukajtis#define KA0 %f40 529*25c28e83SPiotr Jasiukajtis#define KB2 %f42 530*25c28e83SPiotr Jasiukajtis#define KB1 %f44 531*25c28e83SPiotr Jasiukajtis#define HTHRESHOLD %f30 532*25c28e83SPiotr Jasiukajtis#define LTHRESHOLD %f32 533*25c28e83SPiotr Jasiukajtis 534*25c28e83SPiotr Jasiukajtis#define counter %o7 535*25c28e83SPiotr Jasiukajtis#define stridex %i0 536*25c28e83SPiotr Jasiukajtis#define stridey %i4 537*25c28e83SPiotr Jasiukajtis#define stridez %l3 538*25c28e83SPiotr Jasiukajtis 539*25c28e83SPiotr Jasiukajtis#define CONST_0x8000 %l1 540*25c28e83SPiotr Jasiukajtis#define MASK_0x007fffff %l4 541*25c28e83SPiotr Jasiukajtis#define MASK_0x7fffffff %l5 542*25c28e83SPiotr Jasiukajtis 543*25c28e83SPiotr Jasiukajtis! sizeof temp storage - must be a multiple of 16 for V9 544*25c28e83SPiotr Jasiukajtis#define tmps 0x30 545*25c28e83SPiotr Jasiukajtis 546*25c28e83SPiotr Jasiukajtis!-------------------------------------------------------------------- 547*25c28e83SPiotr Jasiukajtis! !!!!! vpowf algorithm !!!!! 548*25c28e83SPiotr Jasiukajtis! uy = *(unsigned int*)py; 549*25c28e83SPiotr Jasiukajtis! ux = *(unsigned int*)px; 550*25c28e83SPiotr Jasiukajtis! ay = uy & 0x7fffffff; 551*25c28e83SPiotr Jasiukajtis! ax0 = ux & 0x7fffffff; 552*25c28e83SPiotr Jasiukajtis! sx = ux >> 31; 553*25c28e83SPiotr Jasiukajtis! yisint0 = 0; /* Y - non-integer */ 554*25c28e83SPiotr Jasiukajtis! if (ax0 >= 0x7f800000 || ay >= 0x7f800000) { /* |X| or |Y| = Inf,Nan */ 555*25c28e83SPiotr Jasiukajtis! if (ax0 > 0x7f800000 || ay > 0x7f800000) /* |X| or |Y| = Nan */ 556*25c28e83SPiotr Jasiukajtis! pz[0] = *px * *py; 557*25c28e83SPiotr Jasiukajtis! goto next; 558*25c28e83SPiotr Jasiukajtis! if (ay == 0x7f800000) { /* |Y| = Inf */ 559*25c28e83SPiotr Jasiukajtis! float fy; 560*25c28e83SPiotr Jasiukajtis! if (ax0 == 0x3f800000) fy = *py - *py; /* +-1 ** +-Inf = NaN */ 561*25c28e83SPiotr Jasiukajtis! else fy = ((ax0 < 0x3f800000) != (uy >> 31)) ? ZERO : *(float*) &ay; 562*25c28e83SPiotr Jasiukajtis! pz[0] = fy; 563*25c28e83SPiotr Jasiukajtis! goto next; 564*25c28e83SPiotr Jasiukajtis! } 565*25c28e83SPiotr Jasiukajtis! if (sx) { /* X = -Inf */ 566*25c28e83SPiotr Jasiukajtis! exp = ay >> 23; 567*25c28e83SPiotr Jasiukajtis! if (exp >= 0x97) /* |Y| >= 2^24 */ 568*25c28e83SPiotr Jasiukajtis! yisint0 = 2; /* Y - even */ 569*25c28e83SPiotr Jasiukajtis! else { 570*25c28e83SPiotr Jasiukajtis! if (exp >= 0x7f) { /* |Y| >= 1 */ 571*25c28e83SPiotr Jasiukajtis! i0 = ay >> ((0x7f + 23) - exp); 572*25c28e83SPiotr Jasiukajtis! if ((i0 << ((0x7f + 23) - exp)) == ay) yisint0 = 2 - (i0 & 1); 573*25c28e83SPiotr Jasiukajtis! } 574*25c28e83SPiotr Jasiukajtis! } 575*25c28e83SPiotr Jasiukajtis! } 576*25c28e83SPiotr Jasiukajtis! if (uy >> 31) ax0 = 0; 577*25c28e83SPiotr Jasiukajtis! ax0 += yisint0 << 31; 578*25c28e83SPiotr Jasiukajtis! pz[0] = *(float*)&ax0; 579*25c28e83SPiotr Jasiukajtis! goto next; 580*25c28e83SPiotr Jasiukajtis! } 581*25c28e83SPiotr Jasiukajtis! exp0 = (ax0 >> 23) - 127; 582*25c28e83SPiotr Jasiukajtis! if ((int)ux < 0x00800000) { /* X = denormal or negative */ 583*25c28e83SPiotr Jasiukajtis! if ((int)ax0 < 0x00800000) { /* X = denormal */ 584*25c28e83SPiotr Jasiukajtis! *((float*) &ax0) = (float) (int)ax0; 585*25c28e83SPiotr Jasiukajtis! exp0 = (ax0 >> 23) - (127 + 149); 586*25c28e83SPiotr Jasiukajtis! } 587*25c28e83SPiotr Jasiukajtis! if ((int)ux <= 0) { /* X <= 0 */ 588*25c28e83SPiotr Jasiukajtis! exp = ay >> 23; 589*25c28e83SPiotr Jasiukajtis! if (exp >= 0x97) /* |Y| >= 2^24 */ 590*25c28e83SPiotr Jasiukajtis! yisint0 = 2; /* Y - even */ 591*25c28e83SPiotr Jasiukajtis! else { 592*25c28e83SPiotr Jasiukajtis! if (exp >= 0x7f) { /* |Y| >= 1 */ 593*25c28e83SPiotr Jasiukajtis! i0 = ay >> ((0x7f + 23) - exp); 594*25c28e83SPiotr Jasiukajtis! if ((i0 << ((0x7f + 23) - exp)) == ay) yisint0 = 2 - (i0 & 1); 595*25c28e83SPiotr Jasiukajtis! } 596*25c28e83SPiotr Jasiukajtis! } 597*25c28e83SPiotr Jasiukajtis! if (ax0 == 0) { /* pow(0,Y) */ 598*25c28e83SPiotr Jasiukajtis! float fy; 599*25c28e83SPiotr Jasiukajtis! fy = (uy >> 31) ? ONE / ZERO : ZERO; 600*25c28e83SPiotr Jasiukajtis! if (sx & yisint0) fy = -fy; 601*25c28e83SPiotr Jasiukajtis! pz[0] = fy; 602*25c28e83SPiotr Jasiukajtis! goto next; 603*25c28e83SPiotr Jasiukajtis! } 604*25c28e83SPiotr Jasiukajtis! if (yisint0 == 0) { /* pow(neg,non-integer) */ 605*25c28e83SPiotr Jasiukajtis! pz[0] = ZERO / ZERO; /* NaN */ 606*25c28e83SPiotr Jasiukajtis! goto next; 607*25c28e83SPiotr Jasiukajtis! } 608*25c28e83SPiotr Jasiukajtis! } 609*25c28e83SPiotr Jasiukajtis! } 610*25c28e83SPiotr Jasiukajtis! 611*25c28e83SPiotr Jasiukajtis! ax0 = *px; 612*25c28e83SPiotr Jasiukajtis! exp0 = ax0 & 0x7fffffff; 613*25c28e83SPiotr Jasiukajtis! exp0 >>= 23; 614*25c28e83SPiotr Jasiukajtis! exp0 -= 127; 615*25c28e83SPiotr Jasiukajtis! exp0 <<= 8; 616*25c28e83SPiotr Jasiukajtis! ax0 &= 0x007fffff; 617*25c28e83SPiotr Jasiukajtis! i0 = ax0 + 0x8000; 618*25c28e83SPiotr Jasiukajtis! i0 &= 0xffff0000; 619*25c28e83SPiotr Jasiukajtis! ind0 = i0 >> 12; 620*25c28e83SPiotr Jasiukajtis! ind0 &= -8; 621*25c28e83SPiotr Jasiukajtis! i0 = ax0 - i0; 622*25c28e83SPiotr Jasiukajtis! dtmp0 = (double) i0; 623*25c28e83SPiotr Jasiukajtis! dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 624*25c28e83SPiotr Jasiukajtis! y0 = dtmp0 * dtmp1; 625*25c28e83SPiotr Jasiukajtis! dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 626*25c28e83SPiotr Jasiukajtis! dtmp1 = (double) exp0; 627*25c28e83SPiotr Jasiukajtis! yy0 = dtmp0 + dtmp1; 628*25c28e83SPiotr Jasiukajtis! dtmp0 = KA3 * y0; 629*25c28e83SPiotr Jasiukajtis! dtmp0 += KA2; 630*25c28e83SPiotr Jasiukajtis! dtmp0 *= y0; 631*25c28e83SPiotr Jasiukajtis! dtmp0 += KA1; 632*25c28e83SPiotr Jasiukajtis! dtmp0 *= y0; 633*25c28e83SPiotr Jasiukajtis! dtmp0 += KA0; 634*25c28e83SPiotr Jasiukajtis! dtmp0 *= y0; 635*25c28e83SPiotr Jasiukajtis! yy0 += dtmp0; 636*25c28e83SPiotr Jasiukajtis! ftmp0 = *py0; 637*25c28e83SPiotr Jasiukajtis! dtmp0 = (double)ftmp0; 638*25c28e83SPiotr Jasiukajtis! yy0 *= dtmp0; 639*25c28e83SPiotr Jasiukajtis! if (yy0 >= HTHRESH) 640*25c28e83SPiotr Jasiukajtis! yy0 = HTHRESH; 641*25c28e83SPiotr Jasiukajtis! if (yy0 <= LTHRESH) 642*25c28e83SPiotr Jasiukajtis! yy0 = LTHRESH; 643*25c28e83SPiotr Jasiukajtis! ind0 = (int) yy0; 644*25c28e83SPiotr Jasiukajtis! ((int*)&dtmp1)[0] = ind0; 645*25c28e83SPiotr Jasiukajtis! ((int*)&dtmp1)[1] = 0; 646*25c28e83SPiotr Jasiukajtis! dtmp1 = vis_fpackfix(dtmp1); 647*25c28e83SPiotr Jasiukajtis! dtmp0 = (double)ind0; 648*25c28e83SPiotr Jasiukajtis! y0 = yy0 - dtmp0; 649*25c28e83SPiotr Jasiukajtis! dtmp0 = KB2 * y0; 650*25c28e83SPiotr Jasiukajtis! dtmp0 += KB1; 651*25c28e83SPiotr Jasiukajtis! yy0 = dtmp0 * y0; 652*25c28e83SPiotr Jasiukajtis! ind0 &= 255; 653*25c28e83SPiotr Jasiukajtis! ind0 <<= 3; 654*25c28e83SPiotr Jasiukajtis! di0 = *(double*)((char*)__mt_constexp2f + ind0); 655*25c28e83SPiotr Jasiukajtis! di0 = vis_fpadd32(di0,dtmp1); 656*25c28e83SPiotr Jasiukajtis! yy0 *= di0; 657*25c28e83SPiotr Jasiukajtis! yy0 += di0; 658*25c28e83SPiotr Jasiukajtis! ftmp0 = (float)yy0; 659*25c28e83SPiotr Jasiukajtis! *pz0 = ftmp0; 660*25c28e83SPiotr Jasiukajtis!-------------------------------------------------------------------- 661*25c28e83SPiotr Jasiukajtis! !!!!! vpowf algorithm,stridex=0 !!!!! 662*25c28e83SPiotr Jasiukajtis! 663*25c28e83SPiotr Jasiukajtis! ax = ax0 = *px; 664*25c28e83SPiotr Jasiukajtis! exp0 = ax0 & 0x7fffffff; 665*25c28e83SPiotr Jasiukajtis! exp0 >>= 23; 666*25c28e83SPiotr Jasiukajtis! exp0 -= 127; 667*25c28e83SPiotr Jasiukajtis! exp0 <<= 8; 668*25c28e83SPiotr Jasiukajtis! ax0 &= 0x007fffff; 669*25c28e83SPiotr Jasiukajtis! i0 = ax0 + 0x8000; 670*25c28e83SPiotr Jasiukajtis! i0 &= 0xffff0000; 671*25c28e83SPiotr Jasiukajtis! ind0 = i0 >> 12; 672*25c28e83SPiotr Jasiukajtis! ind0 &= -8; 673*25c28e83SPiotr Jasiukajtis! i0 = ax0 - i0; 674*25c28e83SPiotr Jasiukajtis! dtmp0 = (double) i0; 675*25c28e83SPiotr Jasiukajtis! dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 676*25c28e83SPiotr Jasiukajtis! y0 = dtmp0 * dtmp1; 677*25c28e83SPiotr Jasiukajtis! dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 678*25c28e83SPiotr Jasiukajtis! dtmp1 = (double) exp0; 679*25c28e83SPiotr Jasiukajtis! yy0 = dtmp0 + dtmp1; 680*25c28e83SPiotr Jasiukajtis! dtmp0 = KA3 * y0; 681*25c28e83SPiotr Jasiukajtis! dtmp0 += KA2; 682*25c28e83SPiotr Jasiukajtis! dtmp0 *= y0; 683*25c28e83SPiotr Jasiukajtis! dtmp0 += KA1; 684*25c28e83SPiotr Jasiukajtis! dtmp0 *= y0; 685*25c28e83SPiotr Jasiukajtis! dtmp0 += KA0; 686*25c28e83SPiotr Jasiukajtis! dtmp0 *= y0; 687*25c28e83SPiotr Jasiukajtis! yy = yy0 + dtmp0; 688*25c28e83SPiotr Jasiukajtis! 689*25c28e83SPiotr Jasiukajtis! uy = ((int*)py)[0]; 690*25c28e83SPiotr Jasiukajtis! ay = uy & 0x7fffffff; 691*25c28e83SPiotr Jasiukajtis! if (ay >= 0x7f800000) { /* |Y| = Inf or Nan */ 692*25c28e83SPiotr Jasiukajtis! float fy; 693*25c28e83SPiotr Jasiukajtis! if (ay > 0x7f800000) fy = *py + *py; /* |Y| = Nan */ 694*25c28e83SPiotr Jasiukajtis! else fy = ((ax < 0x3f800000) != (uy >> 31)) ? ZERO : *(float*)&ay; 695*25c28e83SPiotr Jasiukajtis! pz[0] = fy; 696*25c28e83SPiotr Jasiukajtis! goto next; 697*25c28e83SPiotr Jasiukajtis! } 698*25c28e83SPiotr Jasiukajtis! 699*25c28e83SPiotr Jasiukajtis! 700*25c28e83SPiotr Jasiukajtis! ftmp0 = py[0]; 701*25c28e83SPiotr Jasiukajtis! dtmp0 = (double)ftmp0; 702*25c28e83SPiotr Jasiukajtis! yy0 = dtmp0 * yy; 703*25c28e83SPiotr Jasiukajtis! if (yy0 >= HTHRESH) 704*25c28e83SPiotr Jasiukajtis! if (yy0 <= LTHRESH) 705*25c28e83SPiotr Jasiukajtis! yy0 = HTHRESH; 706*25c28e83SPiotr Jasiukajtis! yy0 = LTHRESH; 707*25c28e83SPiotr Jasiukajtis! ii0 = (int) yy0; 708*25c28e83SPiotr Jasiukajtis! dtmp0 = (double)ii0; 709*25c28e83SPiotr Jasiukajtis! i0 = ii0 >> 5; 710*25c28e83SPiotr Jasiukajtis! i0 &= -8; 711*25c28e83SPiotr Jasiukajtis! di0 = ((double*)((char*)(__mt_constexp2fb + 150) + i0))[0]; 712*25c28e83SPiotr Jasiukajtis! y0 = yy0 - dtmp0; 713*25c28e83SPiotr Jasiukajtis! dtmp0 = KB2 * y0; 714*25c28e83SPiotr Jasiukajtis! dtmp0 += KB1; 715*25c28e83SPiotr Jasiukajtis! yy0 = dtmp0 * y0; 716*25c28e83SPiotr Jasiukajtis! ii0 &= 255; 717*25c28e83SPiotr Jasiukajtis! ii0 <<= 3; 718*25c28e83SPiotr Jasiukajtis! dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 719*25c28e83SPiotr Jasiukajtis! di0 *= dtmp0; 720*25c28e83SPiotr Jasiukajtis! dtmp0 = yy0 * di0; 721*25c28e83SPiotr Jasiukajtis! dtmp0 += di0; 722*25c28e83SPiotr Jasiukajtis! ftmp0 = (float)dtmp0; 723*25c28e83SPiotr Jasiukajtis! pz[0] = ftmp0; 724*25c28e83SPiotr Jasiukajtis!-------------------------------------------------------------------- 725*25c28e83SPiotr Jasiukajtis ENTRY(__vpowf) 726*25c28e83SPiotr Jasiukajtis save %sp,-SA(MINFRAME)-tmps,%sp 727*25c28e83SPiotr Jasiukajtis PIC_SETUP(l7) 728*25c28e83SPiotr Jasiukajtis PIC_SET(l7,.CONST_TBL,l2) 729*25c28e83SPiotr Jasiukajtis wr %g0,0x60,%gsr 730*25c28e83SPiotr Jasiukajtis 731*25c28e83SPiotr Jasiukajtis#ifdef __sparcv9 732*25c28e83SPiotr Jasiukajtis ldx [%fp+STACK_BIAS+176],stridez 733*25c28e83SPiotr Jasiukajtis#else 734*25c28e83SPiotr Jasiukajtis ld [%fp+STACK_BIAS+92],stridez 735*25c28e83SPiotr Jasiukajtis#endif 736*25c28e83SPiotr Jasiukajtis 737*25c28e83SPiotr Jasiukajtis ld [%i1],%o3 738*25c28e83SPiotr Jasiukajtis add %l2,2064,%l0 739*25c28e83SPiotr Jasiukajtis st %i0,[%fp+tmp_counter] 740*25c28e83SPiotr Jasiukajtis add %l0,2048,%l6 741*25c28e83SPiotr Jasiukajtis ldd [%l6],KA3 742*25c28e83SPiotr Jasiukajtis ldd [%l6+8],KA2 743*25c28e83SPiotr Jasiukajtis sll stridey,2,stridey 744*25c28e83SPiotr Jasiukajtis ldd [%l6+16],KA1 745*25c28e83SPiotr Jasiukajtis sll stridez,2,stridez 746*25c28e83SPiotr Jasiukajtis ldd [%l6+24],KA0 747*25c28e83SPiotr Jasiukajtis sll %i2,2,stridex 748*25c28e83SPiotr Jasiukajtis ldd [%l6+32],KB2 749*25c28e83SPiotr Jasiukajtis sethi %hi(0x7ffffc00),MASK_0x7fffffff 750*25c28e83SPiotr Jasiukajtis fzero %f2 751*25c28e83SPiotr Jasiukajtis ldd [%l6+40],KB1 752*25c28e83SPiotr Jasiukajtis add MASK_0x7fffffff,1023,MASK_0x7fffffff 753*25c28e83SPiotr Jasiukajtis fzero %f10 754*25c28e83SPiotr Jasiukajtis ldd [%l6+48],HTHRESHOLD 755*25c28e83SPiotr Jasiukajtis sethi %hi(0x7ffc00),MASK_0x007fffff 756*25c28e83SPiotr Jasiukajtis fzero %f20 757*25c28e83SPiotr Jasiukajtis ldd [%l6+56],LTHRESHOLD 758*25c28e83SPiotr Jasiukajtis sethi %hi(0x8000),CONST_0x8000 759*25c28e83SPiotr Jasiukajtis add MASK_0x007fffff,1023,MASK_0x007fffff 760*25c28e83SPiotr Jasiukajtis 761*25c28e83SPiotr Jasiukajtis cmp stridex,0 762*25c28e83SPiotr Jasiukajtis bne,pt %icc,.common_case 763*25c28e83SPiotr Jasiukajtis sethi %hi(0x00800000),%l6 764*25c28e83SPiotr Jasiukajtis 765*25c28e83SPiotr Jasiukajtis cmp %o3,%l6 766*25c28e83SPiotr Jasiukajtis bl,pn %icc,.common_case 767*25c28e83SPiotr Jasiukajtis sethi %hi(0x7f800000),%o1 768*25c28e83SPiotr Jasiukajtis 769*25c28e83SPiotr Jasiukajtis cmp %o3,%o1 770*25c28e83SPiotr Jasiukajtis bge,pn %icc,.common_case 771*25c28e83SPiotr Jasiukajtis sethi %hi(0x3f800000),%l6 772*25c28e83SPiotr Jasiukajtis 773*25c28e83SPiotr Jasiukajtis cmp %o3,%l6 774*25c28e83SPiotr Jasiukajtis bne,pt %icc,.stridex_zero 775*25c28e83SPiotr Jasiukajtis nop 776*25c28e83SPiotr Jasiukajtis 777*25c28e83SPiotr Jasiukajtis.common_case: 778*25c28e83SPiotr Jasiukajtis stx %i1,[%fp+tmp_px] 779*25c28e83SPiotr Jasiukajtis stx %i3,[%fp+tmp_py] 780*25c28e83SPiotr Jasiukajtis.begin: 781*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],counter 782*25c28e83SPiotr Jasiukajtis ldx [%fp+tmp_px],%o2 783*25c28e83SPiotr Jasiukajtis ldx [%fp+tmp_py],%i2 784*25c28e83SPiotr Jasiukajtis st %g0,[%fp+tmp_counter] 785*25c28e83SPiotr Jasiukajtis.begin1: 786*25c28e83SPiotr Jasiukajtis cmp counter,0 787*25c28e83SPiotr Jasiukajtis ble,pn %icc,.exit 788*25c28e83SPiotr Jasiukajtis lda [%o2]0x82,%i1 ! (Y0_2) ax0 = *px; 789*25c28e83SPiotr Jasiukajtis 790*25c28e83SPiotr Jasiukajtis lda [%i2]0x82,%l7 791*25c28e83SPiotr Jasiukajtis sethi %hi(0xffff0000),%l6 792*25c28e83SPiotr Jasiukajtis sethi %hi(0x7f800000),%o5 793*25c28e83SPiotr Jasiukajtis 794*25c28e83SPiotr Jasiukajtis and %i1,MASK_0x7fffffff,%i3 ! (Y0_2) exp0 = ax0 & 0x7fffffff; 795*25c28e83SPiotr Jasiukajtis and %i1,MASK_0x007fffff,%g5 ! (Y0_2) ax0 &= 0x007fffff; 796*25c28e83SPiotr Jasiukajtis 797*25c28e83SPiotr Jasiukajtis cmp %i3,%o5 ! (Y0_2) ax0 ? 0x7f800000 798*25c28e83SPiotr Jasiukajtis bge,pn %icc,.spec1 ! (Y0_2) if( ax0 >= 0x7f800000 ) 799*25c28e83SPiotr Jasiukajtis and %l7,MASK_0x7fffffff,%o4 800*25c28e83SPiotr Jasiukajtis 801*25c28e83SPiotr Jasiukajtis cmp %o4,%o5 ! (Y0_2) ay0 ? 0x7f800000 802*25c28e83SPiotr Jasiukajtis bge,pn %icc,.spec1 ! (Y0_2) if( ay0 >= 0x7f800000 ) 803*25c28e83SPiotr Jasiukajtis nop 804*25c28e83SPiotr Jasiukajtis 805*25c28e83SPiotr Jasiukajtis cmp %i1,MASK_0x007fffff ! (Y0_2) ux0 ? 0x800000 806*25c28e83SPiotr Jasiukajtis ble,pn %icc,.spec2 ! (Y0_2) if(ux0 < 0x800000) 807*25c28e83SPiotr Jasiukajtis srl %i3,23,%o3 ! (Y0_2) exp0 >>= 23; 808*25c28e83SPiotr Jasiukajtis 809*25c28e83SPiotr Jasiukajtis sub %o3,127,%o3 ! (Y0_2) exp0 -= 127; 810*25c28e83SPiotr Jasiukajtis 811*25c28e83SPiotr Jasiukajtis add %g5,CONST_0x8000,%i3 ! (Y0_2) i0 = ax0 + 0x8000; 812*25c28e83SPiotr Jasiukajtis 813*25c28e83SPiotr Jasiukajtis sll %o3,8,%o4 ! (Y0_2) exp0 <<= 8; 814*25c28e83SPiotr Jasiukajtis and %i3,%l6,%i3 ! (Y0_2) i0 &= 0xffff0000; 815*25c28e83SPiotr Jasiukajtis st %o4,[%fp+tmp3] ! (Y0_2) STORE exp0 816*25c28e83SPiotr Jasiukajtis 817*25c28e83SPiotr Jasiukajtis sub %g5,%i3,%o4 ! (Y0_2) i0 = ax0 - i0; 818*25c28e83SPiotr Jasiukajtis st %o4,[%fp+tmp2] ! (Y0_2) STORE i0 819*25c28e83SPiotr Jasiukajtis add %o2,stridex,%o2 ! px += stridex 820*25c28e83SPiotr Jasiukajtis 821*25c28e83SPiotr Jasiukajtis sra %i3,12,%o0 ! (Y0_2) ind0 = i0 >> 12; 822*25c28e83SPiotr Jasiukajtis lda [%o2]0x82,%o3 ! (Y1_2) ax0 = *px; 823*25c28e83SPiotr Jasiukajtis 824*25c28e83SPiotr Jasiukajtis and %o0,-8,%g5 ! (Y0_2) ind0 &= -8; 825*25c28e83SPiotr Jasiukajtis ld [%fp+tmp2],%f14 ! (Y0_2) dtmp0 = (double) i0; 826*25c28e83SPiotr Jasiukajtis 827*25c28e83SPiotr Jasiukajtis and %o3,MASK_0x7fffffff,%i3 ! (Y1_2) exp0 = ax0 & 0x7fffffff; 828*25c28e83SPiotr Jasiukajtis and %o3,MASK_0x007fffff,%o0 ! (Y1_2) ax0 &= 0x007fffff; 829*25c28e83SPiotr Jasiukajtis 830*25c28e83SPiotr Jasiukajtis cmp %i3,%o5 ! (Y1_2) ax0 ? 0x7f800000 831*25c28e83SPiotr Jasiukajtis add %l2,%g5,%g1 ! (Y0_2) (char*)__mt_constlog4f + ind0 832*25c28e83SPiotr Jasiukajtis 833*25c28e83SPiotr Jasiukajtis srl %i3,23,%i3 ! (Y1_2) exp0 >>= 23; 834*25c28e83SPiotr Jasiukajtis add %o0,CONST_0x8000,%i1 ! (Y1_2) i0 = ax0 + 0x8000; 835*25c28e83SPiotr Jasiukajtis 836*25c28e83SPiotr Jasiukajtis ldd [%g1+8],%f48 ! (Y0_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 837*25c28e83SPiotr Jasiukajtis sub %i3,127,%i3 ! (Y1_2) exp0 -= 127; 838*25c28e83SPiotr Jasiukajtis fitod %f14,%f60 ! (Y0_2) dtmp0 = (double) i0; 839*25c28e83SPiotr Jasiukajtis 840*25c28e83SPiotr Jasiukajtis sll %i3,8,%i3 ! (Y1_2) exp0 <<= 8; 841*25c28e83SPiotr Jasiukajtis and %i1,%l6,%i1 ! (Y1_2) i0 &= 0xffff0000; 842*25c28e83SPiotr Jasiukajtis st %i3,[%fp+tmp4] ! (Y1_2) STORE exp0 843*25c28e83SPiotr Jasiukajtis 844*25c28e83SPiotr Jasiukajtis sub %o0,%i1,%o0 ! (Y1_2) i0 = ax0 - i0; 845*25c28e83SPiotr Jasiukajtis st %o0,[%fp+tmp5] ! (Y1_2) STORE i0 846*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update0 ! (Y1_2) if(ax0 >= 0x7f800000) 847*25c28e83SPiotr Jasiukajtis nop 848*25c28e83SPiotr Jasiukajtis.cont0: 849*25c28e83SPiotr Jasiukajtis cmp %o3,MASK_0x007fffff ! (Y1_2) ux0 ? 0x800000 850*25c28e83SPiotr Jasiukajtis 851*25c28e83SPiotr Jasiukajtis fmuld %f60,%f48,%f48 ! (Y0_2) y0 = dtmp0 * dtmp1; 852*25c28e83SPiotr Jasiukajtis ble,pn %icc,.update1 ! (Y1_2) if(ux0 < 0x800000) 853*25c28e83SPiotr Jasiukajtis nop 854*25c28e83SPiotr Jasiukajtis.cont1: 855*25c28e83SPiotr Jasiukajtis fmuld KA3,%f48,%f62 ! (Y0_2) dtmp0 = KA3 * y0; 856*25c28e83SPiotr Jasiukajtis 857*25c28e83SPiotr Jasiukajtis faddd %f62,KA2,%f22 ! (Y0_2) dtmp0 += KA2; 858*25c28e83SPiotr Jasiukajtis 859*25c28e83SPiotr Jasiukajtis sra %i1,12,%o1 ! (Y1_2) ind0 = i0 >> 12; 860*25c28e83SPiotr Jasiukajtis add %o2,stridex,%i3 ! px += stridex 861*25c28e83SPiotr Jasiukajtis lda [stridex+%o2]0x82,%g1 ! (Y2_2) ax0 = *px; 862*25c28e83SPiotr Jasiukajtis 863*25c28e83SPiotr Jasiukajtis and %o1,-8,%o0 ! (Y1_2) ind0 &= -8; 864*25c28e83SPiotr Jasiukajtis ld [%fp+tmp5],%f12 ! (Y1_2) LOAD i0 865*25c28e83SPiotr Jasiukajtis 866*25c28e83SPiotr Jasiukajtis and %g1,MASK_0x7fffffff,%i1 ! (Y2_2) exp0 = ax0 & 0x7fffffff; 867*25c28e83SPiotr Jasiukajtis and %g1,MASK_0x007fffff,%o2 ! (Y2_2) ax0 &= 0x007fffff; 868*25c28e83SPiotr Jasiukajtis lda [%i2]0x82,%f0 ! (Y0_2) ftmp0 = *py0; 869*25c28e83SPiotr Jasiukajtis 870*25c28e83SPiotr Jasiukajtis srl %i1,23,%o3 ! (Y2_2) exp0 >>= 23; 871*25c28e83SPiotr Jasiukajtis cmp %i1,%o5 ! (Y2_2) ax0 ? 0x7f800000 872*25c28e83SPiotr Jasiukajtis 873*25c28e83SPiotr Jasiukajtis fmuld %f22,%f48,%f26 ! (Y0_2) dtmp0 *= y0; 874*25c28e83SPiotr Jasiukajtis add %l2,%o0,%i1 ! (Y1_2) (char*)__mt_constlog4f + ind0 875*25c28e83SPiotr Jasiukajtis sub %o3,127,%l7 ! (Y2_2) exp0 -= 127; 876*25c28e83SPiotr Jasiukajtis 877*25c28e83SPiotr Jasiukajtis add %o2,CONST_0x8000,%o1 ! (Y2_2) i0 = ax0 + 0x8000; 878*25c28e83SPiotr Jasiukajtis ldd [%i1+8],%f50 ! (Y1_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 879*25c28e83SPiotr Jasiukajtis fitod %f12,%f28 ! (Y1_2) dtmp0 = (double) i0; 880*25c28e83SPiotr Jasiukajtis 881*25c28e83SPiotr Jasiukajtis sll %l7,8,%l7 ! (Y2_2) exp0 <<= 8; 882*25c28e83SPiotr Jasiukajtis and %o1,%l6,%o1 ! (Y2_2) i0 &= 0xffff0000; 883*25c28e83SPiotr Jasiukajtis st %l7,[%fp+tmp6] ! (Y2_2) STORE exp0 884*25c28e83SPiotr Jasiukajtis 885*25c28e83SPiotr Jasiukajtis sub %o2,%o1,%i1 ! (Y2_2) i0 = ax0 - i0; 886*25c28e83SPiotr Jasiukajtis st %i1,[%fp+tmp2] ! (Y2_2) STORE i0 887*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update2 ! (Y2_2) if(ax0 >= 0x7f800000) 888*25c28e83SPiotr Jasiukajtis nop 889*25c28e83SPiotr Jasiukajtis.cont2: 890*25c28e83SPiotr Jasiukajtis cmp %g1,MASK_0x007fffff ! (Y2_2) ux0 ? 0x800000 891*25c28e83SPiotr Jasiukajtis 892*25c28e83SPiotr Jasiukajtis fmuld %f28,%f50,%f46 ! (Y1_2) y0 = dtmp0 * dtmp1; 893*25c28e83SPiotr Jasiukajtis ble,pn %icc,.update3 ! (Y2_2) if(ux0 < 0x800000) 894*25c28e83SPiotr Jasiukajtis faddd %f26,KA1,%f50 ! (Y0_2) dtmp0 += KA1; 895*25c28e83SPiotr Jasiukajtis.cont3: 896*25c28e83SPiotr Jasiukajtis ld [%fp+tmp3],%f4 ! (Y0_2) dtmp1 = (double) exp0; 897*25c28e83SPiotr Jasiukajtis 898*25c28e83SPiotr Jasiukajtis fstod %f0,%f24 ! (Y0_2) dtmp0 = (double)ftmp0; 899*25c28e83SPiotr Jasiukajtis 900*25c28e83SPiotr Jasiukajtis fmuld KA3,%f46,%f28 ! (Y1_1) dtmp0 = KA3 * y0; 901*25c28e83SPiotr Jasiukajtis 902*25c28e83SPiotr Jasiukajtis fitod %f4,%f26 ! (Y0_1) dtmp1 = (double) exp0; 903*25c28e83SPiotr Jasiukajtis 904*25c28e83SPiotr Jasiukajtis fmuld %f50,%f48,%f50 ! (Y0_1) dtmp0 *= y0; 905*25c28e83SPiotr Jasiukajtis 906*25c28e83SPiotr Jasiukajtis faddd %f28,KA2,%f28 ! (Y1_1) dtmp0 += KA2; 907*25c28e83SPiotr Jasiukajtis 908*25c28e83SPiotr Jasiukajtis ldd [%l2+%g5],%f60 ! (Y0_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 909*25c28e83SPiotr Jasiukajtis add %i3,stridex,%o2 ! px += stridex 910*25c28e83SPiotr Jasiukajtis 911*25c28e83SPiotr Jasiukajtis lda [%o2]0x82,%i1 ! (Y0_2) ax0 = *px; 912*25c28e83SPiotr Jasiukajtis sra %o1,12,%g5 ! (Y2_1) ind0 = i0 >> 12; 913*25c28e83SPiotr Jasiukajtis 914*25c28e83SPiotr Jasiukajtis faddd %f50,KA0,%f58 ! (Y0_1) dtmp0 += KA0; 915*25c28e83SPiotr Jasiukajtis and %g5,-8,%o1 ! (Y2_1) ind0 &= -8; 916*25c28e83SPiotr Jasiukajtis ld [%fp+tmp2],%f6 ! (Y2_1) dtmp0 = (double) i0; 917*25c28e83SPiotr Jasiukajtis 918*25c28e83SPiotr Jasiukajtis and %i1,MASK_0x7fffffff,%i3 ! (Y0_2) exp0 = ax0 & 0x7fffffff; 919*25c28e83SPiotr Jasiukajtis and %i1,MASK_0x007fffff,%g5 ! (Y0_2) ax0 &= 0x007fffff; 920*25c28e83SPiotr Jasiukajtis 921*25c28e83SPiotr Jasiukajtis srl %i3,23,%o3 ! (Y0_2) exp0 >>= 23; 922*25c28e83SPiotr Jasiukajtis add %l2,%o1,%g1 ! (Y2_1) (char*)__mt_constlog4f + ind0 923*25c28e83SPiotr Jasiukajtis faddd %f60,%f26,%f26 ! (Y0_1) yy0 = dtmp0 + dtmp1; 924*25c28e83SPiotr Jasiukajtis 925*25c28e83SPiotr Jasiukajtis fmuld %f28,%f46,%f50 ! (Y1_1) dtmp0 *= y0; 926*25c28e83SPiotr Jasiukajtis sub %o3,127,%o3 ! (Y0_2) exp0 -= 127; 927*25c28e83SPiotr Jasiukajtis cmp %i3,%o5 ! (Y0_2) ax0 ? 0x7f800000 928*25c28e83SPiotr Jasiukajtis 929*25c28e83SPiotr Jasiukajtis fmuld %f58,%f48,%f48 ! (Y0_1) dtmp0 *= y0; 930*25c28e83SPiotr Jasiukajtis add %g5,CONST_0x8000,%i3 ! (Y0_2) i0 = ax0 + 0x8000; 931*25c28e83SPiotr Jasiukajtis ldd [%g1+8],%f58 ! (Y2_1) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 932*25c28e83SPiotr Jasiukajtis fitod %f6,%f54 ! (Y2_1) dtmp0 = (double) i0; 933*25c28e83SPiotr Jasiukajtis 934*25c28e83SPiotr Jasiukajtis sll %o3,8,%o4 ! (Y0_2) exp0 <<= 8; 935*25c28e83SPiotr Jasiukajtis and %i3,%l6,%i3 ! (Y0_2) i0 &= 0xffff0000; 936*25c28e83SPiotr Jasiukajtis st %o4,[%fp+tmp3] ! (Y0_2) STORE exp0 937*25c28e83SPiotr Jasiukajtis 938*25c28e83SPiotr Jasiukajtis sub %g5,%i3,%o4 ! (Y0_2) i0 = ax0 - i0; 939*25c28e83SPiotr Jasiukajtis st %o4,[%fp+tmp2] ! (Y0_2) STORE i0 940*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update4 ! (Y0_2) if( ax0 >= 0x7f800000 ) 941*25c28e83SPiotr Jasiukajtis nop 942*25c28e83SPiotr Jasiukajtis.cont4: 943*25c28e83SPiotr Jasiukajtis lda [stridey+%i2]0x82,%g1 ! (Y1_1) ay0 = *(unsigned*)py0 944*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o4 ! py += stridey 945*25c28e83SPiotr Jasiukajtis cmp %i1,MASK_0x007fffff ! (Y0_2) ux0 ? 0x800000 946*25c28e83SPiotr Jasiukajtis 947*25c28e83SPiotr Jasiukajtis fmuld %f54,%f58,%f28 ! (Y2_1) y0 = dtmp0 * dtmp1; 948*25c28e83SPiotr Jasiukajtis lda [stridey+%i2]0x82,%f2 ! (Y1_1) ftmp0 = *py0; 949*25c28e83SPiotr Jasiukajtis ble,pn %icc,.update5 ! (Y0_2) if(ux0 < 0x800000) 950*25c28e83SPiotr Jasiukajtis faddd %f50,KA1,%f54 ! (Y1_1) dtmp0 += KA1; 951*25c28e83SPiotr Jasiukajtis.cont5: 952*25c28e83SPiotr Jasiukajtis and %g1,MASK_0x7fffffff,%g1 ! (Y1_1) ay0 &= 0x7fffffff; 953*25c28e83SPiotr Jasiukajtis ld [%fp+tmp4],%f1 ! (Y1_1) LOAD exp0 954*25c28e83SPiotr Jasiukajtis faddd %f26,%f48,%f58 ! (Y0_1) yy0 += dtmp0; 955*25c28e83SPiotr Jasiukajtis 956*25c28e83SPiotr Jasiukajtis cmp %g1,%o5 ! (Y1_1) ay0 ? 0x7f800000 957*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update6 ! (Y1_1) if(ay0 >= 0x7f800000) 958*25c28e83SPiotr Jasiukajtis nop 959*25c28e83SPiotr Jasiukajtis.cont6: 960*25c28e83SPiotr Jasiukajtis fmuld KA3,%f28,%f62 ! (Y2_1) dtmp0 = KA3 * y0; 961*25c28e83SPiotr Jasiukajtis fstod %f2,%f22 ! (Y1_1) dtmp0 = (double)ftmp0; 962*25c28e83SPiotr Jasiukajtis 963*25c28e83SPiotr Jasiukajtis fmuld %f24,%f58,%f58 ! (Y0_1) yy0 *= dtmp0; 964*25c28e83SPiotr Jasiukajtis 965*25c28e83SPiotr Jasiukajtis fitod %f1,%f48 ! (Y1_1) dtmp1 = (double) exp0; 966*25c28e83SPiotr Jasiukajtis 967*25c28e83SPiotr Jasiukajtis fmuld %f54,%f46,%f54 ! (Y1_1) dtmp0 *= y0; 968*25c28e83SPiotr Jasiukajtis 969*25c28e83SPiotr Jasiukajtis faddd %f62,KA2,%f26 ! (Y2_1) dtmp0 += KA2; 970*25c28e83SPiotr Jasiukajtis 971*25c28e83SPiotr Jasiukajtis add %o2,stridex,%o2 ! px += stridex 972*25c28e83SPiotr Jasiukajtis ldd [%l2+%o0],%f60 ! (Y1_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 973*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f58 ! (Y0_1) if (yy0 >= HTHRESH) 974*25c28e83SPiotr Jasiukajtis 975*25c28e83SPiotr Jasiukajtis sra %i3,12,%o0 ! (Y0_2) ind0 = i0 >> 12; 976*25c28e83SPiotr Jasiukajtis lda [%o2]0x82,%o3 ! (Y1_2) ax0 = *px; 977*25c28e83SPiotr Jasiukajtis 978*25c28e83SPiotr Jasiukajtis faddd %f54,KA0,%f56 ! (Y1_1) dtmp0 += KA0; 979*25c28e83SPiotr Jasiukajtis and %o0,-8,%g5 ! (Y0_2) ind0 &= -8; 980*25c28e83SPiotr Jasiukajtis ld [%fp+tmp2],%f14 ! (Y0_2) dtmp0 = (double) i0; 981*25c28e83SPiotr Jasiukajtis 982*25c28e83SPiotr Jasiukajtis and %o3,MASK_0x7fffffff,%i3 ! (Y1_2) exp0 = ax0 & 0x7fffffff; 983*25c28e83SPiotr Jasiukajtis and %o3,MASK_0x007fffff,%o0 ! (Y1_2) ax0 &= 0x007fffff; 984*25c28e83SPiotr Jasiukajtis 985*25c28e83SPiotr Jasiukajtis cmp %i3,%o5 ! (Y1_2) ax0 ? 0x7f800000 986*25c28e83SPiotr Jasiukajtis add %l2,%g5,%g1 ! (Y0_2) (char*)__mt_constlog4f + ind0 987*25c28e83SPiotr Jasiukajtis faddd %f60,%f48,%f12 ! (Y1_1) yy0 = dtmp0 + dtmp1; 988*25c28e83SPiotr Jasiukajtis 989*25c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f50 ! (Y2_1) dtmp0 *= y0; 990*25c28e83SPiotr Jasiukajtis srl %i3,23,%i3 ! (Y1_2) exp0 >>= 23; 991*25c28e83SPiotr Jasiukajtis add %o0,CONST_0x8000,%i1 ! (Y1_2) i0 = ax0 + 0x8000; 992*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f58 ! (Y0_1) if (yy0 <= LTHRESH) 993*25c28e83SPiotr Jasiukajtis 994*25c28e83SPiotr Jasiukajtis fmuld %f56,%f46,%f46 ! (Y1_1) dtmp0 *= y0; 995*25c28e83SPiotr Jasiukajtis ldd [%g1+8],%f48 ! (Y0_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 996*25c28e83SPiotr Jasiukajtis sub %i3,127,%i3 ! (Y1_2) exp0 -= 127; 997*25c28e83SPiotr Jasiukajtis fitod %f14,%f60 ! (Y0_2) dtmp0 = (double) i0; 998*25c28e83SPiotr Jasiukajtis 999*25c28e83SPiotr Jasiukajtis sll %i3,8,%i2 ! (Y1_2) exp0 <<= 8; 1000*25c28e83SPiotr Jasiukajtis and %i1,%l6,%i1 ! (Y1_2) i0 &= 0xffff0000; 1001*25c28e83SPiotr Jasiukajtis st %i2,[%fp+tmp4] ! (Y1_2) STORE exp0 1002*25c28e83SPiotr Jasiukajtis 1003*25c28e83SPiotr Jasiukajtis sub %o0,%i1,%o0 ! (Y1_2) i0 = ax0 - i0; 1004*25c28e83SPiotr Jasiukajtis st %o0,[%fp+tmp5] ! (Y1_2) STORE i0 1005*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update7 ! (Y1_2) if(ax0 >= 0x7f800000) 1006*25c28e83SPiotr Jasiukajtis nop 1007*25c28e83SPiotr Jasiukajtis.cont7: 1008*25c28e83SPiotr Jasiukajtis lda [stridey+%o4]0x82,%i3 ! Y(2_1) ay0 = *py0 1009*25c28e83SPiotr Jasiukajtis cmp %o3,MASK_0x007fffff ! (Y1_2) ux0 ? 0x800000 1010*25c28e83SPiotr Jasiukajtis add %o4,stridey,%i2 ! py += stridey; 1011*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f58 ! (Y0_1) yy0 = HTHRESH; 1012*25c28e83SPiotr Jasiukajtis 1013*25c28e83SPiotr Jasiukajtis fmuld %f60,%f48,%f48 ! (Y0_2) y0 = dtmp0 * dtmp1; 1014*25c28e83SPiotr Jasiukajtis lda [stridey+%o4]0x82,%f16 ! (Y2_1) ftmp0 = *py0; 1015*25c28e83SPiotr Jasiukajtis ble,pn %icc,.update8 ! (Y1_2) if(ux0 < 0x800000) 1016*25c28e83SPiotr Jasiukajtis faddd %f50,KA1,%f52 ! (Y2_1) dtmp0 += KA1; 1017*25c28e83SPiotr Jasiukajtis.cont8: 1018*25c28e83SPiotr Jasiukajtis and %i3,MASK_0x7fffffff,%i3 ! (Y2_1) ay0 &= 0x7fffffff 1019*25c28e83SPiotr Jasiukajtis ld [%fp+tmp6],%f17 ! (Y2_1) dtmp1 = (double) exp0; 1020*25c28e83SPiotr Jasiukajtis faddd %f12,%f46,%f60 ! (Y1_1) yy0 += dtmp0; 1021*25c28e83SPiotr Jasiukajtis 1022*25c28e83SPiotr Jasiukajtis cmp %i3,%o5 ! (Y2_1) ay0 ? 0x7f800000 1023*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update9 ! (Y2_1) if(ay0 >= 0x7f800000) 1024*25c28e83SPiotr Jasiukajtis nop 1025*25c28e83SPiotr Jasiukajtis 1026*25c28e83SPiotr Jasiukajtis.cont9: 1027*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f58 ! (Y0_1) yy0 = LTHRESH; 1028*25c28e83SPiotr Jasiukajtis 1029*25c28e83SPiotr Jasiukajtis fmuld KA3,%f48,%f62 ! (Y0_2) dtmp0 = KA3 * y0; 1030*25c28e83SPiotr Jasiukajtis fstod %f16,%f54 ! (Y2_1) dtmp0 = (double)ftmp0; 1031*25c28e83SPiotr Jasiukajtis 1032*25c28e83SPiotr Jasiukajtis fmuld %f22,%f60,%f56 ! (Y1_1) yy0 *= dtmp0; 1033*25c28e83SPiotr Jasiukajtis 1034*25c28e83SPiotr Jasiukajtis fitod %f17,%f24 ! (Y2_1) dtmp1 = (double) exp0; 1035*25c28e83SPiotr Jasiukajtis 1036*25c28e83SPiotr Jasiukajtis fmuld %f52,%f28,%f52 ! (Y2_1) dtmp0 *= y0; 1037*25c28e83SPiotr Jasiukajtis fdtoi %f58,%f10 ! (Y0_1) ind0 = (int) yy0; 1038*25c28e83SPiotr Jasiukajtis 1039*25c28e83SPiotr Jasiukajtis st %f10,[%fp+tmp0] ! (Y0_1) STORE ind0 1040*25c28e83SPiotr Jasiukajtis faddd %f62,KA2,%f22 ! (Y0_2) dtmp0 += KA2; 1041*25c28e83SPiotr Jasiukajtis 1042*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f56 ! (Y1_1) if (yy0 >= HTHRESH) 1043*25c28e83SPiotr Jasiukajtis ldd [%l2+%o1],%f60 ! (Y2_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 1044*25c28e83SPiotr Jasiukajtis 1045*25c28e83SPiotr Jasiukajtis sra %i1,12,%o1 ! (Y1_2) ind0 = i0 >> 12; 1046*25c28e83SPiotr Jasiukajtis add %o2,stridex,%i3 ! px += stridex 1047*25c28e83SPiotr Jasiukajtis lda [stridex+%o2]0x82,%g1 ! (Y2_2) ax0 = *px; 1048*25c28e83SPiotr Jasiukajtis 1049*25c28e83SPiotr Jasiukajtis and %o1,-8,%o0 ! (Y1_2) ind0 &= -8; 1050*25c28e83SPiotr Jasiukajtis add %i2,stridey,%i2 ! py += stridey 1051*25c28e83SPiotr Jasiukajtis ld [%fp+tmp5],%f12 ! (Y1_2) LOAD i0 1052*25c28e83SPiotr Jasiukajtis faddd %f52,KA0,%f4 ! (Y2_1) dtmp0 += KA0; 1053*25c28e83SPiotr Jasiukajtis 1054*25c28e83SPiotr Jasiukajtis and %g1,MASK_0x7fffffff,%i1 ! (Y2_2) exp0 = ax0 & 0x7fffffff; 1055*25c28e83SPiotr Jasiukajtis and %g1,MASK_0x007fffff,%o2 ! (Y2_2) ax0 &= 0x007fffff; 1056*25c28e83SPiotr Jasiukajtis lda [%i2]0x82,%f0 ! (Y0_2) ftmp0 = *py0; 1057*25c28e83SPiotr Jasiukajtis fitod %f10,%f52 ! (Y0_1) dtmp0 = (double)ind0; 1058*25c28e83SPiotr Jasiukajtis 1059*25c28e83SPiotr Jasiukajtis srl %i1,23,%o3 ! (Y2_2) exp0 >>= 23; 1060*25c28e83SPiotr Jasiukajtis cmp %i1,%o5 ! (Y2_2) ax0 ? 0x7f800000 1061*25c28e83SPiotr Jasiukajtis faddd %f60,%f24,%f18 ! (Y2_1) yy0 = dtmp0 + dtmp1; 1062*25c28e83SPiotr Jasiukajtis 1063*25c28e83SPiotr Jasiukajtis fmuld %f22,%f48,%f26 ! (Y0_2) dtmp0 *= y0; 1064*25c28e83SPiotr Jasiukajtis add %l2,%o0,%i1 ! (Y1_2) (char*)__mt_constlog4f + ind0 1065*25c28e83SPiotr Jasiukajtis sub %o3,127,%l7 ! (Y2_2) exp0 -= 127; 1066*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f56 ! (Y1_1) if (yy0 <= LTHRESH) 1067*25c28e83SPiotr Jasiukajtis 1068*25c28e83SPiotr Jasiukajtis fmuld %f4,%f28,%f24 ! (Y2_1) dtmp0 *= y0; 1069*25c28e83SPiotr Jasiukajtis add %o2,CONST_0x8000,%o1 ! (Y2_2) i0 = ax0 + 0x8000; 1070*25c28e83SPiotr Jasiukajtis ldd [%i1+8],%f50 ! (Y1_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 1071*25c28e83SPiotr Jasiukajtis fitod %f12,%f28 ! (Y1_2) dtmp0 = (double) i0; 1072*25c28e83SPiotr Jasiukajtis 1073*25c28e83SPiotr Jasiukajtis sll %l7,8,%l7 ! (Y2_2) exp0 <<= 8; 1074*25c28e83SPiotr Jasiukajtis and %o1,%l6,%o1 ! (Y2_2) i0 &= 0xffff0000; 1075*25c28e83SPiotr Jasiukajtis st %l7,[%fp+tmp6] ! (Y2_2) STORE exp0 1076*25c28e83SPiotr Jasiukajtis fsubd %f58,%f52,%f60 ! (Y0_1) y0 = yy0 - dtmp0; 1077*25c28e83SPiotr Jasiukajtis 1078*25c28e83SPiotr Jasiukajtis 1079*25c28e83SPiotr Jasiukajtis sub %o2,%o1,%i1 ! (Y2_2) i0 = ax0 - i0; 1080*25c28e83SPiotr Jasiukajtis st %i1,[%fp+tmp2] ! (Y2_2) STORE i0 1081*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update10 ! (Y2_2) if(ax0 >= 0x7f800000) 1082*25c28e83SPiotr Jasiukajtis nop 1083*25c28e83SPiotr Jasiukajtis.cont10: 1084*25c28e83SPiotr Jasiukajtis lda [%i2]0x82,%o2 ! (Y0_2) ay0 = *(int*)py0; 1085*25c28e83SPiotr Jasiukajtis cmp %g1,MASK_0x007fffff ! (Y2_2) ux0 ? 0x800000 1086*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f56 ! (Y1_1) yy0 = HTHRESH; 1087*25c28e83SPiotr Jasiukajtis 1088*25c28e83SPiotr Jasiukajtis fmuld %f28,%f50,%f46 ! (Y1_2) y0 = dtmp0 * dtmp1; 1089*25c28e83SPiotr Jasiukajtis ble,pn %icc,.update11 ! (Y2_2) if(ux0 < 0x800000) 1090*25c28e83SPiotr Jasiukajtis faddd %f26,KA1,%f50 ! (Y0_2) dtmp0 += KA1; 1091*25c28e83SPiotr Jasiukajtis.cont11: 1092*25c28e83SPiotr Jasiukajtis fmuld KB2,%f60,%f62 ! (Y0_1) dtmp0 = KB2 * y0; 1093*25c28e83SPiotr Jasiukajtis and %o2,MASK_0x7fffffff,%o2 ! (Y0_2) ay0 &= 0x7fffffff 1094*25c28e83SPiotr Jasiukajtis ld [%fp+tmp3],%f4 ! (Y0_2) dtmp1 = (double) exp0; 1095*25c28e83SPiotr Jasiukajtis faddd %f18,%f24,%f52 ! (Y2_1) yy0 += dtmp0; 1096*25c28e83SPiotr Jasiukajtis 1097*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%g1 ! (Y0_1) LAOD ind0 1098*25c28e83SPiotr Jasiukajtis cmp %o2,%o5 ! (Y0_2) ay0 ? 0x7f800000 1099*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update12 ! (Y0_2) if( ay0 >= 0x7f800000) 1100*25c28e83SPiotr Jasiukajtis nop 1101*25c28e83SPiotr Jasiukajtis.cont12: 1102*25c28e83SPiotr Jasiukajtis fstod %f0,%f24 ! (Y0_2) dtmp0 = (double)ftmp0; 1103*25c28e83SPiotr Jasiukajtis 1104*25c28e83SPiotr Jasiukajtis cmp counter,6 ! counter 1105*25c28e83SPiotr Jasiukajtis bl,pn %icc,.tail 1106*25c28e83SPiotr Jasiukajtis sub %i5,stridez,%o4 1107*25c28e83SPiotr Jasiukajtis 1108*25c28e83SPiotr Jasiukajtis ba .main_loop 1109*25c28e83SPiotr Jasiukajtis nop 1110*25c28e83SPiotr Jasiukajtis 1111*25c28e83SPiotr Jasiukajtis .align 16 1112*25c28e83SPiotr Jasiukajtis.main_loop: 1113*25c28e83SPiotr Jasiukajtis fmuld KA3,%f46,%f28 ! (Y1_1) dtmp0 = KA3 * y0; 1114*25c28e83SPiotr Jasiukajtis and %g1,255,%o2 ! (Y0_0) ind0 &= 255; 1115*25c28e83SPiotr Jasiukajtis sub counter,3,counter ! counter 1116*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f56 ! (Y1_0) yy0 = LTHRESH; 1117*25c28e83SPiotr Jasiukajtis 1118*25c28e83SPiotr Jasiukajtis fmuld %f54,%f52,%f18 ! (Y2_0) yy0 *= dtmp0; 1119*25c28e83SPiotr Jasiukajtis sll %o2,3,%i1 ! (Y0_0) ind0 <<= 3; 1120*25c28e83SPiotr Jasiukajtis add %o4,stridez,%l7 ! pz += stridez 1121*25c28e83SPiotr Jasiukajtis faddd %f62,KB1,%f62 ! (Y0_0) dtmp0 += KB1; 1122*25c28e83SPiotr Jasiukajtis 1123*25c28e83SPiotr Jasiukajtis fpackfix %f10,%f10 ! (Y0_0) dtmp1 = vis_fpackfix(dtmp1); 1124*25c28e83SPiotr Jasiukajtis fitod %f4,%f26 ! (Y0_1) dtmp1 = (double) exp0; 1125*25c28e83SPiotr Jasiukajtis ldd [%l0+%i1],%f58 ! (Y0_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); 1126*25c28e83SPiotr Jasiukajtis 1127*25c28e83SPiotr Jasiukajtis fmuld %f50,%f48,%f50 ! (Y0_1) dtmp0 *= y0; 1128*25c28e83SPiotr Jasiukajtis fdtoi %f56,%f20 ! (Y1_0) ind0 = (int) yy0; 1129*25c28e83SPiotr Jasiukajtis st %f20,[%fp+tmp1] ! (Y1_0) STORE ind0 1130*25c28e83SPiotr Jasiukajtis 1131*25c28e83SPiotr Jasiukajtis faddd %f28,KA2,%f28 ! (Y1_1) dtmp0 += KA2; 1132*25c28e83SPiotr Jasiukajtis 1133*25c28e83SPiotr Jasiukajtis fmuld %f62,%f60,%f62 ! (Y0_0) yy0 = dtmp0 * y0; 1134*25c28e83SPiotr Jasiukajtis ldd [%l2+%g5],%f60 ! (Y0_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 1135*25c28e83SPiotr Jasiukajtis add %i3,stridex,%o2 ! px += stridex 1136*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f18 ! (Y2_0) if (yy0 >= HTHRESH) 1137*25c28e83SPiotr Jasiukajtis 1138*25c28e83SPiotr Jasiukajtis lda [%o2]0x82,%i1 ! (Y0_2) ax0 = *px; 1139*25c28e83SPiotr Jasiukajtis sra %o1,12,%g5 ! (Y2_1) ind0 = i0 >> 12; 1140*25c28e83SPiotr Jasiukajtis fpadd32 %f10,%f58,%f22 ! (Y0_0) di0 = vis_fpadd32(di0,dtmp1); 1141*25c28e83SPiotr Jasiukajtis 1142*25c28e83SPiotr Jasiukajtis faddd %f50,KA0,%f58 ! (Y0_1) dtmp0 += KA0; 1143*25c28e83SPiotr Jasiukajtis and %g5,-8,%o1 ! (Y2_1) ind0 &= -8; 1144*25c28e83SPiotr Jasiukajtis ld [%fp+tmp2],%f6 ! (Y2_1) dtmp0 = (double) i0; 1145*25c28e83SPiotr Jasiukajtis 1146*25c28e83SPiotr Jasiukajtis fitod %f20,%f52 ! (Y1_0) dtmp0 = (double)ind0; 1147*25c28e83SPiotr Jasiukajtis and %i1,MASK_0x7fffffff,%i3 ! (Y0_2) exp0 = ax0 & 0x7fffffff; 1148*25c28e83SPiotr Jasiukajtis and %i1,MASK_0x007fffff,%g5 ! (Y0_2) ax0 &= 0x007fffff; 1149*25c28e83SPiotr Jasiukajtis 1150*25c28e83SPiotr Jasiukajtis fmuld %f62,%f22,%f62 ! (Y0_0) yy0 *= di0; 1151*25c28e83SPiotr Jasiukajtis srl %i3,23,%o3 ! (Y0_2) exp0 >>= 23; 1152*25c28e83SPiotr Jasiukajtis add %l2,%o1,%g1 ! (Y2_1) (char*)__mt_constlog4f + ind0 1153*25c28e83SPiotr Jasiukajtis faddd %f60,%f26,%f26 ! (Y0_1) yy0 = dtmp0 + dtmp1; 1154*25c28e83SPiotr Jasiukajtis 1155*25c28e83SPiotr Jasiukajtis fmuld %f28,%f46,%f50 ! (Y1_1) dtmp0 *= y0; 1156*25c28e83SPiotr Jasiukajtis sub %o3,127,%o3 ! (Y0_2) exp0 -= 127; 1157*25c28e83SPiotr Jasiukajtis cmp %i3,%o5 ! (Y0_2) ax0 ? 0x7f800000 1158*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f18 ! (Y2_0) if (yy0 <= LTHRESH) 1159*25c28e83SPiotr Jasiukajtis 1160*25c28e83SPiotr Jasiukajtis fmuld %f58,%f48,%f48 ! (Y0_1) dtmp0 *= y0; 1161*25c28e83SPiotr Jasiukajtis add %g5,CONST_0x8000,%i3 ! (Y0_2) i0 = ax0 + 0x8000; 1162*25c28e83SPiotr Jasiukajtis ldd [%g1+8],%f58 ! (Y2_1) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 1163*25c28e83SPiotr Jasiukajtis fitod %f6,%f54 ! (Y2_1) dtmp0 = (double) i0; 1164*25c28e83SPiotr Jasiukajtis 1165*25c28e83SPiotr Jasiukajtis sll %o3,8,%o4 ! (Y0_2) exp0 <<= 8; 1166*25c28e83SPiotr Jasiukajtis and %i3,%l6,%i3 ! (Y0_2) i0 &= 0xffff0000; 1167*25c28e83SPiotr Jasiukajtis st %o4,[%fp+tmp3] ! (Y0_2) STORE exp0 1168*25c28e83SPiotr Jasiukajtis fsubd %f56,%f52,%f52 ! (Y1_0) y0 = yy0 - dtmp0; 1169*25c28e83SPiotr Jasiukajtis 1170*25c28e83SPiotr Jasiukajtis sub %g5,%i3,%o4 ! (Y0_2) i0 = ax0 - i0; 1171*25c28e83SPiotr Jasiukajtis st %o4,[%fp+tmp2] ! (Y0_2) STORE i0 1172*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update13 ! (Y0_2) if( ax0 >= 0x7f800000 ) 1173*25c28e83SPiotr Jasiukajtis faddd %f62,%f22,%f62 ! (Y0_0) yy0 += di0; 1174*25c28e83SPiotr Jasiukajtis.cont13: 1175*25c28e83SPiotr Jasiukajtis lda [stridey+%i2]0x82,%g1 ! (Y1_1) ay0 = *(unsigned*)py0 1176*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o4 ! py += stridey 1177*25c28e83SPiotr Jasiukajtis cmp %i1,MASK_0x007fffff ! (Y0_2) ux0 ? 0x800000 1178*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f18 ! (Y2_0) yy0 = HTHRESH; 1179*25c28e83SPiotr Jasiukajtis 1180*25c28e83SPiotr Jasiukajtis fmuld %f54,%f58,%f28 ! (Y2_1) y0 = dtmp0 * dtmp1; 1181*25c28e83SPiotr Jasiukajtis lda [stridey+%i2]0x82,%f2 ! (Y1_1) ftmp0 = *py0; 1182*25c28e83SPiotr Jasiukajtis ble,pn %icc,.update14 ! (Y0_2) if(ux0 < 0x800000) 1183*25c28e83SPiotr Jasiukajtis faddd %f50,KA1,%f54 ! (Y1_1) dtmp0 += KA1; 1184*25c28e83SPiotr Jasiukajtis.cont14: 1185*25c28e83SPiotr Jasiukajtis fmuld KB2,%f52,%f56 ! (Y1_0) dtmp0 = KB2 * y0; 1186*25c28e83SPiotr Jasiukajtis and %g1,MASK_0x7fffffff,%g1 ! (Y1_1) ay0 &= 0x7fffffff; 1187*25c28e83SPiotr Jasiukajtis ld [%fp+tmp4],%f1 ! (Y1_1) LOAD exp0 1188*25c28e83SPiotr Jasiukajtis faddd %f26,%f48,%f58 ! (Y0_1) yy0 += dtmp0; 1189*25c28e83SPiotr Jasiukajtis 1190*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%g5 ! (Y1_0) ind0 = (int) yy0; 1191*25c28e83SPiotr Jasiukajtis cmp %g1,%o5 ! (Y1_1) ay0 ? 0x7f800000 1192*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update15 ! (Y1_1) if(ay0 >= 0x7f800000) 1193*25c28e83SPiotr Jasiukajtis fdtos %f62,%f8 ! (Y0_0) ftmp0 = (float)yy0; 1194*25c28e83SPiotr Jasiukajtis.cont15: 1195*25c28e83SPiotr Jasiukajtis st %f8,[%l7] ! (Y0_0) *pz0 = ftmp0; 1196*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f18 ! (Y2_0) yy0 = LTHRESH; 1197*25c28e83SPiotr Jasiukajtis 1198*25c28e83SPiotr Jasiukajtis add %l7,stridez,%l7 ! pz += stridez 1199*25c28e83SPiotr Jasiukajtis fmuld KA3,%f28,%f62 ! (Y2_1) dtmp0 = KA3 * y0; 1200*25c28e83SPiotr Jasiukajtis and %g5,255,%g5 ! (Y1_0) ind0 &= 255; 1201*25c28e83SPiotr Jasiukajtis fstod %f2,%f22 ! (Y1_1) dtmp0 = (double)ftmp0; 1202*25c28e83SPiotr Jasiukajtis 1203*25c28e83SPiotr Jasiukajtis fmuld %f24,%f58,%f58 ! (Y0_1) yy0 *= dtmp0; 1204*25c28e83SPiotr Jasiukajtis sll %g5,3,%i2 ! (Y1_0) ind0 <<= 3; 1205*25c28e83SPiotr Jasiukajtis faddd %f56,KB1,%f60 ! (Y1_0) dtmp0 += KB1; 1206*25c28e83SPiotr Jasiukajtis 1207*25c28e83SPiotr Jasiukajtis fpackfix %f20,%f20 ! (Y1_0) dtmp1 = vis_fpackfix(dtmp1); 1208*25c28e83SPiotr Jasiukajtis fitod %f1,%f48 ! (Y1_1) dtmp1 = (double) exp0; 1209*25c28e83SPiotr Jasiukajtis ldd [%l0+%i2],%f56 ! (Y1_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); 1210*25c28e83SPiotr Jasiukajtis 1211*25c28e83SPiotr Jasiukajtis fmuld %f54,%f46,%f54 ! (Y1_1) dtmp0 *= y0; 1212*25c28e83SPiotr Jasiukajtis fdtoi %f18,%f2 ! (Y2_0) ind0 = (int) yy0; 1213*25c28e83SPiotr Jasiukajtis st %f2,[%fp+tmp1] ! (Y2_0) STORE ind0 1214*25c28e83SPiotr Jasiukajtis 1215*25c28e83SPiotr Jasiukajtis faddd %f62,KA2,%f26 ! (Y2_1) dtmp0 += KA2; 1216*25c28e83SPiotr Jasiukajtis 1217*25c28e83SPiotr Jasiukajtis fmuld %f60,%f52,%f62 ! (Y1_0) yy0 = dtmp0 * y0; 1218*25c28e83SPiotr Jasiukajtis add %o2,stridex,%o2 ! px += stridex 1219*25c28e83SPiotr Jasiukajtis ldd [%l2+%o0],%f60 ! (Y1_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 1220*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f58 ! (Y0_1) if (yy0 >= HTHRESH) 1221*25c28e83SPiotr Jasiukajtis 1222*25c28e83SPiotr Jasiukajtis fpadd32 %f20,%f56,%f52 ! (Y1_0) di0 = vis_fpadd32(di0,dtmp1); 1223*25c28e83SPiotr Jasiukajtis sra %i3,12,%o0 ! (Y0_2) ind0 = i0 >> 12; 1224*25c28e83SPiotr Jasiukajtis lda [%o2]0x82,%o3 ! (Y1_2) ax0 = *px; 1225*25c28e83SPiotr Jasiukajtis 1226*25c28e83SPiotr Jasiukajtis faddd %f54,KA0,%f56 ! (Y1_1) dtmp0 += KA0; 1227*25c28e83SPiotr Jasiukajtis and %o0,-8,%g5 ! (Y0_2) ind0 &= -8; 1228*25c28e83SPiotr Jasiukajtis ld [%fp+tmp2],%f14 ! (Y0_2) dtmp0 = (double) i0; 1229*25c28e83SPiotr Jasiukajtis 1230*25c28e83SPiotr Jasiukajtis fitod %f2,%f54 ! (Y2_0) dtmp0 = (double)ind0; 1231*25c28e83SPiotr Jasiukajtis and %o3,MASK_0x7fffffff,%i3 ! (Y1_2) exp0 = ax0 & 0x7fffffff; 1232*25c28e83SPiotr Jasiukajtis and %o3,MASK_0x007fffff,%o0 ! (Y1_2) ax0 &= 0x007fffff; 1233*25c28e83SPiotr Jasiukajtis 1234*25c28e83SPiotr Jasiukajtis fmuld %f62,%f52,%f62 ! (Y1_0) yy0 *= di0; 1235*25c28e83SPiotr Jasiukajtis cmp %i3,%o5 ! (Y1_2) ax0 ? 0x7f800000 1236*25c28e83SPiotr Jasiukajtis add %l2,%g5,%g1 ! (Y0_2) (char*)__mt_constlog4f + ind0 1237*25c28e83SPiotr Jasiukajtis faddd %f60,%f48,%f12 ! (Y1_1) yy0 = dtmp0 + dtmp1; 1238*25c28e83SPiotr Jasiukajtis 1239*25c28e83SPiotr Jasiukajtis fmuld %f26,%f28,%f50 ! (Y2_1) dtmp0 *= y0; 1240*25c28e83SPiotr Jasiukajtis srl %i3,23,%i3 ! (Y1_2) exp0 >>= 23; 1241*25c28e83SPiotr Jasiukajtis add %o0,CONST_0x8000,%i1 ! (Y1_2) i0 = ax0 + 0x8000; 1242*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f58 ! (Y0_1) if (yy0 <= LTHRESH) 1243*25c28e83SPiotr Jasiukajtis 1244*25c28e83SPiotr Jasiukajtis fmuld %f56,%f46,%f46 ! (Y1_1) dtmp0 *= y0; 1245*25c28e83SPiotr Jasiukajtis ldd [%g1+8],%f48 ! (Y0_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 1246*25c28e83SPiotr Jasiukajtis sub %i3,127,%i3 ! (Y1_2) exp0 -= 127; 1247*25c28e83SPiotr Jasiukajtis fitod %f14,%f60 ! (Y0_2) dtmp0 = (double) i0; 1248*25c28e83SPiotr Jasiukajtis 1249*25c28e83SPiotr Jasiukajtis sll %i3,8,%i2 ! (Y1_2) exp0 <<= 8; 1250*25c28e83SPiotr Jasiukajtis and %i1,%l6,%i1 ! (Y1_2) i0 &= 0xffff0000; 1251*25c28e83SPiotr Jasiukajtis st %i2,[%fp+tmp4] ! (Y1_2) STORE exp0 1252*25c28e83SPiotr Jasiukajtis fsubd %f18,%f54,%f26 ! (Y2_0) y0 = yy0 - dtmp0; 1253*25c28e83SPiotr Jasiukajtis 1254*25c28e83SPiotr Jasiukajtis sub %o0,%i1,%o0 ! (Y1_2) i0 = ax0 - i0; 1255*25c28e83SPiotr Jasiukajtis st %o0,[%fp+tmp5] ! (Y1_2) STORE i0 1256*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update16 ! (Y1_2) if(ax0 >= 0x7f800000) 1257*25c28e83SPiotr Jasiukajtis faddd %f62,%f52,%f54 ! (Y1_0) yy0 += di0; 1258*25c28e83SPiotr Jasiukajtis.cont16: 1259*25c28e83SPiotr Jasiukajtis lda [stridey+%o4]0x82,%i3 ! Y(2_1) ay0 = *py0 1260*25c28e83SPiotr Jasiukajtis cmp %o3,MASK_0x007fffff ! (Y1_2) ux0 ? 0x800000 1261*25c28e83SPiotr Jasiukajtis add %o4,stridey,%i2 ! py += stridey; 1262*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f58 ! (Y0_1) yy0 = HTHRESH; 1263*25c28e83SPiotr Jasiukajtis 1264*25c28e83SPiotr Jasiukajtis fmuld %f60,%f48,%f48 ! (Y0_2) y0 = dtmp0 * dtmp1; 1265*25c28e83SPiotr Jasiukajtis lda [stridey+%o4]0x82,%f16 ! (Y2_1) ftmp0 = *py0; 1266*25c28e83SPiotr Jasiukajtis ble,pn %icc,.update17 ! (Y1_2) if(ux0 < 0x800000) 1267*25c28e83SPiotr Jasiukajtis faddd %f50,KA1,%f52 ! (Y2_1) dtmp0 += KA1; 1268*25c28e83SPiotr Jasiukajtis.cont17: 1269*25c28e83SPiotr Jasiukajtis fmuld KB2,%f26,%f4 ! (Y2_0) dtmp0 = KB2 * y0; 1270*25c28e83SPiotr Jasiukajtis and %i3,MASK_0x7fffffff,%i3 ! (Y2_1) ay0 &= 0x7fffffff 1271*25c28e83SPiotr Jasiukajtis ld [%fp+tmp6],%f17 ! (Y2_1) dtmp1 = (double) exp0; 1272*25c28e83SPiotr Jasiukajtis faddd %f12,%f46,%f60 ! (Y1_1) yy0 += dtmp0; 1273*25c28e83SPiotr Jasiukajtis 1274*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%o0 1275*25c28e83SPiotr Jasiukajtis cmp %i3,%o5 ! (Y2_1) ay0 ? 0x7f800000 1276*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update18 ! (Y2_1) if(ay0 >= 0x7f800000) 1277*25c28e83SPiotr Jasiukajtis fdtos %f54,%f15 ! (Y1_0) ftmp0 = (float)yy0; 1278*25c28e83SPiotr Jasiukajtis.cont18: 1279*25c28e83SPiotr Jasiukajtis st %f15,[%l7] ! (Y1_0) *pz0 = ftmp0; 1280*25c28e83SPiotr Jasiukajtis add %l7,stridez,%o4 ! pz += stridez 1281*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f58 ! (Y0_1) yy0 = LTHRESH; 1282*25c28e83SPiotr Jasiukajtis 1283*25c28e83SPiotr Jasiukajtis fmuld KA3,%f48,%f62 ! (Y0_2) dtmp0 = KA3 * y0; 1284*25c28e83SPiotr Jasiukajtis and %o0,255,%o0 ! (Y2_0) ind0 &= 255; 1285*25c28e83SPiotr Jasiukajtis fstod %f16,%f54 ! (Y2_1) dtmp0 = (double)ftmp0; 1286*25c28e83SPiotr Jasiukajtis 1287*25c28e83SPiotr Jasiukajtis fmuld %f22,%f60,%f56 ! (Y1_1) yy0 *= dtmp0; 1288*25c28e83SPiotr Jasiukajtis sll %o0,3,%l7 ! (Y2_0) ind0 <<= 3; 1289*25c28e83SPiotr Jasiukajtis faddd %f4,KB1,%f60 ! (Y2_0) dtmp0 += KB1; 1290*25c28e83SPiotr Jasiukajtis 1291*25c28e83SPiotr Jasiukajtis fpackfix %f2,%f2 ! (Y2_0) dtmp1 = vis_fpackfix(dtmp1); 1292*25c28e83SPiotr Jasiukajtis fitod %f17,%f24 ! (Y2_1) dtmp1 = (double) exp0; 1293*25c28e83SPiotr Jasiukajtis ldd [%l0+%l7],%f4 ! (Y2_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); 1294*25c28e83SPiotr Jasiukajtis 1295*25c28e83SPiotr Jasiukajtis fmuld %f52,%f28,%f52 ! (Y2_1) dtmp0 *= y0; 1296*25c28e83SPiotr Jasiukajtis fdtoi %f58,%f10 ! (Y0_1) ind0 = (int) yy0; 1297*25c28e83SPiotr Jasiukajtis 1298*25c28e83SPiotr Jasiukajtis st %f10,[%fp+tmp0] ! (Y0_1) STORE ind0 1299*25c28e83SPiotr Jasiukajtis faddd %f62,KA2,%f22 ! (Y0_2) dtmp0 += KA2; 1300*25c28e83SPiotr Jasiukajtis 1301*25c28e83SPiotr Jasiukajtis fmuld %f60,%f26,%f62 ! (Y2_0) yy0 = dtmp0 * y0; 1302*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f56 ! (Y1_1) if (yy0 >= HTHRESH) 1303*25c28e83SPiotr Jasiukajtis ldd [%l2+%o1],%f60 ! (Y2_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 1304*25c28e83SPiotr Jasiukajtis 1305*25c28e83SPiotr Jasiukajtis sra %i1,12,%o1 ! (Y1_2) ind0 = i0 >> 12; 1306*25c28e83SPiotr Jasiukajtis add %o2,stridex,%i3 ! px += stridex 1307*25c28e83SPiotr Jasiukajtis lda [stridex+%o2]0x82,%g1 ! (Y2_2) ax0 = *px; 1308*25c28e83SPiotr Jasiukajtis fpadd32 %f2,%f4,%f46 ! (Y2_0) di0 = vis_fpadd32(di0,dtmp1); 1309*25c28e83SPiotr Jasiukajtis 1310*25c28e83SPiotr Jasiukajtis and %o1,-8,%o0 ! (Y1_2) ind0 &= -8; 1311*25c28e83SPiotr Jasiukajtis add %i2,stridey,%i2 ! py += stridey 1312*25c28e83SPiotr Jasiukajtis ld [%fp+tmp5],%f12 ! (Y1_2) LOAD i0 1313*25c28e83SPiotr Jasiukajtis faddd %f52,KA0,%f4 ! (Y2_1) dtmp0 += KA0; 1314*25c28e83SPiotr Jasiukajtis 1315*25c28e83SPiotr Jasiukajtis and %g1,MASK_0x7fffffff,%i1 ! (Y2_2) exp0 = ax0 & 0x7fffffff; 1316*25c28e83SPiotr Jasiukajtis and %g1,MASK_0x007fffff,%o2 ! (Y2_2) ax0 &= 0x007fffff; 1317*25c28e83SPiotr Jasiukajtis lda [%i2]0x82,%f0 ! (Y0_2) ftmp0 = *py0; 1318*25c28e83SPiotr Jasiukajtis fitod %f10,%f52 ! (Y0_1) dtmp0 = (double)ind0; 1319*25c28e83SPiotr Jasiukajtis 1320*25c28e83SPiotr Jasiukajtis fmuld %f62,%f46,%f62 ! (Y2_0) yy0 *= di0; 1321*25c28e83SPiotr Jasiukajtis srl %i1,23,%o3 ! (Y2_2) exp0 >>= 23; 1322*25c28e83SPiotr Jasiukajtis cmp %i1,%o5 ! (Y2_2) ax0 ? 0x7f800000 1323*25c28e83SPiotr Jasiukajtis faddd %f60,%f24,%f18 ! (Y2_1) yy0 = dtmp0 + dtmp1; 1324*25c28e83SPiotr Jasiukajtis 1325*25c28e83SPiotr Jasiukajtis fmuld %f22,%f48,%f26 ! (Y0_2) dtmp0 *= y0; 1326*25c28e83SPiotr Jasiukajtis add %l2,%o0,%i1 ! (Y1_2) (char*)__mt_constlog4f + ind0 1327*25c28e83SPiotr Jasiukajtis sub %o3,127,%l7 ! (Y2_2) exp0 -= 127; 1328*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f56 ! (Y1_1) if (yy0 <= LTHRESH) 1329*25c28e83SPiotr Jasiukajtis 1330*25c28e83SPiotr Jasiukajtis fmuld %f4,%f28,%f24 ! (Y2_1) dtmp0 *= y0; 1331*25c28e83SPiotr Jasiukajtis add %o2,CONST_0x8000,%o1 ! (Y2_2) i0 = ax0 + 0x8000; 1332*25c28e83SPiotr Jasiukajtis ldd [%i1+8],%f50 ! (Y1_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 1333*25c28e83SPiotr Jasiukajtis fitod %f12,%f28 ! (Y1_2) dtmp0 = (double) i0; 1334*25c28e83SPiotr Jasiukajtis 1335*25c28e83SPiotr Jasiukajtis sll %l7,8,%l7 ! (Y2_2) exp0 <<= 8; 1336*25c28e83SPiotr Jasiukajtis and %o1,%l6,%o1 ! (Y2_2) i0 &= 0xffff0000; 1337*25c28e83SPiotr Jasiukajtis st %l7,[%fp+tmp6] ! (Y2_2) STORE exp0 1338*25c28e83SPiotr Jasiukajtis fsubd %f58,%f52,%f60 ! (Y0_1) y0 = yy0 - dtmp0; 1339*25c28e83SPiotr Jasiukajtis 1340*25c28e83SPiotr Jasiukajtis sub %o2,%o1,%i1 ! (Y2_2) i0 = ax0 - i0; 1341*25c28e83SPiotr Jasiukajtis st %i1,[%fp+tmp2] ! (Y2_2) STORE i0 1342*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update19 ! (Y2_2) if(ax0 >= 0x7f800000) 1343*25c28e83SPiotr Jasiukajtis faddd %f62,%f46,%f22 ! (Y2_0) yy0 += di0; 1344*25c28e83SPiotr Jasiukajtis.cont19: 1345*25c28e83SPiotr Jasiukajtis lda [%i2]0x82,%o2 ! (Y0_2) ay0 = *(int*)py0; 1346*25c28e83SPiotr Jasiukajtis cmp %g1,MASK_0x007fffff ! (Y2_2) ux0 ? 0x800000 1347*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f56 ! (Y1_1) yy0 = HTHRESH; 1348*25c28e83SPiotr Jasiukajtis 1349*25c28e83SPiotr Jasiukajtis fmuld %f28,%f50,%f46 ! (Y1_2) y0 = dtmp0 * dtmp1; 1350*25c28e83SPiotr Jasiukajtis ble,pn %icc,.update20 ! (Y2_2) if(ux0 < 0x800000) 1351*25c28e83SPiotr Jasiukajtis faddd %f26,KA1,%f50 ! (Y0_2) dtmp0 += KA1; 1352*25c28e83SPiotr Jasiukajtis.cont20: 1353*25c28e83SPiotr Jasiukajtis fmuld KB2,%f60,%f62 ! (Y0_1) dtmp0 = KB2 * y0; 1354*25c28e83SPiotr Jasiukajtis and %o2,MASK_0x7fffffff,%o2 ! (Y0_2) ay0 &= 0x7fffffff 1355*25c28e83SPiotr Jasiukajtis ld [%fp+tmp3],%f4 ! (Y0_2) dtmp1 = (double) exp0; 1356*25c28e83SPiotr Jasiukajtis faddd %f18,%f24,%f52 ! (Y2_1) yy0 += dtmp0; 1357*25c28e83SPiotr Jasiukajtis 1358*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%g1 ! (Y0_1) LAOD ind0 1359*25c28e83SPiotr Jasiukajtis cmp %o2,%o5 ! (Y0_2) ay0 ? 0x7f800000 1360*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update21 ! (Y0_2) if( ay0 >= 0x7f800000) 1361*25c28e83SPiotr Jasiukajtis fdtos %f22,%f12 ! (Y2_0) ftmp0 = (float)yy0; 1362*25c28e83SPiotr Jasiukajtis.cont21: 1363*25c28e83SPiotr Jasiukajtis st %f12,[%o4] ! (Y2_0) *pz0 = ftmp0; 1364*25c28e83SPiotr Jasiukajtis cmp counter,6 ! counter 1365*25c28e83SPiotr Jasiukajtis bge,pt %icc,.main_loop 1366*25c28e83SPiotr Jasiukajtis fstod %f0,%f24 ! (Y0_2) dtmp0 = (double)ftmp0; 1367*25c28e83SPiotr Jasiukajtis 1368*25c28e83SPiotr Jasiukajtis.tail: 1369*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 1370*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.begin 1371*25c28e83SPiotr Jasiukajtis add %o4,stridez,%i5 1372*25c28e83SPiotr Jasiukajtis 1373*25c28e83SPiotr Jasiukajtis fmuld KA3,%f46,%f28 ! (Y1_1) dtmp0 = KA3 * y0; 1374*25c28e83SPiotr Jasiukajtis and %g1,255,%o2 ! (Y0_0) ind0 &= 255; 1375*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f56 ! (Y1_0) yy0 = LTHRESH; 1376*25c28e83SPiotr Jasiukajtis 1377*25c28e83SPiotr Jasiukajtis fmuld %f54,%f52,%f18 ! (Y2_0) yy0 *= dtmp0; 1378*25c28e83SPiotr Jasiukajtis sll %o2,3,%i1 ! (Y0_0) ind0 <<= 3; 1379*25c28e83SPiotr Jasiukajtis add %o4,stridez,%l7 ! pz += stridez 1380*25c28e83SPiotr Jasiukajtis faddd %f62,KB1,%f62 ! (Y0_0) dtmp0 += KB1; 1381*25c28e83SPiotr Jasiukajtis 1382*25c28e83SPiotr Jasiukajtis fpackfix %f10,%f10 ! (Y0_0) dtmp1 = vis_fpackfix(dtmp1); 1383*25c28e83SPiotr Jasiukajtis fitod %f4,%f26 ! (Y0_1) dtmp1 = (double) exp0; 1384*25c28e83SPiotr Jasiukajtis ldd [%l0+%i1],%f58 ! (Y0_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); 1385*25c28e83SPiotr Jasiukajtis 1386*25c28e83SPiotr Jasiukajtis fmuld %f50,%f48,%f50 ! (Y0_1) dtmp0 *= y0; 1387*25c28e83SPiotr Jasiukajtis fdtoi %f56,%f20 ! (Y1_0) ind0 = (int) yy0; 1388*25c28e83SPiotr Jasiukajtis st %f20,[%fp+tmp1] ! (Y1_0) STORE ind0 1389*25c28e83SPiotr Jasiukajtis 1390*25c28e83SPiotr Jasiukajtis faddd %f28,KA2,%f28 ! (Y1_1) dtmp0 += KA2; 1391*25c28e83SPiotr Jasiukajtis 1392*25c28e83SPiotr Jasiukajtis fmuld %f62,%f60,%f62 ! (Y0_0) yy0 = dtmp0 * y0; 1393*25c28e83SPiotr Jasiukajtis ldd [%l2+%g5],%f60 ! (Y0_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 1394*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f18 ! (Y2_0) if (yy0 >= HTHRESH) 1395*25c28e83SPiotr Jasiukajtis 1396*25c28e83SPiotr Jasiukajtis fpadd32 %f10,%f58,%f22 ! (Y0_0) di0 = vis_fpadd32(di0,dtmp1); 1397*25c28e83SPiotr Jasiukajtis 1398*25c28e83SPiotr Jasiukajtis faddd %f50,KA0,%f58 ! (Y0_1) dtmp0 += KA0; 1399*25c28e83SPiotr Jasiukajtis 1400*25c28e83SPiotr Jasiukajtis fitod %f20,%f52 ! (Y1_0) dtmp0 = (double)ind0; 1401*25c28e83SPiotr Jasiukajtis 1402*25c28e83SPiotr Jasiukajtis fmuld %f62,%f22,%f62 ! (Y0_0) yy0 *= di0; 1403*25c28e83SPiotr Jasiukajtis faddd %f60,%f26,%f26 ! (Y0_1) yy0 = dtmp0 + dtmp1; 1404*25c28e83SPiotr Jasiukajtis 1405*25c28e83SPiotr Jasiukajtis fmuld %f28,%f46,%f50 ! (Y1_1) dtmp0 *= y0; 1406*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f18 ! (Y2_0) if (yy0 <= LTHRESH) 1407*25c28e83SPiotr Jasiukajtis 1408*25c28e83SPiotr Jasiukajtis fmuld %f58,%f48,%f48 ! (Y0_1) dtmp0 *= y0; 1409*25c28e83SPiotr Jasiukajtis 1410*25c28e83SPiotr Jasiukajtis fsubd %f56,%f52,%f52 ! (Y1_0) y0 = yy0 - dtmp0; 1411*25c28e83SPiotr Jasiukajtis 1412*25c28e83SPiotr Jasiukajtis faddd %f62,%f22,%f62 ! (Y0_0) yy0 += di0; 1413*25c28e83SPiotr Jasiukajtis 1414*25c28e83SPiotr Jasiukajtis lda [stridey+%i2]0x82,%g1 ! (Y1_1) ay0 = *(unsigned*)py0 1415*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o4 ! py += stridey 1416*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f18 ! (Y2_0) yy0 = HTHRESH; 1417*25c28e83SPiotr Jasiukajtis 1418*25c28e83SPiotr Jasiukajtis lda [stridey+%i2]0x82,%f2 ! (Y1_1) ftmp0 = *py0; 1419*25c28e83SPiotr Jasiukajtis faddd %f50,KA1,%f54 ! (Y1_1) dtmp0 += KA1; 1420*25c28e83SPiotr Jasiukajtis 1421*25c28e83SPiotr Jasiukajtis fmuld KB2,%f52,%f56 ! (Y1_0) dtmp0 = KB2 * y0; 1422*25c28e83SPiotr Jasiukajtis and %g1,MASK_0x7fffffff,%g1 ! (Y1_1) ay0 &= 0x7fffffff; 1423*25c28e83SPiotr Jasiukajtis ld [%fp+tmp4],%f1 ! (Y1_1) LOAD exp0 1424*25c28e83SPiotr Jasiukajtis faddd %f26,%f48,%f58 ! (Y0_1) yy0 += dtmp0; 1425*25c28e83SPiotr Jasiukajtis 1426*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%g5 ! (Y1_0) ind0 = (int) yy0; 1427*25c28e83SPiotr Jasiukajtis cmp %g1,%o5 ! (Y1_1) ay0 ? 0x7f800000 1428*25c28e83SPiotr Jasiukajtis bge,pn %icc,.update22 ! (Y1_1) if(ay0 >= 0x7f800000) 1429*25c28e83SPiotr Jasiukajtis fdtos %f62,%f8 ! (Y0_0) ftmp0 = (float)yy0; 1430*25c28e83SPiotr Jasiukajtis.cont22: 1431*25c28e83SPiotr Jasiukajtis st %f8,[%l7] ! (Y0_0) *pz0 = ftmp0; 1432*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f18 ! (Y2_0) yy0 = LTHRESH; 1433*25c28e83SPiotr Jasiukajtis 1434*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 1435*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.begin 1436*25c28e83SPiotr Jasiukajtis add %l7,stridez,%i5 1437*25c28e83SPiotr Jasiukajtis 1438*25c28e83SPiotr Jasiukajtis add %l7,stridez,%l7 ! pz += stridez 1439*25c28e83SPiotr Jasiukajtis and %g5,255,%g5 ! (Y1_0) ind0 &= 255; 1440*25c28e83SPiotr Jasiukajtis fstod %f2,%f22 ! (Y1_1) dtmp0 = (double)ftmp0; 1441*25c28e83SPiotr Jasiukajtis 1442*25c28e83SPiotr Jasiukajtis fmuld %f24,%f58,%f58 ! (Y0_1) yy0 *= dtmp0; 1443*25c28e83SPiotr Jasiukajtis sll %g5,3,%i2 ! (Y1_0) ind0 <<= 3; 1444*25c28e83SPiotr Jasiukajtis faddd %f56,KB1,%f60 ! (Y1_0) dtmp0 += KB1; 1445*25c28e83SPiotr Jasiukajtis 1446*25c28e83SPiotr Jasiukajtis fpackfix %f20,%f20 ! (Y1_0) dtmp1 = vis_fpackfix(dtmp1); 1447*25c28e83SPiotr Jasiukajtis fitod %f1,%f48 ! (Y1_1) dtmp1 = (double) exp0; 1448*25c28e83SPiotr Jasiukajtis ldd [%l0+%i2],%f56 ! (Y1_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); 1449*25c28e83SPiotr Jasiukajtis 1450*25c28e83SPiotr Jasiukajtis fmuld %f54,%f46,%f54 ! (Y1_1) dtmp0 *= y0; 1451*25c28e83SPiotr Jasiukajtis fdtoi %f18,%f2 ! (Y2_0) ind0 = (int) yy0; 1452*25c28e83SPiotr Jasiukajtis st %f2,[%fp+tmp1] ! (Y2_0) STORE ind0 1453*25c28e83SPiotr Jasiukajtis 1454*25c28e83SPiotr Jasiukajtis 1455*25c28e83SPiotr Jasiukajtis fmuld %f60,%f52,%f62 ! (Y1_0) yy0 = dtmp0 * y0; 1456*25c28e83SPiotr Jasiukajtis ldd [%l2+%o0],%f60 ! (Y1_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 1457*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f58 ! (Y0_1) if (yy0 >= HTHRESH) 1458*25c28e83SPiotr Jasiukajtis 1459*25c28e83SPiotr Jasiukajtis fpadd32 %f20,%f56,%f52 ! (Y1_0) di0 = vis_fpadd32(di0,dtmp1); 1460*25c28e83SPiotr Jasiukajtis 1461*25c28e83SPiotr Jasiukajtis faddd %f54,KA0,%f56 ! (Y1_1) dtmp0 += KA0; 1462*25c28e83SPiotr Jasiukajtis 1463*25c28e83SPiotr Jasiukajtis fitod %f2,%f54 ! (Y2_0) dtmp0 = (double)ind0; 1464*25c28e83SPiotr Jasiukajtis 1465*25c28e83SPiotr Jasiukajtis fmuld %f62,%f52,%f62 ! (Y1_0) yy0 *= di0; 1466*25c28e83SPiotr Jasiukajtis faddd %f60,%f48,%f12 ! (Y1_1) yy0 = dtmp0 + dtmp1; 1467*25c28e83SPiotr Jasiukajtis 1468*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f58 ! (Y0_1) if (yy0 <= LTHRESH) 1469*25c28e83SPiotr Jasiukajtis 1470*25c28e83SPiotr Jasiukajtis fmuld %f56,%f46,%f46 ! (Y1_1) dtmp0 *= y0; 1471*25c28e83SPiotr Jasiukajtis 1472*25c28e83SPiotr Jasiukajtis fsubd %f18,%f54,%f26 ! (Y2_0) y0 = yy0 - dtmp0; 1473*25c28e83SPiotr Jasiukajtis 1474*25c28e83SPiotr Jasiukajtis faddd %f62,%f52,%f54 ! (Y1_0) yy0 += di0; 1475*25c28e83SPiotr Jasiukajtis 1476*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f58 ! (Y0_1) yy0 = HTHRESH; 1477*25c28e83SPiotr Jasiukajtis 1478*25c28e83SPiotr Jasiukajtis 1479*25c28e83SPiotr Jasiukajtis fmuld KB2,%f26,%f4 ! (Y2_0) dtmp0 = KB2 * y0; 1480*25c28e83SPiotr Jasiukajtis faddd %f12,%f46,%f60 ! (Y1_1) yy0 += dtmp0; 1481*25c28e83SPiotr Jasiukajtis 1482*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%o0 1483*25c28e83SPiotr Jasiukajtis fdtos %f54,%f15 ! (Y1_0) ftmp0 = (float)yy0; 1484*25c28e83SPiotr Jasiukajtis 1485*25c28e83SPiotr Jasiukajtis st %f15,[%l7] ! (Y1_0) *pz0 = ftmp0; 1486*25c28e83SPiotr Jasiukajtis add %l7,stridez,%o4 ! pz += stridez 1487*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f58 ! (Y0_1) yy0 = LTHRESH; 1488*25c28e83SPiotr Jasiukajtis 1489*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 1490*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.begin 1491*25c28e83SPiotr Jasiukajtis or %g0,%o4,%i5 1492*25c28e83SPiotr Jasiukajtis 1493*25c28e83SPiotr Jasiukajtis and %o0,255,%o0 ! (Y2_0) ind0 &= 255; 1494*25c28e83SPiotr Jasiukajtis 1495*25c28e83SPiotr Jasiukajtis fmuld %f22,%f60,%f56 ! (Y1_1) yy0 *= dtmp0; 1496*25c28e83SPiotr Jasiukajtis sll %o0,3,%l7 ! (Y2_0) ind0 <<= 3; 1497*25c28e83SPiotr Jasiukajtis faddd %f4,KB1,%f60 ! (Y2_0) dtmp0 += KB1; 1498*25c28e83SPiotr Jasiukajtis 1499*25c28e83SPiotr Jasiukajtis fpackfix %f2,%f2 ! (Y2_0) dtmp1 = vis_fpackfix(dtmp1); 1500*25c28e83SPiotr Jasiukajtis ldd [%l0+%l7],%f4 ! (Y2_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); 1501*25c28e83SPiotr Jasiukajtis 1502*25c28e83SPiotr Jasiukajtis fdtoi %f58,%f10 ! (Y0_1) ind0 = (int) yy0; 1503*25c28e83SPiotr Jasiukajtis 1504*25c28e83SPiotr Jasiukajtis st %f10,[%fp+tmp0] ! (Y0_1) STORE ind0 1505*25c28e83SPiotr Jasiukajtis 1506*25c28e83SPiotr Jasiukajtis fmuld %f60,%f26,%f62 ! (Y2_0) yy0 = dtmp0 * y0; 1507*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f56 ! (Y1_1) if (yy0 >= HTHRESH) 1508*25c28e83SPiotr Jasiukajtis 1509*25c28e83SPiotr Jasiukajtis fpadd32 %f2,%f4,%f46 ! (Y2_0) di0 = vis_fpadd32(di0,dtmp1); 1510*25c28e83SPiotr Jasiukajtis 1511*25c28e83SPiotr Jasiukajtis add %i2,stridey,%i2 ! py += stridey 1512*25c28e83SPiotr Jasiukajtis 1513*25c28e83SPiotr Jasiukajtis fitod %f10,%f52 ! (Y0_1) dtmp0 = (double)ind0; 1514*25c28e83SPiotr Jasiukajtis 1515*25c28e83SPiotr Jasiukajtis fmuld %f62,%f46,%f62 ! (Y2_0) yy0 *= di0; 1516*25c28e83SPiotr Jasiukajtis 1517*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f56 ! (Y1_1) if (yy0 <= LTHRESH) 1518*25c28e83SPiotr Jasiukajtis 1519*25c28e83SPiotr Jasiukajtis 1520*25c28e83SPiotr Jasiukajtis fsubd %f58,%f52,%f60 ! (Y0_1) y0 = yy0 - dtmp0; 1521*25c28e83SPiotr Jasiukajtis 1522*25c28e83SPiotr Jasiukajtis faddd %f62,%f46,%f22 ! (Y2_0) yy0 += di0; 1523*25c28e83SPiotr Jasiukajtis 1524*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f56 ! (Y1_1) yy0 = HTHRESH; 1525*25c28e83SPiotr Jasiukajtis 1526*25c28e83SPiotr Jasiukajtis fmuld KB2,%f60,%f62 ! (Y0_1) dtmp0 = KB2 * y0; 1527*25c28e83SPiotr Jasiukajtis 1528*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%g1 ! (Y0_1) LAOD ind0 1529*25c28e83SPiotr Jasiukajtis fdtos %f22,%f12 ! (Y2_0) ftmp0 = (float)yy0; 1530*25c28e83SPiotr Jasiukajtis 1531*25c28e83SPiotr Jasiukajtis st %f12,[%o4] ! (Y2_0) *pz0 = ftmp0; 1532*25c28e83SPiotr Jasiukajtis 1533*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 1534*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.begin 1535*25c28e83SPiotr Jasiukajtis add %o4,stridez,%i5 1536*25c28e83SPiotr Jasiukajtis 1537*25c28e83SPiotr Jasiukajtis and %g1,255,%o2 ! (Y0_0) ind0 &= 255; 1538*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f56 ! (Y1_0) yy0 = LTHRESH; 1539*25c28e83SPiotr Jasiukajtis 1540*25c28e83SPiotr Jasiukajtis sll %o2,3,%i1 ! (Y0_0) ind0 <<= 3; 1541*25c28e83SPiotr Jasiukajtis add %o4,stridez,%l7 ! pz += stridez 1542*25c28e83SPiotr Jasiukajtis faddd %f62,KB1,%f62 ! (Y0_0) dtmp0 += KB1; 1543*25c28e83SPiotr Jasiukajtis 1544*25c28e83SPiotr Jasiukajtis fpackfix %f10,%f10 ! (Y0_0) dtmp1 = vis_fpackfix(dtmp1); 1545*25c28e83SPiotr Jasiukajtis ldd [%l0+%i1],%f58 ! (Y0_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); 1546*25c28e83SPiotr Jasiukajtis 1547*25c28e83SPiotr Jasiukajtis fdtoi %f56,%f20 ! (Y1_0) ind0 = (int) yy0; 1548*25c28e83SPiotr Jasiukajtis st %f20,[%fp+tmp1] ! (Y1_0) STORE ind0 1549*25c28e83SPiotr Jasiukajtis 1550*25c28e83SPiotr Jasiukajtis fmuld %f62,%f60,%f62 ! (Y0_0) yy0 = dtmp0 * y0; 1551*25c28e83SPiotr Jasiukajtis 1552*25c28e83SPiotr Jasiukajtis fpadd32 %f10,%f58,%f22 ! (Y0_0) di0 = vis_fpadd32(di0,dtmp1); 1553*25c28e83SPiotr Jasiukajtis 1554*25c28e83SPiotr Jasiukajtis fitod %f20,%f52 ! (Y1_0) dtmp0 = (double)ind0; 1555*25c28e83SPiotr Jasiukajtis 1556*25c28e83SPiotr Jasiukajtis fmuld %f62,%f22,%f62 ! (Y0_0) yy0 *= di0; 1557*25c28e83SPiotr Jasiukajtis 1558*25c28e83SPiotr Jasiukajtis fsubd %f56,%f52,%f52 ! (Y1_0) y0 = yy0 - dtmp0; 1559*25c28e83SPiotr Jasiukajtis 1560*25c28e83SPiotr Jasiukajtis faddd %f62,%f22,%f62 ! (Y0_0) yy0 += di0; 1561*25c28e83SPiotr Jasiukajtis 1562*25c28e83SPiotr Jasiukajtis fmuld KB2,%f52,%f56 ! (Y1_0) dtmp0 = KB2 * y0; 1563*25c28e83SPiotr Jasiukajtis 1564*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%g5 ! (Y1_0) ind0 = (int) yy0; 1565*25c28e83SPiotr Jasiukajtis fdtos %f62,%f8 ! (Y0_0) ftmp0 = (float)yy0; 1566*25c28e83SPiotr Jasiukajtis st %f8,[%l7] ! (Y0_0) *pz0 = ftmp0; 1567*25c28e83SPiotr Jasiukajtis 1568*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 1569*25c28e83SPiotr Jasiukajtis bneg .begin 1570*25c28e83SPiotr Jasiukajtis add %l7,stridez,%i5 1571*25c28e83SPiotr Jasiukajtis 1572*25c28e83SPiotr Jasiukajtis add %l7,stridez,%l7 ! pz += stridez 1573*25c28e83SPiotr Jasiukajtis and %g5,255,%g5 ! (Y1_0) ind0 &= 255; 1574*25c28e83SPiotr Jasiukajtis 1575*25c28e83SPiotr Jasiukajtis sll %g5,3,%i2 ! (Y1_0) ind0 <<= 3; 1576*25c28e83SPiotr Jasiukajtis faddd %f56,KB1,%f60 ! (Y1_0) dtmp0 += KB1; 1577*25c28e83SPiotr Jasiukajtis 1578*25c28e83SPiotr Jasiukajtis fpackfix %f20,%f20 ! (Y1_0) dtmp1 = vis_fpackfix(dtmp1); 1579*25c28e83SPiotr Jasiukajtis ldd [%l0+%i2],%f56 ! (Y1_0) di0 = *(double*)((char*)__mt_constexp2f + ind0); 1580*25c28e83SPiotr Jasiukajtis 1581*25c28e83SPiotr Jasiukajtis fmuld %f60,%f52,%f62 ! (Y1_0) yy0 = dtmp0 * y0; 1582*25c28e83SPiotr Jasiukajtis 1583*25c28e83SPiotr Jasiukajtis fpadd32 %f20,%f56,%f52 ! (Y1_0) di0 = vis_fpadd32(di0,dtmp1); 1584*25c28e83SPiotr Jasiukajtis 1585*25c28e83SPiotr Jasiukajtis fmuld %f62,%f52,%f62 ! (Y1_0) yy0 *= di0; 1586*25c28e83SPiotr Jasiukajtis 1587*25c28e83SPiotr Jasiukajtis faddd %f62,%f52,%f54 ! (Y1_0) yy0 += di0; 1588*25c28e83SPiotr Jasiukajtis 1589*25c28e83SPiotr Jasiukajtis fdtos %f54,%f15 ! (Y1_0) ftmp0 = (float)yy0; 1590*25c28e83SPiotr Jasiukajtis 1591*25c28e83SPiotr Jasiukajtis st %f15,[%l7] ! (Y1_0) *pz0 = ftmp0; 1592*25c28e83SPiotr Jasiukajtis ba .begin 1593*25c28e83SPiotr Jasiukajtis add %l7,stridez,%i5 ! pz += stridez 1594*25c28e83SPiotr Jasiukajtis 1595*25c28e83SPiotr Jasiukajtis.exit: 1596*25c28e83SPiotr Jasiukajtis ret 1597*25c28e83SPiotr Jasiukajtis restore 1598*25c28e83SPiotr Jasiukajtis 1599*25c28e83SPiotr Jasiukajtis .align 16 1600*25c28e83SPiotr Jasiukajtis.specs_exit: 1601*25c28e83SPiotr Jasiukajtis add %i1,stridex,%o2 1602*25c28e83SPiotr Jasiukajtis add %i3,stridey,%i2 1603*25c28e83SPiotr Jasiukajtis st %f4,[%i5] 1604*25c28e83SPiotr Jasiukajtis 1605*25c28e83SPiotr Jasiukajtis sub counter,1,counter 1606*25c28e83SPiotr Jasiukajtis ba .begin1 1607*25c28e83SPiotr Jasiukajtis add %i5,stridez,%i5 1608*25c28e83SPiotr Jasiukajtis 1609*25c28e83SPiotr Jasiukajtis.spec1: 1610*25c28e83SPiotr Jasiukajtis ld [%l0+2048+64],%f0 ! LOAD 1.0f 1611*25c28e83SPiotr Jasiukajtis or %g0,%i1,%o1 1612*25c28e83SPiotr Jasiukajtis or %g0,%i3,%o3 1613*25c28e83SPiotr Jasiukajtis 1614*25c28e83SPiotr Jasiukajtis ld [%o2],%f4 ! *px 1615*25c28e83SPiotr Jasiukajtis or %g0,%o2,%i1 1616*25c28e83SPiotr Jasiukajtis or %g0,%i2,%i3 1617*25c28e83SPiotr Jasiukajtis 1618*25c28e83SPiotr Jasiukajtis ld [%i3],%f6 ! *py 1619*25c28e83SPiotr Jasiukajtis or %g0,%l7,%o2 1620*25c28e83SPiotr Jasiukajtis fsubs %f0,%f0,%f5 ! 0.0f 1621*25c28e83SPiotr Jasiukajtis 1622*25c28e83SPiotr Jasiukajtis sethi %hi(0x7f800000),%l6 1623*25c28e83SPiotr Jasiukajtis cmp %o4,0 ! ay ? 0 1624*25c28e83SPiotr Jasiukajtis be,a,pn %icc,.specs_exit ! if(ay == 0) 1625*25c28e83SPiotr Jasiukajtis fmovs %f0,%f4 ! return 1.0f 1626*25c28e83SPiotr Jasiukajtis 1627*25c28e83SPiotr Jasiukajtis cmp %o3,%l6 ! ax0 ? 0x7f800000 1628*25c28e83SPiotr Jasiukajtis bgu,a %icc,.specs_exit ! ax0 > 0x7f800000 1629*25c28e83SPiotr Jasiukajtis fmuls %f4,%f6,%f4 ! return *px * *py; /* |X| or |Y| = Nan */ 1630*25c28e83SPiotr Jasiukajtis 1631*25c28e83SPiotr Jasiukajtis cmp %o4,%l6 ! ay ? 0x7f800000 1632*25c28e83SPiotr Jasiukajtis bgu,a .specs_exit ! ay > 0x7f800000 1633*25c28e83SPiotr Jasiukajtis fmuls %f4,%f6,%f4 ! return *px * *py; /* |X| or |Y| = Nan */ 1634*25c28e83SPiotr Jasiukajtis 1635*25c28e83SPiotr Jasiukajtis sethi %hi(0x3f800000),%o5 1636*25c28e83SPiotr Jasiukajtis bne,a %icc,1f ! if (ay != 0x7f800000) { /* |Y| = Inf */ 1637*25c28e83SPiotr Jasiukajtis srl %o1,31,%o1 ! sx = ux >> 31 1638*25c28e83SPiotr Jasiukajtis 1639*25c28e83SPiotr Jasiukajtis cmp %o3,%o5 ! ax0 ? 0x3f800000 1640*25c28e83SPiotr Jasiukajtis be,a .specs_exit ! if (ax0 == 0x3f800000) 1641*25c28e83SPiotr Jasiukajtis fmuls %f6,%f5,%f4 ! return *py * 0.0f; /* +-1 ** +-Inf = NaN */ 1642*25c28e83SPiotr Jasiukajtis 1643*25c28e83SPiotr Jasiukajtis sub %o3,%o5,%o3 ! ax0 - 0x3f800000 1644*25c28e83SPiotr Jasiukajtis srl %o2,31,%o2 ! uy >> 31 1645*25c28e83SPiotr Jasiukajtis 1646*25c28e83SPiotr Jasiukajtis srlx %o3,63,%o3 ! (ax0 - 0x3f800000) << 63 1647*25c28e83SPiotr Jasiukajtis 1648*25c28e83SPiotr Jasiukajtis cmp %o3,%o2 ! ((ax0 - 0x3f800000) << 63) ? (uy >> 31) 1649*25c28e83SPiotr Jasiukajtis bne,a .specs_exit 1650*25c28e83SPiotr Jasiukajtis fzeros %f4 ! return 0.f; 1651*25c28e83SPiotr Jasiukajtis 1652*25c28e83SPiotr Jasiukajtis ba .specs_exit 1653*25c28e83SPiotr Jasiukajtis fabss %f6,%f4 ! return fabss(*py) 1654*25c28e83SPiotr Jasiukajtis1: 1655*25c28e83SPiotr Jasiukajtis cmp %o1,0 ! sx ? 0 1656*25c28e83SPiotr Jasiukajtis be,pn %icc,.spec1_exit ! if (sx == 0) 1657*25c28e83SPiotr Jasiukajtis or %g0,%g0,%o5 ! yisint0 = 0; 1658*25c28e83SPiotr Jasiukajtis 1659*25c28e83SPiotr Jasiukajtis srl %o4,23,%l7 ! exp = ay >> 23; 1660*25c28e83SPiotr Jasiukajtis cmp %l7,0x97 ! exp ? 0x97 1661*25c28e83SPiotr Jasiukajtis bge,a,pn %icc,.spec1_exit ! if (exp >= 0x97) /* |Y| >= 2^24 */ 1662*25c28e83SPiotr Jasiukajtis add %g0,2,%o5 ! yisint = 2; 1663*25c28e83SPiotr Jasiukajtis 1664*25c28e83SPiotr Jasiukajtis cmp %l7,0x7f ! exp ? 0x7f 1665*25c28e83SPiotr Jasiukajtis bl,pn %icc,.spec1_exit ! if (exp < 0x7f) 1666*25c28e83SPiotr Jasiukajtis sub %g0,%l7,%l7 ! exp = -exp; 1667*25c28e83SPiotr Jasiukajtis 1668*25c28e83SPiotr Jasiukajtis add %l7,(0x7f + 23),%l7 ! exp += (0x07f + 23); 1669*25c28e83SPiotr Jasiukajtis srl %o4,%l7,%l6 ! i0 = ay >> exp 1670*25c28e83SPiotr Jasiukajtis sll %l6,%l7,%l7 ! i0 << exp 1671*25c28e83SPiotr Jasiukajtis 1672*25c28e83SPiotr Jasiukajtis cmp %l7,%o4 ! (i0 << exp) ? ay 1673*25c28e83SPiotr Jasiukajtis bne,pn %icc,.spec1_exit ! if((i0 << exp) != ay) 1674*25c28e83SPiotr Jasiukajtis and %l6,1,%l6 ! i0 &= 1 1675*25c28e83SPiotr Jasiukajtis 1676*25c28e83SPiotr Jasiukajtis sub %g0,%l6,%l6 ! i0 = -i0; 1677*25c28e83SPiotr Jasiukajtis add %l6,2,%o5 ! yisint0 = 2 + i0; 1678*25c28e83SPiotr Jasiukajtis 1679*25c28e83SPiotr Jasiukajtis.spec1_exit: 1680*25c28e83SPiotr Jasiukajtis srl %o2,31,%o2 ! uy >> 31 1681*25c28e83SPiotr Jasiukajtis cmp %o2,0 ! (uy >> 31) ? 0 1682*25c28e83SPiotr Jasiukajtis movne %icc,%g0,%o3 ! if (uy >> 31) ax0 = 0; 1683*25c28e83SPiotr Jasiukajtis 1684*25c28e83SPiotr Jasiukajtis sll %o5,31,%o5 ! yisint0 <<= 31; 1685*25c28e83SPiotr Jasiukajtis add %o5,%o3,%o5 ! ax0 += yisint0; 1686*25c28e83SPiotr Jasiukajtis 1687*25c28e83SPiotr Jasiukajtis add %i1,stridex,%o2 ! px += stridex; 1688*25c28e83SPiotr Jasiukajtis add %i3,stridey,%i2 ! py += stridey; 1689*25c28e83SPiotr Jasiukajtis st %o5,[%i5] ! return *(float*)&ax0; 1690*25c28e83SPiotr Jasiukajtis 1691*25c28e83SPiotr Jasiukajtis sub counter,1,counter ! counter--; 1692*25c28e83SPiotr Jasiukajtis ba .begin1 1693*25c28e83SPiotr Jasiukajtis add %i5,stridez,%i5 ! pz += stridez; 1694*25c28e83SPiotr Jasiukajtis 1695*25c28e83SPiotr Jasiukajtis.spec2: 1696*25c28e83SPiotr Jasiukajtis or %g0,%i1,%o1 1697*25c28e83SPiotr Jasiukajtis or %g0,%i3,%o3 1698*25c28e83SPiotr Jasiukajtis ld [%l0+2048+64],%f0 ! LOAD 1.0f 1699*25c28e83SPiotr Jasiukajtis or %g0,%o2,%i1 1700*25c28e83SPiotr Jasiukajtis or %g0,%i2,%i3 1701*25c28e83SPiotr Jasiukajtis 1702*25c28e83SPiotr Jasiukajtis or %g0,%l7,%o2 1703*25c28e83SPiotr Jasiukajtis cmp %o4,0 ! ay ? 0 1704*25c28e83SPiotr Jasiukajtis be,a,pn %icc,.specs_exit ! if(ay == 0) 1705*25c28e83SPiotr Jasiukajtis fmovs %f0,%f4 ! return 1.0f 1706*25c28e83SPiotr Jasiukajtis 1707*25c28e83SPiotr Jasiukajtis srl %o3,23,%l7 ! exp0 = (ax0 >> 23); 1708*25c28e83SPiotr Jasiukajtis sub %l7,127,%l7 ! exp = exp0 = exp0 - 127; 1709*25c28e83SPiotr Jasiukajtis 1710*25c28e83SPiotr Jasiukajtis or %g0,%g0,%o5 ! yisint = 0; 1711*25c28e83SPiotr Jasiukajtis cmp %o3,MASK_0x007fffff ! (int)ax0 ? 0x00800000 1712*25c28e83SPiotr Jasiukajtis bg,pn %icc,1f ! if ((int)ax0 >= 0x00800000) 1713*25c28e83SPiotr Jasiukajtis nop 1714*25c28e83SPiotr Jasiukajtis 1715*25c28e83SPiotr Jasiukajtis ! X = denormal or negative 1716*25c28e83SPiotr Jasiukajtis st %o3,[%fp+tmp0] ! *((float*) &ax0) = (float) (int)ax0; 1717*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%f4 1718*25c28e83SPiotr Jasiukajtis fitos %f4,%f4 1719*25c28e83SPiotr Jasiukajtis st %f4,[%fp+tmp0] 1720*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%o3 1721*25c28e83SPiotr Jasiukajtis 1722*25c28e83SPiotr Jasiukajtis srl %o3,23,%l7 ! exp = (ax0 >> 23) 1723*25c28e83SPiotr Jasiukajtis sub %l7,127+149,%l7 ! exp -= (127+149) 1724*25c28e83SPiotr Jasiukajtis1: 1725*25c28e83SPiotr Jasiukajtis cmp %o1,0 ! ux ? 0 1726*25c28e83SPiotr Jasiukajtis bg,a %icc,.spec_proc ! if((int)ux > 0) 1727*25c28e83SPiotr Jasiukajtis sethi %hi(0xffff0000),%l6 1728*25c28e83SPiotr Jasiukajtis 1729*25c28e83SPiotr Jasiukajtis srl %o4,23,%o0 ! exp = ay >> 23; 1730*25c28e83SPiotr Jasiukajtis cmp %o0,0x97 ! exp ? 0x97 1731*25c28e83SPiotr Jasiukajtis bge,a,pn %icc,2f ! if (exp >= 0x97) /* |Y| >= 2^24 */ 1732*25c28e83SPiotr Jasiukajtis add %g0,2,%o5 ! yisint0 = 2; /* Y - even */ 1733*25c28e83SPiotr Jasiukajtis 1734*25c28e83SPiotr Jasiukajtis cmp %o0,0x7f ! exp ? 0x7f 1735*25c28e83SPiotr Jasiukajtis bl,pn %icc,2f ! if(exp < 0x7f) 1736*25c28e83SPiotr Jasiukajtis nop 1737*25c28e83SPiotr Jasiukajtis 1738*25c28e83SPiotr Jasiukajtis sub %g0,%o0,%o0 ! exp = -exp; 1739*25c28e83SPiotr Jasiukajtis add %o0,(0x7f + 23),%o0 ! exp += (0x7f + 23) 1740*25c28e83SPiotr Jasiukajtis srl %o4,%o0,%l6 ! i0 = ay >> ((0x7f + 23) - exp); 1741*25c28e83SPiotr Jasiukajtis sll %l6,%o0,%o0 ! i0 << ((0x7f + 23) - exp 1742*25c28e83SPiotr Jasiukajtis cmp %o0,%o4 ! (i0 << ((0x7f + 23) - exp)) ? ay 1743*25c28e83SPiotr Jasiukajtis bne,pn %icc,2f ! if(i0 << ((0x7f + 23) - exp)) != ay) 1744*25c28e83SPiotr Jasiukajtis nop 1745*25c28e83SPiotr Jasiukajtis 1746*25c28e83SPiotr Jasiukajtis and %l6,1,%l6 ! i0 &= 1; 1747*25c28e83SPiotr Jasiukajtis sub %g0,%l6,%l6 ! i0 = -i0; 1748*25c28e83SPiotr Jasiukajtis add %l6,2,%o5 ! yisint = i0 + 2; 1749*25c28e83SPiotr Jasiukajtis2: 1750*25c28e83SPiotr Jasiukajtis cmp %o3,0 ! ax0 ? 0 1751*25c28e83SPiotr Jasiukajtis bne,pn %icc,4f ! if(ax0 != 0) 1752*25c28e83SPiotr Jasiukajtis nop 1753*25c28e83SPiotr Jasiukajtis 1754*25c28e83SPiotr Jasiukajtis srl %o1,31,%o1 ! sx = ux >> 31 1755*25c28e83SPiotr Jasiukajtis srl %o2,31,%o2 ! uy >> 31 1756*25c28e83SPiotr Jasiukajtis 1757*25c28e83SPiotr Jasiukajtis cmp %o2,0 ! (uy >> 31) ? 0 1758*25c28e83SPiotr Jasiukajtis be,a,pn %icc,3f ! if((uy >> 31) == 0) 1759*25c28e83SPiotr Jasiukajtis fzeros %f4 ! return ZERO 1760*25c28e83SPiotr Jasiukajtis 1761*25c28e83SPiotr Jasiukajtis fdivs %f0,%f3,%f4 ! fy = ONE/ZERO 1762*25c28e83SPiotr Jasiukajtis3: 1763*25c28e83SPiotr Jasiukajtis andcc %o1,%o5,%g0 ! sx & yisint0 1764*25c28e83SPiotr Jasiukajtis be,pn %icc,.specs_exit ! if( (sx & yisint0) == 0 ) 1765*25c28e83SPiotr Jasiukajtis nop 1766*25c28e83SPiotr Jasiukajtis 1767*25c28e83SPiotr Jasiukajtis ba .specs_exit 1768*25c28e83SPiotr Jasiukajtis fnegs %f4,%f4 ! fy = -fy; 1769*25c28e83SPiotr Jasiukajtis4: 1770*25c28e83SPiotr Jasiukajtis cmp %o5,0 ! ysisint0 ? 0 1771*25c28e83SPiotr Jasiukajtis be,a %icc,.specs_exit ! if(yisint0 == 0) 1772*25c28e83SPiotr Jasiukajtis fdivs %f3,%f3,%f4 ! return ZERO/ZERO 1773*25c28e83SPiotr Jasiukajtis 1774*25c28e83SPiotr Jasiukajtis sethi %hi(0xffff0000),%l6 1775*25c28e83SPiotr Jasiukajtis 1776*25c28e83SPiotr Jasiukajtis.spec_proc: 1777*25c28e83SPiotr Jasiukajtis sll %l7,8,%l7 ! exp0 = exp0 << 8; 1778*25c28e83SPiotr Jasiukajtis st %l7,[%fp+tmp1] ! STORE exp0 1779*25c28e83SPiotr Jasiukajtis and %o3,MASK_0x007fffff,%g5 ! ax0 &= 0x007fffff; 1780*25c28e83SPiotr Jasiukajtis ld [%i3],%f14 ! ftmp0 = py[0] 1781*25c28e83SPiotr Jasiukajtis sllx %o5,63,%o5 ! ysisint0 <<= 63; 1782*25c28e83SPiotr Jasiukajtis add %g5,CONST_0x8000,%o3 ! i0 = ax0 + 0x8000; 1783*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp5] ! STORE yisint0 1784*25c28e83SPiotr Jasiukajtis and %o3,%l6,%l7 ! i0 &= 0xffff0000; 1785*25c28e83SPiotr Jasiukajtis sub %g5,%l7,%o1 ! i0 = ax0 - i0; 1786*25c28e83SPiotr Jasiukajtis sra %l7,12,%g5 ! ind0 = i0 >> 12; 1787*25c28e83SPiotr Jasiukajtis st %o1,[%fp+tmp2] ! STORE i0 1788*25c28e83SPiotr Jasiukajtis fstod %f14,%f54 ! dtmp1 = (double)ftmp0 1789*25c28e83SPiotr Jasiukajtis and %g5,-8,%g5 ! ind0 &= -8; 1790*25c28e83SPiotr Jasiukajtis add %l2,%g5,%l7 ! (char*)__mt_constlog4f + ind0 1791*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%f18 ! LOAD exp0 1792*25c28e83SPiotr Jasiukajtis ld [%fp+tmp2],%f16 ! LOAD i0 1793*25c28e83SPiotr Jasiukajtis ldd [%l7+8],%f62 ! dtmp2 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 1794*25c28e83SPiotr Jasiukajtis ldd [%l2+%g5],%f56 ! dtmp3 = *(double *)((char*)__mt_constlog4f + ind0); 1795*25c28e83SPiotr Jasiukajtis fitod %f18,%f58 ! dtmp4 = (double)exp0 1796*25c28e83SPiotr Jasiukajtis fitod %f16,%f60 ! dtmp5 = (double)i0 1797*25c28e83SPiotr Jasiukajtis fmuld %f60,%f62,%f60 ! y0 = dtmp5 * dtmp2; 1798*25c28e83SPiotr Jasiukajtis faddd %f56,%f58,%f58 ! yy0 = dtmp3 + dtmp4; 1799*25c28e83SPiotr Jasiukajtis fmuld KA3,%f60,%f52 ! dtmp0 = KA3 * y0; 1800*25c28e83SPiotr Jasiukajtis faddd %f52,KA2,%f50 ! dtmp0 += KA2; 1801*25c28e83SPiotr Jasiukajtis fmuld %f50,%f60,%f48 ! dtmp0 *= y0; 1802*25c28e83SPiotr Jasiukajtis faddd %f48,KA1,%f46 ! dtmp0 += KA1; 1803*25c28e83SPiotr Jasiukajtis fmuld %f46,%f60,%f62 ! dtmp0 *= y0; 1804*25c28e83SPiotr Jasiukajtis ldd [%fp+tmp5],%f24 ! LOAD yisint0 1805*25c28e83SPiotr Jasiukajtis faddd %f62,KA0,%f56 ! dtmp0 += KA0; 1806*25c28e83SPiotr Jasiukajtis fmuld %f56,%f60,%f52 ! dtmp0 *= y0; 1807*25c28e83SPiotr Jasiukajtis faddd %f58,%f52,%f50 ! yy0 += dtmp1; 1808*25c28e83SPiotr Jasiukajtis fmuld %f54,%f50,%f52 ! yy0 *= dtmp1; 1809*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f52 ! if (yy0 >= HTHRESH) 1810*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f52 ! yy0 = HTHRESH; 1811*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f52 ! if (yy0 <= LTHRESH) 1812*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f52 ! yy0 = LTHRESH; 1813*25c28e83SPiotr Jasiukajtis fdtoi %f52,%f20 ! ind0 = (int) yy0; 1814*25c28e83SPiotr Jasiukajtis st %f20,[%fp+tmp3] ! STORE ind0 1815*25c28e83SPiotr Jasiukajtis fitod %f20,%f58 ! dtmp0 = (double) ind0; 1816*25c28e83SPiotr Jasiukajtis fpackfix %f20,%f20 ! dtmp1 = vis_fpackfix(dtmp1) 1817*25c28e83SPiotr Jasiukajtis ld [%fp+tmp3],%g1 ! LOAD ind0 1818*25c28e83SPiotr Jasiukajtis fsubd %f52,%f58,%f46 ! y0 = yy0 - dtmp0; 1819*25c28e83SPiotr Jasiukajtis fpadd32 %f20,%f24,%f56 ! dtmp1 += yisint0 1820*25c28e83SPiotr Jasiukajtis and %g1,255,%o4 ! ind0 &= 255; 1821*25c28e83SPiotr Jasiukajtis sll %o4,3,%o3 ! ind0 <<= 3; 1822*25c28e83SPiotr Jasiukajtis ldd [%l0+%o3],%f54 ! di0 = *(double*)((char*)__mt_constexp2f + ind0); 1823*25c28e83SPiotr Jasiukajtis fmuld KB2,%f46,%f48 ! dtmp0 = KB2 * y0; 1824*25c28e83SPiotr Jasiukajtis fpadd32 %f56,%f54,%f56 ! di0 = vis_fpadd32(di0,dtmp1); 1825*25c28e83SPiotr Jasiukajtis faddd %f48,KB1,%f62 ! dtmp0 += KB1; 1826*25c28e83SPiotr Jasiukajtis fmuld %f62,%f46,%f60 ! yy0 = dtmp0 * y0; 1827*25c28e83SPiotr Jasiukajtis fmuld %f60,%f56,%f52 ! yy0 *= di0; 1828*25c28e83SPiotr Jasiukajtis faddd %f52,%f56,%f58 ! yy0 += di0; 1829*25c28e83SPiotr Jasiukajtis ba .specs_exit 1830*25c28e83SPiotr Jasiukajtis fdtos %f58,%f4 ! ftmp0 = (float)yy0; 1831*25c28e83SPiotr Jasiukajtis 1832*25c28e83SPiotr Jasiukajtis .align 16 1833*25c28e83SPiotr Jasiukajtis.update0: 1834*25c28e83SPiotr Jasiukajtis cmp counter,1 1835*25c28e83SPiotr Jasiukajtis ble .cont0 1836*25c28e83SPiotr Jasiukajtis nop 1837*25c28e83SPiotr Jasiukajtis 1838*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o1 1839*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 1840*25c28e83SPiotr Jasiukajtis 1841*25c28e83SPiotr Jasiukajtis stx %o1,[%fp+tmp_py] 1842*25c28e83SPiotr Jasiukajtis sub counter,1,counter 1843*25c28e83SPiotr Jasiukajtis 1844*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 1845*25c28e83SPiotr Jasiukajtis ba .cont0 1846*25c28e83SPiotr Jasiukajtis or %g0,1,counter 1847*25c28e83SPiotr Jasiukajtis 1848*25c28e83SPiotr Jasiukajtis .align 16 1849*25c28e83SPiotr Jasiukajtis.update1: 1850*25c28e83SPiotr Jasiukajtis cmp counter,1 1851*25c28e83SPiotr Jasiukajtis ble .cont1 1852*25c28e83SPiotr Jasiukajtis nop 1853*25c28e83SPiotr Jasiukajtis 1854*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o1 1855*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 1856*25c28e83SPiotr Jasiukajtis 1857*25c28e83SPiotr Jasiukajtis stx %o1,[%fp+tmp_py] 1858*25c28e83SPiotr Jasiukajtis sub counter,1,counter 1859*25c28e83SPiotr Jasiukajtis 1860*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 1861*25c28e83SPiotr Jasiukajtis ba .cont1 1862*25c28e83SPiotr Jasiukajtis or %g0,1,counter 1863*25c28e83SPiotr Jasiukajtis 1864*25c28e83SPiotr Jasiukajtis .align 16 1865*25c28e83SPiotr Jasiukajtis.update2: 1866*25c28e83SPiotr Jasiukajtis cmp counter,2 1867*25c28e83SPiotr Jasiukajtis ble .cont2 1868*25c28e83SPiotr Jasiukajtis nop 1869*25c28e83SPiotr Jasiukajtis 1870*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o2 1871*25c28e83SPiotr Jasiukajtis stx %i3,[%fp+tmp_px] 1872*25c28e83SPiotr Jasiukajtis 1873*25c28e83SPiotr Jasiukajtis add %o2,stridey,%o2 1874*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_py] 1875*25c28e83SPiotr Jasiukajtis 1876*25c28e83SPiotr Jasiukajtis sub counter,2,counter 1877*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 1878*25c28e83SPiotr Jasiukajtis ba .cont2 1879*25c28e83SPiotr Jasiukajtis or %g0,2,counter 1880*25c28e83SPiotr Jasiukajtis 1881*25c28e83SPiotr Jasiukajtis .align 16 1882*25c28e83SPiotr Jasiukajtis.update3: 1883*25c28e83SPiotr Jasiukajtis cmp counter,2 1884*25c28e83SPiotr Jasiukajtis ble .cont3 1885*25c28e83SPiotr Jasiukajtis nop 1886*25c28e83SPiotr Jasiukajtis 1887*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o2 1888*25c28e83SPiotr Jasiukajtis stx %i3,[%fp+tmp_px] 1889*25c28e83SPiotr Jasiukajtis 1890*25c28e83SPiotr Jasiukajtis add %o2,stridey,%o2 1891*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_py] 1892*25c28e83SPiotr Jasiukajtis 1893*25c28e83SPiotr Jasiukajtis sub counter,2,counter 1894*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 1895*25c28e83SPiotr Jasiukajtis ba .cont3 1896*25c28e83SPiotr Jasiukajtis or %g0,2,counter 1897*25c28e83SPiotr Jasiukajtis 1898*25c28e83SPiotr Jasiukajtis .align 16 1899*25c28e83SPiotr Jasiukajtis.update4: 1900*25c28e83SPiotr Jasiukajtis cmp counter,3 1901*25c28e83SPiotr Jasiukajtis ble .cont4 1902*25c28e83SPiotr Jasiukajtis nop 1903*25c28e83SPiotr Jasiukajtis 1904*25c28e83SPiotr Jasiukajtis sll stridey,1,%g5 1905*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o3 1906*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 1907*25c28e83SPiotr Jasiukajtis 1908*25c28e83SPiotr Jasiukajtis add %o3,%g5,%o3 1909*25c28e83SPiotr Jasiukajtis stx %o3,[%fp+tmp_py] 1910*25c28e83SPiotr Jasiukajtis 1911*25c28e83SPiotr Jasiukajtis sub counter,3,counter 1912*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 1913*25c28e83SPiotr Jasiukajtis ba .cont4 1914*25c28e83SPiotr Jasiukajtis or %g0,3,counter 1915*25c28e83SPiotr Jasiukajtis 1916*25c28e83SPiotr Jasiukajtis .align 16 1917*25c28e83SPiotr Jasiukajtis.update5: 1918*25c28e83SPiotr Jasiukajtis cmp counter,3 1919*25c28e83SPiotr Jasiukajtis ble .cont5 1920*25c28e83SPiotr Jasiukajtis nop 1921*25c28e83SPiotr Jasiukajtis 1922*25c28e83SPiotr Jasiukajtis sll stridey,1,%g5 1923*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o3 1924*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 1925*25c28e83SPiotr Jasiukajtis 1926*25c28e83SPiotr Jasiukajtis add %o3,%g5,%o3 1927*25c28e83SPiotr Jasiukajtis stx %o3,[%fp+tmp_py] 1928*25c28e83SPiotr Jasiukajtis 1929*25c28e83SPiotr Jasiukajtis sub counter,3,counter 1930*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 1931*25c28e83SPiotr Jasiukajtis ba .cont5 1932*25c28e83SPiotr Jasiukajtis or %g0,3,counter 1933*25c28e83SPiotr Jasiukajtis 1934*25c28e83SPiotr Jasiukajtis .align 16 1935*25c28e83SPiotr Jasiukajtis.update6: 1936*25c28e83SPiotr Jasiukajtis fzeros %f2 1937*25c28e83SPiotr Jasiukajtis cmp counter,1 1938*25c28e83SPiotr Jasiukajtis ble .cont6 1939*25c28e83SPiotr Jasiukajtis nop 1940*25c28e83SPiotr Jasiukajtis 1941*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],%g1 1942*25c28e83SPiotr Jasiukajtis 1943*25c28e83SPiotr Jasiukajtis sub %o2,stridex,%o3 1944*25c28e83SPiotr Jasiukajtis stx %o4,[%fp+tmp_py] 1945*25c28e83SPiotr Jasiukajtis 1946*25c28e83SPiotr Jasiukajtis sub %o3,stridex,%o3 1947*25c28e83SPiotr Jasiukajtis add %g1,counter,counter 1948*25c28e83SPiotr Jasiukajtis stx %o3,[%fp+tmp_px] 1949*25c28e83SPiotr Jasiukajtis 1950*25c28e83SPiotr Jasiukajtis sub counter,1,counter 1951*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 1952*25c28e83SPiotr Jasiukajtis ba .cont6 1953*25c28e83SPiotr Jasiukajtis or %g0,1,counter 1954*25c28e83SPiotr Jasiukajtis 1955*25c28e83SPiotr Jasiukajtis .align 16 1956*25c28e83SPiotr Jasiukajtis.update7: 1957*25c28e83SPiotr Jasiukajtis cmp counter,4 1958*25c28e83SPiotr Jasiukajtis ble .cont7 1959*25c28e83SPiotr Jasiukajtis nop 1960*25c28e83SPiotr Jasiukajtis 1961*25c28e83SPiotr Jasiukajtis sll stridey,1,%g1 1962*25c28e83SPiotr Jasiukajtis add %o4,stridey,%o0 1963*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 1964*25c28e83SPiotr Jasiukajtis 1965*25c28e83SPiotr Jasiukajtis add %o0,%g1,%o0 1966*25c28e83SPiotr Jasiukajtis stx %o0,[%fp+tmp_py] 1967*25c28e83SPiotr Jasiukajtis 1968*25c28e83SPiotr Jasiukajtis sub counter,4,counter 1969*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 1970*25c28e83SPiotr Jasiukajtis ba .cont7 1971*25c28e83SPiotr Jasiukajtis or %g0,4,counter 1972*25c28e83SPiotr Jasiukajtis 1973*25c28e83SPiotr Jasiukajtis .align 16 1974*25c28e83SPiotr Jasiukajtis.update8: 1975*25c28e83SPiotr Jasiukajtis cmp counter,4 1976*25c28e83SPiotr Jasiukajtis ble .cont8 1977*25c28e83SPiotr Jasiukajtis nop 1978*25c28e83SPiotr Jasiukajtis 1979*25c28e83SPiotr Jasiukajtis sll stridey,1,%g1 1980*25c28e83SPiotr Jasiukajtis add %o4,stridey,%o0 1981*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 1982*25c28e83SPiotr Jasiukajtis 1983*25c28e83SPiotr Jasiukajtis add %o0,%g1,%o0 1984*25c28e83SPiotr Jasiukajtis stx %o0,[%fp+tmp_py] 1985*25c28e83SPiotr Jasiukajtis 1986*25c28e83SPiotr Jasiukajtis sub counter,4,counter 1987*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 1988*25c28e83SPiotr Jasiukajtis ba .cont8 1989*25c28e83SPiotr Jasiukajtis or %g0,4,counter 1990*25c28e83SPiotr Jasiukajtis 1991*25c28e83SPiotr Jasiukajtis .align 16 1992*25c28e83SPiotr Jasiukajtis.update9: 1993*25c28e83SPiotr Jasiukajtis cmp counter,2 1994*25c28e83SPiotr Jasiukajtis ble .cont9 1995*25c28e83SPiotr Jasiukajtis fzeros %f16 1996*25c28e83SPiotr Jasiukajtis 1997*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],%i3 1998*25c28e83SPiotr Jasiukajtis 1999*25c28e83SPiotr Jasiukajtis sub %o2,stridex,%g1 2000*25c28e83SPiotr Jasiukajtis stx %i2,[%fp+tmp_py] 2001*25c28e83SPiotr Jasiukajtis 2002*25c28e83SPiotr Jasiukajtis sub %g1,stridex,%g1 2003*25c28e83SPiotr Jasiukajtis add %i3,counter,counter 2004*25c28e83SPiotr Jasiukajtis stx %g1,[%fp+tmp_px] 2005*25c28e83SPiotr Jasiukajtis 2006*25c28e83SPiotr Jasiukajtis sub counter,2,counter 2007*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2008*25c28e83SPiotr Jasiukajtis ba .cont9 2009*25c28e83SPiotr Jasiukajtis or %g0,2,counter 2010*25c28e83SPiotr Jasiukajtis 2011*25c28e83SPiotr Jasiukajtis .align 16 2012*25c28e83SPiotr Jasiukajtis.update10: 2013*25c28e83SPiotr Jasiukajtis cmp counter,5 2014*25c28e83SPiotr Jasiukajtis ble .cont10 2015*25c28e83SPiotr Jasiukajtis nop 2016*25c28e83SPiotr Jasiukajtis 2017*25c28e83SPiotr Jasiukajtis add %i2,stridey,%i1 2018*25c28e83SPiotr Jasiukajtis stx %i3,[%fp+tmp_px] 2019*25c28e83SPiotr Jasiukajtis 2020*25c28e83SPiotr Jasiukajtis add %i1,stridey,%i1 2021*25c28e83SPiotr Jasiukajtis stx %i1,[%fp+tmp_py] 2022*25c28e83SPiotr Jasiukajtis 2023*25c28e83SPiotr Jasiukajtis sub counter,5,counter 2024*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2025*25c28e83SPiotr Jasiukajtis ba .cont10 2026*25c28e83SPiotr Jasiukajtis or %g0,5,counter 2027*25c28e83SPiotr Jasiukajtis 2028*25c28e83SPiotr Jasiukajtis .align 16 2029*25c28e83SPiotr Jasiukajtis.update11: 2030*25c28e83SPiotr Jasiukajtis cmp counter,5 2031*25c28e83SPiotr Jasiukajtis ble .cont11 2032*25c28e83SPiotr Jasiukajtis nop 2033*25c28e83SPiotr Jasiukajtis 2034*25c28e83SPiotr Jasiukajtis add %i2,stridey,%i1 2035*25c28e83SPiotr Jasiukajtis stx %i3,[%fp+tmp_px] 2036*25c28e83SPiotr Jasiukajtis 2037*25c28e83SPiotr Jasiukajtis add %i1,stridey,%i1 2038*25c28e83SPiotr Jasiukajtis stx %i1,[%fp+tmp_py] 2039*25c28e83SPiotr Jasiukajtis 2040*25c28e83SPiotr Jasiukajtis sub counter,5,counter 2041*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2042*25c28e83SPiotr Jasiukajtis ba .cont11 2043*25c28e83SPiotr Jasiukajtis or %g0,5,counter 2044*25c28e83SPiotr Jasiukajtis 2045*25c28e83SPiotr Jasiukajtis .align 16 2046*25c28e83SPiotr Jasiukajtis.update12: 2047*25c28e83SPiotr Jasiukajtis fzeros %f0 2048*25c28e83SPiotr Jasiukajtis cmp counter,3 2049*25c28e83SPiotr Jasiukajtis ble .cont12 2050*25c28e83SPiotr Jasiukajtis nop 2051*25c28e83SPiotr Jasiukajtis 2052*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],%o2 2053*25c28e83SPiotr Jasiukajtis 2054*25c28e83SPiotr Jasiukajtis sub %i3,stridex,%i1 2055*25c28e83SPiotr Jasiukajtis stx %i2,[%fp+tmp_py] 2056*25c28e83SPiotr Jasiukajtis 2057*25c28e83SPiotr Jasiukajtis sub %i1,stridex,%i1 2058*25c28e83SPiotr Jasiukajtis add %o2,counter,counter 2059*25c28e83SPiotr Jasiukajtis stx %i1,[%fp+tmp_px] 2060*25c28e83SPiotr Jasiukajtis 2061*25c28e83SPiotr Jasiukajtis sub counter,3,counter 2062*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2063*25c28e83SPiotr Jasiukajtis ba .cont12 2064*25c28e83SPiotr Jasiukajtis or %g0,3,counter 2065*25c28e83SPiotr Jasiukajtis 2066*25c28e83SPiotr Jasiukajtis .align 16 2067*25c28e83SPiotr Jasiukajtis.update13: 2068*25c28e83SPiotr Jasiukajtis cmp counter,3 2069*25c28e83SPiotr Jasiukajtis ble .cont13 2070*25c28e83SPiotr Jasiukajtis nop 2071*25c28e83SPiotr Jasiukajtis 2072*25c28e83SPiotr Jasiukajtis sll stridey,1,%g5 2073*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o3 2074*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 2075*25c28e83SPiotr Jasiukajtis 2076*25c28e83SPiotr Jasiukajtis add %o3,%g5,%o3 2077*25c28e83SPiotr Jasiukajtis stx %o3,[%fp+tmp_py] 2078*25c28e83SPiotr Jasiukajtis 2079*25c28e83SPiotr Jasiukajtis sub counter,3,counter 2080*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2081*25c28e83SPiotr Jasiukajtis ba .cont13 2082*25c28e83SPiotr Jasiukajtis or %g0,3,counter 2083*25c28e83SPiotr Jasiukajtis 2084*25c28e83SPiotr Jasiukajtis .align 16 2085*25c28e83SPiotr Jasiukajtis.update14: 2086*25c28e83SPiotr Jasiukajtis cmp counter,3 2087*25c28e83SPiotr Jasiukajtis ble .cont14 2088*25c28e83SPiotr Jasiukajtis nop 2089*25c28e83SPiotr Jasiukajtis 2090*25c28e83SPiotr Jasiukajtis sll stridey,1,%g5 2091*25c28e83SPiotr Jasiukajtis add %i2,stridey,%o3 2092*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 2093*25c28e83SPiotr Jasiukajtis 2094*25c28e83SPiotr Jasiukajtis add %o3,%g5,%o3 2095*25c28e83SPiotr Jasiukajtis stx %o3,[%fp+tmp_py] 2096*25c28e83SPiotr Jasiukajtis 2097*25c28e83SPiotr Jasiukajtis sub counter,3,counter 2098*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2099*25c28e83SPiotr Jasiukajtis ba .cont14 2100*25c28e83SPiotr Jasiukajtis or %g0,3,counter 2101*25c28e83SPiotr Jasiukajtis 2102*25c28e83SPiotr Jasiukajtis .align 16 2103*25c28e83SPiotr Jasiukajtis.update15: 2104*25c28e83SPiotr Jasiukajtis cmp counter,1 2105*25c28e83SPiotr Jasiukajtis ble .cont15 2106*25c28e83SPiotr Jasiukajtis fzeros %f2 2107*25c28e83SPiotr Jasiukajtis 2108*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],%g1 2109*25c28e83SPiotr Jasiukajtis 2110*25c28e83SPiotr Jasiukajtis sub %o2,stridex,%o3 2111*25c28e83SPiotr Jasiukajtis stx %o4,[%fp+tmp_py] 2112*25c28e83SPiotr Jasiukajtis 2113*25c28e83SPiotr Jasiukajtis sub %o3,stridex,%o3 2114*25c28e83SPiotr Jasiukajtis add %g1,counter,counter 2115*25c28e83SPiotr Jasiukajtis stx %o3,[%fp+tmp_px] 2116*25c28e83SPiotr Jasiukajtis 2117*25c28e83SPiotr Jasiukajtis sub counter,1,counter 2118*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2119*25c28e83SPiotr Jasiukajtis ba .cont15 2120*25c28e83SPiotr Jasiukajtis or %g0,1,counter 2121*25c28e83SPiotr Jasiukajtis 2122*25c28e83SPiotr Jasiukajtis .align 16 2123*25c28e83SPiotr Jasiukajtis.update16: 2124*25c28e83SPiotr Jasiukajtis cmp counter,4 2125*25c28e83SPiotr Jasiukajtis ble .cont16 2126*25c28e83SPiotr Jasiukajtis nop 2127*25c28e83SPiotr Jasiukajtis 2128*25c28e83SPiotr Jasiukajtis sll stridey,1,%g1 2129*25c28e83SPiotr Jasiukajtis add %o4,stridey,%o0 2130*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 2131*25c28e83SPiotr Jasiukajtis 2132*25c28e83SPiotr Jasiukajtis add %o0,%g1,%o0 2133*25c28e83SPiotr Jasiukajtis stx %o0,[%fp+tmp_py] 2134*25c28e83SPiotr Jasiukajtis 2135*25c28e83SPiotr Jasiukajtis sub counter,4,counter 2136*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2137*25c28e83SPiotr Jasiukajtis ba .cont16 2138*25c28e83SPiotr Jasiukajtis or %g0,4,counter 2139*25c28e83SPiotr Jasiukajtis 2140*25c28e83SPiotr Jasiukajtis .align 16 2141*25c28e83SPiotr Jasiukajtis.update17: 2142*25c28e83SPiotr Jasiukajtis cmp counter,4 2143*25c28e83SPiotr Jasiukajtis ble .cont17 2144*25c28e83SPiotr Jasiukajtis nop 2145*25c28e83SPiotr Jasiukajtis 2146*25c28e83SPiotr Jasiukajtis sll stridey,1,%g1 2147*25c28e83SPiotr Jasiukajtis add %o4,stridey,%o0 2148*25c28e83SPiotr Jasiukajtis stx %o2,[%fp+tmp_px] 2149*25c28e83SPiotr Jasiukajtis 2150*25c28e83SPiotr Jasiukajtis add %o0,%g1,%o0 2151*25c28e83SPiotr Jasiukajtis stx %o0,[%fp+tmp_py] 2152*25c28e83SPiotr Jasiukajtis 2153*25c28e83SPiotr Jasiukajtis sub counter,4,counter 2154*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2155*25c28e83SPiotr Jasiukajtis ba .cont17 2156*25c28e83SPiotr Jasiukajtis or %g0,4,counter 2157*25c28e83SPiotr Jasiukajtis 2158*25c28e83SPiotr Jasiukajtis .align 16 2159*25c28e83SPiotr Jasiukajtis.update18: 2160*25c28e83SPiotr Jasiukajtis fzeros %f16 2161*25c28e83SPiotr Jasiukajtis cmp counter,2 2162*25c28e83SPiotr Jasiukajtis ble .cont18 2163*25c28e83SPiotr Jasiukajtis nop 2164*25c28e83SPiotr Jasiukajtis 2165*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],%i3 2166*25c28e83SPiotr Jasiukajtis 2167*25c28e83SPiotr Jasiukajtis sub %o2,stridex,%g1 2168*25c28e83SPiotr Jasiukajtis stx %i2,[%fp+tmp_py] 2169*25c28e83SPiotr Jasiukajtis 2170*25c28e83SPiotr Jasiukajtis sub %g1,stridex,%g1 2171*25c28e83SPiotr Jasiukajtis add %i3,counter,counter 2172*25c28e83SPiotr Jasiukajtis stx %g1,[%fp+tmp_px] 2173*25c28e83SPiotr Jasiukajtis 2174*25c28e83SPiotr Jasiukajtis sub counter,2,counter 2175*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2176*25c28e83SPiotr Jasiukajtis ba .cont18 2177*25c28e83SPiotr Jasiukajtis or %g0,2,counter 2178*25c28e83SPiotr Jasiukajtis 2179*25c28e83SPiotr Jasiukajtis .align 16 2180*25c28e83SPiotr Jasiukajtis.update19: 2181*25c28e83SPiotr Jasiukajtis cmp counter,5 2182*25c28e83SPiotr Jasiukajtis ble .cont19 2183*25c28e83SPiotr Jasiukajtis nop 2184*25c28e83SPiotr Jasiukajtis 2185*25c28e83SPiotr Jasiukajtis add %i2,stridey,%i1 2186*25c28e83SPiotr Jasiukajtis stx %i3,[%fp+tmp_px] 2187*25c28e83SPiotr Jasiukajtis 2188*25c28e83SPiotr Jasiukajtis add %i1,stridey,%i1 2189*25c28e83SPiotr Jasiukajtis stx %i1,[%fp+tmp_py] 2190*25c28e83SPiotr Jasiukajtis 2191*25c28e83SPiotr Jasiukajtis sub counter,5,counter 2192*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2193*25c28e83SPiotr Jasiukajtis ba .cont19 2194*25c28e83SPiotr Jasiukajtis or %g0,5,counter 2195*25c28e83SPiotr Jasiukajtis 2196*25c28e83SPiotr Jasiukajtis .align 16 2197*25c28e83SPiotr Jasiukajtis.update20: 2198*25c28e83SPiotr Jasiukajtis cmp counter,5 2199*25c28e83SPiotr Jasiukajtis ble .cont20 2200*25c28e83SPiotr Jasiukajtis nop 2201*25c28e83SPiotr Jasiukajtis 2202*25c28e83SPiotr Jasiukajtis add %i2,stridey,%i1 2203*25c28e83SPiotr Jasiukajtis stx %i3,[%fp+tmp_px] 2204*25c28e83SPiotr Jasiukajtis 2205*25c28e83SPiotr Jasiukajtis add %i1,stridey,%i1 2206*25c28e83SPiotr Jasiukajtis stx %i1,[%fp+tmp_py] 2207*25c28e83SPiotr Jasiukajtis 2208*25c28e83SPiotr Jasiukajtis sub counter,5,counter 2209*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2210*25c28e83SPiotr Jasiukajtis ba .cont20 2211*25c28e83SPiotr Jasiukajtis or %g0,5,counter 2212*25c28e83SPiotr Jasiukajtis 2213*25c28e83SPiotr Jasiukajtis .align 16 2214*25c28e83SPiotr Jasiukajtis.update21: 2215*25c28e83SPiotr Jasiukajtis cmp counter,3 2216*25c28e83SPiotr Jasiukajtis ble .cont21 2217*25c28e83SPiotr Jasiukajtis fzeros %f0 2218*25c28e83SPiotr Jasiukajtis 2219*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],%o2 2220*25c28e83SPiotr Jasiukajtis 2221*25c28e83SPiotr Jasiukajtis sub %i3,stridex,%i1 2222*25c28e83SPiotr Jasiukajtis stx %i2,[%fp+tmp_py] 2223*25c28e83SPiotr Jasiukajtis 2224*25c28e83SPiotr Jasiukajtis sub %i1,stridex,%i1 2225*25c28e83SPiotr Jasiukajtis add %o2,counter,counter 2226*25c28e83SPiotr Jasiukajtis stx %i1,[%fp+tmp_px] 2227*25c28e83SPiotr Jasiukajtis 2228*25c28e83SPiotr Jasiukajtis 2229*25c28e83SPiotr Jasiukajtis sub counter,3,counter 2230*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2231*25c28e83SPiotr Jasiukajtis ba .cont21 2232*25c28e83SPiotr Jasiukajtis or %g0,3,counter 2233*25c28e83SPiotr Jasiukajtis 2234*25c28e83SPiotr Jasiukajtis .align 16 2235*25c28e83SPiotr Jasiukajtis.update22: 2236*25c28e83SPiotr Jasiukajtis cmp counter,3 2237*25c28e83SPiotr Jasiukajtis ble .cont22 2238*25c28e83SPiotr Jasiukajtis fzeros %f2 2239*25c28e83SPiotr Jasiukajtis 2240*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],%g1 2241*25c28e83SPiotr Jasiukajtis 2242*25c28e83SPiotr Jasiukajtis sub %i3,stridex,%i2 2243*25c28e83SPiotr Jasiukajtis stx %i2,[%fp+tmp_px] 2244*25c28e83SPiotr Jasiukajtis 2245*25c28e83SPiotr Jasiukajtis add %g1,counter,counter 2246*25c28e83SPiotr Jasiukajtis stx %o4,[%fp+tmp_py] 2247*25c28e83SPiotr Jasiukajtis 2248*25c28e83SPiotr Jasiukajtis sub counter,3,counter 2249*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2250*25c28e83SPiotr Jasiukajtis ba .cont22 2251*25c28e83SPiotr Jasiukajtis or %g0,3,counter 2252*25c28e83SPiotr Jasiukajtis 2253*25c28e83SPiotr Jasiukajtis.stridex_zero: 2254*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],counter 2255*25c28e83SPiotr Jasiukajtis 2256*25c28e83SPiotr Jasiukajtis stx %i3,[%fp+tmp_py] 2257*25c28e83SPiotr Jasiukajtis 2258*25c28e83SPiotr Jasiukajtis cmp counter,0 2259*25c28e83SPiotr Jasiukajtis ble,pn %icc,.exit 2260*25c28e83SPiotr Jasiukajtis lda [%i1]0x82,%i1 ! (Y0_2) ax0 = *px; 2261*25c28e83SPiotr Jasiukajtis 2262*25c28e83SPiotr Jasiukajtis and %i1,MASK_0x7fffffff,%i3 ! (Y0_2) exp0 = ax0 & 0x7fffffff; 2263*25c28e83SPiotr Jasiukajtis sub %i3,%l6,%l6 2264*25c28e83SPiotr Jasiukajtis and %i1,MASK_0x007fffff,%g5 ! (Y0_2) ax0 &= 0x007fffff; 2265*25c28e83SPiotr Jasiukajtis srl %i3,23,%o3 ! (Y0_2) exp0 >>= 23; 2266*25c28e83SPiotr Jasiukajtis srl %l6,31,%l6 2267*25c28e83SPiotr Jasiukajtis st %l6,[%fp+tmp5] 2268*25c28e83SPiotr Jasiukajtis add %g5,CONST_0x8000,%i3 ! (Y0_2) i0 = ax0 + 0x8000; 2269*25c28e83SPiotr Jasiukajtis sethi %hi(0xffff0000),%l6 2270*25c28e83SPiotr Jasiukajtis sub %o3,127,%o3 ! (Y0_2) exp0 -= 127; 2271*25c28e83SPiotr Jasiukajtis and %i3,%l6,%i3 ! (Y0_2) i0 &= 0xffff0000; 2272*25c28e83SPiotr Jasiukajtis sll %o3,8,%o4 ! (Y0_2) exp0 <<= 8; 2273*25c28e83SPiotr Jasiukajtis st %o4,[%fp+tmp3] ! (Y0_2) STORE exp0 2274*25c28e83SPiotr Jasiukajtis sra %i3,12,%o0 ! (Y0_2) ind0 = i0 >> 12; 2275*25c28e83SPiotr Jasiukajtis sub %g5,%i3,%o4 ! (Y0_2) i0 = ax0 - i0; 2276*25c28e83SPiotr Jasiukajtis st %o4,[%fp+tmp2] ! (Y0_2) STORE i0 2277*25c28e83SPiotr Jasiukajtis and %o0,-8,%g5 ! (Y0_2) ind0 &= -8; 2278*25c28e83SPiotr Jasiukajtis ld [%fp+tmp2],%f14 ! (Y0_2) dtmp0 = (double) i0; 2279*25c28e83SPiotr Jasiukajtis add %l2,%g5,%g1 ! (Y0_2) (char*)__mt_constlog4f + ind0 2280*25c28e83SPiotr Jasiukajtis ldd [%g1+8],%f48 ! (Y0_2) dtmp1 = *(double *)((char*)__mt_constlog4f + ind0 + 8); 2281*25c28e83SPiotr Jasiukajtis fitod %f14,%f60 ! (Y0_2) dtmp0 = (double) i0; 2282*25c28e83SPiotr Jasiukajtis fmuld %f60,%f48,%f48 ! (Y0_2) y0 = dtmp0 * dtmp1; 2283*25c28e83SPiotr Jasiukajtis fmuld KA3,%f48,%f62 ! (Y0_2) dtmp0 = KA3 * y0; 2284*25c28e83SPiotr Jasiukajtis faddd %f62,KA2,%f22 ! (Y0_2) dtmp0 += KA2; 2285*25c28e83SPiotr Jasiukajtis fmuld %f22,%f48,%f26 ! (Y0_2) dtmp0 *= y0; 2286*25c28e83SPiotr Jasiukajtis faddd %f26,KA1,%f50 ! (Y0_2) dtmp0 += KA1; 2287*25c28e83SPiotr Jasiukajtis ld [%fp+tmp3],%f4 ! (Y0_2) dtmp1 = (double) exp0; 2288*25c28e83SPiotr Jasiukajtis fitod %f4,%f26 ! (Y0_1) dtmp1 = (double) exp0; 2289*25c28e83SPiotr Jasiukajtis fmuld %f50,%f48,%f50 ! (Y0_1) dtmp0 *= y0; 2290*25c28e83SPiotr Jasiukajtis ldd [%l2+%g5],%f60 ! (Y0_1) dtmp0 = *(double *)((char*)__mt_constlog4f + ind0); 2291*25c28e83SPiotr Jasiukajtis faddd %f50,KA0,%f58 ! (Y0_1) dtmp0 += KA0; 2292*25c28e83SPiotr Jasiukajtis faddd %f60,%f26,%f26 ! (Y0_1) yy0 = dtmp0 + dtmp1; 2293*25c28e83SPiotr Jasiukajtis fmuld %f58,%f48,%f48 ! (Y0_1) dtmp0 *= y0; 2294*25c28e83SPiotr Jasiukajtis sub %l2,3200,%o4 2295*25c28e83SPiotr Jasiukajtis sub %l2,1152-600,%o3 2296*25c28e83SPiotr Jasiukajtis faddd %f26,%f48,%f46 ! (Y0_1) yy0 += dtmp0; 2297*25c28e83SPiotr Jasiukajtis or %g0,%i5,%g1 2298*25c28e83SPiotr Jasiukajtis sethi %hi(0x7f800000),%o1 2299*25c28e83SPiotr Jasiukajtis 2300*25c28e83SPiotr Jasiukajtis.xbegin: 2301*25c28e83SPiotr Jasiukajtis ld [%fp+tmp_counter],counter 2302*25c28e83SPiotr Jasiukajtis ldx [%fp+tmp_py],%o5 2303*25c28e83SPiotr Jasiukajtis st %g0,[%fp+tmp_counter] 2304*25c28e83SPiotr Jasiukajtis.xbegin1: 2305*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 2306*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.exit 2307*25c28e83SPiotr Jasiukajtis nop 2308*25c28e83SPiotr Jasiukajtis 2309*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i5 ! (Y0_0) ay = py[0]; 2310*25c28e83SPiotr Jasiukajtis 2311*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; 2312*25c28e83SPiotr Jasiukajtis 2313*25c28e83SPiotr Jasiukajtis and %i5,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff 2314*25c28e83SPiotr Jasiukajtis 2315*25c28e83SPiotr Jasiukajtis cmp %i3,%o1 2316*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xspec 2317*25c28e83SPiotr Jasiukajtis nop 2318*25c28e83SPiotr Jasiukajtis 2319*25c28e83SPiotr Jasiukajtis fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; 2320*25c28e83SPiotr Jasiukajtis 2321*25c28e83SPiotr Jasiukajtis fmuld %f52,%f46,%f26 ! (Y0_0) yy0 = dtmp0 * yy; 2322*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2323*25c28e83SPiotr Jasiukajtis 2324*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i5 ! (Y1_0) ay = ((int*)py)[0]; 2325*25c28e83SPiotr Jasiukajtis 2326*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; 2327*25c28e83SPiotr Jasiukajtis 2328*25c28e83SPiotr Jasiukajtis and %i5,MASK_0x7fffffff,%i5 ! (Y1_0) ay &= 0x7fffffff 2329*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f26 ! (Y0_0) if (yy0 >= HTHRESH) 2330*25c28e83SPiotr Jasiukajtis 2331*25c28e83SPiotr Jasiukajtis cmp %i5,%o1 2332*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate0 2333*25c28e83SPiotr Jasiukajtis nop 2334*25c28e83SPiotr Jasiukajtis 2335*25c28e83SPiotr Jasiukajtis.xcont0: 2336*25c28e83SPiotr Jasiukajtis fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; 2337*25c28e83SPiotr Jasiukajtis 2338*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f26 ! (Y0_1) if (yy0 <= LTHRESH) 2339*25c28e83SPiotr Jasiukajtis 2340*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2341*25c28e83SPiotr Jasiukajtis fmuld %f48,%f46,%f28 ! (Y1_1) yy0 = dtmp0 * yy; 2342*25c28e83SPiotr Jasiukajtis 2343*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; 2344*25c28e83SPiotr Jasiukajtis 2345*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; 2346*25c28e83SPiotr Jasiukajtis 2347*25c28e83SPiotr Jasiukajtis and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff 2348*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f26 ! (Y0_1) yy0 = HTHRESH; 2349*25c28e83SPiotr Jasiukajtis 2350*25c28e83SPiotr Jasiukajtis cmp %i3,%o1 2351*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate1 2352*25c28e83SPiotr Jasiukajtis fcmped %fcc2,HTHRESHOLD,%f28 ! (Y1_1) if (yy0 >= HTHRESH) 2353*25c28e83SPiotr Jasiukajtis.xcont1: 2354*25c28e83SPiotr Jasiukajtis fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; 2355*25c28e83SPiotr Jasiukajtis 2356*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f26 ! (Y0_1) yy0 = LTHRESH; 2357*25c28e83SPiotr Jasiukajtis 2358*25c28e83SPiotr Jasiukajtis fcmped %fcc3,LTHRESHOLD,%f28 ! (Y1_1) if (yy0 <= LTHRESH) 2359*25c28e83SPiotr Jasiukajtis 2360*25c28e83SPiotr Jasiukajtis fmuld %f52,%f46,%f22 ! (Y0_0) yy0 = dtmp0 * yy; 2361*25c28e83SPiotr Jasiukajtis 2362*25c28e83SPiotr Jasiukajtis fdtoi %f26,%f0 ! (Y0_1) ii0 = (int) yy0; 2363*25c28e83SPiotr Jasiukajtis 2364*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2365*25c28e83SPiotr Jasiukajtis st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 2366*25c28e83SPiotr Jasiukajtis 2367*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%l7 ! (Y1_0) ay = ((int*)py)[0]; 2368*25c28e83SPiotr Jasiukajtis 2369*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; 2370*25c28e83SPiotr Jasiukajtis fmovdl %fcc2,HTHRESHOLD,%f28 ! (Y1_1) yy0 = HTHRESH; 2371*25c28e83SPiotr Jasiukajtis 2372*25c28e83SPiotr Jasiukajtis and %l7,MASK_0x7fffffff,%l7 ! (Y1_0) ay &= 0x7fffffff 2373*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f22 ! (Y0_0) if (yy0 >= HTHRESH) 2374*25c28e83SPiotr Jasiukajtis 2375*25c28e83SPiotr Jasiukajtis cmp %l7,%o1 2376*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate2 2377*25c28e83SPiotr Jasiukajtis nop 2378*25c28e83SPiotr Jasiukajtis.xcont2: 2379*25c28e83SPiotr Jasiukajtis fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; 2380*25c28e83SPiotr Jasiukajtis 2381*25c28e83SPiotr Jasiukajtis fmovdg %fcc3,LTHRESHOLD,%f28 ! (Y1_2) yy0 = LTHRESH; 2382*25c28e83SPiotr Jasiukajtis 2383*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f22 ! (Y0_1) if (yy0 <= LTHRESH) 2384*25c28e83SPiotr Jasiukajtis 2385*25c28e83SPiotr Jasiukajtis fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; 2386*25c28e83SPiotr Jasiukajtis 2387*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2388*25c28e83SPiotr Jasiukajtis fmuld %f48,%f46,%f24 ! (Y1_1) yy0 = dtmp0 * yy; 2389*25c28e83SPiotr Jasiukajtis 2390*25c28e83SPiotr Jasiukajtis fdtoi %f28,%f3 ! (Y1_2) ii0 = (int) yy0; 2391*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; 2392*25c28e83SPiotr Jasiukajtis 2393*25c28e83SPiotr Jasiukajtis st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 2394*25c28e83SPiotr Jasiukajtis 2395*25c28e83SPiotr Jasiukajtis fsubd %f26,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; 2396*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; 2397*25c28e83SPiotr Jasiukajtis 2398*25c28e83SPiotr Jasiukajtis and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff 2399*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f22 ! (Y0_1) yy0 = HTHRESH; 2400*25c28e83SPiotr Jasiukajtis 2401*25c28e83SPiotr Jasiukajtis cmp %i3,%o1 2402*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate3 2403*25c28e83SPiotr Jasiukajtis fcmped %fcc2,HTHRESHOLD,%f24 ! (Y1_1) if (yy0 >= HTHRESH) 2404*25c28e83SPiotr Jasiukajtis.xcont3: 2405*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 2406*25c28e83SPiotr Jasiukajtis fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; 2407*25c28e83SPiotr Jasiukajtis fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; 2408*25c28e83SPiotr Jasiukajtis 2409*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f22 ! (Y0_1) yy0 = LTHRESH; 2410*25c28e83SPiotr Jasiukajtis 2411*25c28e83SPiotr Jasiukajtis sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; 2412*25c28e83SPiotr Jasiukajtis and %i2,255,%l7 ! (Y0_2) ii0 &= 255; 2413*25c28e83SPiotr Jasiukajtis fcmped %fcc3,LTHRESHOLD,%f24 ! (Y1_1) if (yy0 <= LTHRESH) 2414*25c28e83SPiotr Jasiukajtis 2415*25c28e83SPiotr Jasiukajtis fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; 2416*25c28e83SPiotr Jasiukajtis sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; 2417*25c28e83SPiotr Jasiukajtis and %l6,-4,%g5 ! (Y0_2) i0 &= -4; 2418*25c28e83SPiotr Jasiukajtis 2419*25c28e83SPiotr Jasiukajtis faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; 2420*25c28e83SPiotr Jasiukajtis fmuld %f52,%f46,%f26 ! (Y0_0) yy0 = dtmp0 * yy; 2421*25c28e83SPiotr Jasiukajtis ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] 2422*25c28e83SPiotr Jasiukajtis 2423*25c28e83SPiotr Jasiukajtis fdtoi %f22,%f0 ! (Y0_1) ii0 = (int) yy0; 2424*25c28e83SPiotr Jasiukajtis ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2425*25c28e83SPiotr Jasiukajtis 2426*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2427*25c28e83SPiotr Jasiukajtis st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 2428*25c28e83SPiotr Jasiukajtis 2429*25c28e83SPiotr Jasiukajtis fsubd %f28,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; 2430*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i5 ! (Y1_0) ay = ((int*)py)[0]; 2431*25c28e83SPiotr Jasiukajtis 2432*25c28e83SPiotr Jasiukajtis fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; 2433*25c28e83SPiotr Jasiukajtis fmovdl %fcc2,HTHRESHOLD,%f24 ! (Y1_1) yy0 = HTHRESH; 2434*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; 2435*25c28e83SPiotr Jasiukajtis 2436*25c28e83SPiotr Jasiukajtis fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; 2437*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 2438*25c28e83SPiotr Jasiukajtis and %i5,MASK_0x7fffffff,%i5 ! (Y1_0) ay &= 0x7fffffff 2439*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f26 ! (Y0_0) if (yy0 >= HTHRESH) 2440*25c28e83SPiotr Jasiukajtis 2441*25c28e83SPiotr Jasiukajtis cmp %i5,%o1 2442*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate4 2443*25c28e83SPiotr Jasiukajtis.xcont4: 2444*25c28e83SPiotr Jasiukajtis fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; 2445*25c28e83SPiotr Jasiukajtis fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; 2446*25c28e83SPiotr Jasiukajtis 2447*25c28e83SPiotr Jasiukajtis fmovdg %fcc3,LTHRESHOLD,%f24 ! (Y1_2) yy0 = LTHRESH; 2448*25c28e83SPiotr Jasiukajtis sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; 2449*25c28e83SPiotr Jasiukajtis and %g5,255,%i1 ! (Y1_3) ii0 &= 255; 2450*25c28e83SPiotr Jasiukajtis fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; 2451*25c28e83SPiotr Jasiukajtis 2452*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f26 ! (Y0_1) if (yy0 <= LTHRESH) 2453*25c28e83SPiotr Jasiukajtis sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; 2454*25c28e83SPiotr Jasiukajtis and %i0,-4,%i0 ! (Y1_3) i0 &= -4; 2455*25c28e83SPiotr Jasiukajtis 2456*25c28e83SPiotr Jasiukajtis fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; 2457*25c28e83SPiotr Jasiukajtis ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150) + i0))[0]; 2458*25c28e83SPiotr Jasiukajtis 2459*25c28e83SPiotr Jasiukajtis faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; 2460*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2461*25c28e83SPiotr Jasiukajtis ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2462*25c28e83SPiotr Jasiukajtis fmuld %f48,%f46,%f28 ! (Y1_1) yy0 = dtmp0 * yy; 2463*25c28e83SPiotr Jasiukajtis 2464*25c28e83SPiotr Jasiukajtis fdtoi %f24,%f3 ! (Y1_2) ii0 = (int) yy0; 2465*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; 2466*25c28e83SPiotr Jasiukajtis 2467*25c28e83SPiotr Jasiukajtis faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; 2468*25c28e83SPiotr Jasiukajtis st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 2469*25c28e83SPiotr Jasiukajtis 2470*25c28e83SPiotr Jasiukajtis fsubd %f22,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; 2471*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; 2472*25c28e83SPiotr Jasiukajtis 2473*25c28e83SPiotr Jasiukajtis fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; 2474*25c28e83SPiotr Jasiukajtis and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff 2475*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f26 ! (Y0_1) yy0 = HTHRESH; 2476*25c28e83SPiotr Jasiukajtis 2477*25c28e83SPiotr Jasiukajtis fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; 2478*25c28e83SPiotr Jasiukajtis cmp %i3,%o1 2479*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate5 2480*25c28e83SPiotr Jasiukajtis fcmped %fcc2,HTHRESHOLD,%f28 ! (Y1_1) if (yy0 >= HTHRESH) 2481*25c28e83SPiotr Jasiukajtis.xcont5: 2482*25c28e83SPiotr Jasiukajtis fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; 2483*25c28e83SPiotr Jasiukajtis add %g1,stridez,%i3 ! pz += stridez 2484*25c28e83SPiotr Jasiukajtis st %f1,[%g1] ! (Y0_3) pz[0] = ftmp0; 2485*25c28e83SPiotr Jasiukajtis 2486*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 2487*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.xbegin 2488*25c28e83SPiotr Jasiukajtis or %g0,%i3,%g1 2489*25c28e83SPiotr Jasiukajtis 2490*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 2491*25c28e83SPiotr Jasiukajtis fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; 2492*25c28e83SPiotr Jasiukajtis fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; 2493*25c28e83SPiotr Jasiukajtis 2494*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f26 ! (Y0_1) yy0 = LTHRESH; 2495*25c28e83SPiotr Jasiukajtis 2496*25c28e83SPiotr Jasiukajtis fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; 2497*25c28e83SPiotr Jasiukajtis sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; 2498*25c28e83SPiotr Jasiukajtis and %i2,255,%l7 ! (Y0_2) ii0 &= 255; 2499*25c28e83SPiotr Jasiukajtis fcmped %fcc3,LTHRESHOLD,%f28 ! (Y1_1) if (yy0 <= LTHRESH) 2500*25c28e83SPiotr Jasiukajtis 2501*25c28e83SPiotr Jasiukajtis fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; 2502*25c28e83SPiotr Jasiukajtis sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; 2503*25c28e83SPiotr Jasiukajtis and %l6,-4,%g5 ! (Y0_2) i0 &= -4; 2504*25c28e83SPiotr Jasiukajtis 2505*25c28e83SPiotr Jasiukajtis faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; 2506*25c28e83SPiotr Jasiukajtis fmuld %f52,%f46,%f22 ! (Y0_0) yy0 = dtmp0 * yy; 2507*25c28e83SPiotr Jasiukajtis ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] 2508*25c28e83SPiotr Jasiukajtis 2509*25c28e83SPiotr Jasiukajtis fdtoi %f26,%f0 ! (Y0_1) ii0 = (int) yy0; 2510*25c28e83SPiotr Jasiukajtis ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2511*25c28e83SPiotr Jasiukajtis 2512*25c28e83SPiotr Jasiukajtis faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; 2513*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2514*25c28e83SPiotr Jasiukajtis st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 2515*25c28e83SPiotr Jasiukajtis 2516*25c28e83SPiotr Jasiukajtis fsubd %f24,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; 2517*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%l7 ! (Y1_0) ay = ((int*)py)[0]; 2518*25c28e83SPiotr Jasiukajtis 2519*25c28e83SPiotr Jasiukajtis fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; 2520*25c28e83SPiotr Jasiukajtis add %i3,stridez,%i5 ! pz += stridez 2521*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; 2522*25c28e83SPiotr Jasiukajtis fmovdl %fcc2,HTHRESHOLD,%f28 ! (Y1_1) yy0 = HTHRESH; 2523*25c28e83SPiotr Jasiukajtis 2524*25c28e83SPiotr Jasiukajtis fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; 2525*25c28e83SPiotr Jasiukajtis and %l7,MASK_0x7fffffff,%l7 ! (Y1_0) ay &= 0x7fffffff 2526*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 2527*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f22 ! (Y0_0) if (yy0 >= HTHRESH) 2528*25c28e83SPiotr Jasiukajtis 2529*25c28e83SPiotr Jasiukajtis fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; 2530*25c28e83SPiotr Jasiukajtis st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; 2531*25c28e83SPiotr Jasiukajtis cmp %l7,%o1 2532*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate6 2533*25c28e83SPiotr Jasiukajtis 2534*25c28e83SPiotr Jasiukajtis.xcont6: 2535*25c28e83SPiotr Jasiukajtis fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; 2536*25c28e83SPiotr Jasiukajtis fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; 2537*25c28e83SPiotr Jasiukajtis 2538*25c28e83SPiotr Jasiukajtis cmp counter,8 2539*25c28e83SPiotr Jasiukajtis bl,pn %icc,.xtail 2540*25c28e83SPiotr Jasiukajtis nop 2541*25c28e83SPiotr Jasiukajtis 2542*25c28e83SPiotr Jasiukajtis ba .xmain_loop 2543*25c28e83SPiotr Jasiukajtis nop 2544*25c28e83SPiotr Jasiukajtis 2545*25c28e83SPiotr Jasiukajtis .align 16 2546*25c28e83SPiotr Jasiukajtis.xmain_loop: 2547*25c28e83SPiotr Jasiukajtis fmovdg %fcc3,LTHRESHOLD,%f28 ! (Y1_2) yy0 = LTHRESH; 2548*25c28e83SPiotr Jasiukajtis sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; 2549*25c28e83SPiotr Jasiukajtis and %g5,255,%i1 ! (Y1_3) ii0 &= 255; 2550*25c28e83SPiotr Jasiukajtis fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; 2551*25c28e83SPiotr Jasiukajtis 2552*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f22 ! (Y0_1) if (yy0 <= LTHRESH) 2553*25c28e83SPiotr Jasiukajtis sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; 2554*25c28e83SPiotr Jasiukajtis and %i0,-4,%i0 ! (Y1_3) i0 &= -4; 2555*25c28e83SPiotr Jasiukajtis 2556*25c28e83SPiotr Jasiukajtis fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; 2557*25c28e83SPiotr Jasiukajtis sub counter,4,counter 2558*25c28e83SPiotr Jasiukajtis ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; 2559*25c28e83SPiotr Jasiukajtis 2560*25c28e83SPiotr Jasiukajtis faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; 2561*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2562*25c28e83SPiotr Jasiukajtis ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2563*25c28e83SPiotr Jasiukajtis fmuld %f48,%f46,%f24 ! (Y1_1) yy0 = dtmp0 * yy; 2564*25c28e83SPiotr Jasiukajtis 2565*25c28e83SPiotr Jasiukajtis fdtoi %f28,%f3 ! (Y1_2) ii0 = (int) yy0; 2566*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; 2567*25c28e83SPiotr Jasiukajtis 2568*25c28e83SPiotr Jasiukajtis faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; 2569*25c28e83SPiotr Jasiukajtis st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 2570*25c28e83SPiotr Jasiukajtis 2571*25c28e83SPiotr Jasiukajtis fsubd %f26,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; 2572*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; 2573*25c28e83SPiotr Jasiukajtis 2574*25c28e83SPiotr Jasiukajtis fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; 2575*25c28e83SPiotr Jasiukajtis and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff 2576*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f22 ! (Y0_1) yy0 = HTHRESH; 2577*25c28e83SPiotr Jasiukajtis 2578*25c28e83SPiotr Jasiukajtis fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; 2579*25c28e83SPiotr Jasiukajtis cmp %i3,%o1 2580*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate7 2581*25c28e83SPiotr Jasiukajtis fcmped %fcc2,HTHRESHOLD,%f24 ! (Y1_1) if (yy0 >= HTHRESH) 2582*25c28e83SPiotr Jasiukajtis.xcont7: 2583*25c28e83SPiotr Jasiukajtis fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; 2584*25c28e83SPiotr Jasiukajtis add %i5,stridez,%i3 ! pz += stridez 2585*25c28e83SPiotr Jasiukajtis st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; 2586*25c28e83SPiotr Jasiukajtis 2587*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 2588*25c28e83SPiotr Jasiukajtis fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; 2589*25c28e83SPiotr Jasiukajtis fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; 2590*25c28e83SPiotr Jasiukajtis 2591*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f22 ! (Y0_1) yy0 = LTHRESH; 2592*25c28e83SPiotr Jasiukajtis 2593*25c28e83SPiotr Jasiukajtis fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; 2594*25c28e83SPiotr Jasiukajtis sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; 2595*25c28e83SPiotr Jasiukajtis and %i2,255,%l7 ! (Y0_2) ii0 &= 255; 2596*25c28e83SPiotr Jasiukajtis fcmped %fcc3,LTHRESHOLD,%f24 ! (Y1_1) if (yy0 <= LTHRESH) 2597*25c28e83SPiotr Jasiukajtis 2598*25c28e83SPiotr Jasiukajtis fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; 2599*25c28e83SPiotr Jasiukajtis sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; 2600*25c28e83SPiotr Jasiukajtis and %l6,-4,%g5 ! (Y0_2) i0 &= -4; 2601*25c28e83SPiotr Jasiukajtis 2602*25c28e83SPiotr Jasiukajtis faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; 2603*25c28e83SPiotr Jasiukajtis fmuld %f52,%f46,%f26 ! (Y0_0) yy0 = dtmp0 * yy; 2604*25c28e83SPiotr Jasiukajtis ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] 2605*25c28e83SPiotr Jasiukajtis 2606*25c28e83SPiotr Jasiukajtis fdtoi %f22,%f0 ! (Y0_1) ii0 = (int) yy0; 2607*25c28e83SPiotr Jasiukajtis ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2608*25c28e83SPiotr Jasiukajtis 2609*25c28e83SPiotr Jasiukajtis faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; 2610*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2611*25c28e83SPiotr Jasiukajtis st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 2612*25c28e83SPiotr Jasiukajtis 2613*25c28e83SPiotr Jasiukajtis fsubd %f28,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; 2614*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i5 ! (Y1_0) ay = ((int*)py)[0]; 2615*25c28e83SPiotr Jasiukajtis 2616*25c28e83SPiotr Jasiukajtis fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; 2617*25c28e83SPiotr Jasiukajtis fmovdl %fcc2,HTHRESHOLD,%f24 ! (Y1_1) yy0 = HTHRESH; 2618*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; 2619*25c28e83SPiotr Jasiukajtis 2620*25c28e83SPiotr Jasiukajtis fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; 2621*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 2622*25c28e83SPiotr Jasiukajtis and %i5,MASK_0x7fffffff,%i5 ! (Y1_0) ay &= 0x7fffffff 2623*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f26 ! (Y0_0) if (yy0 >= HTHRESH) 2624*25c28e83SPiotr Jasiukajtis 2625*25c28e83SPiotr Jasiukajtis fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; 2626*25c28e83SPiotr Jasiukajtis cmp %i5,%o1 2627*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate8 2628*25c28e83SPiotr Jasiukajtis 2629*25c28e83SPiotr Jasiukajtis.xcont8: 2630*25c28e83SPiotr Jasiukajtis fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; 2631*25c28e83SPiotr Jasiukajtis add %i3,stridez,%i5 ! pz += stridez 2632*25c28e83SPiotr Jasiukajtis st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; 2633*25c28e83SPiotr Jasiukajtis fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; 2634*25c28e83SPiotr Jasiukajtis 2635*25c28e83SPiotr Jasiukajtis fmovdg %fcc3,LTHRESHOLD,%f24 ! (Y1_2) yy0 = LTHRESH; 2636*25c28e83SPiotr Jasiukajtis sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; 2637*25c28e83SPiotr Jasiukajtis and %g5,255,%i1 ! (Y1_3) ii0 &= 255; 2638*25c28e83SPiotr Jasiukajtis fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; 2639*25c28e83SPiotr Jasiukajtis 2640*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f26 ! (Y0_1) if (yy0 <= LTHRESH) 2641*25c28e83SPiotr Jasiukajtis sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; 2642*25c28e83SPiotr Jasiukajtis and %i0,-4,%i0 ! (Y1_3) i0 &= -4; 2643*25c28e83SPiotr Jasiukajtis 2644*25c28e83SPiotr Jasiukajtis fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; 2645*25c28e83SPiotr Jasiukajtis ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; 2646*25c28e83SPiotr Jasiukajtis 2647*25c28e83SPiotr Jasiukajtis faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; 2648*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2649*25c28e83SPiotr Jasiukajtis ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2650*25c28e83SPiotr Jasiukajtis fmuld %f48,%f46,%f28 ! (Y1_1) yy0 = dtmp0 * yy; 2651*25c28e83SPiotr Jasiukajtis 2652*25c28e83SPiotr Jasiukajtis fdtoi %f24,%f3 ! (Y1_2) ii0 = (int) yy0; 2653*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; 2654*25c28e83SPiotr Jasiukajtis 2655*25c28e83SPiotr Jasiukajtis faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; 2656*25c28e83SPiotr Jasiukajtis st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 2657*25c28e83SPiotr Jasiukajtis 2658*25c28e83SPiotr Jasiukajtis fsubd %f22,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; 2659*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; 2660*25c28e83SPiotr Jasiukajtis 2661*25c28e83SPiotr Jasiukajtis fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; 2662*25c28e83SPiotr Jasiukajtis and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff 2663*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f26 ! (Y0_1) yy0 = HTHRESH; 2664*25c28e83SPiotr Jasiukajtis 2665*25c28e83SPiotr Jasiukajtis fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; 2666*25c28e83SPiotr Jasiukajtis cmp %i3,%o1 2667*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate9 2668*25c28e83SPiotr Jasiukajtis fcmped %fcc2,HTHRESHOLD,%f28 ! (Y1_1) if (yy0 >= HTHRESH) 2669*25c28e83SPiotr Jasiukajtis.xcont9: 2670*25c28e83SPiotr Jasiukajtis fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; 2671*25c28e83SPiotr Jasiukajtis add %i5,stridez,%i3 ! pz += stridez 2672*25c28e83SPiotr Jasiukajtis st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; 2673*25c28e83SPiotr Jasiukajtis 2674*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 2675*25c28e83SPiotr Jasiukajtis fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; 2676*25c28e83SPiotr Jasiukajtis fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; 2677*25c28e83SPiotr Jasiukajtis 2678*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f26 ! (Y0_1) yy0 = LTHRESH; 2679*25c28e83SPiotr Jasiukajtis 2680*25c28e83SPiotr Jasiukajtis fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; 2681*25c28e83SPiotr Jasiukajtis sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; 2682*25c28e83SPiotr Jasiukajtis and %i2,255,%l7 ! (Y0_2) ii0 &= 255; 2683*25c28e83SPiotr Jasiukajtis fcmped %fcc3,LTHRESHOLD,%f28 ! (Y1_1) if (yy0 <= LTHRESH) 2684*25c28e83SPiotr Jasiukajtis 2685*25c28e83SPiotr Jasiukajtis fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; 2686*25c28e83SPiotr Jasiukajtis sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; 2687*25c28e83SPiotr Jasiukajtis and %l6,-4,%g5 ! (Y0_2) i0 &= -4; 2688*25c28e83SPiotr Jasiukajtis 2689*25c28e83SPiotr Jasiukajtis faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; 2690*25c28e83SPiotr Jasiukajtis fmuld %f52,%f46,%f22 ! (Y0_0) yy0 = dtmp0 * yy; 2691*25c28e83SPiotr Jasiukajtis ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] 2692*25c28e83SPiotr Jasiukajtis 2693*25c28e83SPiotr Jasiukajtis fdtoi %f26,%f0 ! (Y0_1) ii0 = (int) yy0; 2694*25c28e83SPiotr Jasiukajtis ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2695*25c28e83SPiotr Jasiukajtis 2696*25c28e83SPiotr Jasiukajtis faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; 2697*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2698*25c28e83SPiotr Jasiukajtis st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 2699*25c28e83SPiotr Jasiukajtis 2700*25c28e83SPiotr Jasiukajtis fsubd %f24,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; 2701*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%l7 ! (Y1_0) ay = ((int*)py)[0]; 2702*25c28e83SPiotr Jasiukajtis 2703*25c28e83SPiotr Jasiukajtis fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; 2704*25c28e83SPiotr Jasiukajtis add %i3,stridez,%i5 ! pz += stridez 2705*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f7 ! (Y1_0) ftmp0 = py[0]; 2706*25c28e83SPiotr Jasiukajtis fmovdl %fcc2,HTHRESHOLD,%f28 ! (Y1_1) yy0 = HTHRESH; 2707*25c28e83SPiotr Jasiukajtis 2708*25c28e83SPiotr Jasiukajtis fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; 2709*25c28e83SPiotr Jasiukajtis and %l7,MASK_0x7fffffff,%l7 ! (Y1_0) ay &= 0x7fffffff 2710*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 2711*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f22 ! (Y0_0) if (yy0 >= HTHRESH) 2712*25c28e83SPiotr Jasiukajtis 2713*25c28e83SPiotr Jasiukajtis fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; 2714*25c28e83SPiotr Jasiukajtis st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; 2715*25c28e83SPiotr Jasiukajtis cmp %l7,%o1 2716*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate10 2717*25c28e83SPiotr Jasiukajtis.xcont10: 2718*25c28e83SPiotr Jasiukajtis fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; 2719*25c28e83SPiotr Jasiukajtis cmp counter,4 2720*25c28e83SPiotr Jasiukajtis bge,pt %icc,.xmain_loop 2721*25c28e83SPiotr Jasiukajtis fstod %f7,%f48 ! (Y1_0) dtmp0 = (double)ftmp0; 2722*25c28e83SPiotr Jasiukajtis 2723*25c28e83SPiotr Jasiukajtis.xtail: 2724*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 2725*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.xbegin 2726*25c28e83SPiotr Jasiukajtis or %g0,%i5,%g1 2727*25c28e83SPiotr Jasiukajtis 2728*25c28e83SPiotr Jasiukajtis fmovdg %fcc3,LTHRESHOLD,%f28 ! (Y1_2) yy0 = LTHRESH; 2729*25c28e83SPiotr Jasiukajtis sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; 2730*25c28e83SPiotr Jasiukajtis and %g5,255,%i1 ! (Y1_3) ii0 &= 255; 2731*25c28e83SPiotr Jasiukajtis fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; 2732*25c28e83SPiotr Jasiukajtis 2733*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f22 ! (Y0_1) if (yy0 <= LTHRESH) 2734*25c28e83SPiotr Jasiukajtis sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; 2735*25c28e83SPiotr Jasiukajtis and %i0,-4,%i0 ! (Y1_3) i0 &= -4; 2736*25c28e83SPiotr Jasiukajtis 2737*25c28e83SPiotr Jasiukajtis fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; 2738*25c28e83SPiotr Jasiukajtis ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; 2739*25c28e83SPiotr Jasiukajtis 2740*25c28e83SPiotr Jasiukajtis faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; 2741*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 ! py += stridey 2742*25c28e83SPiotr Jasiukajtis ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2743*25c28e83SPiotr Jasiukajtis fmuld %f48,%f46,%f24 ! (Y1_1) yy0 = dtmp0 * yy; 2744*25c28e83SPiotr Jasiukajtis 2745*25c28e83SPiotr Jasiukajtis fdtoi %f28,%f3 ! (Y1_2) ii0 = (int) yy0; 2746*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%i3 ! (Y0_0) ay = py[0]; 2747*25c28e83SPiotr Jasiukajtis 2748*25c28e83SPiotr Jasiukajtis faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; 2749*25c28e83SPiotr Jasiukajtis st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 2750*25c28e83SPiotr Jasiukajtis 2751*25c28e83SPiotr Jasiukajtis fsubd %f26,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; 2752*25c28e83SPiotr Jasiukajtis lda [%o5]0x82,%f5 ! (Y0_0) ftmp0 = py[0]; 2753*25c28e83SPiotr Jasiukajtis 2754*25c28e83SPiotr Jasiukajtis fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; 2755*25c28e83SPiotr Jasiukajtis and %i3,MASK_0x7fffffff,%i3 ! (Y0_0) ay &= 0x7fffffff 2756*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f22 ! (Y0_1) yy0 = HTHRESH; 2757*25c28e83SPiotr Jasiukajtis 2758*25c28e83SPiotr Jasiukajtis fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; 2759*25c28e83SPiotr Jasiukajtis cmp %i3,%o1 2760*25c28e83SPiotr Jasiukajtis bge,pn %icc,.xupdate11 2761*25c28e83SPiotr Jasiukajtis fcmped %fcc2,HTHRESHOLD,%f24 ! (Y1_1) if (yy0 >= HTHRESH) 2762*25c28e83SPiotr Jasiukajtis.xcont11: 2763*25c28e83SPiotr Jasiukajtis fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; 2764*25c28e83SPiotr Jasiukajtis add %i5,stridez,%i3 ! pz += stridez 2765*25c28e83SPiotr Jasiukajtis st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; 2766*25c28e83SPiotr Jasiukajtis 2767*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 2768*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.xbegin 2769*25c28e83SPiotr Jasiukajtis or %g0,%i3,%g1 2770*25c28e83SPiotr Jasiukajtis 2771*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 2772*25c28e83SPiotr Jasiukajtis fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; 2773*25c28e83SPiotr Jasiukajtis fstod %f5,%f52 ! (Y0_0) dtmp0 = (double)ftmp0; 2774*25c28e83SPiotr Jasiukajtis 2775*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f22 ! (Y0_1) yy0 = LTHRESH; 2776*25c28e83SPiotr Jasiukajtis 2777*25c28e83SPiotr Jasiukajtis fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; 2778*25c28e83SPiotr Jasiukajtis sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; 2779*25c28e83SPiotr Jasiukajtis and %i2,255,%l7 ! (Y0_2) ii0 &= 255; 2780*25c28e83SPiotr Jasiukajtis fcmped %fcc3,LTHRESHOLD,%f24 ! (Y1_1) if (yy0 <= LTHRESH) 2781*25c28e83SPiotr Jasiukajtis 2782*25c28e83SPiotr Jasiukajtis fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; 2783*25c28e83SPiotr Jasiukajtis sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; 2784*25c28e83SPiotr Jasiukajtis and %l6,-4,%g5 ! (Y0_2) i0 &= -4; 2785*25c28e83SPiotr Jasiukajtis 2786*25c28e83SPiotr Jasiukajtis faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; 2787*25c28e83SPiotr Jasiukajtis fmuld %f52,%f46,%f26 ! (Y0_0) yy0 = dtmp0 * yy; 2788*25c28e83SPiotr Jasiukajtis ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] 2789*25c28e83SPiotr Jasiukajtis 2790*25c28e83SPiotr Jasiukajtis fdtoi %f22,%f0 ! (Y0_1) ii0 = (int) yy0; 2791*25c28e83SPiotr Jasiukajtis ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2792*25c28e83SPiotr Jasiukajtis 2793*25c28e83SPiotr Jasiukajtis faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; 2794*25c28e83SPiotr Jasiukajtis st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 2795*25c28e83SPiotr Jasiukajtis 2796*25c28e83SPiotr Jasiukajtis fsubd %f28,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; 2797*25c28e83SPiotr Jasiukajtis 2798*25c28e83SPiotr Jasiukajtis fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; 2799*25c28e83SPiotr Jasiukajtis fmovdl %fcc2,HTHRESHOLD,%f24 ! (Y1_1) yy0 = HTHRESH; 2800*25c28e83SPiotr Jasiukajtis 2801*25c28e83SPiotr Jasiukajtis fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; 2802*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 2803*25c28e83SPiotr Jasiukajtis fcmped %fcc0,HTHRESHOLD,%f26 ! (Y0_0) if (yy0 >= HTHRESH) 2804*25c28e83SPiotr Jasiukajtis 2805*25c28e83SPiotr Jasiukajtis fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; 2806*25c28e83SPiotr Jasiukajtis 2807*25c28e83SPiotr Jasiukajtis fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; 2808*25c28e83SPiotr Jasiukajtis add %i3,stridez,%i5 ! pz += stridez 2809*25c28e83SPiotr Jasiukajtis st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; 2810*25c28e83SPiotr Jasiukajtis 2811*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 2812*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.xbegin 2813*25c28e83SPiotr Jasiukajtis or %g0,%i5,%g1 2814*25c28e83SPiotr Jasiukajtis 2815*25c28e83SPiotr Jasiukajtis fmovdg %fcc3,LTHRESHOLD,%f24 ! (Y1_2) yy0 = LTHRESH; 2816*25c28e83SPiotr Jasiukajtis sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; 2817*25c28e83SPiotr Jasiukajtis and %g5,255,%i1 ! (Y1_3) ii0 &= 255; 2818*25c28e83SPiotr Jasiukajtis fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; 2819*25c28e83SPiotr Jasiukajtis 2820*25c28e83SPiotr Jasiukajtis fcmped %fcc1,LTHRESHOLD,%f26 ! (Y0_1) if (yy0 <= LTHRESH) 2821*25c28e83SPiotr Jasiukajtis sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; 2822*25c28e83SPiotr Jasiukajtis and %i0,-4,%i0 ! (Y1_3) i0 &= -4; 2823*25c28e83SPiotr Jasiukajtis 2824*25c28e83SPiotr Jasiukajtis fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; 2825*25c28e83SPiotr Jasiukajtis ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; 2826*25c28e83SPiotr Jasiukajtis 2827*25c28e83SPiotr Jasiukajtis faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; 2828*25c28e83SPiotr Jasiukajtis ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2829*25c28e83SPiotr Jasiukajtis 2830*25c28e83SPiotr Jasiukajtis fdtoi %f24,%f3 ! (Y1_2) ii0 = (int) yy0; 2831*25c28e83SPiotr Jasiukajtis 2832*25c28e83SPiotr Jasiukajtis faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; 2833*25c28e83SPiotr Jasiukajtis st %f3,[%fp+tmp0] ! (Y1_2) STORE ii0 2834*25c28e83SPiotr Jasiukajtis 2835*25c28e83SPiotr Jasiukajtis fsubd %f22,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; 2836*25c28e83SPiotr Jasiukajtis 2837*25c28e83SPiotr Jasiukajtis fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; 2838*25c28e83SPiotr Jasiukajtis fmovdl %fcc0,HTHRESHOLD,%f26 ! (Y0_1) yy0 = HTHRESH; 2839*25c28e83SPiotr Jasiukajtis 2840*25c28e83SPiotr Jasiukajtis fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; 2841*25c28e83SPiotr Jasiukajtis 2842*25c28e83SPiotr Jasiukajtis fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; 2843*25c28e83SPiotr Jasiukajtis add %i5,stridez,%i3 ! pz += stridez 2844*25c28e83SPiotr Jasiukajtis st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; 2845*25c28e83SPiotr Jasiukajtis 2846*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 2847*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.xbegin 2848*25c28e83SPiotr Jasiukajtis or %g0,%i3,%g1 2849*25c28e83SPiotr Jasiukajtis 2850*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 2851*25c28e83SPiotr Jasiukajtis fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; 2852*25c28e83SPiotr Jasiukajtis 2853*25c28e83SPiotr Jasiukajtis fmovdg %fcc1,LTHRESHOLD,%f26 ! (Y0_1) yy0 = LTHRESH; 2854*25c28e83SPiotr Jasiukajtis 2855*25c28e83SPiotr Jasiukajtis fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; 2856*25c28e83SPiotr Jasiukajtis sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; 2857*25c28e83SPiotr Jasiukajtis and %i2,255,%l7 ! (Y0_2) ii0 &= 255; 2858*25c28e83SPiotr Jasiukajtis 2859*25c28e83SPiotr Jasiukajtis fitod %f3,%f56 ! (Y1_2) dtmp0 = (double)ii0; 2860*25c28e83SPiotr Jasiukajtis sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; 2861*25c28e83SPiotr Jasiukajtis and %l6,-4,%g5 ! (Y0_2) i0 &= -4; 2862*25c28e83SPiotr Jasiukajtis 2863*25c28e83SPiotr Jasiukajtis faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; 2864*25c28e83SPiotr Jasiukajtis ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150) + i0))[0]; 2865*25c28e83SPiotr Jasiukajtis 2866*25c28e83SPiotr Jasiukajtis fdtoi %f26,%f0 ! (Y0_1) ii0 = (int) yy0; 2867*25c28e83SPiotr Jasiukajtis ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2868*25c28e83SPiotr Jasiukajtis 2869*25c28e83SPiotr Jasiukajtis faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; 2870*25c28e83SPiotr Jasiukajtis st %f0,[%fp+tmp1] ! (Y0_1) STORE ii0 2871*25c28e83SPiotr Jasiukajtis 2872*25c28e83SPiotr Jasiukajtis fsubd %f24,%f56,%f56 ! (Y1_2) y0 = yy0 - dtmp0; 2873*25c28e83SPiotr Jasiukajtis 2874*25c28e83SPiotr Jasiukajtis fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; 2875*25c28e83SPiotr Jasiukajtis add %i3,stridez,%i5 ! pz += stridez 2876*25c28e83SPiotr Jasiukajtis 2877*25c28e83SPiotr Jasiukajtis fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; 2878*25c28e83SPiotr Jasiukajtis ld [%fp+tmp0],%g5 ! (Y1_2) LOAD ii0 2879*25c28e83SPiotr Jasiukajtis 2880*25c28e83SPiotr Jasiukajtis fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; 2881*25c28e83SPiotr Jasiukajtis st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; 2882*25c28e83SPiotr Jasiukajtis 2883*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 2884*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.xbegin 2885*25c28e83SPiotr Jasiukajtis or %g0,%i5,%g1 2886*25c28e83SPiotr Jasiukajtis 2887*25c28e83SPiotr Jasiukajtis fmuld KB2,%f56,%f58 ! (Y1_2) dtmp0 = KB2 * y0; 2888*25c28e83SPiotr Jasiukajtis 2889*25c28e83SPiotr Jasiukajtis sra %g5,6,%i0 ! (Y1_3) i0 = ii0 >> 6; 2890*25c28e83SPiotr Jasiukajtis and %g5,255,%i1 ! (Y1_3) ii0 &= 255; 2891*25c28e83SPiotr Jasiukajtis fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; 2892*25c28e83SPiotr Jasiukajtis 2893*25c28e83SPiotr Jasiukajtis sll %i1,3,%i3 ! (Y1_3) ii0 <<= 3; 2894*25c28e83SPiotr Jasiukajtis and %i0,-4,%i0 ! (Y1_3) i0 &= -4; 2895*25c28e83SPiotr Jasiukajtis 2896*25c28e83SPiotr Jasiukajtis fitod %f0,%f52 ! (Y0_2) dtmp0 = (double)ii0; 2897*25c28e83SPiotr Jasiukajtis ld [%i0+%o3],%f10 ! (Y1_3) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0]; 2898*25c28e83SPiotr Jasiukajtis 2899*25c28e83SPiotr Jasiukajtis faddd %f58,KB1,%f58 ! (Y1_3) dtmp0 += KB1; 2900*25c28e83SPiotr Jasiukajtis ldd [%o4+%i3],%f18 ! (Y1_3) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2901*25c28e83SPiotr Jasiukajtis 2902*25c28e83SPiotr Jasiukajtis faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; 2903*25c28e83SPiotr Jasiukajtis 2904*25c28e83SPiotr Jasiukajtis fsubd %f26,%f52,%f40 ! (Y0_2) y0 = yy0 - dtmp0; 2905*25c28e83SPiotr Jasiukajtis 2906*25c28e83SPiotr Jasiukajtis fmuld %f58,%f56,%f56 ! (Y1_3) yy0 = dtmp0 * y0; 2907*25c28e83SPiotr Jasiukajtis 2908*25c28e83SPiotr Jasiukajtis fmuld %f10,%f18,%f50 ! (Y1_3) di0 *= dtmp0; 2909*25c28e83SPiotr Jasiukajtis 2910*25c28e83SPiotr Jasiukajtis fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; 2911*25c28e83SPiotr Jasiukajtis add %i5,stridez,%i3 ! pz += stridez 2912*25c28e83SPiotr Jasiukajtis st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; 2913*25c28e83SPiotr Jasiukajtis 2914*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 2915*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.xbegin 2916*25c28e83SPiotr Jasiukajtis or %g0,%i3,%g1 2917*25c28e83SPiotr Jasiukajtis 2918*25c28e83SPiotr Jasiukajtis ld [%fp+tmp1],%i2 ! (Y0_2) LOAD ii0 2919*25c28e83SPiotr Jasiukajtis fmuld KB2,%f40,%f36 ! (Y0_2) dtmp0 = KB2 * y0; 2920*25c28e83SPiotr Jasiukajtis 2921*25c28e83SPiotr Jasiukajtis fmuld %f56,%f50,%f58 ! (Y1_3) dtmp0 = yy0 * di0; 2922*25c28e83SPiotr Jasiukajtis sra %i2,6,%l6 ! (Y0_2) i0 = ii0 >> 6; 2923*25c28e83SPiotr Jasiukajtis and %i2,255,%l7 ! (Y0_2) ii0 &= 255; 2924*25c28e83SPiotr Jasiukajtis 2925*25c28e83SPiotr Jasiukajtis sll %l7,3,%o0 ! (Y0_2) ii0 <<= 3; 2926*25c28e83SPiotr Jasiukajtis and %l6,-4,%g5 ! (Y0_2) i0 &= -4; 2927*25c28e83SPiotr Jasiukajtis 2928*25c28e83SPiotr Jasiukajtis faddd %f36,KB1,%f60 ! (Y0_2) dtmp0 += KB1; 2929*25c28e83SPiotr Jasiukajtis ld [%g5+%o3],%f10 ! (Y0_2) di0 = ((double*)((char*)(__mt_constexp2fb + 150 ) + i0))[0] 2930*25c28e83SPiotr Jasiukajtis 2931*25c28e83SPiotr Jasiukajtis ldd [%o4+%o0],%f62 ! (Y0_2) dtmp0 = ((double*)((char*)__mt_constexp2fa + ii0))[0]; 2932*25c28e83SPiotr Jasiukajtis 2933*25c28e83SPiotr Jasiukajtis faddd %f58,%f50,%f58 ! (Y1_3) dtmp0 += di0; 2934*25c28e83SPiotr Jasiukajtis 2935*25c28e83SPiotr Jasiukajtis fmuld %f60,%f40,%f60 ! (Y0_2) yy0 = dtmp0 * y0; 2936*25c28e83SPiotr Jasiukajtis 2937*25c28e83SPiotr Jasiukajtis fmuld %f10,%f62,%f62 ! (Y0_2) di0 *= dtmp0; 2938*25c28e83SPiotr Jasiukajtis 2939*25c28e83SPiotr Jasiukajtis fdtos %f58,%f9 ! (Y1_3) ftmp0 = (float)dtmp0; 2940*25c28e83SPiotr Jasiukajtis add %i3,stridez,%i5 ! pz += stridez 2941*25c28e83SPiotr Jasiukajtis st %f9,[%i3] ! (Y1_3) pz[0] = ftmp0; 2942*25c28e83SPiotr Jasiukajtis 2943*25c28e83SPiotr Jasiukajtis subcc counter,1,counter 2944*25c28e83SPiotr Jasiukajtis bneg,pn %icc,.xbegin 2945*25c28e83SPiotr Jasiukajtis or %g0,%i5,%g1 2946*25c28e83SPiotr Jasiukajtis 2947*25c28e83SPiotr Jasiukajtis fmuld %f60,%f62,%f40 ! (Y0_3) dtmp0 = yy0 * di0; 2948*25c28e83SPiotr Jasiukajtis 2949*25c28e83SPiotr Jasiukajtis faddd %f40,%f62,%f60 ! (Y0_3) dtmp0 += di0; 2950*25c28e83SPiotr Jasiukajtis 2951*25c28e83SPiotr Jasiukajtis fdtos %f60,%f1 ! (Y0_3) ftmp0 = (float)dtmp0; 2952*25c28e83SPiotr Jasiukajtis add %i5,stridez,%i3 ! pz += stridez 2953*25c28e83SPiotr Jasiukajtis st %f1,[%i5] ! (Y0_3) pz[0] = ftmp0; 2954*25c28e83SPiotr Jasiukajtis 2955*25c28e83SPiotr Jasiukajtis ba .xbegin 2956*25c28e83SPiotr Jasiukajtis or %g0,%i3,%g1 2957*25c28e83SPiotr Jasiukajtis 2958*25c28e83SPiotr Jasiukajtis.xspec: 2959*25c28e83SPiotr Jasiukajtis bg,a,pn %icc,.yisnan ! if (ay > 0x7f800000) /* |Y| = Nan */ 2960*25c28e83SPiotr Jasiukajtis ld [%o5],%f8 ! fy = *py; 2961*25c28e83SPiotr Jasiukajtis 2962*25c28e83SPiotr Jasiukajtis ld [%fp+tmp5],%l6 ! LOAD (ax-0x3f800000)<<63 2963*25c28e83SPiotr Jasiukajtis srl %i5,31,%i5 ! uy >> 31 2964*25c28e83SPiotr Jasiukajtis 2965*25c28e83SPiotr Jasiukajtis cmp %l6,%i5 ! if((ax < 0x3f800000) != (uy >> 31)) 2966*25c28e83SPiotr Jasiukajtis be,a,pn %icc,.xspec_exit ! if((ax < 0x3f800000) != (uy >> 31)) 2967*25c28e83SPiotr Jasiukajtis st %i3,[%g1] ! fy = *(float*)&ay; 2968*25c28e83SPiotr Jasiukajtis 2969*25c28e83SPiotr Jasiukajtis st %g0,[%g1] ! fy = ZERO 2970*25c28e83SPiotr Jasiukajtis add %g1,stridez,%g1 2971*25c28e83SPiotr Jasiukajtis ba .xbegin1 2972*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 2973*25c28e83SPiotr Jasiukajtis 2974*25c28e83SPiotr Jasiukajtis.yisnan: 2975*25c28e83SPiotr Jasiukajtis fmuls %f8,%f8,%f8 ! fy = *py * *py; /* |Y| = Nan */ 2976*25c28e83SPiotr Jasiukajtis st %f8,[%g1] 2977*25c28e83SPiotr Jasiukajtis 2978*25c28e83SPiotr Jasiukajtis.xspec_exit: 2979*25c28e83SPiotr Jasiukajtis add %g1,stridez,%g1 2980*25c28e83SPiotr Jasiukajtis ba .xbegin1 2981*25c28e83SPiotr Jasiukajtis add %o5,stridey,%o5 2982*25c28e83SPiotr Jasiukajtis 2983*25c28e83SPiotr Jasiukajtis .align 16 2984*25c28e83SPiotr Jasiukajtis.xupdate0: 2985*25c28e83SPiotr Jasiukajtis cmp counter,0 2986*25c28e83SPiotr Jasiukajtis ble .xcont0 2987*25c28e83SPiotr Jasiukajtis fzeros %f7 2988*25c28e83SPiotr Jasiukajtis 2989*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 2990*25c28e83SPiotr Jasiukajtis 2991*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 2992*25c28e83SPiotr Jasiukajtis ba .xcont0 2993*25c28e83SPiotr Jasiukajtis or %g0,0,counter 2994*25c28e83SPiotr Jasiukajtis 2995*25c28e83SPiotr Jasiukajtis .align 16 2996*25c28e83SPiotr Jasiukajtis.xupdate1: 2997*25c28e83SPiotr Jasiukajtis cmp counter,1 2998*25c28e83SPiotr Jasiukajtis ble .xcont1 2999*25c28e83SPiotr Jasiukajtis fzeros %f5 3000*25c28e83SPiotr Jasiukajtis 3001*25c28e83SPiotr Jasiukajtis sub counter,1,counter 3002*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3003*25c28e83SPiotr Jasiukajtis 3004*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3005*25c28e83SPiotr Jasiukajtis ba .xcont1 3006*25c28e83SPiotr Jasiukajtis or %g0,1,counter 3007*25c28e83SPiotr Jasiukajtis 3008*25c28e83SPiotr Jasiukajtis .align 16 3009*25c28e83SPiotr Jasiukajtis.xupdate2: 3010*25c28e83SPiotr Jasiukajtis cmp counter,2 3011*25c28e83SPiotr Jasiukajtis ble .xcont2 3012*25c28e83SPiotr Jasiukajtis fzeros %f7 3013*25c28e83SPiotr Jasiukajtis 3014*25c28e83SPiotr Jasiukajtis sub counter,2,counter 3015*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3016*25c28e83SPiotr Jasiukajtis 3017*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3018*25c28e83SPiotr Jasiukajtis ba .xcont2 3019*25c28e83SPiotr Jasiukajtis or %g0,2,counter 3020*25c28e83SPiotr Jasiukajtis 3021*25c28e83SPiotr Jasiukajtis .align 16 3022*25c28e83SPiotr Jasiukajtis.xupdate3: 3023*25c28e83SPiotr Jasiukajtis cmp counter,3 3024*25c28e83SPiotr Jasiukajtis ble .xcont3 3025*25c28e83SPiotr Jasiukajtis fzeros %f5 3026*25c28e83SPiotr Jasiukajtis 3027*25c28e83SPiotr Jasiukajtis sub counter,3,counter 3028*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3029*25c28e83SPiotr Jasiukajtis 3030*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3031*25c28e83SPiotr Jasiukajtis ba .xcont3 3032*25c28e83SPiotr Jasiukajtis or %g0,3,counter 3033*25c28e83SPiotr Jasiukajtis 3034*25c28e83SPiotr Jasiukajtis .align 16 3035*25c28e83SPiotr Jasiukajtis.xupdate4: 3036*25c28e83SPiotr Jasiukajtis cmp counter,4 3037*25c28e83SPiotr Jasiukajtis ble .xcont4 3038*25c28e83SPiotr Jasiukajtis fzeros %f7 3039*25c28e83SPiotr Jasiukajtis 3040*25c28e83SPiotr Jasiukajtis sub counter,4,counter 3041*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3042*25c28e83SPiotr Jasiukajtis 3043*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3044*25c28e83SPiotr Jasiukajtis ba .xcont4 3045*25c28e83SPiotr Jasiukajtis or %g0,4,counter 3046*25c28e83SPiotr Jasiukajtis 3047*25c28e83SPiotr Jasiukajtis .align 16 3048*25c28e83SPiotr Jasiukajtis.xupdate5: 3049*25c28e83SPiotr Jasiukajtis cmp counter,5 3050*25c28e83SPiotr Jasiukajtis ble .xcont5 3051*25c28e83SPiotr Jasiukajtis fzeros %f5 3052*25c28e83SPiotr Jasiukajtis 3053*25c28e83SPiotr Jasiukajtis sub counter,5,counter 3054*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3055*25c28e83SPiotr Jasiukajtis 3056*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3057*25c28e83SPiotr Jasiukajtis ba .xcont5 3058*25c28e83SPiotr Jasiukajtis or %g0,5,counter 3059*25c28e83SPiotr Jasiukajtis 3060*25c28e83SPiotr Jasiukajtis .align 16 3061*25c28e83SPiotr Jasiukajtis.xupdate6: 3062*25c28e83SPiotr Jasiukajtis cmp counter,5 3063*25c28e83SPiotr Jasiukajtis ble .xcont6 3064*25c28e83SPiotr Jasiukajtis fzeros %f7 3065*25c28e83SPiotr Jasiukajtis 3066*25c28e83SPiotr Jasiukajtis sub counter,5,counter 3067*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3068*25c28e83SPiotr Jasiukajtis 3069*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3070*25c28e83SPiotr Jasiukajtis ba .xcont6 3071*25c28e83SPiotr Jasiukajtis or %g0,5,counter 3072*25c28e83SPiotr Jasiukajtis 3073*25c28e83SPiotr Jasiukajtis .align 16 3074*25c28e83SPiotr Jasiukajtis.xupdate7: 3075*25c28e83SPiotr Jasiukajtis cmp counter,2 3076*25c28e83SPiotr Jasiukajtis ble .xcont7 3077*25c28e83SPiotr Jasiukajtis fzeros %f5 3078*25c28e83SPiotr Jasiukajtis 3079*25c28e83SPiotr Jasiukajtis sub counter,2,counter 3080*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3081*25c28e83SPiotr Jasiukajtis 3082*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3083*25c28e83SPiotr Jasiukajtis ba .xcont7 3084*25c28e83SPiotr Jasiukajtis or %g0,2,counter 3085*25c28e83SPiotr Jasiukajtis 3086*25c28e83SPiotr Jasiukajtis .align 16 3087*25c28e83SPiotr Jasiukajtis.xupdate8: 3088*25c28e83SPiotr Jasiukajtis cmp counter,3 3089*25c28e83SPiotr Jasiukajtis ble .xcont8 3090*25c28e83SPiotr Jasiukajtis fzeros %f7 3091*25c28e83SPiotr Jasiukajtis 3092*25c28e83SPiotr Jasiukajtis sub counter,3,counter 3093*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3094*25c28e83SPiotr Jasiukajtis 3095*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3096*25c28e83SPiotr Jasiukajtis ba .xcont8 3097*25c28e83SPiotr Jasiukajtis or %g0,3,counter 3098*25c28e83SPiotr Jasiukajtis 3099*25c28e83SPiotr Jasiukajtis .align 16 3100*25c28e83SPiotr Jasiukajtis.xupdate9: 3101*25c28e83SPiotr Jasiukajtis cmp counter,4 3102*25c28e83SPiotr Jasiukajtis ble .xcont9 3103*25c28e83SPiotr Jasiukajtis fzeros %f5 3104*25c28e83SPiotr Jasiukajtis 3105*25c28e83SPiotr Jasiukajtis sub counter,4,counter 3106*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3107*25c28e83SPiotr Jasiukajtis 3108*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3109*25c28e83SPiotr Jasiukajtis ba .xcont9 3110*25c28e83SPiotr Jasiukajtis or %g0,4,counter 3111*25c28e83SPiotr Jasiukajtis 3112*25c28e83SPiotr Jasiukajtis .align 16 3113*25c28e83SPiotr Jasiukajtis.xupdate10: 3114*25c28e83SPiotr Jasiukajtis cmp counter,5 3115*25c28e83SPiotr Jasiukajtis ble .xcont10 3116*25c28e83SPiotr Jasiukajtis fzeros %f7 3117*25c28e83SPiotr Jasiukajtis 3118*25c28e83SPiotr Jasiukajtis sub counter,5,counter 3119*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3120*25c28e83SPiotr Jasiukajtis 3121*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3122*25c28e83SPiotr Jasiukajtis ba .xcont10 3123*25c28e83SPiotr Jasiukajtis or %g0,5,counter 3124*25c28e83SPiotr Jasiukajtis 3125*25c28e83SPiotr Jasiukajtis .align 16 3126*25c28e83SPiotr Jasiukajtis.xupdate11: 3127*25c28e83SPiotr Jasiukajtis cmp counter,5 3128*25c28e83SPiotr Jasiukajtis ble .xcont11 3129*25c28e83SPiotr Jasiukajtis fzeros %f5 3130*25c28e83SPiotr Jasiukajtis 3131*25c28e83SPiotr Jasiukajtis sub counter,5,counter 3132*25c28e83SPiotr Jasiukajtis stx %o5,[%fp+tmp_py] 3133*25c28e83SPiotr Jasiukajtis 3134*25c28e83SPiotr Jasiukajtis st counter,[%fp+tmp_counter] 3135*25c28e83SPiotr Jasiukajtis ba .xcont11 3136*25c28e83SPiotr Jasiukajtis or %g0,5,counter 3137*25c28e83SPiotr Jasiukajtis 3138*25c28e83SPiotr Jasiukajtis SET_SIZE(__vpowf) 3139*25c28e83SPiotr Jasiukajtis 3140