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