1/*
2* Copyright (c) 2016, Intel Corporation.
3* Intel Math Library (LIBM) Source Code
4*
5* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6*
7* This code is free software; you can redistribute it and/or modify it
8* under the terms of the GNU General Public License version 2 only, as
9* published by the Free Software Foundation.
10*
11* This code is distributed in the hope that it will be useful, but WITHOUT
12* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14* version 2 for more details (a copy is included in the LICENSE file that
15* accompanied this code).
16*
17* You should have received a copy of the GNU General Public License version
18* 2 along with this work; if not, write to the Free Software Foundation,
19* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20*
21* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22* or visit www.oracle.com if you need additional information or have any
23* questions.
24*
25*/
26
27#include "precompiled.hpp"
28#include "asm/assembler.hpp"
29#include "asm/assembler.inline.hpp"
30#include "macroAssembler_x86.hpp"
31#include "runtime/stubRoutines.hpp"
32#include "utilities/globalDefinitions.hpp"
33
34/******************************************************************************/
35// ALGORITHM DESCRIPTION - POW()
36// ---------------------
37//
38// Let x=2^k * mx, mx in [1,2)
39//
40// log2(x) calculation:
41//
42// Get B~1/mx based on the output of rcpps instruction (B0)
43// B = int((B0*LH*2^9+0.5))/2^9
44// LH is a short approximation for log2(e)
45//
46// Reduced argument, scaled by LH:
47// r=B*mx-LH (computed accurately in high and low parts)
48//
49// log2(x) result: k - log2(B) + p(r)
50// p(r) is a degree 8 polynomial
51// -log2(B) read from data table (high, low parts)
52// log2(x) is formed from high and low parts
53// For |x| in [1-1/32, 1+1/16), a slower but more accurate computation
54// based om the same table design is performed.
55//
56// Main path is taken if | floor(log2(|log2(|x|)|) + floor(log2|y|) | < 8,
57// to filter out all potential OF/UF cases.
58// exp2(y*log2(x)) is computed using an 8-bit index table and a degree 5
59// polynomial
60//
61// Special cases:
62// pow(-0,y) = -INF and raises the divide-by-zero exception for y an odd
63// integer < 0.
64// pow(-0,y) = +INF and raises the divide-by-zero exception for y < 0 and
65// not an odd integer.
66// pow(-0,y) = -0 for y an odd integer > 0.
67// pow(-0,y) = +0 for y > 0 and not an odd integer.
68// pow(-1,-INF) = NaN.
69// pow(+1,y) = NaN for any y, even a NaN.
70// pow(x,-0) = 1 for any x, even a NaN.
71// pow(x,y) = a NaN and raises the invalid exception for finite x < 0 and
72// finite non-integer y.
73// pow(x,-INF) = +INF for |x|<1.
74// pow(x,-INF) = +0 for |x|>1.
75// pow(x,+INF) = +0 for |x|<1.
76// pow(x,+INF) = +INF for |x|>1.
77// pow(-INF,y) = -0 for y an odd integer < 0.
78// pow(-INF,y) = +0 for y < 0 and not an odd integer.
79// pow(-INF,y) = -INF for y an odd integer > 0.
80// pow(-INF,y) = +INF for y > 0 and not an odd integer.
81// pow(+INF,y) = +0 for y <0.
82// pow(+INF,y) = +INF for y >0.
83//
84/******************************************************************************/
85
86#ifdef _LP64
87// The 64 bit code is at most SSE2 compliant
88ATTRIBUTE_ALIGNED(16) juint _HIGHSIGMASK[] =
89{
90 0x00000000UL, 0xfffff800UL, 0x00000000UL, 0xfffff800UL
91};
92
93ATTRIBUTE_ALIGNED(16) juint _LOG2_E[] =
94{
95 0x00000000UL, 0x3ff72000UL, 0x161bb241UL, 0xbf5dabe1UL
96};
97
98ATTRIBUTE_ALIGNED(16) juint _HIGHMASK_Y[] =
99{
100 0x00000000UL, 0xfffffff8UL, 0x00000000UL, 0xffffffffUL
101};
102
103ATTRIBUTE_ALIGNED(16) juint _T_exp[] =
104{
105 0x00000000UL, 0x3ff00000UL, 0x00000000UL, 0x3b700000UL, 0xfa5abcbfUL,
106 0x3ff00b1aUL, 0xa7609f71UL, 0xbc84f6b2UL, 0xa9fb3335UL, 0x3ff0163dUL,
107 0x9ab8cdb7UL, 0x3c9b6129UL, 0x143b0281UL, 0x3ff02168UL, 0x0fc54eb6UL,
108 0xbc82bf31UL, 0x3e778061UL, 0x3ff02c9aUL, 0x535b085dUL, 0xbc719083UL,
109 0x2e11bbccUL, 0x3ff037d4UL, 0xeeade11aUL, 0x3c656811UL, 0xe86e7f85UL,
110 0x3ff04315UL, 0x1977c96eUL, 0xbc90a31cUL, 0x72f654b1UL, 0x3ff04e5fUL,
111 0x3aa0d08cUL, 0x3c84c379UL, 0xd3158574UL, 0x3ff059b0UL, 0xa475b465UL,
112 0x3c8d73e2UL, 0x0e3c1f89UL, 0x3ff0650aUL, 0x5799c397UL, 0xbc95cb7bUL,
113 0x29ddf6deUL, 0x3ff0706bUL, 0xe2b13c27UL, 0xbc8c91dfUL, 0x2b72a836UL,
114 0x3ff07bd4UL, 0x54458700UL, 0x3c832334UL, 0x18759bc8UL, 0x3ff08745UL,
115 0x4bb284ffUL, 0x3c6186beUL, 0xf66607e0UL, 0x3ff092bdUL, 0x800a3fd1UL,
116 0xbc968063UL, 0xcac6f383UL, 0x3ff09e3eUL, 0x18316136UL, 0x3c914878UL,
117 0x9b1f3919UL, 0x3ff0a9c7UL, 0x873d1d38UL, 0x3c85d16cUL, 0x6cf9890fUL,
118 0x3ff0b558UL, 0x4adc610bUL, 0x3c98a62eUL, 0x45e46c85UL, 0x3ff0c0f1UL,
119 0x06d21cefUL, 0x3c94f989UL, 0x2b7247f7UL, 0x3ff0cc92UL, 0x16e24f71UL,
120 0x3c901edcUL, 0x23395decUL, 0x3ff0d83bUL, 0xe43f316aUL, 0xbc9bc14dUL,
121 0x32d3d1a2UL, 0x3ff0e3ecUL, 0x27c57b52UL, 0x3c403a17UL, 0x5fdfa9c5UL,
122 0x3ff0efa5UL, 0xbc54021bUL, 0xbc949db9UL, 0xaffed31bUL, 0x3ff0fb66UL,
123 0xc44ebd7bUL, 0xbc6b9bedUL, 0x28d7233eUL, 0x3ff10730UL, 0x1692fdd5UL,
124 0x3c8d46ebUL, 0xd0125b51UL, 0x3ff11301UL, 0x39449b3aUL, 0xbc96c510UL,
125 0xab5e2ab6UL, 0x3ff11edbUL, 0xf703fb72UL, 0xbc9ca454UL, 0xc06c31ccUL,
126 0x3ff12abdUL, 0xb36ca5c7UL, 0xbc51b514UL, 0x14f204abUL, 0x3ff136a8UL,
127 0xba48dcf0UL, 0xbc67108fUL, 0xaea92de0UL, 0x3ff1429aUL, 0x9af1369eUL,
128 0xbc932fbfUL, 0x934f312eUL, 0x3ff14e95UL, 0x39bf44abUL, 0xbc8b91e8UL,
129 0xc8a58e51UL, 0x3ff15a98UL, 0xb9eeab0aUL, 0x3c82406aUL, 0x5471c3c2UL,
130 0x3ff166a4UL, 0x82ea1a32UL, 0x3c58f23bUL, 0x3c7d517bUL, 0x3ff172b8UL,
131 0xb9d78a76UL, 0xbc819041UL, 0x8695bbc0UL, 0x3ff17ed4UL, 0xe2ac5a64UL,
132 0x3c709e3fUL, 0x388c8deaUL, 0x3ff18af9UL, 0xd1970f6cUL, 0xbc911023UL,
133 0x58375d2fUL, 0x3ff19726UL, 0x85f17e08UL, 0x3c94aaddUL, 0xeb6fcb75UL,
134 0x3ff1a35bUL, 0x7b4968e4UL, 0x3c8e5b4cUL, 0xf8138a1cUL, 0x3ff1af99UL,
135 0xa4b69280UL, 0x3c97bf85UL, 0x84045cd4UL, 0x3ff1bbe0UL, 0x352ef607UL,
136 0xbc995386UL, 0x95281c6bUL, 0x3ff1c82fUL, 0x8010f8c9UL, 0x3c900977UL,
137 0x3168b9aaUL, 0x3ff1d487UL, 0x00a2643cUL, 0x3c9e016eUL, 0x5eb44027UL,
138 0x3ff1e0e7UL, 0x088cb6deUL, 0xbc96fdd8UL, 0x22fcd91dUL, 0x3ff1ed50UL,
139 0x027bb78cUL, 0xbc91df98UL, 0x8438ce4dUL, 0x3ff1f9c1UL, 0xa097af5cUL,
140 0xbc9bf524UL, 0x88628cd6UL, 0x3ff2063bUL, 0x814a8495UL, 0x3c8dc775UL,
141 0x3578a819UL, 0x3ff212beUL, 0x2cfcaac9UL, 0x3c93592dUL, 0x917ddc96UL,
142 0x3ff21f49UL, 0x9494a5eeUL, 0x3c82a97eUL, 0xa27912d1UL, 0x3ff22bddUL,
143 0x5577d69fUL, 0x3c8d34fbUL, 0x6e756238UL, 0x3ff2387aUL, 0xb6c70573UL,
144 0x3c99b07eUL, 0xfb82140aUL, 0x3ff2451fUL, 0x911ca996UL, 0x3c8acfccUL,
145 0x4fb2a63fUL, 0x3ff251ceUL, 0xbef4f4a4UL, 0x3c8ac155UL, 0x711ece75UL,
146 0x3ff25e85UL, 0x4ac31b2cUL, 0x3c93e1a2UL, 0x65e27cddUL, 0x3ff26b45UL,
147 0x9940e9d9UL, 0x3c82bd33UL, 0x341ddf29UL, 0x3ff2780eUL, 0x05f9e76cUL,
148 0x3c9e067cUL, 0xe1f56381UL, 0x3ff284dfUL, 0x8c3f0d7eUL, 0xbc9a4c3aUL,
149 0x7591bb70UL, 0x3ff291baUL, 0x28401cbdUL, 0xbc82cc72UL, 0xf51fdee1UL,
150 0x3ff29e9dUL, 0xafad1255UL, 0x3c8612e8UL, 0x66d10f13UL, 0x3ff2ab8aUL,
151 0x191690a7UL, 0xbc995743UL, 0xd0dad990UL, 0x3ff2b87fUL, 0xd6381aa4UL,
152 0xbc410adcUL, 0x39771b2fUL, 0x3ff2c57eUL, 0xa6eb5124UL, 0xbc950145UL,
153 0xa6e4030bUL, 0x3ff2d285UL, 0x54db41d5UL, 0x3c900247UL, 0x1f641589UL,
154 0x3ff2df96UL, 0xfbbce198UL, 0x3c9d16cfUL, 0xa93e2f56UL, 0x3ff2ecafUL,
155 0x45d52383UL, 0x3c71ca0fUL, 0x4abd886bUL, 0x3ff2f9d2UL, 0x532bda93UL,
156 0xbc653c55UL, 0x0a31b715UL, 0x3ff306feUL, 0xd23182e4UL, 0x3c86f46aUL,
157 0xedeeb2fdUL, 0x3ff31432UL, 0xf3f3fcd1UL, 0x3c8959a3UL, 0xfc4cd831UL,
158 0x3ff32170UL, 0x8e18047cUL, 0x3c8a9ce7UL, 0x3ba8ea32UL, 0x3ff32eb8UL,
159 0x3cb4f318UL, 0xbc9c45e8UL, 0xb26416ffUL, 0x3ff33c08UL, 0x843659a6UL,
160 0x3c932721UL, 0x66e3fa2dUL, 0x3ff34962UL, 0x930881a4UL, 0xbc835a75UL,
161 0x5f929ff1UL, 0x3ff356c5UL, 0x5c4e4628UL, 0xbc8b5ceeUL, 0xa2de883bUL,
162 0x3ff36431UL, 0xa06cb85eUL, 0xbc8c3144UL, 0x373aa9cbUL, 0x3ff371a7UL,
163 0xbf42eae2UL, 0xbc963aeaUL, 0x231e754aUL, 0x3ff37f26UL, 0x9eceb23cUL,
164 0xbc99f5caUL, 0x6d05d866UL, 0x3ff38caeUL, 0x3c9904bdUL, 0xbc9e958dUL,
165 0x1b7140efUL, 0x3ff39a40UL, 0xfc8e2934UL, 0xbc99a9a5UL, 0x34e59ff7UL,
166 0x3ff3a7dbUL, 0xd661f5e3UL, 0xbc75e436UL, 0xbfec6cf4UL, 0x3ff3b57fUL,
167 0xe26fff18UL, 0x3c954c66UL, 0xc313a8e5UL, 0x3ff3c32dUL, 0x375d29c3UL,
168 0xbc9efff8UL, 0x44ede173UL, 0x3ff3d0e5UL, 0x8c284c71UL, 0x3c7fe8d0UL,
169 0x4c123422UL, 0x3ff3dea6UL, 0x11f09ebcUL, 0x3c8ada09UL, 0xdf1c5175UL,
170 0x3ff3ec70UL, 0x7b8c9bcaUL, 0xbc8af663UL, 0x04ac801cUL, 0x3ff3fa45UL,
171 0xf956f9f3UL, 0xbc97d023UL, 0xc367a024UL, 0x3ff40822UL, 0xb6f4d048UL,
172 0x3c8bddf8UL, 0x21f72e2aUL, 0x3ff4160aUL, 0x1c309278UL, 0xbc5ef369UL,
173 0x2709468aUL, 0x3ff423fbUL, 0xc0b314ddUL, 0xbc98462dUL, 0xd950a897UL,
174 0x3ff431f5UL, 0xe35f7999UL, 0xbc81c7ddUL, 0x3f84b9d4UL, 0x3ff43ffaUL,
175 0x9704c003UL, 0x3c8880beUL, 0x6061892dUL, 0x3ff44e08UL, 0x04ef80d0UL,
176 0x3c489b7aUL, 0x42a7d232UL, 0x3ff45c20UL, 0x82fb1f8eUL, 0xbc686419UL,
177 0xed1d0057UL, 0x3ff46a41UL, 0xd1648a76UL, 0x3c9c944bUL, 0x668b3237UL,
178 0x3ff4786dUL, 0xed445733UL, 0xbc9c20f0UL, 0xb5c13cd0UL, 0x3ff486a2UL,
179 0xb69062f0UL, 0x3c73c1a3UL, 0xe192aed2UL, 0x3ff494e1UL, 0x5e499ea0UL,
180 0xbc83b289UL, 0xf0d7d3deUL, 0x3ff4a32aUL, 0xf3d1be56UL, 0x3c99cb62UL,
181 0xea6db7d7UL, 0x3ff4b17dUL, 0x7f2897f0UL, 0xbc8125b8UL, 0xd5362a27UL,
182 0x3ff4bfdaUL, 0xafec42e2UL, 0x3c7d4397UL, 0xb817c114UL, 0x3ff4ce41UL,
183 0x690abd5dUL, 0x3c905e29UL, 0x99fddd0dUL, 0x3ff4dcb2UL, 0xbc6a7833UL,
184 0x3c98ecdbUL, 0x81d8abffUL, 0x3ff4eb2dUL, 0x2e5d7a52UL, 0xbc95257dUL,
185 0x769d2ca7UL, 0x3ff4f9b2UL, 0xd25957e3UL, 0xbc94b309UL, 0x7f4531eeUL,
186 0x3ff50841UL, 0x49b7465fUL, 0x3c7a249bUL, 0xa2cf6642UL, 0x3ff516daUL,
187 0x69bd93efUL, 0xbc8f7685UL, 0xe83f4eefUL, 0x3ff5257dUL, 0x43efef71UL,
188 0xbc7c998dUL, 0x569d4f82UL, 0x3ff5342bUL, 0x1db13cadUL, 0xbc807abeUL,
189 0xf4f6ad27UL, 0x3ff542e2UL, 0x192d5f7eUL, 0x3c87926dUL, 0xca5d920fUL,
190 0x3ff551a4UL, 0xefede59bUL, 0xbc8d689cUL, 0xdde910d2UL, 0x3ff56070UL,
191 0x168eebf0UL, 0xbc90fb6eUL, 0x36b527daUL, 0x3ff56f47UL, 0x011d93adUL,
192 0x3c99bb2cUL, 0xdbe2c4cfUL, 0x3ff57e27UL, 0x8a57b9c4UL, 0xbc90b98cUL,
193 0xd497c7fdUL, 0x3ff58d12UL, 0x5b9a1de8UL, 0x3c8295e1UL, 0x27ff07ccUL,
194 0x3ff59c08UL, 0xe467e60fUL, 0xbc97e2ceUL, 0xdd485429UL, 0x3ff5ab07UL,
195 0x054647adUL, 0x3c96324cUL, 0xfba87a03UL, 0x3ff5ba11UL, 0x4c233e1aUL,
196 0xbc9b77a1UL, 0x8a5946b7UL, 0x3ff5c926UL, 0x816986a2UL, 0x3c3c4b1bUL,
197 0x90998b93UL, 0x3ff5d845UL, 0xa8b45643UL, 0xbc9cd6a7UL, 0x15ad2148UL,
198 0x3ff5e76fUL, 0x3080e65eUL, 0x3c9ba6f9UL, 0x20dceb71UL, 0x3ff5f6a3UL,
199 0xe3cdcf92UL, 0xbc89eaddUL, 0xb976dc09UL, 0x3ff605e1UL, 0x9b56de47UL,
200 0xbc93e242UL, 0xe6cdf6f4UL, 0x3ff6152aUL, 0x4ab84c27UL, 0x3c9e4b3eUL,
201 0xb03a5585UL, 0x3ff6247eUL, 0x7e40b497UL, 0xbc9383c1UL, 0x1d1929fdUL,
202 0x3ff633ddUL, 0xbeb964e5UL, 0x3c984710UL, 0x34ccc320UL, 0x3ff64346UL,
203 0x759d8933UL, 0xbc8c483cUL, 0xfebc8fb7UL, 0x3ff652b9UL, 0xc9a73e09UL,
204 0xbc9ae3d5UL, 0x82552225UL, 0x3ff66238UL, 0x87591c34UL, 0xbc9bb609UL,
205 0xc70833f6UL, 0x3ff671c1UL, 0x586c6134UL, 0xbc8e8732UL, 0xd44ca973UL,
206 0x3ff68155UL, 0x44f73e65UL, 0x3c6038aeUL, 0xb19e9538UL, 0x3ff690f4UL,
207 0x9aeb445dUL, 0x3c8804bdUL, 0x667f3bcdUL, 0x3ff6a09eUL, 0x13b26456UL,
208 0xbc9bdd34UL, 0xfa75173eUL, 0x3ff6b052UL, 0x2c9a9d0eUL, 0x3c7a38f5UL,
209 0x750bdabfUL, 0x3ff6c012UL, 0x67ff0b0dUL, 0xbc728956UL, 0xddd47645UL,
210 0x3ff6cfdcUL, 0xb6f17309UL, 0x3c9c7aa9UL, 0x3c651a2fUL, 0x3ff6dfb2UL,
211 0x683c88abUL, 0xbc6bbe3aUL, 0x98593ae5UL, 0x3ff6ef92UL, 0x9e1ac8b2UL,
212 0xbc90b974UL, 0xf9519484UL, 0x3ff6ff7dUL, 0x25860ef6UL, 0xbc883c0fUL,
213 0x66f42e87UL, 0x3ff70f74UL, 0xd45aa65fUL, 0x3c59d644UL, 0xe8ec5f74UL,
214 0x3ff71f75UL, 0x86887a99UL, 0xbc816e47UL, 0x86ead08aUL, 0x3ff72f82UL,
215 0x2cd62c72UL, 0xbc920aa0UL, 0x48a58174UL, 0x3ff73f9aUL, 0x6c65d53cUL,
216 0xbc90a8d9UL, 0x35d7cbfdUL, 0x3ff74fbdUL, 0x618a6e1cUL, 0x3c9047fdUL,
217 0x564267c9UL, 0x3ff75febUL, 0x57316dd3UL, 0xbc902459UL, 0xb1ab6e09UL,
218 0x3ff77024UL, 0x169147f8UL, 0x3c9b7877UL, 0x4fde5d3fUL, 0x3ff78069UL,
219 0x0a02162dUL, 0x3c9866b8UL, 0x38ac1cf6UL, 0x3ff790b9UL, 0x62aadd3eUL,
220 0x3c9349a8UL, 0x73eb0187UL, 0x3ff7a114UL, 0xee04992fUL, 0xbc841577UL,
221 0x0976cfdbUL, 0x3ff7b17bUL, 0x8468dc88UL, 0xbc9bebb5UL, 0x0130c132UL,
222 0x3ff7c1edUL, 0xd1164dd6UL, 0x3c9f124cUL, 0x62ff86f0UL, 0x3ff7d26aUL,
223 0xfb72b8b4UL, 0x3c91bddbUL, 0x36cf4e62UL, 0x3ff7e2f3UL, 0xba15797eUL,
224 0x3c705d02UL, 0x8491c491UL, 0x3ff7f387UL, 0xcf9311aeUL, 0xbc807f11UL,
225 0x543e1a12UL, 0x3ff80427UL, 0x626d972bUL, 0xbc927c86UL, 0xadd106d9UL,
226 0x3ff814d2UL, 0x0d151d4dUL, 0x3c946437UL, 0x994cce13UL, 0x3ff82589UL,
227 0xd41532d8UL, 0xbc9d4c1dUL, 0x1eb941f7UL, 0x3ff8364cUL, 0x31df2bd5UL,
228 0x3c999b9aUL, 0x4623c7adUL, 0x3ff8471aUL, 0xa341cdfbUL, 0xbc88d684UL,
229 0x179f5b21UL, 0x3ff857f4UL, 0xf8b216d0UL, 0xbc5ba748UL, 0x9b4492edUL,
230 0x3ff868d9UL, 0x9bd4f6baUL, 0xbc9fc6f8UL, 0xd931a436UL, 0x3ff879caUL,
231 0xd2db47bdUL, 0x3c85d2d7UL, 0xd98a6699UL, 0x3ff88ac7UL, 0xf37cb53aUL,
232 0x3c9994c2UL, 0xa478580fUL, 0x3ff89bd0UL, 0x4475202aUL, 0x3c9d5395UL,
233 0x422aa0dbUL, 0x3ff8ace5UL, 0x56864b27UL, 0x3c96e9f1UL, 0xbad61778UL,
234 0x3ff8be05UL, 0xfc43446eUL, 0x3c9ecb5eUL, 0x16b5448cUL, 0x3ff8cf32UL,
235 0x32e9e3aaUL, 0xbc70d55eUL, 0x5e0866d9UL, 0x3ff8e06aUL, 0x6fc9b2e6UL,
236 0xbc97114aUL, 0x99157736UL, 0x3ff8f1aeUL, 0xa2e3976cUL, 0x3c85cc13UL,
237 0xd0282c8aUL, 0x3ff902feUL, 0x85fe3fd2UL, 0x3c9592caUL, 0x0b91ffc6UL,
238 0x3ff9145bUL, 0x2e582524UL, 0xbc9dd679UL, 0x53aa2fe2UL, 0x3ff925c3UL,
239 0xa639db7fUL, 0xbc83455fUL, 0xb0cdc5e5UL, 0x3ff93737UL, 0x81b57ebcUL,
240 0xbc675fc7UL, 0x2b5f98e5UL, 0x3ff948b8UL, 0x797d2d99UL, 0xbc8dc3d6UL,
241 0xcbc8520fUL, 0x3ff95a44UL, 0x96a5f039UL, 0xbc764b7cUL, 0x9a7670b3UL,
242 0x3ff96bddUL, 0x7f19c896UL, 0xbc5ba596UL, 0x9fde4e50UL, 0x3ff97d82UL,
243 0x7c1b85d1UL, 0xbc9d185bUL, 0xe47a22a2UL, 0x3ff98f33UL, 0xa24c78ecUL,
244 0x3c7cabdaUL, 0x70ca07baUL, 0x3ff9a0f1UL, 0x91cee632UL, 0xbc9173bdUL,
245 0x4d53fe0dUL, 0x3ff9b2bbUL, 0x4df6d518UL, 0xbc9dd84eUL, 0x82a3f090UL,
246 0x3ff9c491UL, 0xb071f2beUL, 0x3c7c7c46UL, 0x194bb8d5UL, 0x3ff9d674UL,
247 0xa3dd8233UL, 0xbc9516beUL, 0x19e32323UL, 0x3ff9e863UL, 0x78e64c6eUL,
248 0x3c7824caUL, 0x8d07f29eUL, 0x3ff9fa5eUL, 0xaaf1faceUL, 0xbc84a9ceUL,
249 0x7b5de565UL, 0x3ffa0c66UL, 0x5d1cd533UL, 0xbc935949UL, 0xed8eb8bbUL,
250 0x3ffa1e7aUL, 0xee8be70eUL, 0x3c9c6618UL, 0xec4a2d33UL, 0x3ffa309bUL,
251 0x7ddc36abUL, 0x3c96305cUL, 0x80460ad8UL, 0x3ffa42c9UL, 0x589fb120UL,
252 0xbc9aa780UL, 0xb23e255dUL, 0x3ffa5503UL, 0xdb8d41e1UL, 0xbc9d2f6eUL,
253 0x8af46052UL, 0x3ffa674aUL, 0x30670366UL, 0x3c650f56UL, 0x1330b358UL,
254 0x3ffa799eUL, 0xcac563c7UL, 0x3c9bcb7eUL, 0x53c12e59UL, 0x3ffa8bfeUL,
255 0xb2ba15a9UL, 0xbc94f867UL, 0x5579fdbfUL, 0x3ffa9e6bUL, 0x0ef7fd31UL,
256 0x3c90fac9UL, 0x21356ebaUL, 0x3ffab0e5UL, 0xdae94545UL, 0x3c889c31UL,
257 0xbfd3f37aUL, 0x3ffac36bUL, 0xcae76cd0UL, 0xbc8f9234UL, 0x3a3c2774UL,
258 0x3ffad5ffUL, 0xb6b1b8e5UL, 0x3c97ef3bUL, 0x995ad3adUL, 0x3ffae89fUL,
259 0x345dcc81UL, 0x3c97a1cdUL, 0xe622f2ffUL, 0x3ffafb4cUL, 0x0f315ecdUL,
260 0xbc94b2fcUL, 0x298db666UL, 0x3ffb0e07UL, 0x4c80e425UL, 0xbc9bdef5UL,
261 0x6c9a8952UL, 0x3ffb20ceUL, 0x4a0756ccUL, 0x3c94dd02UL, 0xb84f15fbUL,
262 0x3ffb33a2UL, 0x3084d708UL, 0xbc62805eUL, 0x15b749b1UL, 0x3ffb4684UL,
263 0xe9df7c90UL, 0xbc7f763dUL, 0x8de5593aUL, 0x3ffb5972UL, 0xbbba6de3UL,
264 0xbc9c71dfUL, 0x29f1c52aUL, 0x3ffb6c6eUL, 0x52883f6eUL, 0x3c92a8f3UL,
265 0xf2fb5e47UL, 0x3ffb7f76UL, 0x7e54ac3bUL, 0xbc75584fUL, 0xf22749e4UL,
266 0x3ffb928cUL, 0x54cb65c6UL, 0xbc9b7216UL, 0x30a1064aUL, 0x3ffba5b0UL,
267 0x0e54292eUL, 0xbc9efcd3UL, 0xb79a6f1fUL, 0x3ffbb8e0UL, 0xc9696205UL,
268 0xbc3f52d1UL, 0x904bc1d2UL, 0x3ffbcc1eUL, 0x7a2d9e84UL, 0x3c823dd0UL,
269 0xc3f3a207UL, 0x3ffbdf69UL, 0x60ea5b53UL, 0xbc3c2623UL, 0x5bd71e09UL,
270 0x3ffbf2c2UL, 0x3f6b9c73UL, 0xbc9efdcaUL, 0x6141b33dUL, 0x3ffc0628UL,
271 0xa1fbca34UL, 0xbc8d8a5aUL, 0xdd85529cUL, 0x3ffc199bUL, 0x895048ddUL,
272 0x3c811065UL, 0xd9fa652cUL, 0x3ffc2d1cUL, 0x17c8a5d7UL, 0xbc96e516UL,
273 0x5fffd07aUL, 0x3ffc40abUL, 0xe083c60aUL, 0x3c9b4537UL, 0x78fafb22UL,
274 0x3ffc5447UL, 0x2493b5afUL, 0x3c912f07UL, 0x2e57d14bUL, 0x3ffc67f1UL,
275 0xff483cadUL, 0x3c92884dUL, 0x8988c933UL, 0x3ffc7ba8UL, 0xbe255559UL,
276 0xbc8e76bbUL, 0x9406e7b5UL, 0x3ffc8f6dUL, 0x48805c44UL, 0x3c71acbcUL,
277 0x5751c4dbUL, 0x3ffca340UL, 0xd10d08f5UL, 0xbc87f2beUL, 0xdcef9069UL,
278 0x3ffcb720UL, 0xd1e949dbUL, 0x3c7503cbUL, 0x2e6d1675UL, 0x3ffccb0fUL,
279 0x86009092UL, 0xbc7d220fUL, 0x555dc3faUL, 0x3ffcdf0bUL, 0x53829d72UL,
280 0xbc8dd83bUL, 0x5b5bab74UL, 0x3ffcf315UL, 0xb86dff57UL, 0xbc9a08e9UL,
281 0x4a07897cUL, 0x3ffd072dUL, 0x43797a9cUL, 0xbc9cbc37UL, 0x2b08c968UL,
282 0x3ffd1b53UL, 0x219a36eeUL, 0x3c955636UL, 0x080d89f2UL, 0x3ffd2f87UL,
283 0x719d8578UL, 0xbc9d487bUL, 0xeacaa1d6UL, 0x3ffd43c8UL, 0xbf5a1614UL,
284 0x3c93db53UL, 0xdcfba487UL, 0x3ffd5818UL, 0xd75b3707UL, 0x3c82ed02UL,
285 0xe862e6d3UL, 0x3ffd6c76UL, 0x4a8165a0UL, 0x3c5fe87aUL, 0x16c98398UL,
286 0x3ffd80e3UL, 0x8beddfe8UL, 0xbc911ec1UL, 0x71ff6075UL, 0x3ffd955dUL,
287 0xbb9af6beUL, 0x3c9a052dUL, 0x03db3285UL, 0x3ffda9e6UL, 0x696db532UL,
288 0x3c9c2300UL, 0xd63a8315UL, 0x3ffdbe7cUL, 0x926b8be4UL, 0xbc9b76f1UL,
289 0xf301b460UL, 0x3ffdd321UL, 0x78f018c3UL, 0x3c92da57UL, 0x641c0658UL,
290 0x3ffde7d5UL, 0x8e79ba8fUL, 0xbc9ca552UL, 0x337b9b5fUL, 0x3ffdfc97UL,
291 0x4f184b5cUL, 0xbc91a5cdUL, 0x6b197d17UL, 0x3ffe1167UL, 0xbd5c7f44UL,
292 0xbc72b529UL, 0x14f5a129UL, 0x3ffe2646UL, 0x817a1496UL, 0xbc97b627UL,
293 0x3b16ee12UL, 0x3ffe3b33UL, 0x31fdc68bUL, 0xbc99f4a4UL, 0xe78b3ff6UL,
294 0x3ffe502eUL, 0x80a9cc8fUL, 0x3c839e89UL, 0x24676d76UL, 0x3ffe6539UL,
295 0x7522b735UL, 0xbc863ff8UL, 0xfbc74c83UL, 0x3ffe7a51UL, 0xca0c8de2UL,
296 0x3c92d522UL, 0x77cdb740UL, 0x3ffe8f79UL, 0x80b054b1UL, 0xbc910894UL,
297 0xa2a490daUL, 0x3ffea4afUL, 0x179c2893UL, 0xbc9e9c23UL, 0x867cca6eUL,
298 0x3ffeb9f4UL, 0x2293e4f2UL, 0x3c94832fUL, 0x2d8e67f1UL, 0x3ffecf48UL,
299 0xb411ad8cUL, 0xbc9c93f3UL, 0xa2188510UL, 0x3ffee4aaUL, 0xa487568dUL,
300 0x3c91c68dUL, 0xee615a27UL, 0x3ffefa1bUL, 0x86a4b6b0UL, 0x3c9dc7f4UL,
301 0x1cb6412aUL, 0x3fff0f9cUL, 0x65181d45UL, 0xbc932200UL, 0x376bba97UL,
302 0x3fff252bUL, 0xbf0d8e43UL, 0x3c93a1a5UL, 0x48dd7274UL, 0x3fff3ac9UL,
303 0x3ed837deUL, 0xbc795a5aUL, 0x5b6e4540UL, 0x3fff5076UL, 0x2dd8a18bUL,
304 0x3c99d3e1UL, 0x798844f8UL, 0x3fff6632UL, 0x3539343eUL, 0x3c9fa37bUL,
305 0xad9cbe14UL, 0x3fff7bfdUL, 0xd006350aUL, 0xbc9dbb12UL, 0x02243c89UL,
306 0x3fff91d8UL, 0xa779f689UL, 0xbc612ea8UL, 0x819e90d8UL, 0x3fffa7c1UL,
307 0xf3a5931eUL, 0x3c874853UL, 0x3692d514UL, 0x3fffbdbaUL, 0x15098eb6UL,
308 0xbc796773UL, 0x2b8f71f1UL, 0x3fffd3c2UL, 0x966579e7UL, 0x3c62eb74UL,
309 0x6b2a23d9UL, 0x3fffe9d9UL, 0x7442fde3UL, 0x3c74a603UL
310};
311
312ATTRIBUTE_ALIGNED(16) juint _e_coeff[] =
313{
314 0xe78a6731UL, 0x3f55d87fUL, 0xd704a0c0UL, 0x3fac6b08UL, 0x6fba4e77UL,
315 0x3f83b2abUL, 0xff82c58fUL, 0x3fcebfbdUL, 0xfefa39efUL, 0x3fe62e42UL,
316 0x00000000UL, 0x00000000UL
317};
318
319ATTRIBUTE_ALIGNED(16) juint _coeff_h[] =
320{
321 0x00000000UL, 0xbfd61a00UL, 0x00000000UL, 0xbf5dabe1UL
322};
323
324ATTRIBUTE_ALIGNED(16) juint _HIGHMASK_LOG_X[] =
325{
326 0xf8000000UL, 0xffffffffUL, 0x00000000UL, 0xfffff800UL
327};
328
329ATTRIBUTE_ALIGNED(8) juint _HALFMASK[] =
330{
331 0xf8000000UL, 0xffffffffUL, 0xf8000000UL, 0xffffffffUL
332};
333
334ATTRIBUTE_ALIGNED(16) juint _coeff_pow[] =
335{
336 0x6dc96112UL, 0xbf836578UL, 0xee241472UL, 0xbf9b0301UL, 0x9f95985aUL,
337 0xbfb528dbUL, 0xb3841d2aUL, 0xbfd619b6UL, 0x518775e3UL, 0x3f9004f2UL,
338 0xac8349bbUL, 0x3fa76c9bUL, 0x486ececcUL, 0x3fc4635eUL, 0x161bb241UL,
339 0xbf5dabe1UL, 0x9f95985aUL, 0xbfb528dbUL, 0xf8b5787dUL, 0x3ef2531eUL,
340 0x486ececbUL, 0x3fc4635eUL, 0x412055ccUL, 0xbdd61bb2UL
341};
342
343ATTRIBUTE_ALIGNED(16) juint _L_tbl_pow[] =
344{
345 0x00000000UL, 0x3ff00000UL, 0x00000000UL, 0x00000000UL, 0x20000000UL,
346 0x3feff00aUL, 0x96621f95UL, 0x3e5b1856UL, 0xe0000000UL, 0x3fefe019UL,
347 0xe5916f9eUL, 0xbe325278UL, 0x00000000UL, 0x3fefd02fUL, 0x859a1062UL,
348 0x3e595fb7UL, 0xc0000000UL, 0x3fefc049UL, 0xb245f18fUL, 0xbe529c38UL,
349 0xe0000000UL, 0x3fefb069UL, 0xad2880a7UL, 0xbe501230UL, 0x60000000UL,
350 0x3fefa08fUL, 0xc8e72420UL, 0x3e597bd1UL, 0x80000000UL, 0x3fef90baUL,
351 0xc30c4500UL, 0xbe5d6c75UL, 0xe0000000UL, 0x3fef80eaUL, 0x02c63f43UL,
352 0x3e2e1318UL, 0xc0000000UL, 0x3fef7120UL, 0xb3d4ccccUL, 0xbe44c52aUL,
353 0x00000000UL, 0x3fef615cUL, 0xdbd91397UL, 0xbe4e7d6cUL, 0xa0000000UL,
354 0x3fef519cUL, 0x65c5cd68UL, 0xbe522dc8UL, 0xa0000000UL, 0x3fef41e2UL,
355 0x46d1306cUL, 0xbe5a840eUL, 0xe0000000UL, 0x3fef322dUL, 0xd2980e94UL,
356 0x3e5071afUL, 0xa0000000UL, 0x3fef227eUL, 0x773abadeUL, 0xbe5891e5UL,
357 0xa0000000UL, 0x3fef12d4UL, 0xdc6bf46bUL, 0xbe5cccbeUL, 0xe0000000UL,
358 0x3fef032fUL, 0xbc7247faUL, 0xbe2bab83UL, 0x80000000UL, 0x3feef390UL,
359 0xbcaa1e46UL, 0xbe53bb3bUL, 0x60000000UL, 0x3feee3f6UL, 0x5f6c682dUL,
360 0xbe54c619UL, 0x80000000UL, 0x3feed461UL, 0x5141e368UL, 0xbe4b6d86UL,
361 0xe0000000UL, 0x3feec4d1UL, 0xec678f76UL, 0xbe369af6UL, 0x80000000UL,
362 0x3feeb547UL, 0x41301f55UL, 0xbe2d4312UL, 0x60000000UL, 0x3feea5c2UL,
363 0x676da6bdUL, 0xbe4d8dd0UL, 0x60000000UL, 0x3fee9642UL, 0x57a891c4UL,
364 0x3e51f991UL, 0xa0000000UL, 0x3fee86c7UL, 0xe4eb491eUL, 0x3e579bf9UL,
365 0x20000000UL, 0x3fee7752UL, 0xfddc4a2cUL, 0xbe3356e6UL, 0xc0000000UL,
366 0x3fee67e1UL, 0xd75b5bf1UL, 0xbe449531UL, 0x80000000UL, 0x3fee5876UL,
367 0xbd423b8eUL, 0x3df54fe4UL, 0x60000000UL, 0x3fee4910UL, 0x330e51b9UL,
368 0x3e54289cUL, 0x80000000UL, 0x3fee39afUL, 0x8651a95fUL, 0xbe55aad6UL,
369 0xa0000000UL, 0x3fee2a53UL, 0x5e98c708UL, 0xbe2fc4a9UL, 0xe0000000UL,
370 0x3fee1afcUL, 0x0989328dUL, 0x3e23958cUL, 0x40000000UL, 0x3fee0babUL,
371 0xee642abdUL, 0xbe425dd8UL, 0xa0000000UL, 0x3fedfc5eUL, 0xc394d236UL,
372 0x3e526362UL, 0x20000000UL, 0x3feded17UL, 0xe104aa8eUL, 0x3e4ce247UL,
373 0xc0000000UL, 0x3fedddd4UL, 0x265a9be4UL, 0xbe5bb77aUL, 0x40000000UL,
374 0x3fedce97UL, 0x0ecac52fUL, 0x3e4a7cb1UL, 0xe0000000UL, 0x3fedbf5eUL,
375 0x124cb3b8UL, 0x3e257024UL, 0x80000000UL, 0x3fedb02bUL, 0xe6d4febeUL,
376 0xbe2033eeUL, 0x20000000UL, 0x3feda0fdUL, 0x39cca00eUL, 0xbe3ddabcUL,
377 0xc0000000UL, 0x3fed91d3UL, 0xef8a552aUL, 0xbe543390UL, 0x40000000UL,
378 0x3fed82afUL, 0xb8e85204UL, 0x3e513850UL, 0xe0000000UL, 0x3fed738fUL,
379 0x3d59fe08UL, 0xbe5db728UL, 0x40000000UL, 0x3fed6475UL, 0x3aa7ead1UL,
380 0x3e58804bUL, 0xc0000000UL, 0x3fed555fUL, 0xf8a35ba9UL, 0xbe5298b0UL,
381 0x00000000UL, 0x3fed464fUL, 0x9a88dd15UL, 0x3e5a8cdbUL, 0x40000000UL,
382 0x3fed3743UL, 0xb0b0a190UL, 0x3e598635UL, 0x80000000UL, 0x3fed283cUL,
383 0xe2113295UL, 0xbe5c1119UL, 0x80000000UL, 0x3fed193aUL, 0xafbf1728UL,
384 0xbe492e9cUL, 0x60000000UL, 0x3fed0a3dUL, 0xe4a4ccf3UL, 0x3e19b90eUL,
385 0x20000000UL, 0x3fecfb45UL, 0xba3cbeb8UL, 0x3e406b50UL, 0xc0000000UL,
386 0x3fecec51UL, 0x110f7dddUL, 0x3e0d6806UL, 0x40000000UL, 0x3fecdd63UL,
387 0x7dd7d508UL, 0xbe5a8943UL, 0x80000000UL, 0x3fecce79UL, 0x9b60f271UL,
388 0xbe50676aUL, 0x80000000UL, 0x3fecbf94UL, 0x0b9ad660UL, 0x3e59174fUL,
389 0x60000000UL, 0x3fecb0b4UL, 0x00823d9cUL, 0x3e5bbf72UL, 0x20000000UL,
390 0x3feca1d9UL, 0x38a6ec89UL, 0xbe4d38f9UL, 0x80000000UL, 0x3fec9302UL,
391 0x3a0b7d8eUL, 0x3e53dbfdUL, 0xc0000000UL, 0x3fec8430UL, 0xc6826b34UL,
392 0xbe27c5c9UL, 0xc0000000UL, 0x3fec7563UL, 0x0c706381UL, 0xbe593653UL,
393 0x60000000UL, 0x3fec669bUL, 0x7df34ec7UL, 0x3e461ab5UL, 0xe0000000UL,
394 0x3fec57d7UL, 0x40e5e7e8UL, 0xbe5c3daeUL, 0x00000000UL, 0x3fec4919UL,
395 0x5602770fUL, 0xbe55219dUL, 0xc0000000UL, 0x3fec3a5eUL, 0xec7911ebUL,
396 0x3e5a5d25UL, 0x60000000UL, 0x3fec2ba9UL, 0xb39ea225UL, 0xbe53c00bUL,
397 0x80000000UL, 0x3fec1cf8UL, 0x967a212eUL, 0x3e5a8ddfUL, 0x60000000UL,
398 0x3fec0e4cUL, 0x580798bdUL, 0x3e5f53abUL, 0x00000000UL, 0x3febffa5UL,
399 0xb8282df6UL, 0xbe46b874UL, 0x20000000UL, 0x3febf102UL, 0xe33a6729UL,
400 0x3e54963fUL, 0x00000000UL, 0x3febe264UL, 0x3b53e88aUL, 0xbe3adce1UL,
401 0x60000000UL, 0x3febd3caUL, 0xc2585084UL, 0x3e5cde9fUL, 0x80000000UL,
402 0x3febc535UL, 0xa335c5eeUL, 0xbe39fd9cUL, 0x20000000UL, 0x3febb6a5UL,
403 0x7325b04dUL, 0x3e42ba15UL, 0x60000000UL, 0x3feba819UL, 0x1564540fUL,
404 0x3e3a9f35UL, 0x40000000UL, 0x3feb9992UL, 0x83fff592UL, 0xbe5465ceUL,
405 0xa0000000UL, 0x3feb8b0fUL, 0xb9da63d3UL, 0xbe4b1a0aUL, 0x80000000UL,
406 0x3feb7c91UL, 0x6d6f1ea4UL, 0x3e557657UL, 0x00000000UL, 0x3feb6e18UL,
407 0x5e80a1bfUL, 0x3e4ddbb6UL, 0x00000000UL, 0x3feb5fa3UL, 0x1c9eacb5UL,
408 0x3e592877UL, 0xa0000000UL, 0x3feb5132UL, 0x6d40beb3UL, 0xbe51858cUL,
409 0xa0000000UL, 0x3feb42c6UL, 0xd740c67bUL, 0x3e427ad2UL, 0x40000000UL,
410 0x3feb345fUL, 0xa3e0cceeUL, 0xbe5c2fc4UL, 0x40000000UL, 0x3feb25fcUL,
411 0x8e752b50UL, 0xbe3da3c2UL, 0xc0000000UL, 0x3feb179dUL, 0xa892e7deUL,
412 0x3e1fb481UL, 0xc0000000UL, 0x3feb0943UL, 0x21ed71e9UL, 0xbe365206UL,
413 0x20000000UL, 0x3feafaeeUL, 0x0e1380a3UL, 0x3e5c5b7bUL, 0x20000000UL,
414 0x3feaec9dUL, 0x3c3d640eUL, 0xbe5dbbd0UL, 0x60000000UL, 0x3feade50UL,
415 0x8f97a715UL, 0x3e3a8ec5UL, 0x20000000UL, 0x3fead008UL, 0x23ab2839UL,
416 0x3e2fe98aUL, 0x40000000UL, 0x3feac1c4UL, 0xf4bbd50fUL, 0x3e54d8f6UL,
417 0xe0000000UL, 0x3feab384UL, 0x14757c4dUL, 0xbe48774cUL, 0xc0000000UL,
418 0x3feaa549UL, 0x7c7b0eeaUL, 0x3e5b51bbUL, 0x20000000UL, 0x3fea9713UL,
419 0xf56f7013UL, 0x3e386200UL, 0xe0000000UL, 0x3fea88e0UL, 0xbe428ebeUL,
420 0xbe514af5UL, 0xe0000000UL, 0x3fea7ab2UL, 0x8d0e4496UL, 0x3e4f9165UL,
421 0x60000000UL, 0x3fea6c89UL, 0xdbacc5d5UL, 0xbe5c063bUL, 0x20000000UL,
422 0x3fea5e64UL, 0x3f19d970UL, 0xbe5a0c8cUL, 0x20000000UL, 0x3fea5043UL,
423 0x09ea3e6bUL, 0x3e5065dcUL, 0x80000000UL, 0x3fea4226UL, 0x78df246cUL,
424 0x3e5e05f6UL, 0x40000000UL, 0x3fea340eUL, 0x4057d4a0UL, 0x3e431b2bUL,
425 0x40000000UL, 0x3fea25faUL, 0x82867bb5UL, 0x3e4b76beUL, 0xa0000000UL,
426 0x3fea17eaUL, 0x9436f40aUL, 0xbe5aad39UL, 0x20000000UL, 0x3fea09dfUL,
427 0x4b5253b3UL, 0x3e46380bUL, 0x00000000UL, 0x3fe9fbd8UL, 0x8fc52466UL,
428 0xbe386f9bUL, 0x20000000UL, 0x3fe9edd5UL, 0x22d3f344UL, 0xbe538347UL,
429 0x60000000UL, 0x3fe9dfd6UL, 0x1ac33522UL, 0x3e5dbc53UL, 0x00000000UL,
430 0x3fe9d1dcUL, 0xeabdff1dUL, 0x3e40fc0cUL, 0xe0000000UL, 0x3fe9c3e5UL,
431 0xafd30e73UL, 0xbe585e63UL, 0xe0000000UL, 0x3fe9b5f3UL, 0xa52f226aUL,
432 0xbe43e8f9UL, 0x20000000UL, 0x3fe9a806UL, 0xecb8698dUL, 0xbe515b36UL,
433 0x80000000UL, 0x3fe99a1cUL, 0xf2b4e89dUL, 0x3e48b62bUL, 0x20000000UL,
434 0x3fe98c37UL, 0x7c9a88fbUL, 0x3e44414cUL, 0x00000000UL, 0x3fe97e56UL,
435 0xda015741UL, 0xbe5d13baUL, 0xe0000000UL, 0x3fe97078UL, 0x5fdace06UL,
436 0x3e51b947UL, 0x00000000UL, 0x3fe962a0UL, 0x956ca094UL, 0x3e518785UL,
437 0x40000000UL, 0x3fe954cbUL, 0x01164c1dUL, 0x3e5d5b57UL, 0xc0000000UL,
438 0x3fe946faUL, 0xe63b3767UL, 0xbe4f84e7UL, 0x40000000UL, 0x3fe9392eUL,
439 0xe57cc2a9UL, 0x3e34eda3UL, 0xe0000000UL, 0x3fe92b65UL, 0x8c75b544UL,
440 0x3e5766a0UL, 0xc0000000UL, 0x3fe91da1UL, 0x37d1d087UL, 0xbe5e2ab1UL,
441 0x80000000UL, 0x3fe90fe1UL, 0xa953dc20UL, 0x3e5fa1f3UL, 0x80000000UL,
442 0x3fe90225UL, 0xdbd3f369UL, 0x3e47d6dbUL, 0xa0000000UL, 0x3fe8f46dUL,
443 0x1c9be989UL, 0xbe5e2b0aUL, 0xa0000000UL, 0x3fe8e6b9UL, 0x3c93d76aUL,
444 0x3e5c8618UL, 0xe0000000UL, 0x3fe8d909UL, 0x2182fc9aUL, 0xbe41aa9eUL,
445 0x20000000UL, 0x3fe8cb5eUL, 0xe6b3539dUL, 0xbe530d19UL, 0x60000000UL,
446 0x3fe8bdb6UL, 0x49e58cc3UL, 0xbe3bb374UL, 0xa0000000UL, 0x3fe8b012UL,
447 0xa7cfeb8fUL, 0x3e56c412UL, 0x00000000UL, 0x3fe8a273UL, 0x8d52bc19UL,
448 0x3e1429b8UL, 0x60000000UL, 0x3fe894d7UL, 0x4dc32c6cUL, 0xbe48604cUL,
449 0xc0000000UL, 0x3fe8873fUL, 0x0c868e56UL, 0xbe564ee5UL, 0x00000000UL,
450 0x3fe879acUL, 0x56aee828UL, 0x3e5e2fd8UL, 0x60000000UL, 0x3fe86c1cUL,
451 0x7ceab8ecUL, 0x3e493365UL, 0xc0000000UL, 0x3fe85e90UL, 0x78d4dadcUL,
452 0xbe4f7f25UL, 0x00000000UL, 0x3fe85109UL, 0x0ccd8280UL, 0x3e31e7a2UL,
453 0x40000000UL, 0x3fe84385UL, 0x34ba4e15UL, 0x3e328077UL, 0x80000000UL,
454 0x3fe83605UL, 0xa670975aUL, 0xbe53eee5UL, 0xa0000000UL, 0x3fe82889UL,
455 0xf61b77b2UL, 0xbe43a20aUL, 0xa0000000UL, 0x3fe81b11UL, 0x13e6643bUL,
456 0x3e5e5fe5UL, 0xc0000000UL, 0x3fe80d9dUL, 0x82cc94e8UL, 0xbe5ff1f9UL,
457 0xa0000000UL, 0x3fe8002dUL, 0x8a0c9c5dUL, 0xbe42b0e7UL, 0x60000000UL,
458 0x3fe7f2c1UL, 0x22a16f01UL, 0x3e5d9ea0UL, 0x20000000UL, 0x3fe7e559UL,
459 0xc38cd451UL, 0x3e506963UL, 0xc0000000UL, 0x3fe7d7f4UL, 0x9902bc71UL,
460 0x3e4503d7UL, 0x40000000UL, 0x3fe7ca94UL, 0xdef2a3c0UL, 0x3e3d98edUL,
461 0xa0000000UL, 0x3fe7bd37UL, 0xed49abb0UL, 0x3e24c1ffUL, 0xe0000000UL,
462 0x3fe7afdeUL, 0xe3b0be70UL, 0xbe40c467UL, 0x00000000UL, 0x3fe7a28aUL,
463 0xaf9f193cUL, 0xbe5dff6cUL, 0xe0000000UL, 0x3fe79538UL, 0xb74cf6b6UL,
464 0xbe258ed0UL, 0xa0000000UL, 0x3fe787ebUL, 0x1d9127c7UL, 0x3e345fb0UL,
465 0x40000000UL, 0x3fe77aa2UL, 0x1028c21dUL, 0xbe4619bdUL, 0xa0000000UL,
466 0x3fe76d5cUL, 0x7cb0b5e4UL, 0x3e40f1a2UL, 0xe0000000UL, 0x3fe7601aUL,
467 0x2b1bc4adUL, 0xbe32e8bbUL, 0xe0000000UL, 0x3fe752dcUL, 0x6839f64eUL,
468 0x3e41f57bUL, 0xc0000000UL, 0x3fe745a2UL, 0xc4121f7eUL, 0xbe52c40aUL,
469 0x60000000UL, 0x3fe7386cUL, 0xd6852d72UL, 0xbe5c4e6bUL, 0xc0000000UL,
470 0x3fe72b39UL, 0x91d690f7UL, 0xbe57f88fUL, 0xe0000000UL, 0x3fe71e0aUL,
471 0x627a2159UL, 0xbe4425d5UL, 0xc0000000UL, 0x3fe710dfUL, 0x50a54033UL,
472 0x3e422b7eUL, 0x60000000UL, 0x3fe703b8UL, 0x3b0b5f91UL, 0x3e5d3857UL,
473 0xe0000000UL, 0x3fe6f694UL, 0x84d628a2UL, 0xbe51f090UL, 0x00000000UL,
474 0x3fe6e975UL, 0x306d8894UL, 0xbe414d83UL, 0xe0000000UL, 0x3fe6dc58UL,
475 0x30bf24aaUL, 0xbe4650caUL, 0x80000000UL, 0x3fe6cf40UL, 0xd4628d69UL,
476 0xbe5db007UL, 0xc0000000UL, 0x3fe6c22bUL, 0xa2aae57bUL, 0xbe31d279UL,
477 0xc0000000UL, 0x3fe6b51aUL, 0x860edf7eUL, 0xbe2d4c4aUL, 0x80000000UL,
478 0x3fe6a80dUL, 0xf3559341UL, 0xbe5f7e98UL, 0xe0000000UL, 0x3fe69b03UL,
479 0xa885899eUL, 0xbe5c2011UL, 0xe0000000UL, 0x3fe68dfdUL, 0x2bdc6d37UL,
480 0x3e224a82UL, 0xa0000000UL, 0x3fe680fbUL, 0xc12ad1b9UL, 0xbe40cf56UL,
481 0x00000000UL, 0x3fe673fdUL, 0x1bcdf659UL, 0xbdf52f2dUL, 0x00000000UL,
482 0x3fe66702UL, 0x5df10408UL, 0x3e5663e0UL, 0xc0000000UL, 0x3fe65a0aUL,
483 0xa4070568UL, 0xbe40b12fUL, 0x00000000UL, 0x3fe64d17UL, 0x71c54c47UL,
484 0x3e5f5e8bUL, 0x00000000UL, 0x3fe64027UL, 0xbd4b7e83UL, 0x3e42ead6UL,
485 0xa0000000UL, 0x3fe6333aUL, 0x61598bd2UL, 0xbe4c48d4UL, 0xc0000000UL,
486 0x3fe62651UL, 0x6f538d61UL, 0x3e548401UL, 0xa0000000UL, 0x3fe6196cUL,
487 0x14344120UL, 0xbe529af6UL, 0x00000000UL, 0x3fe60c8bUL, 0x5982c587UL,
488 0xbe3e1e4fUL, 0x00000000UL, 0x3fe5ffadUL, 0xfe51d4eaUL, 0xbe4c897aUL,
489 0x80000000UL, 0x3fe5f2d2UL, 0xfd46ebe1UL, 0x3e552e00UL, 0xa0000000UL,
490 0x3fe5e5fbUL, 0xa4695699UL, 0x3e5ed471UL, 0x60000000UL, 0x3fe5d928UL,
491 0x80d118aeUL, 0x3e456b61UL, 0xa0000000UL, 0x3fe5cc58UL, 0x304c330bUL,
492 0x3e54dc29UL, 0x80000000UL, 0x3fe5bf8cUL, 0x0af2dedfUL, 0xbe3aa9bdUL,
493 0xe0000000UL, 0x3fe5b2c3UL, 0x15fc9258UL, 0xbe479a37UL, 0xc0000000UL,
494 0x3fe5a5feUL, 0x9292c7eaUL, 0x3e188650UL, 0x20000000UL, 0x3fe5993dUL,
495 0x33b4d380UL, 0x3e5d6d93UL, 0x20000000UL, 0x3fe58c7fUL, 0x02fd16c7UL,
496 0x3e2fe961UL, 0xa0000000UL, 0x3fe57fc4UL, 0x4a05edb6UL, 0xbe4d55b4UL,
497 0xa0000000UL, 0x3fe5730dUL, 0x3d443abbUL, 0xbe5e6954UL, 0x00000000UL,
498 0x3fe5665aUL, 0x024acfeaUL, 0x3e50e61bUL, 0x00000000UL, 0x3fe559aaUL,
499 0xcc9edd09UL, 0xbe325403UL, 0x60000000UL, 0x3fe54cfdUL, 0x1fe26950UL,
500 0x3e5d500eUL, 0x60000000UL, 0x3fe54054UL, 0x6c5ae164UL, 0xbe4a79b4UL,
501 0xc0000000UL, 0x3fe533aeUL, 0x154b0287UL, 0xbe401571UL, 0xa0000000UL,
502 0x3fe5270cUL, 0x0673f401UL, 0xbe56e56bUL, 0xe0000000UL, 0x3fe51a6dUL,
503 0x751b639cUL, 0x3e235269UL, 0xa0000000UL, 0x3fe50dd2UL, 0x7c7b2bedUL,
504 0x3ddec887UL, 0xc0000000UL, 0x3fe5013aUL, 0xafab4e17UL, 0x3e5e7575UL,
505 0x60000000UL, 0x3fe4f4a6UL, 0x2e308668UL, 0x3e59aed6UL, 0x80000000UL,
506 0x3fe4e815UL, 0xf33e2a76UL, 0xbe51f184UL, 0xe0000000UL, 0x3fe4db87UL,
507 0x839f3e3eUL, 0x3e57db01UL, 0xc0000000UL, 0x3fe4cefdUL, 0xa9eda7bbUL,
508 0x3e535e0fUL, 0x00000000UL, 0x3fe4c277UL, 0x2a8f66a5UL, 0x3e5ce451UL,
509 0xc0000000UL, 0x3fe4b5f3UL, 0x05192456UL, 0xbe4e8518UL, 0xc0000000UL,
510 0x3fe4a973UL, 0x4aa7cd1dUL, 0x3e46784aUL, 0x40000000UL, 0x3fe49cf7UL,
511 0x8e23025eUL, 0xbe5749f2UL, 0x00000000UL, 0x3fe4907eUL, 0x18d30215UL,
512 0x3e360f39UL, 0x20000000UL, 0x3fe48408UL, 0x63dcf2f3UL, 0x3e5e00feUL,
513 0xc0000000UL, 0x3fe47795UL, 0x46182d09UL, 0xbe5173d9UL, 0xa0000000UL,
514 0x3fe46b26UL, 0x8f0e62aaUL, 0xbe48f281UL, 0xe0000000UL, 0x3fe45ebaUL,
515 0x5775c40cUL, 0xbe56aad4UL, 0x60000000UL, 0x3fe45252UL, 0x0fe25f69UL,
516 0x3e48bd71UL, 0x40000000UL, 0x3fe445edUL, 0xe9989ec5UL, 0x3e590d97UL,
517 0x80000000UL, 0x3fe4398bUL, 0xb3d9ffe3UL, 0x3e479dbcUL, 0x20000000UL,
518 0x3fe42d2dUL, 0x388e4d2eUL, 0xbe5eed80UL, 0xe0000000UL, 0x3fe420d1UL,
519 0x6f797c18UL, 0x3e554b4cUL, 0x20000000UL, 0x3fe4147aUL, 0x31048bb4UL,
520 0xbe5b1112UL, 0x80000000UL, 0x3fe40825UL, 0x2efba4f9UL, 0x3e48ebc7UL,
521 0x40000000UL, 0x3fe3fbd4UL, 0x50201119UL, 0x3e40b701UL, 0x40000000UL,
522 0x3fe3ef86UL, 0x0a4db32cUL, 0x3e551de8UL, 0xa0000000UL, 0x3fe3e33bUL,
523 0x0c9c148bUL, 0xbe50c1f6UL, 0x20000000UL, 0x3fe3d6f4UL, 0xc9129447UL,
524 0x3e533fa0UL, 0x00000000UL, 0x3fe3cab0UL, 0xaae5b5a0UL, 0xbe22b68eUL,
525 0x20000000UL, 0x3fe3be6fUL, 0x02305e8aUL, 0xbe54fc08UL, 0x60000000UL,
526 0x3fe3b231UL, 0x7f908258UL, 0x3e57dc05UL, 0x00000000UL, 0x3fe3a5f7UL,
527 0x1a09af78UL, 0x3e08038bUL, 0xe0000000UL, 0x3fe399bfUL, 0x490643c1UL,
528 0xbe5dbe42UL, 0xe0000000UL, 0x3fe38d8bUL, 0x5e8ad724UL, 0xbe3c2b72UL,
529 0x20000000UL, 0x3fe3815bUL, 0xc67196b6UL, 0x3e1713cfUL, 0xa0000000UL,
530 0x3fe3752dUL, 0x6182e429UL, 0xbe3ec14cUL, 0x40000000UL, 0x3fe36903UL,
531 0xab6eb1aeUL, 0x3e5a2cc5UL, 0x40000000UL, 0x3fe35cdcUL, 0xfe5dc064UL,
532 0xbe5c5878UL, 0x40000000UL, 0x3fe350b8UL, 0x0ba6b9e4UL, 0x3e51619bUL,
533 0x80000000UL, 0x3fe34497UL, 0x857761aaUL, 0x3e5fff53UL, 0x00000000UL,
534 0x3fe3387aUL, 0xf872d68cUL, 0x3e484f4dUL, 0xa0000000UL, 0x3fe32c5fUL,
535 0x087e97c2UL, 0x3e52842eUL, 0x80000000UL, 0x3fe32048UL, 0x73d6d0c0UL,
536 0xbe503edfUL, 0x80000000UL, 0x3fe31434UL, 0x0c1456a1UL, 0xbe5f72adUL,
537 0xa0000000UL, 0x3fe30823UL, 0x83a1a4d5UL, 0xbe5e65ccUL, 0xe0000000UL,
538 0x3fe2fc15UL, 0x855a7390UL, 0xbe506438UL, 0x40000000UL, 0x3fe2f00bUL,
539 0xa2898287UL, 0x3e3d22a2UL, 0xe0000000UL, 0x3fe2e403UL, 0x8b56f66fUL,
540 0xbe5aa5fdUL, 0x80000000UL, 0x3fe2d7ffUL, 0x52db119aUL, 0x3e3a2e3dUL,
541 0x60000000UL, 0x3fe2cbfeUL, 0xe2ddd4c0UL, 0xbe586469UL, 0x40000000UL,
542 0x3fe2c000UL, 0x6b01bf10UL, 0x3e352b9dUL, 0x40000000UL, 0x3fe2b405UL,
543 0xb07a1cdfUL, 0x3e5c5cdaUL, 0x80000000UL, 0x3fe2a80dUL, 0xc7b5f868UL,
544 0xbe5668b3UL, 0xc0000000UL, 0x3fe29c18UL, 0x185edf62UL, 0xbe563d66UL,
545 0x00000000UL, 0x3fe29027UL, 0xf729e1ccUL, 0x3e59a9a0UL, 0x80000000UL,
546 0x3fe28438UL, 0x6433c727UL, 0xbe43cc89UL, 0x00000000UL, 0x3fe2784dUL,
547 0x41782631UL, 0xbe30750cUL, 0xa0000000UL, 0x3fe26c64UL, 0x914911b7UL,
548 0xbe58290eUL, 0x40000000UL, 0x3fe2607fUL, 0x3dcc73e1UL, 0xbe4269cdUL,
549 0x00000000UL, 0x3fe2549dUL, 0x2751bf70UL, 0xbe5a6998UL, 0xc0000000UL,
550 0x3fe248bdUL, 0x4248b9fbUL, 0xbe4ddb00UL, 0x80000000UL, 0x3fe23ce1UL,
551 0xf35cf82fUL, 0x3e561b71UL, 0x60000000UL, 0x3fe23108UL, 0x8e481a2dUL,
552 0x3e518fb9UL, 0x60000000UL, 0x3fe22532UL, 0x5ab96edcUL, 0xbe5fafc5UL,
553 0x40000000UL, 0x3fe2195fUL, 0x80943911UL, 0xbe07f819UL, 0x40000000UL,
554 0x3fe20d8fUL, 0x386f2d6cUL, 0xbe54ba8bUL, 0x40000000UL, 0x3fe201c2UL,
555 0xf29664acUL, 0xbe5eb815UL, 0x20000000UL, 0x3fe1f5f8UL, 0x64f03390UL,
556 0x3e5e320cUL, 0x20000000UL, 0x3fe1ea31UL, 0x747ff696UL, 0x3e5ef0a5UL,
557 0x40000000UL, 0x3fe1de6dUL, 0x3e9ceb51UL, 0xbe5f8d27UL, 0x20000000UL,
558 0x3fe1d2acUL, 0x4ae0b55eUL, 0x3e5faa21UL, 0x20000000UL, 0x3fe1c6eeUL,
559 0x28569a5eUL, 0x3e598a4fUL, 0x20000000UL, 0x3fe1bb33UL, 0x54b33e07UL,
560 0x3e46130aUL, 0x20000000UL, 0x3fe1af7bUL, 0x024f1078UL, 0xbe4dbf93UL,
561 0x00000000UL, 0x3fe1a3c6UL, 0xb0783bfaUL, 0x3e419248UL, 0xe0000000UL,
562 0x3fe19813UL, 0x2f02b836UL, 0x3e4e02b7UL, 0xc0000000UL, 0x3fe18c64UL,
563 0x28dec9d4UL, 0x3e09064fUL, 0x80000000UL, 0x3fe180b8UL, 0x45cbf406UL,
564 0x3e5b1f46UL, 0x40000000UL, 0x3fe1750fUL, 0x03d9964cUL, 0x3e5b0a79UL,
565 0x00000000UL, 0x3fe16969UL, 0x8b5b882bUL, 0xbe238086UL, 0xa0000000UL,
566 0x3fe15dc5UL, 0x73bad6f8UL, 0xbdf1fca4UL, 0x20000000UL, 0x3fe15225UL,
567 0x5385769cUL, 0x3e5e8d76UL, 0xa0000000UL, 0x3fe14687UL, 0x1676dc6bUL,
568 0x3e571d08UL, 0x20000000UL, 0x3fe13aedUL, 0xa8c41c7fUL, 0xbe598a25UL,
569 0x60000000UL, 0x3fe12f55UL, 0xc4e1aaf0UL, 0x3e435277UL, 0xa0000000UL,
570 0x3fe123c0UL, 0x403638e1UL, 0xbe21aa7cUL, 0xc0000000UL, 0x3fe1182eUL,
571 0x557a092bUL, 0xbdd0116bUL, 0xc0000000UL, 0x3fe10c9fUL, 0x7d779f66UL,
572 0x3e4a61baUL, 0xc0000000UL, 0x3fe10113UL, 0x2b09c645UL, 0xbe5d586eUL,
573 0x20000000UL, 0x3fe0ea04UL, 0xea2cad46UL, 0x3e5aa97cUL, 0x20000000UL,
574 0x3fe0d300UL, 0x23190e54UL, 0x3e50f1a7UL, 0xa0000000UL, 0x3fe0bc07UL,
575 0x1379a5a6UL, 0xbe51619dUL, 0x60000000UL, 0x3fe0a51aUL, 0x926a3d4aUL,
576 0x3e5cf019UL, 0xa0000000UL, 0x3fe08e38UL, 0xa8c24358UL, 0x3e35241eUL,
577 0x20000000UL, 0x3fe07762UL, 0x24317e7aUL, 0x3e512cfaUL, 0x00000000UL,
578 0x3fe06097UL, 0xfd9cf274UL, 0xbe55bef3UL, 0x00000000UL, 0x3fe049d7UL,
579 0x3689b49dUL, 0xbe36d26dUL, 0x40000000UL, 0x3fe03322UL, 0xf72ef6c4UL,
580 0xbe54cd08UL, 0xa0000000UL, 0x3fe01c78UL, 0x23702d2dUL, 0xbe5900bfUL,
581 0x00000000UL, 0x3fe005daUL, 0x3f59c14cUL, 0x3e57d80bUL, 0x40000000UL,
582 0x3fdfde8dUL, 0xad67766dUL, 0xbe57fad4UL, 0x40000000UL, 0x3fdfb17cUL,
583 0x644f4ae7UL, 0x3e1ee43bUL, 0x40000000UL, 0x3fdf8481UL, 0x903234d2UL,
584 0x3e501a86UL, 0x40000000UL, 0x3fdf579cUL, 0xafe9e509UL, 0xbe267c3eUL,
585 0x00000000UL, 0x3fdf2acdUL, 0xb7dfda0bUL, 0xbe48149bUL, 0x40000000UL,
586 0x3fdefe13UL, 0x3b94305eUL, 0x3e5f4ea7UL, 0x80000000UL, 0x3fded16fUL,
587 0x5d95da61UL, 0xbe55c198UL, 0x00000000UL, 0x3fdea4e1UL, 0x406960c9UL,
588 0xbdd99a19UL, 0x00000000UL, 0x3fde7868UL, 0xd22f3539UL, 0x3e470c78UL,
589 0x80000000UL, 0x3fde4c04UL, 0x83eec535UL, 0xbe3e1232UL, 0x40000000UL,
590 0x3fde1fb6UL, 0x3dfbffcbUL, 0xbe4b7d71UL, 0x40000000UL, 0x3fddf37dUL,
591 0x7e1be4e0UL, 0xbe5b8f8fUL, 0x40000000UL, 0x3fddc759UL, 0x46dae887UL,
592 0xbe350458UL, 0x80000000UL, 0x3fdd9b4aUL, 0xed6ecc49UL, 0xbe5f0045UL,
593 0x80000000UL, 0x3fdd6f50UL, 0x2e9e883cUL, 0x3e2915daUL, 0x80000000UL,
594 0x3fdd436bUL, 0xf0bccb32UL, 0x3e4a68c9UL, 0x80000000UL, 0x3fdd179bUL,
595 0x9bbfc779UL, 0xbe54a26aUL, 0x00000000UL, 0x3fdcebe0UL, 0x7cea33abUL,
596 0x3e43c6b7UL, 0x40000000UL, 0x3fdcc039UL, 0xe740fd06UL, 0x3e5526c2UL,
597 0x40000000UL, 0x3fdc94a7UL, 0x9eadeb1aUL, 0xbe396d8dUL, 0xc0000000UL,
598 0x3fdc6929UL, 0xf0a8f95aUL, 0xbe5c0ab2UL, 0x80000000UL, 0x3fdc3dc0UL,
599 0x6ee2693bUL, 0x3e0992e6UL, 0xc0000000UL, 0x3fdc126bUL, 0x5ac6b581UL,
600 0xbe2834b6UL, 0x40000000UL, 0x3fdbe72bUL, 0x8cc226ffUL, 0x3e3596a6UL,
601 0x00000000UL, 0x3fdbbbffUL, 0xf92a74bbUL, 0x3e3c5813UL, 0x00000000UL,
602 0x3fdb90e7UL, 0x479664c0UL, 0xbe50d644UL, 0x00000000UL, 0x3fdb65e3UL,
603 0x5004975bUL, 0xbe55258fUL, 0x00000000UL, 0x3fdb3af3UL, 0xe4b23194UL,
604 0xbe588407UL, 0xc0000000UL, 0x3fdb1016UL, 0xe65d4d0aUL, 0x3e527c26UL,
605 0x80000000UL, 0x3fdae54eUL, 0x814fddd6UL, 0x3e5962a2UL, 0x40000000UL,
606 0x3fdaba9aUL, 0xe19d0913UL, 0xbe562f4eUL, 0x80000000UL, 0x3fda8ff9UL,
607 0x43cfd006UL, 0xbe4cfdebUL, 0x40000000UL, 0x3fda656cUL, 0x686f0a4eUL,
608 0x3e5e47a8UL, 0xc0000000UL, 0x3fda3af2UL, 0x7200d410UL, 0x3e5e1199UL,
609 0xc0000000UL, 0x3fda108cUL, 0xabd2266eUL, 0x3e5ee4d1UL, 0x40000000UL,
610 0x3fd9e63aUL, 0x396f8f2cUL, 0x3e4dbffbUL, 0x00000000UL, 0x3fd9bbfbUL,
611 0xe32b25ddUL, 0x3e5c3a54UL, 0x40000000UL, 0x3fd991cfUL, 0x431e4035UL,
612 0xbe457925UL, 0x80000000UL, 0x3fd967b6UL, 0x7bed3dd3UL, 0x3e40c61dUL,
613 0x00000000UL, 0x3fd93db1UL, 0xd7449365UL, 0x3e306419UL, 0x80000000UL,
614 0x3fd913beUL, 0x1746e791UL, 0x3e56fcfcUL, 0x40000000UL, 0x3fd8e9dfUL,
615 0xf3a9028bUL, 0xbe5041b9UL, 0xc0000000UL, 0x3fd8c012UL, 0x56840c50UL,
616 0xbe26e20aUL, 0x40000000UL, 0x3fd89659UL, 0x19763102UL, 0xbe51f466UL,
617 0x80000000UL, 0x3fd86cb2UL, 0x7032de7cUL, 0xbe4d298aUL, 0x80000000UL,
618 0x3fd8431eUL, 0xdeb39fabUL, 0xbe4361ebUL, 0x40000000UL, 0x3fd8199dUL,
619 0x5d01cbe0UL, 0xbe5425b3UL, 0x80000000UL, 0x3fd7f02eUL, 0x3ce99aa9UL,
620 0x3e146fa8UL, 0x80000000UL, 0x3fd7c6d2UL, 0xd1a262b9UL, 0xbe5a1a69UL,
621 0xc0000000UL, 0x3fd79d88UL, 0x8606c236UL, 0x3e423a08UL, 0x80000000UL,
622 0x3fd77451UL, 0x8fd1e1b7UL, 0x3e5a6a63UL, 0xc0000000UL, 0x3fd74b2cUL,
623 0xe491456aUL, 0x3e42c1caUL, 0x40000000UL, 0x3fd7221aUL, 0x4499a6d7UL,
624 0x3e36a69aUL, 0x00000000UL, 0x3fd6f91aUL, 0x5237df94UL, 0xbe0f8f02UL,
625 0x00000000UL, 0x3fd6d02cUL, 0xb6482c6eUL, 0xbe5abcf7UL, 0x00000000UL,
626 0x3fd6a750UL, 0x1919fd61UL, 0xbe57ade2UL, 0x00000000UL, 0x3fd67e86UL,
627 0xaa7a994dUL, 0xbe3f3fbdUL, 0x00000000UL, 0x3fd655ceUL, 0x67db014cUL,
628 0x3e33c550UL, 0x00000000UL, 0x3fd62d28UL, 0xa82856b7UL, 0xbe1409d1UL,
629 0xc0000000UL, 0x3fd60493UL, 0x1e6a300dUL, 0x3e55d899UL, 0x80000000UL,
630 0x3fd5dc11UL, 0x1222bd5cUL, 0xbe35bfc0UL, 0xc0000000UL, 0x3fd5b3a0UL,
631 0x6e8dc2d3UL, 0x3e5d4d79UL, 0x00000000UL, 0x3fd58b42UL, 0xe0e4ace6UL,
632 0xbe517303UL, 0x80000000UL, 0x3fd562f4UL, 0xb306e0a8UL, 0x3e5edf0fUL,
633 0xc0000000UL, 0x3fd53ab8UL, 0x6574bc54UL, 0x3e5ee859UL, 0x80000000UL,
634 0x3fd5128eUL, 0xea902207UL, 0x3e5f6188UL, 0xc0000000UL, 0x3fd4ea75UL,
635 0x9f911d79UL, 0x3e511735UL, 0x80000000UL, 0x3fd4c26eUL, 0xf9c77397UL,
636 0xbe5b1643UL, 0x40000000UL, 0x3fd49a78UL, 0x15fc9258UL, 0x3e479a37UL,
637 0x80000000UL, 0x3fd47293UL, 0xd5a04dd9UL, 0xbe426e56UL, 0xc0000000UL,
638 0x3fd44abfUL, 0xe04042f5UL, 0x3e56f7c6UL, 0x40000000UL, 0x3fd422fdUL,
639 0x1d8bf2c8UL, 0x3e5d8810UL, 0x00000000UL, 0x3fd3fb4cUL, 0x88a8ddeeUL,
640 0xbe311454UL, 0xc0000000UL, 0x3fd3d3abUL, 0x3e3b5e47UL, 0xbe5d1b72UL,
641 0x40000000UL, 0x3fd3ac1cUL, 0xc2ab5d59UL, 0x3e31b02bUL, 0xc0000000UL,
642 0x3fd3849dUL, 0xd4e34b9eUL, 0x3e51cb2fUL, 0x40000000UL, 0x3fd35d30UL,
643 0x177204fbUL, 0xbe2b8cd7UL, 0x80000000UL, 0x3fd335d3UL, 0xfcd38c82UL,
644 0xbe4356e1UL, 0x80000000UL, 0x3fd30e87UL, 0x64f54accUL, 0xbe4e6224UL,
645 0x00000000UL, 0x3fd2e74cUL, 0xaa7975d9UL, 0x3e5dc0feUL, 0x80000000UL,
646 0x3fd2c021UL, 0x516dab3fUL, 0xbe50ffa3UL, 0x40000000UL, 0x3fd29907UL,
647 0x2bfb7313UL, 0x3e5674a2UL, 0xc0000000UL, 0x3fd271fdUL, 0x0549fc99UL,
648 0x3e385d29UL, 0xc0000000UL, 0x3fd24b04UL, 0x55b63073UL, 0xbe500c6dUL,
649 0x00000000UL, 0x3fd2241cUL, 0x3f91953aUL, 0x3e389977UL, 0xc0000000UL,
650 0x3fd1fd43UL, 0xa1543f71UL, 0xbe3487abUL, 0xc0000000UL, 0x3fd1d67bUL,
651 0x4ec8867cUL, 0x3df6a2dcUL, 0x00000000UL, 0x3fd1afc4UL, 0x4328e3bbUL,
652 0x3e41d9c0UL, 0x80000000UL, 0x3fd1891cUL, 0x2e1cda84UL, 0x3e3bdd87UL,
653 0x40000000UL, 0x3fd16285UL, 0x4b5331aeUL, 0xbe53128eUL, 0x00000000UL,
654 0x3fd13bfeUL, 0xb9aec164UL, 0xbe52ac98UL, 0xc0000000UL, 0x3fd11586UL,
655 0xd91e1316UL, 0xbe350630UL, 0x80000000UL, 0x3fd0ef1fUL, 0x7cacc12cUL,
656 0x3e3f5219UL, 0x40000000UL, 0x3fd0c8c8UL, 0xbce277b7UL, 0x3e3d30c0UL,
657 0x00000000UL, 0x3fd0a281UL, 0x2a63447dUL, 0xbe541377UL, 0x80000000UL,
658 0x3fd07c49UL, 0xfac483b5UL, 0xbe5772ecUL, 0xc0000000UL, 0x3fd05621UL,
659 0x36b8a570UL, 0xbe4fd4bdUL, 0xc0000000UL, 0x3fd03009UL, 0xbae505f7UL,
660 0xbe450388UL, 0x80000000UL, 0x3fd00a01UL, 0x3e35aeadUL, 0xbe5430fcUL,
661 0x80000000UL, 0x3fcfc811UL, 0x707475acUL, 0x3e38806eUL, 0x80000000UL,
662 0x3fcf7c3fUL, 0xc91817fcUL, 0xbe40cceaUL, 0x80000000UL, 0x3fcf308cUL,
663 0xae05d5e9UL, 0xbe4919b8UL, 0x80000000UL, 0x3fcee4f8UL, 0xae6cc9e6UL,
664 0xbe530b94UL, 0x00000000UL, 0x3fce9983UL, 0x1efe3e8eUL, 0x3e57747eUL,
665 0x00000000UL, 0x3fce4e2dUL, 0xda78d9bfUL, 0xbe59a608UL, 0x00000000UL,
666 0x3fce02f5UL, 0x8abe2c2eUL, 0x3e4a35adUL, 0x00000000UL, 0x3fcdb7dcUL,
667 0x1495450dUL, 0xbe0872ccUL, 0x80000000UL, 0x3fcd6ce1UL, 0x86ee0ba0UL,
668 0xbe4f59a0UL, 0x00000000UL, 0x3fcd2205UL, 0xe81ca888UL, 0x3e5402c3UL,
669 0x00000000UL, 0x3fccd747UL, 0x3b4424b9UL, 0x3e5dfdc3UL, 0x80000000UL,
670 0x3fcc8ca7UL, 0xd305b56cUL, 0x3e202da6UL, 0x00000000UL, 0x3fcc4226UL,
671 0x399a6910UL, 0xbe482a1cUL, 0x80000000UL, 0x3fcbf7c2UL, 0x747f7938UL,
672 0xbe587372UL, 0x80000000UL, 0x3fcbad7cUL, 0x6fc246a0UL, 0x3e50d83dUL,
673 0x00000000UL, 0x3fcb6355UL, 0xee9e9be5UL, 0xbe5c35bdUL, 0x80000000UL,
674 0x3fcb194aUL, 0x8416c0bcUL, 0x3e546d4fUL, 0x00000000UL, 0x3fcacf5eUL,
675 0x49f7f08fUL, 0x3e56da76UL, 0x00000000UL, 0x3fca858fUL, 0x5dc30de2UL,
676 0x3e5f390cUL, 0x00000000UL, 0x3fca3bdeUL, 0x950583b6UL, 0xbe5e4169UL,
677 0x80000000UL, 0x3fc9f249UL, 0x33631553UL, 0x3e52aeb1UL, 0x00000000UL,
678 0x3fc9a8d3UL, 0xde8795a6UL, 0xbe59a504UL, 0x00000000UL, 0x3fc95f79UL,
679 0x076bf41eUL, 0x3e5122feUL, 0x80000000UL, 0x3fc9163cUL, 0x2914c8e7UL,
680 0x3e3dd064UL, 0x00000000UL, 0x3fc8cd1dUL, 0x3a30eca3UL, 0xbe21b4aaUL,
681 0x80000000UL, 0x3fc8841aUL, 0xb2a96650UL, 0xbe575444UL, 0x80000000UL,
682 0x3fc83b34UL, 0x2376c0cbUL, 0xbe2a74c7UL, 0x80000000UL, 0x3fc7f26bUL,
683 0xd8a0b653UL, 0xbe5181b6UL, 0x00000000UL, 0x3fc7a9bfUL, 0x32257882UL,
684 0xbe4a78b4UL, 0x00000000UL, 0x3fc7612fUL, 0x1eee8bd9UL, 0xbe1bfe9dUL,
685 0x80000000UL, 0x3fc718bbUL, 0x0c603cc4UL, 0x3e36fdc9UL, 0x80000000UL,
686 0x3fc6d064UL, 0x3728b8cfUL, 0xbe1e542eUL, 0x80000000UL, 0x3fc68829UL,
687 0xc79a4067UL, 0x3e5c380fUL, 0x00000000UL, 0x3fc6400bUL, 0xf69eac69UL,
688 0x3e550a84UL, 0x80000000UL, 0x3fc5f808UL, 0xb7a780a4UL, 0x3e5d9224UL,
689 0x80000000UL, 0x3fc5b022UL, 0xad9dfb1eUL, 0xbe55242fUL, 0x00000000UL,
690 0x3fc56858UL, 0x659b18beUL, 0xbe4bfda3UL, 0x80000000UL, 0x3fc520a9UL,
691 0x66ee3631UL, 0xbe57d769UL, 0x80000000UL, 0x3fc4d916UL, 0x1ec62819UL,
692 0x3e2427f7UL, 0x80000000UL, 0x3fc4919fUL, 0xdec25369UL, 0xbe435431UL,
693 0x00000000UL, 0x3fc44a44UL, 0xa8acfc4bUL, 0xbe3c62e8UL, 0x00000000UL,
694 0x3fc40304UL, 0xcf1d3eabUL, 0xbdfba29fUL, 0x80000000UL, 0x3fc3bbdfUL,
695 0x79aba3eaUL, 0xbdf1b7c8UL, 0x80000000UL, 0x3fc374d6UL, 0xb8d186daUL,
696 0xbe5130cfUL, 0x80000000UL, 0x3fc32de8UL, 0x9d74f152UL, 0x3e2285b6UL,
697 0x00000000UL, 0x3fc2e716UL, 0x50ae7ca9UL, 0xbe503920UL, 0x80000000UL,
698 0x3fc2a05eUL, 0x6caed92eUL, 0xbe533924UL, 0x00000000UL, 0x3fc259c2UL,
699 0x9cb5034eUL, 0xbe510e31UL, 0x80000000UL, 0x3fc21340UL, 0x12c4d378UL,
700 0xbe540b43UL, 0x80000000UL, 0x3fc1ccd9UL, 0xcc418706UL, 0x3e59887aUL,
701 0x00000000UL, 0x3fc1868eUL, 0x921f4106UL, 0xbe528e67UL, 0x80000000UL,
702 0x3fc1405cUL, 0x3969441eUL, 0x3e5d8051UL, 0x00000000UL, 0x3fc0fa46UL,
703 0xd941ef5bUL, 0x3e5f9079UL, 0x80000000UL, 0x3fc0b44aUL, 0x5a3e81b2UL,
704 0xbe567691UL, 0x00000000UL, 0x3fc06e69UL, 0x9d66afe7UL, 0xbe4d43fbUL,
705 0x00000000UL, 0x3fc028a2UL, 0x0a92a162UL, 0xbe52f394UL, 0x00000000UL,
706 0x3fbfc5eaUL, 0x209897e5UL, 0x3e529e37UL, 0x00000000UL, 0x3fbf3ac5UL,
707 0x8458bd7bUL, 0x3e582831UL, 0x00000000UL, 0x3fbeafd5UL, 0xb8d8b4b8UL,
708 0xbe486b4aUL, 0x00000000UL, 0x3fbe2518UL, 0xe0a3b7b6UL, 0x3e5bafd2UL,
709 0x00000000UL, 0x3fbd9a90UL, 0x2bf2710eUL, 0x3e383b2bUL, 0x00000000UL,
710 0x3fbd103cUL, 0x73eb6ab7UL, 0xbe56d78dUL, 0x00000000UL, 0x3fbc861bUL,
711 0x32ceaff5UL, 0xbe32dc5aUL, 0x00000000UL, 0x3fbbfc2eUL, 0xbee04cb7UL,
712 0xbe4a71a4UL, 0x00000000UL, 0x3fbb7274UL, 0x35ae9577UL, 0x3e38142fUL,
713 0x00000000UL, 0x3fbae8eeUL, 0xcbaddab4UL, 0xbe5490f0UL, 0x00000000UL,
714 0x3fba5f9aUL, 0x95ce1114UL, 0x3e597c71UL, 0x00000000UL, 0x3fb9d67aUL,
715 0x6d7c0f78UL, 0x3e3abc2dUL, 0x00000000UL, 0x3fb94d8dUL, 0x2841a782UL,
716 0xbe566cbcUL, 0x00000000UL, 0x3fb8c4d2UL, 0x6ed429c6UL, 0xbe3cfff9UL,
717 0x00000000UL, 0x3fb83c4aUL, 0xe4a49fbbUL, 0xbe552964UL, 0x00000000UL,
718 0x3fb7b3f4UL, 0x2193d81eUL, 0xbe42fa72UL, 0x00000000UL, 0x3fb72bd0UL,
719 0xdd70c122UL, 0x3e527a8cUL, 0x00000000UL, 0x3fb6a3dfUL, 0x03108a54UL,
720 0xbe450393UL, 0x00000000UL, 0x3fb61c1fUL, 0x30ff7954UL, 0x3e565840UL,
721 0x00000000UL, 0x3fb59492UL, 0xdedd460cUL, 0xbe5422b5UL, 0x00000000UL,
722 0x3fb50d36UL, 0x950f9f45UL, 0xbe5313f6UL, 0x00000000UL, 0x3fb4860bUL,
723 0x582cdcb1UL, 0x3e506d39UL, 0x00000000UL, 0x3fb3ff12UL, 0x7216d3a6UL,
724 0x3e4aa719UL, 0x00000000UL, 0x3fb3784aUL, 0x57a423fdUL, 0x3e5a9b9fUL,
725 0x00000000UL, 0x3fb2f1b4UL, 0x7a138b41UL, 0xbe50b418UL, 0x00000000UL,
726 0x3fb26b4eUL, 0x2fbfd7eaUL, 0x3e23a53eUL, 0x00000000UL, 0x3fb1e519UL,
727 0x18913ccbUL, 0x3e465fc1UL, 0x00000000UL, 0x3fb15f15UL, 0x7ea24e21UL,
728 0x3e042843UL, 0x00000000UL, 0x3fb0d941UL, 0x7c6d9c77UL, 0x3e59f61eUL,
729 0x00000000UL, 0x3fb0539eUL, 0x114efd44UL, 0x3e4ccab7UL, 0x00000000UL,
730 0x3faf9c56UL, 0x1777f657UL, 0x3e552f65UL, 0x00000000UL, 0x3fae91d2UL,
731 0xc317b86aUL, 0xbe5a61e0UL, 0x00000000UL, 0x3fad87acUL, 0xb7664efbUL,
732 0xbe41f64eUL, 0x00000000UL, 0x3fac7de6UL, 0x5d3d03a9UL, 0x3e0807a0UL,
733 0x00000000UL, 0x3fab7480UL, 0x743c38ebUL, 0xbe3726e1UL, 0x00000000UL,
734 0x3faa6b78UL, 0x06a253f1UL, 0x3e5ad636UL, 0x00000000UL, 0x3fa962d0UL,
735 0xa35f541bUL, 0x3e5a187aUL, 0x00000000UL, 0x3fa85a88UL, 0x4b86e446UL,
736 0xbe508150UL, 0x00000000UL, 0x3fa7529cUL, 0x2589cacfUL, 0x3e52938aUL,
737 0x00000000UL, 0x3fa64b10UL, 0xaf6b11f2UL, 0xbe3454cdUL, 0x00000000UL,
738 0x3fa543e2UL, 0x97506fefUL, 0xbe5fdec5UL, 0x00000000UL, 0x3fa43d10UL,
739 0xe75f7dd9UL, 0xbe388dd3UL, 0x00000000UL, 0x3fa3369cUL, 0xa4139632UL,
740 0xbdea5177UL, 0x00000000UL, 0x3fa23086UL, 0x352d6f1eUL, 0xbe565ad6UL,
741 0x00000000UL, 0x3fa12accUL, 0x77449eb7UL, 0xbe50d5c7UL, 0x00000000UL,
742 0x3fa0256eUL, 0x7478da78UL, 0x3e404724UL, 0x00000000UL, 0x3f9e40dcUL,
743 0xf59cef7fUL, 0xbe539d0aUL, 0x00000000UL, 0x3f9c3790UL, 0x1511d43cUL,
744 0x3e53c2c8UL, 0x00000000UL, 0x3f9a2f00UL, 0x9b8bff3cUL, 0xbe43b3e1UL,
745 0x00000000UL, 0x3f982724UL, 0xad1e22a5UL, 0x3e46f0bdUL, 0x00000000UL,
746 0x3f962000UL, 0x130d9356UL, 0x3e475ba0UL, 0x00000000UL, 0x3f941994UL,
747 0x8f86f883UL, 0xbe513d0bUL, 0x00000000UL, 0x3f9213dcUL, 0x914d0dc8UL,
748 0xbe534335UL, 0x00000000UL, 0x3f900ed8UL, 0x2d73e5e7UL, 0xbe22ba75UL,
749 0x00000000UL, 0x3f8c1510UL, 0xc5b7d70eUL, 0x3e599c5dUL, 0x00000000UL,
750 0x3f880de0UL, 0x8a27857eUL, 0xbe3d28c8UL, 0x00000000UL, 0x3f840810UL,
751 0xda767328UL, 0x3e531b3dUL, 0x00000000UL, 0x3f8003b0UL, 0x77bacaf3UL,
752 0xbe5f04e3UL, 0x00000000UL, 0x3f780150UL, 0xdf4b0720UL, 0x3e5a8bffUL,
753 0x00000000UL, 0x3f6ffc40UL, 0x34c48e71UL, 0xbe3fcd99UL, 0x00000000UL,
754 0x3f5ff6c0UL, 0x1ad218afUL, 0xbe4c78a7UL, 0x00000000UL, 0x00000000UL,
755 0x00000000UL, 0x80000000UL
756};
757
758ATTRIBUTE_ALIGNED(8) juint _log2_pow[] =
759{
760 0xfefa39efUL, 0x3fe62e42UL, 0xfefa39efUL, 0xbfe62e42UL
761};
762
763ATTRIBUTE_ALIGNED(8) juint _DOUBLE2[] =
764{
765 0x00000000UL, 0x40000000UL
766};
767
768//registers,
769// input: xmm0, xmm1
770// scratch: xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7
771// rax, rdx, rcx, r8, r11
772
773// Code generated by Intel C compiler for LIBM library
774
775void MacroAssembler::fast_pow(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register eax, Register ecx, Register edx, Register tmp1, Register tmp2, Register tmp3, Register tmp4) {
776 Label L_2TAG_PACKET_0_0_2, L_2TAG_PACKET_1_0_2, L_2TAG_PACKET_2_0_2, L_2TAG_PACKET_3_0_2;
777 Label L_2TAG_PACKET_4_0_2, L_2TAG_PACKET_5_0_2, L_2TAG_PACKET_6_0_2, L_2TAG_PACKET_7_0_2;
778 Label L_2TAG_PACKET_8_0_2, L_2TAG_PACKET_9_0_2, L_2TAG_PACKET_10_0_2, L_2TAG_PACKET_11_0_2;
779 Label L_2TAG_PACKET_12_0_2, L_2TAG_PACKET_13_0_2, L_2TAG_PACKET_14_0_2, L_2TAG_PACKET_15_0_2;
780 Label L_2TAG_PACKET_16_0_2, L_2TAG_PACKET_17_0_2, L_2TAG_PACKET_18_0_2, L_2TAG_PACKET_19_0_2;
781 Label L_2TAG_PACKET_20_0_2, L_2TAG_PACKET_21_0_2, L_2TAG_PACKET_22_0_2, L_2TAG_PACKET_23_0_2;
782 Label L_2TAG_PACKET_24_0_2, L_2TAG_PACKET_25_0_2, L_2TAG_PACKET_26_0_2, L_2TAG_PACKET_27_0_2;
783 Label L_2TAG_PACKET_28_0_2, L_2TAG_PACKET_29_0_2, L_2TAG_PACKET_30_0_2, L_2TAG_PACKET_31_0_2;
784 Label L_2TAG_PACKET_32_0_2, L_2TAG_PACKET_33_0_2, L_2TAG_PACKET_34_0_2, L_2TAG_PACKET_35_0_2;
785 Label L_2TAG_PACKET_36_0_2, L_2TAG_PACKET_37_0_2, L_2TAG_PACKET_38_0_2, L_2TAG_PACKET_39_0_2;
786 Label L_2TAG_PACKET_40_0_2, L_2TAG_PACKET_41_0_2, L_2TAG_PACKET_42_0_2, L_2TAG_PACKET_43_0_2;
787 Label L_2TAG_PACKET_44_0_2, L_2TAG_PACKET_45_0_2, L_2TAG_PACKET_46_0_2, L_2TAG_PACKET_47_0_2;
788 Label L_2TAG_PACKET_48_0_2, L_2TAG_PACKET_49_0_2, L_2TAG_PACKET_50_0_2, L_2TAG_PACKET_51_0_2;
789 Label L_2TAG_PACKET_52_0_2, L_2TAG_PACKET_53_0_2, L_2TAG_PACKET_54_0_2, L_2TAG_PACKET_55_0_2;
790 Label L_2TAG_PACKET_56_0_2;
791 Label B1_2, B1_3, B1_5, start;
792
793 assert_different_registers(tmp1, tmp2, eax, ecx, edx);
794 jmp(start);
795 address HIGHSIGMASK = (address)_HIGHSIGMASK;
796 address LOG2_E = (address)_LOG2_E;
797 address coeff = (address)_coeff_pow;
798 address L_tbl = (address)_L_tbl_pow;
799 address HIGHMASK_Y = (address)_HIGHMASK_Y;
800 address T_exp = (address)_T_exp;
801 address e_coeff = (address)_e_coeff;
802 address coeff_h = (address)_coeff_h;
803 address HIGHMASK_LOG_X = (address)_HIGHMASK_LOG_X;
804 address HALFMASK = (address)_HALFMASK;
805 address log2 = (address)_log2_pow;
806 address DOUBLE2 = (address)_DOUBLE2;
807
808
809 bind(start);
810 subq(rsp, 40);
811 movsd(Address(rsp, 8), xmm0);
812 movsd(Address(rsp, 16), xmm1);
813
814 // Special case: pow(x, 2.0) => x * x
815 movdq(tmp1, xmm1);
816 cmp64(tmp1, ExternalAddress(DOUBLE2));
817 jccb(Assembler::notEqual, B1_2);
818 mulsd(xmm0, xmm0);
819 jmp(B1_5);
820
821 bind(B1_2);
822 pextrw(eax, xmm0, 3);
823 xorpd(xmm2, xmm2);
824 mov64(tmp2, 0x3ff0000000000000);
825 movdq(xmm2, tmp2);
826 movl(tmp1, 1069088768);
827 movdq(xmm7, tmp1);
828 xorpd(xmm1, xmm1);
829 mov64(tmp3, 0x77f0000000000000);
830 movdq(xmm1, tmp3);
831 movdqu(xmm3, xmm0);
832 movl(edx, 32752);
833 andl(edx, eax);
834 subl(edx, 16368);
835 movl(ecx, edx);
836 sarl(edx, 31);
837 addl(ecx, edx);
838 xorl(ecx, edx);
839 por(xmm0, xmm2);
840 movdqu(xmm6, ExternalAddress(HIGHSIGMASK)); //0x00000000UL, 0xfffff800UL, 0x00000000UL, 0xfffff800UL
841 psrlq(xmm0, 27);
842 movq(xmm2, ExternalAddress(LOG2_E)); //0x00000000UL, 0x3ff72000UL, 0x161bb241UL, 0xbf5dabe1UL
843 psrld(xmm0, 2);
844 addl(ecx, 16);
845 bsrl(ecx, ecx);
846 rcpps(xmm0, xmm0);
847 psllq(xmm3, 12);
848 movl(tmp4, 8192);
849 movdq(xmm4, tmp4);
850 psrlq(xmm3, 12);
851 subl(eax, 16);
852 cmpl(eax, 32736);
853 jcc(Assembler::aboveEqual, L_2TAG_PACKET_0_0_2);
854 movl(tmp1, 0);
855
856 bind(L_2TAG_PACKET_1_0_2);
857 mulss(xmm0, xmm7);
858 movl(edx, -1);
859 subl(ecx, 4);
860 shll(edx);
861 shlq(edx, 32);
862 movdq(xmm5, edx);
863 por(xmm3, xmm1);
864 subl(eax, 16351);
865 cmpl(eax, 1);
866 jcc(Assembler::belowEqual, L_2TAG_PACKET_2_0_2);
867 paddd(xmm0, xmm4);
868 pand(xmm5, xmm3);
869 movdl(edx, xmm0);
870 psllq(xmm0, 29);
871
872 bind(L_2TAG_PACKET_3_0_2);
873 subsd(xmm3, xmm5);
874 pand(xmm0, xmm6);
875 subl(eax, 1);
876 sarl(eax, 4);
877 cvtsi2sdl(xmm7, eax);
878 mulpd(xmm5, xmm0);
879
880 bind(L_2TAG_PACKET_4_0_2);
881 mulsd(xmm3, xmm0);
882 movdqu(xmm1, ExternalAddress(coeff)); //0x6dc96112UL, 0xbf836578UL, 0xee241472UL, 0xbf9b0301UL
883 lea(tmp4, ExternalAddress(L_tbl));
884 subsd(xmm5, xmm2);
885 movdqu(xmm4, ExternalAddress(16 + coeff)); //0x9f95985aUL, 0xbfb528dbUL, 0xb3841d2aUL, 0xbfd619b6UL
886 movl(ecx, eax);
887 sarl(eax, 31);
888 addl(ecx, eax);
889 xorl(eax, ecx);
890 addl(eax, 1);
891 bsrl(eax, eax);
892 unpcklpd(xmm5, xmm3);
893 movdqu(xmm6, ExternalAddress(32 + coeff)); //0x518775e3UL, 0x3f9004f2UL, 0xac8349bbUL, 0x3fa76c9bUL
894 addsd(xmm3, xmm5);
895 andl(edx, 16760832);
896 shrl(edx, 10);
897 addpd(xmm5, Address(tmp4, edx, Address::times_1, -3648));
898 movdqu(xmm0, ExternalAddress(48 + coeff)); //0x486ececcUL, 0x3fc4635eUL, 0x161bb241UL, 0xbf5dabe1UL
899 pshufd(xmm2, xmm3, 68);
900 mulsd(xmm3, xmm3);
901 mulpd(xmm1, xmm2);
902 mulpd(xmm4, xmm2);
903 addsd(xmm5, xmm7);
904 mulsd(xmm2, xmm3);
905 addpd(xmm6, xmm1);
906 mulsd(xmm3, xmm3);
907 addpd(xmm0, xmm4);
908 movq(xmm1, Address(rsp, 16));
909 movw(ecx, Address(rsp, 22));
910 pshufd(xmm7, xmm5, 238);
911 movq(xmm4, ExternalAddress(HIGHMASK_Y)); //0x00000000UL, 0xfffffff8UL, 0x00000000UL, 0xffffffffUL
912 mulpd(xmm6, xmm2);
913 pshufd(xmm3, xmm3, 68);
914 mulpd(xmm0, xmm2);
915 shll(eax, 4);
916 subl(eax, 15872);
917 andl(ecx, 32752);
918 addl(eax, ecx);
919 mulpd(xmm3, xmm6);
920 cmpl(eax, 624);
921 jcc(Assembler::aboveEqual, L_2TAG_PACKET_5_0_2);
922 xorpd(xmm6, xmm6);
923 movl(edx, 17080);
924 pinsrw(xmm6, edx, 3);
925 movdqu(xmm2, xmm1);
926 pand(xmm4, xmm1);
927 subsd(xmm1, xmm4);
928 mulsd(xmm4, xmm5);
929 addsd(xmm0, xmm7);
930 mulsd(xmm1, xmm5);
931 movdqu(xmm7, xmm6);
932 addsd(xmm6, xmm4);
933 lea(tmp4, ExternalAddress(T_exp));
934 addpd(xmm3, xmm0);
935 movdl(edx, xmm6);
936 subsd(xmm6, xmm7);
937 pshufd(xmm0, xmm3, 238);
938 subsd(xmm4, xmm6);
939 addsd(xmm0, xmm3);
940 movl(ecx, edx);
941 andl(edx, 255);
942 addl(edx, edx);
943 movdqu(xmm5, Address(tmp4, edx, Address::times_8, 0));
944 addsd(xmm4, xmm1);
945 mulsd(xmm2, xmm0);
946 movdqu(xmm7, ExternalAddress(e_coeff)); //0xe78a6731UL, 0x3f55d87fUL, 0xd704a0c0UL, 0x3fac6b08UL
947 movdqu(xmm3, ExternalAddress(16 + e_coeff)); //0x6fba4e77UL, 0x3f83b2abUL, 0xff82c58fUL, 0x3fcebfbdUL
948 shll(ecx, 12);
949 xorl(ecx, tmp1);
950 andl(rcx, -1048576);
951 movdq(xmm6, rcx);
952 addsd(xmm2, xmm4);
953 mov64(tmp2, 0x3fe62e42fefa39ef);
954 movdq(xmm1, tmp2);
955 pshufd(xmm0, xmm2, 68);
956 pshufd(xmm4, xmm2, 68);
957 mulsd(xmm1, xmm2);
958 pshufd(xmm6, xmm6, 17);
959 mulpd(xmm0, xmm0);
960 mulpd(xmm7, xmm4);
961 paddd(xmm5, xmm6);
962 mulsd(xmm1, xmm5);
963 pshufd(xmm6, xmm5, 238);
964 mulsd(xmm0, xmm0);
965 addpd(xmm3, xmm7);
966 addsd(xmm1, xmm6);
967 mulpd(xmm0, xmm3);
968 pshufd(xmm3, xmm0, 238);
969 mulsd(xmm0, xmm5);
970 mulsd(xmm3, xmm5);
971 addsd(xmm0, xmm1);
972 addsd(xmm0, xmm3);
973 addsd(xmm0, xmm5);
974 jmp(B1_5);
975
976 bind(L_2TAG_PACKET_0_0_2);
977 addl(eax, 16);
978 movl(edx, 32752);
979 andl(edx, eax);
980 cmpl(edx, 32752);
981 jcc(Assembler::equal, L_2TAG_PACKET_6_0_2);
982 testl(eax, 32768);
983 jcc(Assembler::notEqual, L_2TAG_PACKET_7_0_2);
984
985 bind(L_2TAG_PACKET_8_0_2);
986 movq(xmm0, Address(rsp, 8));
987 movq(xmm3, Address(rsp, 8));
988 movdl(edx, xmm3);
989 psrlq(xmm3, 32);
990 movdl(ecx, xmm3);
991 orl(edx, ecx);
992 cmpl(edx, 0);
993 jcc(Assembler::equal, L_2TAG_PACKET_9_0_2);
994 xorpd(xmm3, xmm3);
995 movl(eax, 18416);
996 pinsrw(xmm3, eax, 3);
997 mulsd(xmm0, xmm3);
998 xorpd(xmm2, xmm2);
999 movl(eax, 16368);
1000 pinsrw(xmm2, eax, 3);
1001 movdqu(xmm3, xmm0);
1002 pextrw(eax, xmm0, 3);
1003 por(xmm0, xmm2);
1004 movl(ecx, 18416);
1005 psrlq(xmm0, 27);
1006 movq(xmm2, ExternalAddress(LOG2_E)); //0x00000000UL, 0x3ff72000UL, 0x161bb241UL, 0xbf5dabe1UL
1007 psrld(xmm0, 2);
1008 rcpps(xmm0, xmm0);
1009 psllq(xmm3, 12);
1010 movdqu(xmm6, ExternalAddress(HIGHSIGMASK)); //0x00000000UL, 0xfffff800UL, 0x00000000UL, 0xfffff800UL
1011 psrlq(xmm3, 12);
1012 mulss(xmm0, xmm7);
1013 movl(edx, -1024);
1014 movdl(xmm5, edx);
1015 por(xmm3, xmm1);
1016 paddd(xmm0, xmm4);
1017 psllq(xmm5, 32);
1018 movdl(edx, xmm0);
1019 psllq(xmm0, 29);
1020 pand(xmm5, xmm3);
1021 movl(tmp1, 0);
1022 pand(xmm0, xmm6);
1023 subsd(xmm3, xmm5);
1024 andl(eax, 32752);
1025 subl(eax, 18416);
1026 sarl(eax, 4);
1027 cvtsi2sdl(xmm7, eax);
1028 mulpd(xmm5, xmm0);
1029 jmp(L_2TAG_PACKET_4_0_2);
1030
1031 bind(L_2TAG_PACKET_10_0_2);
1032 movq(xmm0, Address(rsp, 8));
1033 movq(xmm3, Address(rsp, 8));
1034 movdl(edx, xmm3);
1035 psrlq(xmm3, 32);
1036 movdl(ecx, xmm3);
1037 orl(edx, ecx);
1038 cmpl(edx, 0);
1039 jcc(Assembler::equal, L_2TAG_PACKET_9_0_2);
1040 xorpd(xmm3, xmm3);
1041 movl(eax, 18416);
1042 pinsrw(xmm3, eax, 3);
1043 mulsd(xmm0, xmm3);
1044 xorpd(xmm2, xmm2);
1045 movl(eax, 16368);
1046 pinsrw(xmm2, eax, 3);
1047 movdqu(xmm3, xmm0);
1048 pextrw(eax, xmm0, 3);
1049 por(xmm0, xmm2);
1050 movl(ecx, 18416);
1051 psrlq(xmm0, 27);
1052 movq(xmm2, ExternalAddress(LOG2_E)); //0x00000000UL, 0x3ff72000UL, 0x161bb241UL, 0xbf5dabe1UL
1053 psrld(xmm0, 2);
1054 rcpps(xmm0, xmm0);
1055 psllq(xmm3, 12);
1056 movdqu(xmm6, ExternalAddress(HIGHSIGMASK)); //0x00000000UL, 0xfffff800UL, 0x00000000UL, 0xfffff800UL
1057 psrlq(xmm3, 12);
1058 mulss(xmm0, xmm7);
1059 movl(edx, -1024);
1060 movdl(xmm5, edx);
1061 por(xmm3, xmm1);
1062 paddd(xmm0, xmm4);
1063 psllq(xmm5, 32);
1064 movdl(edx, xmm0);
1065 psllq(xmm0, 29);
1066 pand(xmm5, xmm3);
1067 movl(tmp1, INT_MIN);
1068 pand(xmm0, xmm6);
1069 subsd(xmm3, xmm5);
1070 andl(eax, 32752);
1071 subl(eax, 18416);
1072 sarl(eax, 4);
1073 cvtsi2sdl(xmm7, eax);
1074 mulpd(xmm5, xmm0);
1075 jmp(L_2TAG_PACKET_4_0_2);
1076
1077 bind(L_2TAG_PACKET_5_0_2);
1078 cmpl(eax, 0);
1079 jcc(Assembler::less, L_2TAG_PACKET_11_0_2);
1080 cmpl(eax, 752);
1081 jcc(Assembler::aboveEqual, L_2TAG_PACKET_12_0_2);
1082 addsd(xmm0, xmm7);
1083 movq(xmm2, ExternalAddress(HALFMASK)); //0xf8000000UL, 0xffffffffUL, 0xf8000000UL, 0xffffffffUL
1084 addpd(xmm3, xmm0);
1085 xorpd(xmm6, xmm6);
1086 movl(eax, 17080);
1087 pinsrw(xmm6, eax, 3);
1088 pshufd(xmm0, xmm3, 238);
1089 addsd(xmm0, xmm3);
1090 movdqu(xmm3, xmm5);
1091 addsd(xmm5, xmm0);
1092 movdqu(xmm4, xmm2);
1093 subsd(xmm3, xmm5);
1094 movdqu(xmm7, xmm5);
1095 pand(xmm5, xmm2);
1096 movdqu(xmm2, xmm1);
1097 pand(xmm4, xmm1);
1098 subsd(xmm7, xmm5);
1099 addsd(xmm0, xmm3);
1100 subsd(xmm1, xmm4);
1101 mulsd(xmm4, xmm5);
1102 addsd(xmm0, xmm7);
1103 mulsd(xmm2, xmm0);
1104 movdqu(xmm7, xmm6);
1105 mulsd(xmm1, xmm5);
1106 addsd(xmm6, xmm4);
1107 movdl(eax, xmm6);
1108 subsd(xmm6, xmm7);
1109 lea(tmp4, ExternalAddress(T_exp));
1110 addsd(xmm2, xmm1);
1111 movdqu(xmm7, ExternalAddress(e_coeff)); //0xe78a6731UL, 0x3f55d87fUL, 0xd704a0c0UL, 0x3fac6b08UL
1112 movdqu(xmm3, ExternalAddress(16 + e_coeff)); //0x6fba4e77UL, 0x3f83b2abUL, 0xff82c58fUL, 0x3fcebfbdUL
1113 subsd(xmm4, xmm6);
1114 pextrw(edx, xmm6, 3);
1115 movl(ecx, eax);
1116 andl(eax, 255);
1117 addl(eax, eax);
1118 movdqu(xmm5, Address(tmp4, rax, Address::times_8, 0));
1119 addsd(xmm2, xmm4);
1120 sarl(ecx, 8);
1121 movl(eax, ecx);
1122 sarl(ecx, 1);
1123 subl(eax, ecx);
1124 shll(ecx, 20);
1125 xorl(ecx, tmp1);
1126 movdl(xmm6, ecx);
1127 movq(xmm1, ExternalAddress(32 + e_coeff)); //0xfefa39efUL, 0x3fe62e42UL, 0x00000000UL, 0x00000000UL
1128 andl(edx, 32767);
1129 cmpl(edx, 16529);
1130 jcc(Assembler::above, L_2TAG_PACKET_12_0_2);
1131 pshufd(xmm0, xmm2, 68);
1132 pshufd(xmm4, xmm2, 68);
1133 mulpd(xmm0, xmm0);
1134 mulpd(xmm7, xmm4);
1135 pshufd(xmm6, xmm6, 17);
1136 mulsd(xmm1, xmm2);
1137 mulsd(xmm0, xmm0);
1138 paddd(xmm5, xmm6);
1139 addpd(xmm3, xmm7);
1140 mulsd(xmm1, xmm5);
1141 pshufd(xmm6, xmm5, 238);
1142 mulpd(xmm0, xmm3);
1143 addsd(xmm1, xmm6);
1144 pshufd(xmm3, xmm0, 238);
1145 mulsd(xmm0, xmm5);
1146 mulsd(xmm3, xmm5);
1147 shll(eax, 4);
1148 xorpd(xmm4, xmm4);
1149 addl(eax, 16368);
1150 pinsrw(xmm4, eax, 3);
1151 addsd(xmm0, xmm1);
1152 addsd(xmm0, xmm3);
1153 movdqu(xmm1, xmm0);
1154 addsd(xmm0, xmm5);
1155 mulsd(xmm0, xmm4);
1156 pextrw(eax, xmm0, 3);
1157 andl(eax, 32752);
1158 jcc(Assembler::equal, L_2TAG_PACKET_13_0_2);
1159 cmpl(eax, 32752);
1160 jcc(Assembler::equal, L_2TAG_PACKET_14_0_2);
1161 jmp(B1_5);
1162
1163 bind(L_2TAG_PACKET_6_0_2);
1164 movq(xmm1, Address(rsp, 16));
1165 movq(xmm0, Address(rsp, 8));
1166 movdqu(xmm2, xmm0);
1167 movdl(eax, xmm2);
1168 psrlq(xmm2, 20);
1169 movdl(edx, xmm2);
1170 orl(eax, edx);
1171 jcc(Assembler::equal, L_2TAG_PACKET_15_0_2);
1172 movdl(eax, xmm1);
1173 psrlq(xmm1, 32);
1174 movdl(edx, xmm1);
1175 movl(ecx, edx);
1176 addl(edx, edx);
1177 orl(eax, edx);
1178 jcc(Assembler::equal, L_2TAG_PACKET_16_0_2);
1179 addsd(xmm0, xmm0);
1180 jmp(B1_5);
1181
1182 bind(L_2TAG_PACKET_16_0_2);
1183 xorpd(xmm0, xmm0);
1184 movl(eax, 16368);
1185 pinsrw(xmm0, eax, 3);
1186 movl(Address(rsp, 0), 29);
1187 jmp(L_2TAG_PACKET_17_0_2);
1188
1189 bind(L_2TAG_PACKET_18_0_2);
1190 movq(xmm0, Address(rsp, 16));
1191 addpd(xmm0, xmm0);
1192 jmp(B1_5);
1193
1194 bind(L_2TAG_PACKET_15_0_2);
1195 movdl(eax, xmm1);
1196 movdqu(xmm2, xmm1);
1197 psrlq(xmm1, 32);
1198 movdl(edx, xmm1);
1199 movl(ecx, edx);
1200 addl(edx, edx);
1201 orl(eax, edx);
1202 jcc(Assembler::equal, L_2TAG_PACKET_19_0_2);
1203 pextrw(eax, xmm2, 3);
1204 andl(eax, 32752);
1205 cmpl(eax, 32752);
1206 jcc(Assembler::notEqual, L_2TAG_PACKET_20_0_2);
1207 movdl(eax, xmm2);
1208 psrlq(xmm2, 20);
1209 movdl(edx, xmm2);
1210 orl(eax, edx);
1211 jcc(Assembler::notEqual, L_2TAG_PACKET_18_0_2);
1212
1213 bind(L_2TAG_PACKET_20_0_2);
1214 pextrw(eax, xmm0, 3);
1215 testl(eax, 32768);
1216 jcc(Assembler::notEqual, L_2TAG_PACKET_21_0_2);
1217 testl(ecx, INT_MIN);
1218 jcc(Assembler::notEqual, L_2TAG_PACKET_22_0_2);
1219 jmp(B1_5);
1220
1221 bind(L_2TAG_PACKET_23_0_2);
1222 movq(xmm1, Address(rsp, 16));
1223 movdl(eax, xmm1);
1224 testl(eax, 1);
1225 jcc(Assembler::notEqual, L_2TAG_PACKET_24_0_2);
1226 testl(eax, 2);
1227 jcc(Assembler::notEqual, L_2TAG_PACKET_25_0_2);
1228 jmp(L_2TAG_PACKET_24_0_2);
1229
1230 bind(L_2TAG_PACKET_21_0_2);
1231 shrl(ecx, 20);
1232 andl(ecx, 2047);
1233 cmpl(ecx, 1075);
1234 jcc(Assembler::above, L_2TAG_PACKET_24_0_2);
1235 jcc(Assembler::equal, L_2TAG_PACKET_26_0_2);
1236 cmpl(ecx, 1074);
1237 jcc(Assembler::above, L_2TAG_PACKET_23_0_2);
1238 cmpl(ecx, 1023);
1239 jcc(Assembler::below, L_2TAG_PACKET_24_0_2);
1240 movq(xmm1, Address(rsp, 16));
1241 movl(eax, 17208);
1242 xorpd(xmm3, xmm3);
1243 pinsrw(xmm3, eax, 3);
1244 movdqu(xmm4, xmm3);
1245 addsd(xmm3, xmm1);
1246 subsd(xmm4, xmm3);
1247 addsd(xmm1, xmm4);
1248 pextrw(eax, xmm1, 3);
1249 andl(eax, 32752);
1250 jcc(Assembler::notEqual, L_2TAG_PACKET_24_0_2);
1251 movdl(eax, xmm3);
1252 andl(eax, 1);
1253 jcc(Assembler::equal, L_2TAG_PACKET_24_0_2);
1254
1255 bind(L_2TAG_PACKET_25_0_2);
1256 movq(xmm1, Address(rsp, 16));
1257 pextrw(eax, xmm1, 3);
1258 andl(eax, 32768);
1259 jcc(Assembler::notEqual, L_2TAG_PACKET_27_0_2);
1260 jmp(B1_5);
1261
1262 bind(L_2TAG_PACKET_27_0_2);
1263 xorpd(xmm0, xmm0);
1264 movl(eax, 32768);
1265 pinsrw(xmm0, eax, 3);
1266 jmp(B1_5);
1267
1268 bind(L_2TAG_PACKET_24_0_2);
1269 movq(xmm1, Address(rsp, 16));
1270 pextrw(eax, xmm1, 3);
1271 andl(eax, 32768);
1272 jcc(Assembler::notEqual, L_2TAG_PACKET_22_0_2);
1273 xorpd(xmm0, xmm0);
1274 movl(eax, 32752);
1275 pinsrw(xmm0, eax, 3);
1276 jmp(B1_5);
1277
1278 bind(L_2TAG_PACKET_26_0_2);
1279 movq(xmm1, Address(rsp, 16));
1280 movdl(eax, xmm1);
1281 andl(eax, 1);
1282 jcc(Assembler::equal, L_2TAG_PACKET_24_0_2);
1283 jmp(L_2TAG_PACKET_25_0_2);
1284
1285 bind(L_2TAG_PACKET_28_0_2);
1286 movdl(eax, xmm1);
1287 psrlq(xmm1, 20);
1288 movdl(edx, xmm1);
1289 orl(eax, edx);
1290 jcc(Assembler::equal, L_2TAG_PACKET_29_0_2);
1291 movq(xmm0, Address(rsp, 16));
1292 addsd(xmm0, xmm0);
1293 jmp(B1_5);
1294
1295 bind(L_2TAG_PACKET_29_0_2);
1296 movq(xmm0, Address(rsp, 8));
1297 pextrw(eax, xmm0, 3);
1298 cmpl(eax, 49136);
1299 jcc(Assembler::notEqual, L_2TAG_PACKET_30_0_2);
1300 movdl(ecx, xmm0);
1301 psrlq(xmm0, 20);
1302 movdl(edx, xmm0);
1303 orl(ecx, edx);
1304 jcc(Assembler::notEqual, L_2TAG_PACKET_30_0_2);
1305 xorpd(xmm0, xmm0);
1306 movl(eax, 32760);
1307 pinsrw(xmm0, eax, 3);
1308 jmp(B1_5);
1309
1310 bind(L_2TAG_PACKET_30_0_2);
1311 movq(xmm1, Address(rsp, 16));
1312 andl(eax, 32752);
1313 subl(eax, 16368);
1314 pextrw(edx, xmm1, 3);
1315 xorpd(xmm0, xmm0);
1316 xorl(eax, edx);
1317 andl(eax, 32768);
1318 jcc(Assembler::equal, L_2TAG_PACKET_31_0_2);
1319 jmp(B1_5);
1320
1321 bind(L_2TAG_PACKET_31_0_2);
1322 movl(ecx, 32752);
1323 pinsrw(xmm0, ecx, 3);
1324 jmp(B1_5);
1325
1326 bind(L_2TAG_PACKET_32_0_2);
1327 movdl(eax, xmm1);
1328 cmpl(edx, 17184);
1329 jcc(Assembler::above, L_2TAG_PACKET_33_0_2);
1330 testl(eax, 1);
1331 jcc(Assembler::notEqual, L_2TAG_PACKET_34_0_2);
1332 testl(eax, 2);
1333 jcc(Assembler::equal, L_2TAG_PACKET_35_0_2);
1334 jmp(L_2TAG_PACKET_36_0_2);
1335
1336 bind(L_2TAG_PACKET_33_0_2);
1337 testl(eax, 1);
1338 jcc(Assembler::equal, L_2TAG_PACKET_35_0_2);
1339 jmp(L_2TAG_PACKET_36_0_2);
1340
1341 bind(L_2TAG_PACKET_7_0_2);
1342 movq(xmm2, Address(rsp, 8));
1343 movdl(eax, xmm2);
1344 psrlq(xmm2, 31);
1345 movdl(ecx, xmm2);
1346 orl(eax, ecx);
1347 jcc(Assembler::equal, L_2TAG_PACKET_9_0_2);
1348 movq(xmm1, Address(rsp, 16));
1349 pextrw(edx, xmm1, 3);
1350 movdl(eax, xmm1);
1351 movdqu(xmm2, xmm1);
1352 psrlq(xmm2, 32);
1353 movdl(ecx, xmm2);
1354 addl(ecx, ecx);
1355 orl(ecx, eax);
1356 jcc(Assembler::equal, L_2TAG_PACKET_37_0_2);
1357 andl(edx, 32752);
1358 cmpl(edx, 32752);
1359 jcc(Assembler::equal, L_2TAG_PACKET_28_0_2);
1360 cmpl(edx, 17200);
1361 jcc(Assembler::above, L_2TAG_PACKET_35_0_2);
1362 cmpl(edx, 17184);
1363 jcc(Assembler::aboveEqual, L_2TAG_PACKET_32_0_2);
1364 cmpl(edx, 16368);
1365 jcc(Assembler::below, L_2TAG_PACKET_34_0_2);
1366 movl(eax, 17208);
1367 xorpd(xmm2, xmm2);
1368 pinsrw(xmm2, eax, 3);
1369 movdqu(xmm4, xmm2);
1370 addsd(xmm2, xmm1);
1371 subsd(xmm4, xmm2);
1372 addsd(xmm1, xmm4);
1373 pextrw(eax, xmm1, 3);
1374 andl(eax, 32767);
1375 jcc(Assembler::notEqual, L_2TAG_PACKET_34_0_2);
1376 movdl(eax, xmm2);
1377 andl(eax, 1);
1378 jcc(Assembler::equal, L_2TAG_PACKET_35_0_2);
1379
1380 bind(L_2TAG_PACKET_36_0_2);
1381 xorpd(xmm1, xmm1);
1382 movl(edx, 30704);
1383 pinsrw(xmm1, edx, 3);
1384 movq(xmm2, ExternalAddress(LOG2_E)); //0x00000000UL, 0x3ff72000UL, 0x161bb241UL, 0xbf5dabe1UL
1385 movq(xmm4, Address(rsp, 8));
1386 pextrw(eax, xmm4, 3);
1387 movl(edx, 8192);
1388 movdl(xmm4, edx);
1389 andl(eax, 32767);
1390 subl(eax, 16);
1391 jcc(Assembler::less, L_2TAG_PACKET_10_0_2);
1392 movl(edx, eax);
1393 andl(edx, 32752);
1394 subl(edx, 16368);
1395 movl(ecx, edx);
1396 sarl(edx, 31);
1397 addl(ecx, edx);
1398 xorl(ecx, edx);
1399 addl(ecx, 16);
1400 bsrl(ecx, ecx);
1401 movl(tmp1, INT_MIN);
1402 jmp(L_2TAG_PACKET_1_0_2);
1403
1404 bind(L_2TAG_PACKET_34_0_2);
1405 xorpd(xmm1, xmm1);
1406 movl(eax, 32752);
1407 pinsrw(xmm1, eax, 3);
1408 xorpd(xmm0, xmm0);
1409 mulsd(xmm0, xmm1);
1410 movl(Address(rsp, 0), 28);
1411 jmp(L_2TAG_PACKET_17_0_2);
1412
1413 bind(L_2TAG_PACKET_35_0_2);
1414 xorpd(xmm1, xmm1);
1415 movl(edx, 30704);
1416 pinsrw(xmm1, edx, 3);
1417 movq(xmm2, ExternalAddress(LOG2_E)); //0x00000000UL, 0x3ff72000UL, 0x161bb241UL, 0xbf5dabe1UL
1418 movq(xmm4, Address(rsp, 8));
1419 pextrw(eax, xmm4, 3);
1420 movl(edx, 8192);
1421 movdl(xmm4, edx);
1422 andl(eax, 32767);
1423 subl(eax, 16);
1424 jcc(Assembler::less, L_2TAG_PACKET_8_0_2);
1425 movl(edx, eax);
1426 andl(edx, 32752);
1427 subl(edx, 16368);
1428 movl(ecx, edx);
1429 sarl(edx, 31);
1430 addl(ecx, edx);
1431 xorl(ecx, edx);
1432 addl(ecx, 16);
1433 bsrl(ecx, ecx);
1434 movl(tmp1, 0);
1435 jmp(L_2TAG_PACKET_1_0_2);
1436
1437 bind(L_2TAG_PACKET_19_0_2);
1438 xorpd(xmm0, xmm0);
1439 movl(eax, 16368);
1440 pinsrw(xmm0, eax, 3);
1441 jmp(B1_5);
1442
1443 bind(L_2TAG_PACKET_22_0_2);
1444 xorpd(xmm0, xmm0);
1445 jmp(B1_5);
1446
1447 bind(L_2TAG_PACKET_11_0_2);
1448 addl(eax, 384);
1449 cmpl(eax, 0);
1450 jcc(Assembler::less, L_2TAG_PACKET_38_0_2);
1451 mulsd(xmm5, xmm1);
1452 addsd(xmm0, xmm7);
1453 shrl(tmp1, 31);
1454 addpd(xmm3, xmm0);
1455 pshufd(xmm0, xmm3, 238);
1456 addsd(xmm3, xmm0);
1457 lea(tmp4, ExternalAddress(log2)); //0xfefa39efUL, 0x3fe62e42UL, 0xfefa39efUL, 0xbfe62e42UL
1458 movq(xmm4, Address(tmp4, tmp1, Address::times_8, 0));
1459 mulsd(xmm1, xmm3);
1460 xorpd(xmm0, xmm0);
1461 movl(eax, 16368);
1462 shll(tmp1, 15);
1463 orl(eax, tmp1);
1464 pinsrw(xmm0, eax, 3);
1465 addsd(xmm5, xmm1);
1466 mulsd(xmm5, xmm4);
1467 addsd(xmm0, xmm5);
1468 jmp(B1_5);
1469
1470 bind(L_2TAG_PACKET_38_0_2);
1471
1472 bind(L_2TAG_PACKET_37_0_2);
1473 xorpd(xmm0, xmm0);
1474 movl(eax, 16368);
1475 pinsrw(xmm0, eax, 3);
1476 jmp(B1_5);
1477
1478 bind(L_2TAG_PACKET_39_0_2);
1479 xorpd(xmm0, xmm0);
1480 movl(eax, 16368);
1481 pinsrw(xmm0, eax, 3);
1482 movl(Address(rsp, 0), 26);
1483 jmp(L_2TAG_PACKET_17_0_2);
1484
1485 bind(L_2TAG_PACKET_9_0_2);
1486 movq(xmm1, Address(rsp, 16));
1487 movdqu(xmm2, xmm1);
1488 pextrw(eax, xmm1, 3);
1489 andl(eax, 32752);
1490 cmpl(eax, 32752);
1491 jcc(Assembler::notEqual, L_2TAG_PACKET_40_0_2);
1492 movdl(eax, xmm2);
1493 psrlq(xmm2, 20);
1494 movdl(edx, xmm2);
1495 orl(eax, edx);
1496 jcc(Assembler::notEqual, L_2TAG_PACKET_18_0_2);
1497
1498 bind(L_2TAG_PACKET_40_0_2);
1499 movdl(eax, xmm1);
1500 psrlq(xmm1, 32);
1501 movdl(edx, xmm1);
1502 movl(ecx, edx);
1503 addl(edx, edx);
1504 orl(eax, edx);
1505 jcc(Assembler::equal, L_2TAG_PACKET_39_0_2);
1506 shrl(edx, 21);
1507 cmpl(edx, 1075);
1508 jcc(Assembler::above, L_2TAG_PACKET_41_0_2);
1509 jcc(Assembler::equal, L_2TAG_PACKET_42_0_2);
1510 cmpl(edx, 1023);
1511 jcc(Assembler::below, L_2TAG_PACKET_41_0_2);
1512 movq(xmm1, Address(rsp, 16));
1513 movl(eax, 17208);
1514 xorpd(xmm3, xmm3);
1515 pinsrw(xmm3, eax, 3);
1516 movdqu(xmm4, xmm3);
1517 addsd(xmm3, xmm1);
1518 subsd(xmm4, xmm3);
1519 addsd(xmm1, xmm4);
1520 pextrw(eax, xmm1, 3);
1521 andl(eax, 32752);
1522 jcc(Assembler::notEqual, L_2TAG_PACKET_41_0_2);
1523 movdl(eax, xmm3);
1524 andl(eax, 1);
1525 jcc(Assembler::equal, L_2TAG_PACKET_41_0_2);
1526
1527 bind(L_2TAG_PACKET_43_0_2);
1528 movq(xmm0, Address(rsp, 8));
1529 testl(ecx, INT_MIN);
1530 jcc(Assembler::notEqual, L_2TAG_PACKET_44_0_2);
1531 jmp(B1_5);
1532
1533 bind(L_2TAG_PACKET_42_0_2);
1534 movq(xmm1, Address(rsp, 16));
1535 movdl(eax, xmm1);
1536 testl(eax, 1);
1537 jcc(Assembler::notEqual, L_2TAG_PACKET_43_0_2);
1538
1539 bind(L_2TAG_PACKET_41_0_2);
1540 testl(ecx, INT_MIN);
1541 jcc(Assembler::equal, L_2TAG_PACKET_22_0_2);
1542 xorpd(xmm0, xmm0);
1543
1544 bind(L_2TAG_PACKET_44_0_2);
1545 movl(eax, 16368);
1546 xorpd(xmm1, xmm1);
1547 pinsrw(xmm1, eax, 3);
1548 divsd(xmm1, xmm0);
1549 movdqu(xmm0, xmm1);
1550 movl(Address(rsp, 0), 27);
1551 jmp(L_2TAG_PACKET_17_0_2);
1552
1553 bind(L_2TAG_PACKET_12_0_2);
1554 movq(xmm2, Address(rsp, 8));
1555 movq(xmm6, Address(rsp, 16));
1556 pextrw(eax, xmm2, 3);
1557 pextrw(edx, xmm6, 3);
1558 movl(ecx, 32752);
1559 andl(ecx, edx);
1560 cmpl(ecx, 32752);
1561 jcc(Assembler::equal, L_2TAG_PACKET_45_0_2);
1562 andl(eax, 32752);
1563 subl(eax, 16368);
1564 xorl(edx, eax);
1565 testl(edx, 32768);
1566 jcc(Assembler::notEqual, L_2TAG_PACKET_46_0_2);
1567
1568 bind(L_2TAG_PACKET_47_0_2);
1569 movl(eax, 32736);
1570 pinsrw(xmm0, eax, 3);
1571 shrl(tmp1, 16);
1572 orl(eax, tmp1);
1573 pinsrw(xmm1, eax, 3);
1574 mulsd(xmm0, xmm1);
1575
1576 bind(L_2TAG_PACKET_14_0_2);
1577 movl(Address(rsp, 0), 24);
1578 jmp(L_2TAG_PACKET_17_0_2);
1579
1580 bind(L_2TAG_PACKET_46_0_2);
1581 movl(eax, 16);
1582 pinsrw(xmm0, eax, 3);
1583 mulsd(xmm0, xmm0);
1584 testl(tmp1, INT_MIN);
1585 jcc(Assembler::equal, L_2TAG_PACKET_48_0_2);
1586 mov64(tmp2, 0x8000000000000000);
1587 movdq(xmm2, tmp2);
1588 xorpd(xmm0, xmm2);
1589
1590 bind(L_2TAG_PACKET_48_0_2);
1591 movl(Address(rsp, 0), 25);
1592 jmp(L_2TAG_PACKET_17_0_2);
1593
1594 bind(L_2TAG_PACKET_13_0_2);
1595 pextrw(ecx, xmm5, 3);
1596 pextrw(edx, xmm4, 3);
1597 movl(eax, -1);
1598 andl(ecx, 32752);
1599 subl(ecx, 16368);
1600 andl(edx, 32752);
1601 addl(edx, ecx);
1602 movl(ecx, -31);
1603 sarl(edx, 4);
1604 subl(ecx, edx);
1605 jcc(Assembler::lessEqual, L_2TAG_PACKET_49_0_2);
1606 cmpl(ecx, 20);
1607 jcc(Assembler::above, L_2TAG_PACKET_50_0_2);
1608 shll(eax);
1609
1610 bind(L_2TAG_PACKET_49_0_2);
1611 movdl(xmm0, eax);
1612 psllq(xmm0, 32);
1613 pand(xmm0, xmm5);
1614 subsd(xmm5, xmm0);
1615 addsd(xmm5, xmm1);
1616 mulsd(xmm0, xmm4);
1617 mulsd(xmm5, xmm4);
1618 addsd(xmm0, xmm5);
1619
1620 bind(L_2TAG_PACKET_50_0_2);
1621 jmp(L_2TAG_PACKET_48_0_2);
1622
1623 bind(L_2TAG_PACKET_2_0_2);
1624 movw(ecx, Address(rsp, 22));
1625 movl(edx, INT_MIN);
1626 movdl(xmm1, rdx);
1627 xorpd(xmm7, xmm7);
1628 paddd(xmm0, xmm4);
1629 movdl(edx, xmm0);
1630 psllq(xmm0, 29);
1631 paddq(xmm1, xmm3);
1632 pand(xmm5, xmm1);
1633 andl(ecx, 32752);
1634 cmpl(ecx, 16560);
1635 jcc(Assembler::less, L_2TAG_PACKET_3_0_2);
1636 pand(xmm0, xmm6);
1637 subsd(xmm3, xmm5);
1638 addl(eax, 16351);
1639 shrl(eax, 4);
1640 subl(eax, 1022);
1641 cvtsi2sdl(xmm7, eax);
1642 mulpd(xmm5, xmm0);
1643 lea(r11, ExternalAddress(L_tbl));
1644 movq(xmm4, ExternalAddress(coeff_h)); //0x00000000UL, 0xbfd61a00UL, 0x00000000UL, 0xbf5dabe1UL
1645 mulsd(xmm3, xmm0);
1646 movq(xmm6, ExternalAddress(coeff_h)); //0x00000000UL, 0xbfd61a00UL, 0x00000000UL, 0xbf5dabe1UL
1647 subsd(xmm5, xmm2);
1648 movq(xmm1, ExternalAddress(8 + coeff_h)); //0x00000000UL, 0xbf5dabe1UL
1649 pshufd(xmm2, xmm3, 68);
1650 unpcklpd(xmm5, xmm3);
1651 addsd(xmm3, xmm5);
1652 movq(xmm0, ExternalAddress(8 + coeff_h)); //0x00000000UL, 0xbf5dabe1UL
1653 andl(edx, 16760832);
1654 shrl(edx, 10);
1655 addpd(xmm7, Address(tmp4, edx, Address::times_1, -3648));
1656 mulsd(xmm4, xmm5);
1657 mulsd(xmm0, xmm5);
1658 mulsd(xmm6, xmm2);
1659 mulsd(xmm1, xmm2);
1660 movdqu(xmm2, xmm5);
1661 mulsd(xmm4, xmm5);
1662 addsd(xmm5, xmm0);
1663 movdqu(xmm0, xmm7);
1664 addsd(xmm2, xmm3);
1665 addsd(xmm7, xmm5);
1666 mulsd(xmm6, xmm2);
1667 subsd(xmm0, xmm7);
1668 movdqu(xmm2, xmm7);
1669 addsd(xmm7, xmm4);
1670 addsd(xmm0, xmm5);
1671 subsd(xmm2, xmm7);
1672 addsd(xmm4, xmm2);
1673 pshufd(xmm2, xmm5, 238);
1674 movdqu(xmm5, xmm7);
1675 addsd(xmm7, xmm2);
1676 addsd(xmm4, xmm0);
1677 movdqu(xmm0, ExternalAddress(coeff)); //0x6dc96112UL, 0xbf836578UL, 0xee241472UL, 0xbf9b0301UL
1678 subsd(xmm5, xmm7);
1679 addsd(xmm6, xmm4);
1680 movdqu(xmm4, xmm7);
1681 addsd(xmm5, xmm2);
1682 addsd(xmm7, xmm1);
1683 movdqu(xmm2, ExternalAddress(64 + coeff)); //0x486ececcUL, 0x3fc4635eUL, 0x161bb241UL, 0xbf5dabe1UL
1684 subsd(xmm4, xmm7);
1685 addsd(xmm6, xmm5);
1686 addsd(xmm4, xmm1);
1687 pshufd(xmm5, xmm7, 238);
1688 movapd(xmm1, xmm7);
1689 addsd(xmm7, xmm5);
1690 subsd(xmm1, xmm7);
1691 addsd(xmm1, xmm5);
1692 movdqu(xmm5, ExternalAddress(80 + coeff)); //0x9f95985aUL, 0xbfb528dbUL, 0xf8b5787dUL, 0x3ef2531eUL
1693 pshufd(xmm3, xmm3, 68);
1694 addsd(xmm6, xmm4);
1695 addsd(xmm6, xmm1);
1696 movdqu(xmm1, ExternalAddress(32 + coeff)); //0x9f95985aUL, 0xbfb528dbUL, 0xb3841d2aUL, 0xbfd619b6UL
1697 mulpd(xmm0, xmm3);
1698 mulpd(xmm2, xmm3);
1699 pshufd(xmm4, xmm3, 68);
1700 mulpd(xmm3, xmm3);
1701 addpd(xmm0, xmm1);
1702 addpd(xmm5, xmm2);
1703 mulsd(xmm4, xmm3);
1704 movq(xmm2, ExternalAddress(HIGHMASK_LOG_X)); //0xf8000000UL, 0xffffffffUL, 0x00000000UL, 0xfffff800UL
1705 mulpd(xmm3, xmm3);
1706 movq(xmm1, Address(rsp, 16));
1707 movw(ecx, Address(rsp, 22));
1708 mulpd(xmm0, xmm4);
1709 pextrw(eax, xmm7, 3);
1710 mulpd(xmm5, xmm4);
1711 mulpd(xmm0, xmm3);
1712 movq(xmm4, ExternalAddress(8 + HIGHMASK_Y)); //0x00000000UL, 0xffffffffUL
1713 pand(xmm2, xmm7);
1714 addsd(xmm5, xmm6);
1715 subsd(xmm7, xmm2);
1716 addpd(xmm5, xmm0);
1717 andl(eax, 32752);
1718 subl(eax, 16368);
1719 andl(ecx, 32752);
1720 cmpl(ecx, 32752);
1721 jcc(Assembler::equal, L_2TAG_PACKET_45_0_2);
1722 addl(ecx, eax);
1723 cmpl(ecx, 16576);
1724 jcc(Assembler::aboveEqual, L_2TAG_PACKET_51_0_2);
1725 pshufd(xmm0, xmm5, 238);
1726 pand(xmm4, xmm1);
1727 movdqu(xmm3, xmm1);
1728 addsd(xmm5, xmm0);
1729 subsd(xmm1, xmm4);
1730 xorpd(xmm6, xmm6);
1731 movl(edx, 17080);
1732 pinsrw(xmm6, edx, 3);
1733 addsd(xmm7, xmm5);
1734 mulsd(xmm4, xmm2);
1735 mulsd(xmm1, xmm2);
1736 movdqu(xmm5, xmm6);
1737 mulsd(xmm3, xmm7);
1738 addsd(xmm6, xmm4);
1739 addsd(xmm1, xmm3);
1740 movdqu(xmm7, ExternalAddress(e_coeff)); //0xe78a6731UL, 0x3f55d87fUL, 0xd704a0c0UL, 0x3fac6b08UL
1741 movdl(edx, xmm6);
1742 subsd(xmm6, xmm5);
1743 lea(tmp4, ExternalAddress(T_exp));
1744 movdqu(xmm3, ExternalAddress(16 + e_coeff)); //0x6fba4e77UL, 0x3f83b2abUL, 0xff82c58fUL, 0x3fcebfbdUL
1745 movq(xmm2, ExternalAddress(32 + e_coeff)); //0xfefa39efUL, 0x3fe62e42UL, 0x00000000UL, 0x00000000UL
1746 subsd(xmm4, xmm6);
1747 movl(ecx, edx);
1748 andl(edx, 255);
1749 addl(edx, edx);
1750 movdqu(xmm5, Address(tmp4, edx, Address::times_8, 0));
1751 addsd(xmm4, xmm1);
1752 pextrw(edx, xmm6, 3);
1753 shrl(ecx, 8);
1754 movl(eax, ecx);
1755 shrl(ecx, 1);
1756 subl(eax, ecx);
1757 shll(ecx, 20);
1758 movdl(xmm6, ecx);
1759 pshufd(xmm0, xmm4, 68);
1760 pshufd(xmm1, xmm4, 68);
1761 mulpd(xmm0, xmm0);
1762 mulpd(xmm7, xmm1);
1763 pshufd(xmm6, xmm6, 17);
1764 mulsd(xmm2, xmm4);
1765 andl(edx, 32767);
1766 cmpl(edx, 16529);
1767 jcc(Assembler::above, L_2TAG_PACKET_12_0_2);
1768 mulsd(xmm0, xmm0);
1769 paddd(xmm5, xmm6);
1770 addpd(xmm3, xmm7);
1771 mulsd(xmm2, xmm5);
1772 pshufd(xmm6, xmm5, 238);
1773 mulpd(xmm0, xmm3);
1774 addsd(xmm2, xmm6);
1775 pshufd(xmm3, xmm0, 238);
1776 addl(eax, 1023);
1777 shll(eax, 20);
1778 orl(eax, tmp1);
1779 movdl(xmm4, eax);
1780 mulsd(xmm0, xmm5);
1781 mulsd(xmm3, xmm5);
1782 addsd(xmm0, xmm2);
1783 psllq(xmm4, 32);
1784 addsd(xmm0, xmm3);
1785 movdqu(xmm1, xmm0);
1786 addsd(xmm0, xmm5);
1787 mulsd(xmm0, xmm4);
1788 pextrw(eax, xmm0, 3);
1789 andl(eax, 32752);
1790 jcc(Assembler::equal, L_2TAG_PACKET_13_0_2);
1791 cmpl(eax, 32752);
1792 jcc(Assembler::equal, L_2TAG_PACKET_14_0_2);
1793
1794 bind(L_2TAG_PACKET_52_0_2);
1795 jmp(B1_5);
1796
1797 bind(L_2TAG_PACKET_45_0_2);
1798 movq(xmm0, Address(rsp, 8));
1799 xorpd(xmm2, xmm2);
1800 movl(eax, 49136);
1801 pinsrw(xmm2, eax, 3);
1802 addsd(xmm2, xmm0);
1803 pextrw(eax, xmm2, 3);
1804 cmpl(eax, 0);
1805 jcc(Assembler::notEqual, L_2TAG_PACKET_53_0_2);
1806 xorpd(xmm0, xmm0);
1807 movl(eax, 32760);
1808 pinsrw(xmm0, eax, 3);
1809 jmp(B1_5);
1810
1811 bind(L_2TAG_PACKET_53_0_2);
1812 movq(xmm1, Address(rsp, 16));
1813 movdl(edx, xmm1);
1814 movdqu(xmm3, xmm1);
1815 psrlq(xmm3, 20);
1816 movdl(ecx, xmm3);
1817 orl(ecx, edx);
1818 jcc(Assembler::equal, L_2TAG_PACKET_54_0_2);
1819 addsd(xmm1, xmm1);
1820 movdqu(xmm0, xmm1);
1821 jmp(B1_5);
1822
1823 bind(L_2TAG_PACKET_51_0_2);
1824 pextrw(eax, xmm1, 3);
1825 pextrw(ecx, xmm2, 3);
1826 xorl(eax, ecx);
1827 testl(eax, 32768);
1828 jcc(Assembler::equal, L_2TAG_PACKET_47_0_2);
1829 jmp(L_2TAG_PACKET_46_0_2);
1830
1831 bind(L_2TAG_PACKET_54_0_2);
1832 pextrw(eax, xmm0, 3);
1833 andl(eax, 32752);
1834 pextrw(edx, xmm1, 3);
1835 xorpd(xmm0, xmm0);
1836 subl(eax, 16368);
1837 xorl(eax, edx);
1838 testl(eax, 32768);
1839 jcc(Assembler::equal, L_2TAG_PACKET_55_0_2);
1840 jmp(B1_5);
1841
1842 bind(L_2TAG_PACKET_55_0_2);
1843 movl(edx, 32752);
1844 pinsrw(xmm0, edx, 3);
1845 jmp(B1_5);
1846
1847 bind(L_2TAG_PACKET_17_0_2);
1848 movq(Address(rsp, 24), xmm0);
1849
1850 bind(B1_3);
1851 movq(xmm0, Address(rsp, 24));
1852
1853 bind(L_2TAG_PACKET_56_0_2);
1854
1855 bind(B1_5);
1856 addq(rsp, 40);
1857}
1858#else
1859// The 32 bit code is at most SSE2 compliant
1860ATTRIBUTE_ALIGNED(16) juint _static_const_table_pow[] =
1861{
1862 0x00000000UL, 0xbfd61a00UL, 0x00000000UL, 0xbf5dabe1UL, 0xf8000000UL,
1863 0xffffffffUL, 0x00000000UL, 0xfffff800UL, 0x00000000UL, 0x3ff00000UL,
1864 0x00000000UL, 0x00000000UL, 0x20000000UL, 0x3feff00aUL, 0x96621f95UL,
1865 0x3e5b1856UL, 0xe0000000UL, 0x3fefe019UL, 0xe5916f9eUL, 0xbe325278UL,
1866 0x00000000UL, 0x3fefd02fUL, 0x859a1062UL, 0x3e595fb7UL, 0xc0000000UL,
1867 0x3fefc049UL, 0xb245f18fUL, 0xbe529c38UL, 0xe0000000UL, 0x3fefb069UL,
1868 0xad2880a7UL, 0xbe501230UL, 0x60000000UL, 0x3fefa08fUL, 0xc8e72420UL,
1869 0x3e597bd1UL, 0x80000000UL, 0x3fef90baUL, 0xc30c4500UL, 0xbe5d6c75UL,
1870 0xe0000000UL, 0x3fef80eaUL, 0x02c63f43UL, 0x3e2e1318UL, 0xc0000000UL,
1871 0x3fef7120UL, 0xb3d4ccccUL, 0xbe44c52aUL, 0x00000000UL, 0x3fef615cUL,
1872 0xdbd91397UL, 0xbe4e7d6cUL, 0xa0000000UL, 0x3fef519cUL, 0x65c5cd68UL,
1873 0xbe522dc8UL, 0xa0000000UL, 0x3fef41e2UL, 0x46d1306cUL, 0xbe5a840eUL,
1874 0xe0000000UL, 0x3fef322dUL, 0xd2980e94UL, 0x3e5071afUL, 0xa0000000UL,
1875 0x3fef227eUL, 0x773abadeUL, 0xbe5891e5UL, 0xa0000000UL, 0x3fef12d4UL,
1876 0xdc6bf46bUL, 0xbe5cccbeUL, 0xe0000000UL, 0x3fef032fUL, 0xbc7247faUL,
1877 0xbe2bab83UL, 0x80000000UL, 0x3feef390UL, 0xbcaa1e46UL, 0xbe53bb3bUL,
1878 0x60000000UL, 0x3feee3f6UL, 0x5f6c682dUL, 0xbe54c619UL, 0x80000000UL,
1879 0x3feed461UL, 0x5141e368UL, 0xbe4b6d86UL, 0xe0000000UL, 0x3feec4d1UL,
1880 0xec678f76UL, 0xbe369af6UL, 0x80000000UL, 0x3feeb547UL, 0x41301f55UL,
1881 0xbe2d4312UL, 0x60000000UL, 0x3feea5c2UL, 0x676da6bdUL, 0xbe4d8dd0UL,
1882 0x60000000UL, 0x3fee9642UL, 0x57a891c4UL, 0x3e51f991UL, 0xa0000000UL,
1883 0x3fee86c7UL, 0xe4eb491eUL, 0x3e579bf9UL, 0x20000000UL, 0x3fee7752UL,
1884 0xfddc4a2cUL, 0xbe3356e6UL, 0xc0000000UL, 0x3fee67e1UL, 0xd75b5bf1UL,
1885 0xbe449531UL, 0x80000000UL, 0x3fee5876UL, 0xbd423b8eUL, 0x3df54fe4UL,
1886 0x60000000UL, 0x3fee4910UL, 0x330e51b9UL, 0x3e54289cUL, 0x80000000UL,
1887 0x3fee39afUL, 0x8651a95fUL, 0xbe55aad6UL, 0xa0000000UL, 0x3fee2a53UL,
1888 0x5e98c708UL, 0xbe2fc4a9UL, 0xe0000000UL, 0x3fee1afcUL, 0x0989328dUL,
1889 0x3e23958cUL, 0x40000000UL, 0x3fee0babUL, 0xee642abdUL, 0xbe425dd8UL,
1890 0xa0000000UL, 0x3fedfc5eUL, 0xc394d236UL, 0x3e526362UL, 0x20000000UL,
1891 0x3feded17UL, 0xe104aa8eUL, 0x3e4ce247UL, 0xc0000000UL, 0x3fedddd4UL,
1892 0x265a9be4UL, 0xbe5bb77aUL, 0x40000000UL, 0x3fedce97UL, 0x0ecac52fUL,
1893 0x3e4a7cb1UL, 0xe0000000UL, 0x3fedbf5eUL, 0x124cb3b8UL, 0x3e257024UL,
1894 0x80000000UL, 0x3fedb02bUL, 0xe6d4febeUL, 0xbe2033eeUL, 0x20000000UL,
1895 0x3feda0fdUL, 0x39cca00eUL, 0xbe3ddabcUL, 0xc0000000UL, 0x3fed91d3UL,
1896 0xef8a552aUL, 0xbe543390UL, 0x40000000UL, 0x3fed82afUL, 0xb8e85204UL,
1897 0x3e513850UL, 0xe0000000UL, 0x3fed738fUL, 0x3d59fe08UL, 0xbe5db728UL,
1898 0x40000000UL, 0x3fed6475UL, 0x3aa7ead1UL, 0x3e58804bUL, 0xc0000000UL,
1899 0x3fed555fUL, 0xf8a35ba9UL, 0xbe5298b0UL, 0x00000000UL, 0x3fed464fUL,
1900 0x9a88dd15UL, 0x3e5a8cdbUL, 0x40000000UL, 0x3fed3743UL, 0xb0b0a190UL,
1901 0x3e598635UL, 0x80000000UL, 0x3fed283cUL, 0xe2113295UL, 0xbe5c1119UL,
1902 0x80000000UL, 0x3fed193aUL, 0xafbf1728UL, 0xbe492e9cUL, 0x60000000UL,
1903 0x3fed0a3dUL, 0xe4a4ccf3UL, 0x3e19b90eUL, 0x20000000UL, 0x3fecfb45UL,
1904 0xba3cbeb8UL, 0x3e406b50UL, 0xc0000000UL, 0x3fecec51UL, 0x110f7dddUL,
1905 0x3e0d6806UL, 0x40000000UL, 0x3fecdd63UL, 0x7dd7d508UL, 0xbe5a8943UL,
1906 0x80000000UL, 0x3fecce79UL, 0x9b60f271UL, 0xbe50676aUL, 0x80000000UL,
1907 0x3fecbf94UL, 0x0b9ad660UL, 0x3e59174fUL, 0x60000000UL, 0x3fecb0b4UL,
1908 0x00823d9cUL, 0x3e5bbf72UL, 0x20000000UL, 0x3feca1d9UL, 0x38a6ec89UL,
1909 0xbe4d38f9UL, 0x80000000UL, 0x3fec9302UL, 0x3a0b7d8eUL, 0x3e53dbfdUL,
1910 0xc0000000UL, 0x3fec8430UL, 0xc6826b34UL, 0xbe27c5c9UL, 0xc0000000UL,
1911 0x3fec7563UL, 0x0c706381UL, 0xbe593653UL, 0x60000000UL, 0x3fec669bUL,
1912 0x7df34ec7UL, 0x3e461ab5UL, 0xe0000000UL, 0x3fec57d7UL, 0x40e5e7e8UL,
1913 0xbe5c3daeUL, 0x00000000UL, 0x3fec4919UL, 0x5602770fUL, 0xbe55219dUL,
1914 0xc0000000UL, 0x3fec3a5eUL, 0xec7911ebUL, 0x3e5a5d25UL, 0x60000000UL,
1915 0x3fec2ba9UL, 0xb39ea225UL, 0xbe53c00bUL, 0x80000000UL, 0x3fec1cf8UL,
1916 0x967a212eUL, 0x3e5a8ddfUL, 0x60000000UL, 0x3fec0e4cUL, 0x580798bdUL,
1917 0x3e5f53abUL, 0x00000000UL, 0x3febffa5UL, 0xb8282df6UL, 0xbe46b874UL,
1918 0x20000000UL, 0x3febf102UL, 0xe33a6729UL, 0x3e54963fUL, 0x00000000UL,
1919 0x3febe264UL, 0x3b53e88aUL, 0xbe3adce1UL, 0x60000000UL, 0x3febd3caUL,
1920 0xc2585084UL, 0x3e5cde9fUL, 0x80000000UL, 0x3febc535UL, 0xa335c5eeUL,
1921 0xbe39fd9cUL, 0x20000000UL, 0x3febb6a5UL, 0x7325b04dUL, 0x3e42ba15UL,
1922 0x60000000UL, 0x3feba819UL, 0x1564540fUL, 0x3e3a9f35UL, 0x40000000UL,
1923 0x3feb9992UL, 0x83fff592UL, 0xbe5465ceUL, 0xa0000000UL, 0x3feb8b0fUL,
1924 0xb9da63d3UL, 0xbe4b1a0aUL, 0x80000000UL, 0x3feb7c91UL, 0x6d6f1ea4UL,
1925 0x3e557657UL, 0x00000000UL, 0x3feb6e18UL, 0x5e80a1bfUL, 0x3e4ddbb6UL,
1926 0x00000000UL, 0x3feb5fa3UL, 0x1c9eacb5UL, 0x3e592877UL, 0xa0000000UL,
1927 0x3feb5132UL, 0x6d40beb3UL, 0xbe51858cUL, 0xa0000000UL, 0x3feb42c6UL,
1928 0xd740c67bUL, 0x3e427ad2UL, 0x40000000UL, 0x3feb345fUL, 0xa3e0cceeUL,
1929 0xbe5c2fc4UL, 0x40000000UL, 0x3feb25fcUL, 0x8e752b50UL, 0xbe3da3c2UL,
1930 0xc0000000UL, 0x3feb179dUL, 0xa892e7deUL, 0x3e1fb481UL, 0xc0000000UL,
1931 0x3feb0943UL, 0x21ed71e9UL, 0xbe365206UL, 0x20000000UL, 0x3feafaeeUL,
1932 0x0e1380a3UL, 0x3e5c5b7bUL, 0x20000000UL, 0x3feaec9dUL, 0x3c3d640eUL,
1933 0xbe5dbbd0UL, 0x60000000UL, 0x3feade50UL, 0x8f97a715UL, 0x3e3a8ec5UL,
1934 0x20000000UL, 0x3fead008UL, 0x23ab2839UL, 0x3e2fe98aUL, 0x40000000UL,
1935 0x3feac1c4UL, 0xf4bbd50fUL, 0x3e54d8f6UL, 0xe0000000UL, 0x3feab384UL,
1936 0x14757c4dUL, 0xbe48774cUL, 0xc0000000UL, 0x3feaa549UL, 0x7c7b0eeaUL,
1937 0x3e5b51bbUL, 0x20000000UL, 0x3fea9713UL, 0xf56f7013UL, 0x3e386200UL,
1938 0xe0000000UL, 0x3fea88e0UL, 0xbe428ebeUL, 0xbe514af5UL, 0xe0000000UL,
1939 0x3fea7ab2UL, 0x8d0e4496UL, 0x3e4f9165UL, 0x60000000UL, 0x3fea6c89UL,
1940 0xdbacc5d5UL, 0xbe5c063bUL, 0x20000000UL, 0x3fea5e64UL, 0x3f19d970UL,
1941 0xbe5a0c8cUL, 0x20000000UL, 0x3fea5043UL, 0x09ea3e6bUL, 0x3e5065dcUL,
1942 0x80000000UL, 0x3fea4226UL, 0x78df246cUL, 0x3e5e05f6UL, 0x40000000UL,
1943 0x3fea340eUL, 0x4057d4a0UL, 0x3e431b2bUL, 0x40000000UL, 0x3fea25faUL,
1944 0x82867bb5UL, 0x3e4b76beUL, 0xa0000000UL, 0x3fea17eaUL, 0x9436f40aUL,
1945 0xbe5aad39UL, 0x20000000UL, 0x3fea09dfUL, 0x4b5253b3UL, 0x3e46380bUL,
1946 0x00000000UL, 0x3fe9fbd8UL, 0x8fc52466UL, 0xbe386f9bUL, 0x20000000UL,
1947 0x3fe9edd5UL, 0x22d3f344UL, 0xbe538347UL, 0x60000000UL, 0x3fe9dfd6UL,
1948 0x1ac33522UL, 0x3e5dbc53UL, 0x00000000UL, 0x3fe9d1dcUL, 0xeabdff1dUL,
1949 0x3e40fc0cUL, 0xe0000000UL, 0x3fe9c3e5UL, 0xafd30e73UL, 0xbe585e63UL,
1950 0xe0000000UL, 0x3fe9b5f3UL, 0xa52f226aUL, 0xbe43e8f9UL, 0x20000000UL,
1951 0x3fe9a806UL, 0xecb8698dUL, 0xbe515b36UL, 0x80000000UL, 0x3fe99a1cUL,
1952 0xf2b4e89dUL, 0x3e48b62bUL, 0x20000000UL, 0x3fe98c37UL, 0x7c9a88fbUL,
1953 0x3e44414cUL, 0x00000000UL, 0x3fe97e56UL, 0xda015741UL, 0xbe5d13baUL,
1954 0xe0000000UL, 0x3fe97078UL, 0x5fdace06UL, 0x3e51b947UL, 0x00000000UL,
1955 0x3fe962a0UL, 0x956ca094UL, 0x3e518785UL, 0x40000000UL, 0x3fe954cbUL,
1956 0x01164c1dUL, 0x3e5d5b57UL, 0xc0000000UL, 0x3fe946faUL, 0xe63b3767UL,
1957 0xbe4f84e7UL, 0x40000000UL, 0x3fe9392eUL, 0xe57cc2a9UL, 0x3e34eda3UL,
1958 0xe0000000UL, 0x3fe92b65UL, 0x8c75b544UL, 0x3e5766a0UL, 0xc0000000UL,
1959 0x3fe91da1UL, 0x37d1d087UL, 0xbe5e2ab1UL, 0x80000000UL, 0x3fe90fe1UL,
1960 0xa953dc20UL, 0x3e5fa1f3UL, 0x80000000UL, 0x3fe90225UL, 0xdbd3f369UL,
1961 0x3e47d6dbUL, 0xa0000000UL, 0x3fe8f46dUL, 0x1c9be989UL, 0xbe5e2b0aUL,
1962 0xa0000000UL, 0x3fe8e6b9UL, 0x3c93d76aUL, 0x3e5c8618UL, 0xe0000000UL,
1963 0x3fe8d909UL, 0x2182fc9aUL, 0xbe41aa9eUL, 0x20000000UL, 0x3fe8cb5eUL,
1964 0xe6b3539dUL, 0xbe530d19UL, 0x60000000UL, 0x3fe8bdb6UL, 0x49e58cc3UL,
1965 0xbe3bb374UL, 0xa0000000UL, 0x3fe8b012UL, 0xa7cfeb8fUL, 0x3e56c412UL,
1966 0x00000000UL, 0x3fe8a273UL, 0x8d52bc19UL, 0x3e1429b8UL, 0x60000000UL,
1967 0x3fe894d7UL, 0x4dc32c6cUL, 0xbe48604cUL, 0xc0000000UL, 0x3fe8873fUL,
1968 0x0c868e56UL, 0xbe564ee5UL, 0x00000000UL, 0x3fe879acUL, 0x56aee828UL,
1969 0x3e5e2fd8UL, 0x60000000UL, 0x3fe86c1cUL, 0x7ceab8ecUL, 0x3e493365UL,
1970 0xc0000000UL, 0x3fe85e90UL, 0x78d4dadcUL, 0xbe4f7f25UL, 0x00000000UL,
1971 0x3fe85109UL, 0x0ccd8280UL, 0x3e31e7a2UL, 0x40000000UL, 0x3fe84385UL,
1972 0x34ba4e15UL, 0x3e328077UL, 0x80000000UL, 0x3fe83605UL, 0xa670975aUL,
1973 0xbe53eee5UL, 0xa0000000UL, 0x3fe82889UL, 0xf61b77b2UL, 0xbe43a20aUL,
1974 0xa0000000UL, 0x3fe81b11UL, 0x13e6643bUL, 0x3e5e5fe5UL, 0xc0000000UL,
1975 0x3fe80d9dUL, 0x82cc94e8UL, 0xbe5ff1f9UL, 0xa0000000UL, 0x3fe8002dUL,
1976 0x8a0c9c5dUL, 0xbe42b0e7UL, 0x60000000UL, 0x3fe7f2c1UL, 0x22a16f01UL,
1977 0x3e5d9ea0UL, 0x20000000UL, 0x3fe7e559UL, 0xc38cd451UL, 0x3e506963UL,
1978 0xc0000000UL, 0x3fe7d7f4UL, 0x9902bc71UL, 0x3e4503d7UL, 0x40000000UL,
1979 0x3fe7ca94UL, 0xdef2a3c0UL, 0x3e3d98edUL, 0xa0000000UL, 0x3fe7bd37UL,
1980 0xed49abb0UL, 0x3e24c1ffUL, 0xe0000000UL, 0x3fe7afdeUL, 0xe3b0be70UL,
1981 0xbe40c467UL, 0x00000000UL, 0x3fe7a28aUL, 0xaf9f193cUL, 0xbe5dff6cUL,
1982 0xe0000000UL, 0x3fe79538UL, 0xb74cf6b6UL, 0xbe258ed0UL, 0xa0000000UL,
1983 0x3fe787ebUL, 0x1d9127c7UL, 0x3e345fb0UL, 0x40000000UL, 0x3fe77aa2UL,
1984 0x1028c21dUL, 0xbe4619bdUL, 0xa0000000UL, 0x3fe76d5cUL, 0x7cb0b5e4UL,
1985 0x3e40f1a2UL, 0xe0000000UL, 0x3fe7601aUL, 0x2b1bc4adUL, 0xbe32e8bbUL,
1986 0xe0000000UL, 0x3fe752dcUL, 0x6839f64eUL, 0x3e41f57bUL, 0xc0000000UL,
1987 0x3fe745a2UL, 0xc4121f7eUL, 0xbe52c40aUL, 0x60000000UL, 0x3fe7386cUL,
1988 0xd6852d72UL, 0xbe5c4e6bUL, 0xc0000000UL, 0x3fe72b39UL, 0x91d690f7UL,
1989 0xbe57f88fUL, 0xe0000000UL, 0x3fe71e0aUL, 0x627a2159UL, 0xbe4425d5UL,
1990 0xc0000000UL, 0x3fe710dfUL, 0x50a54033UL, 0x3e422b7eUL, 0x60000000UL,
1991 0x3fe703b8UL, 0x3b0b5f91UL, 0x3e5d3857UL, 0xe0000000UL, 0x3fe6f694UL,
1992 0x84d628a2UL, 0xbe51f090UL, 0x00000000UL, 0x3fe6e975UL, 0x306d8894UL,
1993 0xbe414d83UL, 0xe0000000UL, 0x3fe6dc58UL, 0x30bf24aaUL, 0xbe4650caUL,
1994 0x80000000UL, 0x3fe6cf40UL, 0xd4628d69UL, 0xbe5db007UL, 0xc0000000UL,
1995 0x3fe6c22bUL, 0xa2aae57bUL, 0xbe31d279UL, 0xc0000000UL, 0x3fe6b51aUL,
1996 0x860edf7eUL, 0xbe2d4c4aUL, 0x80000000UL, 0x3fe6a80dUL, 0xf3559341UL,
1997 0xbe5f7e98UL, 0xe0000000UL, 0x3fe69b03UL, 0xa885899eUL, 0xbe5c2011UL,
1998 0xe0000000UL, 0x3fe68dfdUL, 0x2bdc6d37UL, 0x3e224a82UL, 0xa0000000UL,
1999 0x3fe680fbUL, 0xc12ad1b9UL, 0xbe40cf56UL, 0x00000000UL, 0x3fe673fdUL,
2000 0x1bcdf659UL, 0xbdf52f2dUL, 0x00000000UL, 0x3fe66702UL, 0x5df10408UL,
2001 0x3e5663e0UL, 0xc0000000UL, 0x3fe65a0aUL, 0xa4070568UL, 0xbe40b12fUL,
2002 0x00000000UL, 0x3fe64d17UL, 0x71c54c47UL, 0x3e5f5e8bUL, 0x00000000UL,
2003 0x3fe64027UL, 0xbd4b7e83UL, 0x3e42ead6UL, 0xa0000000UL, 0x3fe6333aUL,
2004 0x61598bd2UL, 0xbe4c48d4UL, 0xc0000000UL, 0x3fe62651UL, 0x6f538d61UL,
2005 0x3e548401UL, 0xa0000000UL, 0x3fe6196cUL, 0x14344120UL, 0xbe529af6UL,
2006 0x00000000UL, 0x3fe60c8bUL, 0x5982c587UL, 0xbe3e1e4fUL, 0x00000000UL,
2007 0x3fe5ffadUL, 0xfe51d4eaUL, 0xbe4c897aUL, 0x80000000UL, 0x3fe5f2d2UL,
2008 0xfd46ebe1UL, 0x3e552e00UL, 0xa0000000UL, 0x3fe5e5fbUL, 0xa4695699UL,
2009 0x3e5ed471UL, 0x60000000UL, 0x3fe5d928UL, 0x80d118aeUL, 0x3e456b61UL,
2010 0xa0000000UL, 0x3fe5cc58UL, 0x304c330bUL, 0x3e54dc29UL, 0x80000000UL,
2011 0x3fe5bf8cUL, 0x0af2dedfUL, 0xbe3aa9bdUL, 0xe0000000UL, 0x3fe5b2c3UL,
2012 0x15fc9258UL, 0xbe479a37UL, 0xc0000000UL, 0x3fe5a5feUL, 0x9292c7eaUL,
2013 0x3e188650UL, 0x20000000UL, 0x3fe5993dUL, 0x33b4d380UL, 0x3e5d6d93UL,
2014 0x20000000UL, 0x3fe58c7fUL, 0x02fd16c7UL, 0x3e2fe961UL, 0xa0000000UL,
2015 0x3fe57fc4UL, 0x4a05edb6UL, 0xbe4d55b4UL, 0xa0000000UL, 0x3fe5730dUL,
2016 0x3d443abbUL, 0xbe5e6954UL, 0x00000000UL, 0x3fe5665aUL, 0x024acfeaUL,
2017 0x3e50e61bUL, 0x00000000UL, 0x3fe559aaUL, 0xcc9edd09UL, 0xbe325403UL,
2018 0x60000000UL, 0x3fe54cfdUL, 0x1fe26950UL, 0x3e5d500eUL, 0x60000000UL,
2019 0x3fe54054UL, 0x6c5ae164UL, 0xbe4a79b4UL, 0xc0000000UL, 0x3fe533aeUL,
2020 0x154b0287UL, 0xbe401571UL, 0xa0000000UL, 0x3fe5270cUL, 0x0673f401UL,
2021 0xbe56e56bUL, 0xe0000000UL, 0x3fe51a6dUL, 0x751b639cUL, 0x3e235269UL,
2022 0xa0000000UL, 0x3fe50dd2UL, 0x7c7b2bedUL, 0x3ddec887UL, 0xc0000000UL,
2023 0x3fe5013aUL, 0xafab4e17UL, 0x3e5e7575UL, 0x60000000UL, 0x3fe4f4a6UL,
2024 0x2e308668UL, 0x3e59aed6UL, 0x80000000UL, 0x3fe4e815UL, 0xf33e2a76UL,
2025 0xbe51f184UL, 0xe0000000UL, 0x3fe4db87UL, 0x839f3e3eUL, 0x3e57db01UL,
2026 0xc0000000UL, 0x3fe4cefdUL, 0xa9eda7bbUL, 0x3e535e0fUL, 0x00000000UL,
2027 0x3fe4c277UL, 0x2a8f66a5UL, 0x3e5ce451UL, 0xc0000000UL, 0x3fe4b5f3UL,
2028 0x05192456UL, 0xbe4e8518UL, 0xc0000000UL, 0x3fe4a973UL, 0x4aa7cd1dUL,
2029 0x3e46784aUL, 0x40000000UL, 0x3fe49cf7UL, 0x8e23025eUL, 0xbe5749f2UL,
2030 0x00000000UL, 0x3fe4907eUL, 0x18d30215UL, 0x3e360f39UL, 0x20000000UL,
2031 0x3fe48408UL, 0x63dcf2f3UL, 0x3e5e00feUL, 0xc0000000UL, 0x3fe47795UL,
2032 0x46182d09UL, 0xbe5173d9UL, 0xa0000000UL, 0x3fe46b26UL, 0x8f0e62aaUL,
2033 0xbe48f281UL, 0xe0000000UL, 0x3fe45ebaUL, 0x5775c40cUL, 0xbe56aad4UL,
2034 0x60000000UL, 0x3fe45252UL, 0x0fe25f69UL, 0x3e48bd71UL, 0x40000000UL,
2035 0x3fe445edUL, 0xe9989ec5UL, 0x3e590d97UL, 0x80000000UL, 0x3fe4398bUL,
2036 0xb3d9ffe3UL, 0x3e479dbcUL, 0x20000000UL, 0x3fe42d2dUL, 0x388e4d2eUL,
2037 0xbe5eed80UL, 0xe0000000UL, 0x3fe420d1UL, 0x6f797c18UL, 0x3e554b4cUL,
2038 0x20000000UL, 0x3fe4147aUL, 0x31048bb4UL, 0xbe5b1112UL, 0x80000000UL,
2039 0x3fe40825UL, 0x2efba4f9UL, 0x3e48ebc7UL, 0x40000000UL, 0x3fe3fbd4UL,
2040 0x50201119UL, 0x3e40b701UL, 0x40000000UL, 0x3fe3ef86UL, 0x0a4db32cUL,
2041 0x3e551de8UL, 0xa0000000UL, 0x3fe3e33bUL, 0x0c9c148bUL, 0xbe50c1f6UL,
2042 0x20000000UL, 0x3fe3d6f4UL, 0xc9129447UL, 0x3e533fa0UL, 0x00000000UL,
2043 0x3fe3cab0UL, 0xaae5b5a0UL, 0xbe22b68eUL, 0x20000000UL, 0x3fe3be6fUL,
2044 0x02305e8aUL, 0xbe54fc08UL, 0x60000000UL, 0x3fe3b231UL, 0x7f908258UL,
2045 0x3e57dc05UL, 0x00000000UL, 0x3fe3a5f7UL, 0x1a09af78UL, 0x3e08038bUL,
2046 0xe0000000UL, 0x3fe399bfUL, 0x490643c1UL, 0xbe5dbe42UL, 0xe0000000UL,
2047 0x3fe38d8bUL, 0x5e8ad724UL, 0xbe3c2b72UL, 0x20000000UL, 0x3fe3815bUL,
2048 0xc67196b6UL, 0x3e1713cfUL, 0xa0000000UL, 0x3fe3752dUL, 0x6182e429UL,
2049 0xbe3ec14cUL, 0x40000000UL, 0x3fe36903UL, 0xab6eb1aeUL, 0x3e5a2cc5UL,
2050 0x40000000UL, 0x3fe35cdcUL, 0xfe5dc064UL, 0xbe5c5878UL, 0x40000000UL,
2051 0x3fe350b8UL, 0x0ba6b9e4UL, 0x3e51619bUL, 0x80000000UL, 0x3fe34497UL,
2052 0x857761aaUL, 0x3e5fff53UL, 0x00000000UL, 0x3fe3387aUL, 0xf872d68cUL,
2053 0x3e484f4dUL, 0xa0000000UL, 0x3fe32c5fUL, 0x087e97c2UL, 0x3e52842eUL,
2054 0x80000000UL, 0x3fe32048UL, 0x73d6d0c0UL, 0xbe503edfUL, 0x80000000UL,
2055 0x3fe31434UL, 0x0c1456a1UL, 0xbe5f72adUL, 0xa0000000UL, 0x3fe30823UL,
2056 0x83a1a4d5UL, 0xbe5e65ccUL, 0xe0000000UL, 0x3fe2fc15UL, 0x855a7390UL,
2057 0xbe506438UL, 0x40000000UL, 0x3fe2f00bUL, 0xa2898287UL, 0x3e3d22a2UL,
2058 0xe0000000UL, 0x3fe2e403UL, 0x8b56f66fUL, 0xbe5aa5fdUL, 0x80000000UL,
2059 0x3fe2d7ffUL, 0x52db119aUL, 0x3e3a2e3dUL, 0x60000000UL, 0x3fe2cbfeUL,
2060 0xe2ddd4c0UL, 0xbe586469UL, 0x40000000UL, 0x3fe2c000UL, 0x6b01bf10UL,
2061 0x3e352b9dUL, 0x40000000UL, 0x3fe2b405UL, 0xb07a1cdfUL, 0x3e5c5cdaUL,
2062 0x80000000UL, 0x3fe2a80dUL, 0xc7b5f868UL, 0xbe5668b3UL, 0xc0000000UL,
2063 0x3fe29c18UL, 0x185edf62UL, 0xbe563d66UL, 0x00000000UL, 0x3fe29027UL,
2064 0xf729e1ccUL, 0x3e59a9a0UL, 0x80000000UL, 0x3fe28438UL, 0x6433c727UL,
2065 0xbe43cc89UL, 0x00000000UL, 0x3fe2784dUL, 0x41782631UL, 0xbe30750cUL,
2066 0xa0000000UL, 0x3fe26c64UL, 0x914911b7UL, 0xbe58290eUL, 0x40000000UL,
2067 0x3fe2607fUL, 0x3dcc73e1UL, 0xbe4269cdUL, 0x00000000UL, 0x3fe2549dUL,
2068 0x2751bf70UL, 0xbe5a6998UL, 0xc0000000UL, 0x3fe248bdUL, 0x4248b9fbUL,
2069 0xbe4ddb00UL, 0x80000000UL, 0x3fe23ce1UL, 0xf35cf82fUL, 0x3e561b71UL,
2070 0x60000000UL, 0x3fe23108UL, 0x8e481a2dUL, 0x3e518fb9UL, 0x60000000UL,
2071 0x3fe22532UL, 0x5ab96edcUL, 0xbe5fafc5UL, 0x40000000UL, 0x3fe2195fUL,
2072 0x80943911UL, 0xbe07f819UL, 0x40000000UL, 0x3fe20d8fUL, 0x386f2d6cUL,
2073 0xbe54ba8bUL, 0x40000000UL, 0x3fe201c2UL, 0xf29664acUL, 0xbe5eb815UL,
2074 0x20000000UL, 0x3fe1f5f8UL, 0x64f03390UL, 0x3e5e320cUL, 0x20000000UL,
2075 0x3fe1ea31UL, 0x747ff696UL, 0x3e5ef0a5UL, 0x40000000UL, 0x3fe1de6dUL,
2076 0x3e9ceb51UL, 0xbe5f8d27UL, 0x20000000UL, 0x3fe1d2acUL, 0x4ae0b55eUL,
2077 0x3e5faa21UL, 0x20000000UL, 0x3fe1c6eeUL, 0x28569a5eUL, 0x3e598a4fUL,
2078 0x20000000UL, 0x3fe1bb33UL, 0x54b33e07UL, 0x3e46130aUL, 0x20000000UL,
2079 0x3fe1af7bUL, 0x024f1078UL, 0xbe4dbf93UL, 0x00000000UL, 0x3fe1a3c6UL,
2080 0xb0783bfaUL, 0x3e419248UL, 0xe0000000UL, 0x3fe19813UL, 0x2f02b836UL,
2081 0x3e4e02b7UL, 0xc0000000UL, 0x3fe18c64UL, 0x28dec9d4UL, 0x3e09064fUL,
2082 0x80000000UL, 0x3fe180b8UL, 0x45cbf406UL, 0x3e5b1f46UL, 0x40000000UL,
2083 0x3fe1750fUL, 0x03d9964cUL, 0x3e5b0a79UL, 0x00000000UL, 0x3fe16969UL,
2084 0x8b5b882bUL, 0xbe238086UL, 0xa0000000UL, 0x3fe15dc5UL, 0x73bad6f8UL,
2085 0xbdf1fca4UL, 0x20000000UL, 0x3fe15225UL, 0x5385769cUL, 0x3e5e8d76UL,
2086 0xa0000000UL, 0x3fe14687UL, 0x1676dc6bUL, 0x3e571d08UL, 0x20000000UL,
2087 0x3fe13aedUL, 0xa8c41c7fUL, 0xbe598a25UL, 0x60000000UL, 0x3fe12f55UL,
2088 0xc4e1aaf0UL, 0x3e435277UL, 0xa0000000UL, 0x3fe123c0UL, 0x403638e1UL,
2089 0xbe21aa7cUL, 0xc0000000UL, 0x3fe1182eUL, 0x557a092bUL, 0xbdd0116bUL,
2090 0xc0000000UL, 0x3fe10c9fUL, 0x7d779f66UL, 0x3e4a61baUL, 0xc0000000UL,
2091 0x3fe10113UL, 0x2b09c645UL, 0xbe5d586eUL, 0x20000000UL, 0x3fe0ea04UL,
2092 0xea2cad46UL, 0x3e5aa97cUL, 0x20000000UL, 0x3fe0d300UL, 0x23190e54UL,
2093 0x3e50f1a7UL, 0xa0000000UL, 0x3fe0bc07UL, 0x1379a5a6UL, 0xbe51619dUL,
2094 0x60000000UL, 0x3fe0a51aUL, 0x926a3d4aUL, 0x3e5cf019UL, 0xa0000000UL,
2095 0x3fe08e38UL, 0xa8c24358UL, 0x3e35241eUL, 0x20000000UL, 0x3fe07762UL,
2096 0x24317e7aUL, 0x3e512cfaUL, 0x00000000UL, 0x3fe06097UL, 0xfd9cf274UL,
2097 0xbe55bef3UL, 0x00000000UL, 0x3fe049d7UL, 0x3689b49dUL, 0xbe36d26dUL,
2098 0x40000000UL, 0x3fe03322UL, 0xf72ef6c4UL, 0xbe54cd08UL, 0xa0000000UL,
2099 0x3fe01c78UL, 0x23702d2dUL, 0xbe5900bfUL, 0x00000000UL, 0x3fe005daUL,
2100 0x3f59c14cUL, 0x3e57d80bUL, 0x40000000UL, 0x3fdfde8dUL, 0xad67766dUL,
2101 0xbe57fad4UL, 0x40000000UL, 0x3fdfb17cUL, 0x644f4ae7UL, 0x3e1ee43bUL,
2102 0x40000000UL, 0x3fdf8481UL, 0x903234d2UL, 0x3e501a86UL, 0x40000000UL,
2103 0x3fdf579cUL, 0xafe9e509UL, 0xbe267c3eUL, 0x00000000UL, 0x3fdf2acdUL,
2104 0xb7dfda0bUL, 0xbe48149bUL, 0x40000000UL, 0x3fdefe13UL, 0x3b94305eUL,
2105 0x3e5f4ea7UL, 0x80000000UL, 0x3fded16fUL, 0x5d95da61UL, 0xbe55c198UL,
2106 0x00000000UL, 0x3fdea4e1UL, 0x406960c9UL, 0xbdd99a19UL, 0x00000000UL,
2107 0x3fde7868UL, 0xd22f3539UL, 0x3e470c78UL, 0x80000000UL, 0x3fde4c04UL,
2108 0x83eec535UL, 0xbe3e1232UL, 0x40000000UL, 0x3fde1fb6UL, 0x3dfbffcbUL,
2109 0xbe4b7d71UL, 0x40000000UL, 0x3fddf37dUL, 0x7e1be4e0UL, 0xbe5b8f8fUL,
2110 0x40000000UL, 0x3fddc759UL, 0x46dae887UL, 0xbe350458UL, 0x80000000UL,
2111 0x3fdd9b4aUL, 0xed6ecc49UL, 0xbe5f0045UL, 0x80000000UL, 0x3fdd6f50UL,
2112 0x2e9e883cUL, 0x3e2915daUL, 0x80000000UL, 0x3fdd436bUL, 0xf0bccb32UL,
2113 0x3e4a68c9UL, 0x80000000UL, 0x3fdd179bUL, 0x9bbfc779UL, 0xbe54a26aUL,
2114 0x00000000UL, 0x3fdcebe0UL, 0x7cea33abUL, 0x3e43c6b7UL, 0x40000000UL,
2115 0x3fdcc039UL, 0xe740fd06UL, 0x3e5526c2UL, 0x40000000UL, 0x3fdc94a7UL,
2116 0x9eadeb1aUL, 0xbe396d8dUL, 0xc0000000UL, 0x3fdc6929UL, 0xf0a8f95aUL,
2117 0xbe5c0ab2UL, 0x80000000UL, 0x3fdc3dc0UL, 0x6ee2693bUL, 0x3e0992e6UL,
2118 0xc0000000UL, 0x3fdc126bUL, 0x5ac6b581UL, 0xbe2834b6UL, 0x40000000UL,
2119 0x3fdbe72bUL, 0x8cc226ffUL, 0x3e3596a6UL, 0x00000000UL, 0x3fdbbbffUL,
2120 0xf92a74bbUL, 0x3e3c5813UL, 0x00000000UL, 0x3fdb90e7UL, 0x479664c0UL,
2121 0xbe50d644UL, 0x00000000UL, 0x3fdb65e3UL, 0x5004975bUL, 0xbe55258fUL,
2122 0x00000000UL, 0x3fdb3af3UL, 0xe4b23194UL, 0xbe588407UL, 0xc0000000UL,
2123 0x3fdb1016UL, 0xe65d4d0aUL, 0x3e527c26UL, 0x80000000UL, 0x3fdae54eUL,
2124 0x814fddd6UL, 0x3e5962a2UL, 0x40000000UL, 0x3fdaba9aUL, 0xe19d0913UL,
2125 0xbe562f4eUL, 0x80000000UL, 0x3fda8ff9UL, 0x43cfd006UL, 0xbe4cfdebUL,
2126 0x40000000UL, 0x3fda656cUL, 0x686f0a4eUL, 0x3e5e47a8UL, 0xc0000000UL,
2127 0x3fda3af2UL, 0x7200d410UL, 0x3e5e1199UL, 0xc0000000UL, 0x3fda108cUL,
2128 0xabd2266eUL, 0x3e5ee4d1UL, 0x40000000UL, 0x3fd9e63aUL, 0x396f8f2cUL,
2129 0x3e4dbffbUL, 0x00000000UL, 0x3fd9bbfbUL, 0xe32b25ddUL, 0x3e5c3a54UL,
2130 0x40000000UL, 0x3fd991cfUL, 0x431e4035UL, 0xbe457925UL, 0x80000000UL,
2131 0x3fd967b6UL, 0x7bed3dd3UL, 0x3e40c61dUL, 0x00000000UL, 0x3fd93db1UL,
2132 0xd7449365UL, 0x3e306419UL, 0x80000000UL, 0x3fd913beUL, 0x1746e791UL,
2133 0x3e56fcfcUL, 0x40000000UL, 0x3fd8e9dfUL, 0xf3a9028bUL, 0xbe5041b9UL,
2134 0xc0000000UL, 0x3fd8c012UL, 0x56840c50UL, 0xbe26e20aUL, 0x40000000UL,
2135 0x3fd89659UL, 0x19763102UL, 0xbe51f466UL, 0x80000000UL, 0x3fd86cb2UL,
2136 0x7032de7cUL, 0xbe4d298aUL, 0x80000000UL, 0x3fd8431eUL, 0xdeb39fabUL,
2137 0xbe4361ebUL, 0x40000000UL, 0x3fd8199dUL, 0x5d01cbe0UL, 0xbe5425b3UL,
2138 0x80000000UL, 0x3fd7f02eUL, 0x3ce99aa9UL, 0x3e146fa8UL, 0x80000000UL,
2139 0x3fd7c6d2UL, 0xd1a262b9UL, 0xbe5a1a69UL, 0xc0000000UL, 0x3fd79d88UL,
2140 0x8606c236UL, 0x3e423a08UL, 0x80000000UL, 0x3fd77451UL, 0x8fd1e1b7UL,
2141 0x3e5a6a63UL, 0xc0000000UL, 0x3fd74b2cUL, 0xe491456aUL, 0x3e42c1caUL,
2142 0x40000000UL, 0x3fd7221aUL, 0x4499a6d7UL, 0x3e36a69aUL, 0x00000000UL,
2143 0x3fd6f91aUL, 0x5237df94UL, 0xbe0f8f02UL, 0x00000000UL, 0x3fd6d02cUL,
2144 0xb6482c6eUL, 0xbe5abcf7UL, 0x00000000UL, 0x3fd6a750UL, 0x1919fd61UL,
2145 0xbe57ade2UL, 0x00000000UL, 0x3fd67e86UL, 0xaa7a994dUL, 0xbe3f3fbdUL,
2146 0x00000000UL, 0x3fd655ceUL, 0x67db014cUL, 0x3e33c550UL, 0x00000000UL,
2147 0x3fd62d28UL, 0xa82856b7UL, 0xbe1409d1UL, 0xc0000000UL, 0x3fd60493UL,
2148 0x1e6a300dUL, 0x3e55d899UL, 0x80000000UL, 0x3fd5dc11UL, 0x1222bd5cUL,
2149 0xbe35bfc0UL, 0xc0000000UL, 0x3fd5b3a0UL, 0x6e8dc2d3UL, 0x3e5d4d79UL,
2150 0x00000000UL, 0x3fd58b42UL, 0xe0e4ace6UL, 0xbe517303UL, 0x80000000UL,
2151 0x3fd562f4UL, 0xb306e0a8UL, 0x3e5edf0fUL, 0xc0000000UL, 0x3fd53ab8UL,
2152 0x6574bc54UL, 0x3e5ee859UL, 0x80000000UL, 0x3fd5128eUL, 0xea902207UL,
2153 0x3e5f6188UL, 0xc0000000UL, 0x3fd4ea75UL, 0x9f911d79UL, 0x3e511735UL,
2154 0x80000000UL, 0x3fd4c26eUL, 0xf9c77397UL, 0xbe5b1643UL, 0x40000000UL,
2155 0x3fd49a78UL, 0x15fc9258UL, 0x3e479a37UL, 0x80000000UL, 0x3fd47293UL,
2156 0xd5a04dd9UL, 0xbe426e56UL, 0xc0000000UL, 0x3fd44abfUL, 0xe04042f5UL,
2157 0x3e56f7c6UL, 0x40000000UL, 0x3fd422fdUL, 0x1d8bf2c8UL, 0x3e5d8810UL,
2158 0x00000000UL, 0x3fd3fb4cUL, 0x88a8ddeeUL, 0xbe311454UL, 0xc0000000UL,
2159 0x3fd3d3abUL, 0x3e3b5e47UL, 0xbe5d1b72UL, 0x40000000UL, 0x3fd3ac1cUL,
2160 0xc2ab5d59UL, 0x3e31b02bUL, 0xc0000000UL, 0x3fd3849dUL, 0xd4e34b9eUL,
2161 0x3e51cb2fUL, 0x40000000UL, 0x3fd35d30UL, 0x177204fbUL, 0xbe2b8cd7UL,
2162 0x80000000UL, 0x3fd335d3UL, 0xfcd38c82UL, 0xbe4356e1UL, 0x80000000UL,
2163 0x3fd30e87UL, 0x64f54accUL, 0xbe4e6224UL, 0x00000000UL, 0x3fd2e74cUL,
2164 0xaa7975d9UL, 0x3e5dc0feUL, 0x80000000UL, 0x3fd2c021UL, 0x516dab3fUL,
2165 0xbe50ffa3UL, 0x40000000UL, 0x3fd29907UL, 0x2bfb7313UL, 0x3e5674a2UL,
2166 0xc0000000UL, 0x3fd271fdUL, 0x0549fc99UL, 0x3e385d29UL, 0xc0000000UL,
2167 0x3fd24b04UL, 0x55b63073UL, 0xbe500c6dUL, 0x00000000UL, 0x3fd2241cUL,
2168 0x3f91953aUL, 0x3e389977UL, 0xc0000000UL, 0x3fd1fd43UL, 0xa1543f71UL,
2169 0xbe3487abUL, 0xc0000000UL, 0x3fd1d67bUL, 0x4ec8867cUL, 0x3df6a2dcUL,
2170 0x00000000UL, 0x3fd1afc4UL, 0x4328e3bbUL, 0x3e41d9c0UL, 0x80000000UL,
2171 0x3fd1891cUL, 0x2e1cda84UL, 0x3e3bdd87UL, 0x40000000UL, 0x3fd16285UL,
2172 0x4b5331aeUL, 0xbe53128eUL, 0x00000000UL, 0x3fd13bfeUL, 0xb9aec164UL,
2173 0xbe52ac98UL, 0xc0000000UL, 0x3fd11586UL, 0xd91e1316UL, 0xbe350630UL,
2174 0x80000000UL, 0x3fd0ef1fUL, 0x7cacc12cUL, 0x3e3f5219UL, 0x40000000UL,
2175 0x3fd0c8c8UL, 0xbce277b7UL, 0x3e3d30c0UL, 0x00000000UL, 0x3fd0a281UL,
2176 0x2a63447dUL, 0xbe541377UL, 0x80000000UL, 0x3fd07c49UL, 0xfac483b5UL,
2177 0xbe5772ecUL, 0xc0000000UL, 0x3fd05621UL, 0x36b8a570UL, 0xbe4fd4bdUL,
2178 0xc0000000UL, 0x3fd03009UL, 0xbae505f7UL, 0xbe450388UL, 0x80000000UL,
2179 0x3fd00a01UL, 0x3e35aeadUL, 0xbe5430fcUL, 0x80000000UL, 0x3fcfc811UL,
2180 0x707475acUL, 0x3e38806eUL, 0x80000000UL, 0x3fcf7c3fUL, 0xc91817fcUL,
2181 0xbe40cceaUL, 0x80000000UL, 0x3fcf308cUL, 0xae05d5e9UL, 0xbe4919b8UL,
2182 0x80000000UL, 0x3fcee4f8UL, 0xae6cc9e6UL, 0xbe530b94UL, 0x00000000UL,
2183 0x3fce9983UL, 0x1efe3e8eUL, 0x3e57747eUL, 0x00000000UL, 0x3fce4e2dUL,
2184 0xda78d9bfUL, 0xbe59a608UL, 0x00000000UL, 0x3fce02f5UL, 0x8abe2c2eUL,
2185 0x3e4a35adUL, 0x00000000UL, 0x3fcdb7dcUL, 0x1495450dUL, 0xbe0872ccUL,
2186 0x80000000UL, 0x3fcd6ce1UL, 0x86ee0ba0UL, 0xbe4f59a0UL, 0x00000000UL,
2187 0x3fcd2205UL, 0xe81ca888UL, 0x3e5402c3UL, 0x00000000UL, 0x3fccd747UL,
2188 0x3b4424b9UL, 0x3e5dfdc3UL, 0x80000000UL, 0x3fcc8ca7UL, 0xd305b56cUL,
2189 0x3e202da6UL, 0x00000000UL, 0x3fcc4226UL, 0x399a6910UL, 0xbe482a1cUL,
2190 0x80000000UL, 0x3fcbf7c2UL, 0x747f7938UL, 0xbe587372UL, 0x80000000UL,
2191 0x3fcbad7cUL, 0x6fc246a0UL, 0x3e50d83dUL, 0x00000000UL, 0x3fcb6355UL,
2192 0xee9e9be5UL, 0xbe5c35bdUL, 0x80000000UL, 0x3fcb194aUL, 0x8416c0bcUL,
2193 0x3e546d4fUL, 0x00000000UL, 0x3fcacf5eUL, 0x49f7f08fUL, 0x3e56da76UL,
2194 0x00000000UL, 0x3fca858fUL, 0x5dc30de2UL, 0x3e5f390cUL, 0x00000000UL,
2195 0x3fca3bdeUL, 0x950583b6UL, 0xbe5e4169UL, 0x80000000UL, 0x3fc9f249UL,
2196 0x33631553UL, 0x3e52aeb1UL, 0x00000000UL, 0x3fc9a8d3UL, 0xde8795a6UL,
2197 0xbe59a504UL, 0x00000000UL, 0x3fc95f79UL, 0x076bf41eUL, 0x3e5122feUL,
2198 0x80000000UL, 0x3fc9163cUL, 0x2914c8e7UL, 0x3e3dd064UL, 0x00000000UL,
2199 0x3fc8cd1dUL, 0x3a30eca3UL, 0xbe21b4aaUL, 0x80000000UL, 0x3fc8841aUL,
2200 0xb2a96650UL, 0xbe575444UL, 0x80000000UL, 0x3fc83b34UL, 0x2376c0cbUL,
2201 0xbe2a74c7UL, 0x80000000UL, 0x3fc7f26bUL, 0xd8a0b653UL, 0xbe5181b6UL,
2202 0x00000000UL, 0x3fc7a9bfUL, 0x32257882UL, 0xbe4a78b4UL, 0x00000000UL,
2203 0x3fc7612fUL, 0x1eee8bd9UL, 0xbe1bfe9dUL, 0x80000000UL, 0x3fc718bbUL,
2204 0x0c603cc4UL, 0x3e36fdc9UL, 0x80000000UL, 0x3fc6d064UL, 0x3728b8cfUL,
2205 0xbe1e542eUL, 0x80000000UL, 0x3fc68829UL, 0xc79a4067UL, 0x3e5c380fUL,
2206 0x00000000UL, 0x3fc6400bUL, 0xf69eac69UL, 0x3e550a84UL, 0x80000000UL,
2207 0x3fc5f808UL, 0xb7a780a4UL, 0x3e5d9224UL, 0x80000000UL, 0x3fc5b022UL,
2208 0xad9dfb1eUL, 0xbe55242fUL, 0x00000000UL, 0x3fc56858UL, 0x659b18beUL,
2209 0xbe4bfda3UL, 0x80000000UL, 0x3fc520a9UL, 0x66ee3631UL, 0xbe57d769UL,
2210 0x80000000UL, 0x3fc4d916UL, 0x1ec62819UL, 0x3e2427f7UL, 0x80000000UL,
2211 0x3fc4919fUL, 0xdec25369UL, 0xbe435431UL, 0x00000000UL, 0x3fc44a44UL,
2212 0xa8acfc4bUL, 0xbe3c62e8UL, 0x00000000UL, 0x3fc40304UL, 0xcf1d3eabUL,
2213 0xbdfba29fUL, 0x80000000UL, 0x3fc3bbdfUL, 0x79aba3eaUL, 0xbdf1b7c8UL,
2214 0x80000000UL, 0x3fc374d6UL, 0xb8d186daUL, 0xbe5130cfUL, 0x80000000UL,
2215 0x3fc32de8UL, 0x9d74f152UL, 0x3e2285b6UL, 0x00000000UL, 0x3fc2e716UL,
2216 0x50ae7ca9UL, 0xbe503920UL, 0x80000000UL, 0x3fc2a05eUL, 0x6caed92eUL,
2217 0xbe533924UL, 0x00000000UL, 0x3fc259c2UL, 0x9cb5034eUL, 0xbe510e31UL,
2218 0x80000000UL, 0x3fc21340UL, 0x12c4d378UL, 0xbe540b43UL, 0x80000000UL,
2219 0x3fc1ccd9UL, 0xcc418706UL, 0x3e59887aUL, 0x00000000UL, 0x3fc1868eUL,
2220 0x921f4106UL, 0xbe528e67UL, 0x80000000UL, 0x3fc1405cUL, 0x3969441eUL,
2221 0x3e5d8051UL, 0x00000000UL, 0x3fc0fa46UL, 0xd941ef5bUL, 0x3e5f9079UL,
2222 0x80000000UL, 0x3fc0b44aUL, 0x5a3e81b2UL, 0xbe567691UL, 0x00000000UL,
2223 0x3fc06e69UL, 0x9d66afe7UL, 0xbe4d43fbUL, 0x00000000UL, 0x3fc028a2UL,
2224 0x0a92a162UL, 0xbe52f394UL, 0x00000000UL, 0x3fbfc5eaUL, 0x209897e5UL,
2225 0x3e529e37UL, 0x00000000UL, 0x3fbf3ac5UL, 0x8458bd7bUL, 0x3e582831UL,
2226 0x00000000UL, 0x3fbeafd5UL, 0xb8d8b4b8UL, 0xbe486b4aUL, 0x00000000UL,
2227 0x3fbe2518UL, 0xe0a3b7b6UL, 0x3e5bafd2UL, 0x00000000UL, 0x3fbd9a90UL,
2228 0x2bf2710eUL, 0x3e383b2bUL, 0x00000000UL, 0x3fbd103cUL, 0x73eb6ab7UL,
2229 0xbe56d78dUL, 0x00000000UL, 0x3fbc861bUL, 0x32ceaff5UL, 0xbe32dc5aUL,
2230 0x00000000UL, 0x3fbbfc2eUL, 0xbee04cb7UL, 0xbe4a71a4UL, 0x00000000UL,
2231 0x3fbb7274UL, 0x35ae9577UL, 0x3e38142fUL, 0x00000000UL, 0x3fbae8eeUL,
2232 0xcbaddab4UL, 0xbe5490f0UL, 0x00000000UL, 0x3fba5f9aUL, 0x95ce1114UL,
2233 0x3e597c71UL, 0x00000000UL, 0x3fb9d67aUL, 0x6d7c0f78UL, 0x3e3abc2dUL,
2234 0x00000000UL, 0x3fb94d8dUL, 0x2841a782UL, 0xbe566cbcUL, 0x00000000UL,
2235 0x3fb8c4d2UL, 0x6ed429c6UL, 0xbe3cfff9UL, 0x00000000UL, 0x3fb83c4aUL,
2236 0xe4a49fbbUL, 0xbe552964UL, 0x00000000UL, 0x3fb7b3f4UL, 0x2193d81eUL,
2237 0xbe42fa72UL, 0x00000000UL, 0x3fb72bd0UL, 0xdd70c122UL, 0x3e527a8cUL,
2238 0x00000000UL, 0x3fb6a3dfUL, 0x03108a54UL, 0xbe450393UL, 0x00000000UL,
2239 0x3fb61c1fUL, 0x30ff7954UL, 0x3e565840UL, 0x00000000UL, 0x3fb59492UL,
2240 0xdedd460cUL, 0xbe5422b5UL, 0x00000000UL, 0x3fb50d36UL, 0x950f9f45UL,
2241 0xbe5313f6UL, 0x00000000UL, 0x3fb4860bUL, 0x582cdcb1UL, 0x3e506d39UL,
2242 0x00000000UL, 0x3fb3ff12UL, 0x7216d3a6UL, 0x3e4aa719UL, 0x00000000UL,
2243 0x3fb3784aUL, 0x57a423fdUL, 0x3e5a9b9fUL, 0x00000000UL, 0x3fb2f1b4UL,
2244 0x7a138b41UL, 0xbe50b418UL, 0x00000000UL, 0x3fb26b4eUL, 0x2fbfd7eaUL,
2245 0x3e23a53eUL, 0x00000000UL, 0x3fb1e519UL, 0x18913ccbUL, 0x3e465fc1UL,
2246 0x00000000UL, 0x3fb15f15UL, 0x7ea24e21UL, 0x3e042843UL, 0x00000000UL,
2247 0x3fb0d941UL, 0x7c6d9c77UL, 0x3e59f61eUL, 0x00000000UL, 0x3fb0539eUL,
2248 0x114efd44UL, 0x3e4ccab7UL, 0x00000000UL, 0x3faf9c56UL, 0x1777f657UL,
2249 0x3e552f65UL, 0x00000000UL, 0x3fae91d2UL, 0xc317b86aUL, 0xbe5a61e0UL,
2250 0x00000000UL, 0x3fad87acUL, 0xb7664efbUL, 0xbe41f64eUL, 0x00000000UL,
2251 0x3fac7de6UL, 0x5d3d03a9UL, 0x3e0807a0UL, 0x00000000UL, 0x3fab7480UL,
2252 0x743c38ebUL, 0xbe3726e1UL, 0x00000000UL, 0x3faa6b78UL, 0x06a253f1UL,
2253 0x3e5ad636UL, 0x00000000UL, 0x3fa962d0UL, 0xa35f541bUL, 0x3e5a187aUL,
2254 0x00000000UL, 0x3fa85a88UL, 0x4b86e446UL, 0xbe508150UL, 0x00000000UL,
2255 0x3fa7529cUL, 0x2589cacfUL, 0x3e52938aUL, 0x00000000UL, 0x3fa64b10UL,
2256 0xaf6b11f2UL, 0xbe3454cdUL, 0x00000000UL, 0x3fa543e2UL, 0x97506fefUL,
2257 0xbe5fdec5UL, 0x00000000UL, 0x3fa43d10UL, 0xe75f7dd9UL, 0xbe388dd3UL,
2258 0x00000000UL, 0x3fa3369cUL, 0xa4139632UL, 0xbdea5177UL, 0x00000000UL,
2259 0x3fa23086UL, 0x352d6f1eUL, 0xbe565ad6UL, 0x00000000UL, 0x3fa12accUL,
2260 0x77449eb7UL, 0xbe50d5c7UL, 0x00000000UL, 0x3fa0256eUL, 0x7478da78UL,
2261 0x3e404724UL, 0x00000000UL, 0x3f9e40dcUL, 0xf59cef7fUL, 0xbe539d0aUL,
2262 0x00000000UL, 0x3f9c3790UL, 0x1511d43cUL, 0x3e53c2c8UL, 0x00000000UL,
2263 0x3f9a2f00UL, 0x9b8bff3cUL, 0xbe43b3e1UL, 0x00000000UL, 0x3f982724UL,
2264 0xad1e22a5UL, 0x3e46f0bdUL, 0x00000000UL, 0x3f962000UL, 0x130d9356UL,
2265 0x3e475ba0UL, 0x00000000UL, 0x3f941994UL, 0x8f86f883UL, 0xbe513d0bUL,
2266 0x00000000UL, 0x3f9213dcUL, 0x914d0dc8UL, 0xbe534335UL, 0x00000000UL,
2267 0x3f900ed8UL, 0x2d73e5e7UL, 0xbe22ba75UL, 0x00000000UL, 0x3f8c1510UL,
2268 0xc5b7d70eUL, 0x3e599c5dUL, 0x00000000UL, 0x3f880de0UL, 0x8a27857eUL,
2269 0xbe3d28c8UL, 0x00000000UL, 0x3f840810UL, 0xda767328UL, 0x3e531b3dUL,
2270 0x00000000UL, 0x3f8003b0UL, 0x77bacaf3UL, 0xbe5f04e3UL, 0x00000000UL,
2271 0x3f780150UL, 0xdf4b0720UL, 0x3e5a8bffUL, 0x00000000UL, 0x3f6ffc40UL,
2272 0x34c48e71UL, 0xbe3fcd99UL, 0x00000000UL, 0x3f5ff6c0UL, 0x1ad218afUL,
2273 0xbe4c78a7UL, 0x00000000UL, 0x00000000UL, 0x00000000UL, 0x80000000UL,
2274 0x00000000UL, 0xfffff800UL, 0x00000000UL, 0xfffff800UL, 0x00000000UL,
2275 0x3ff72000UL, 0x161bb241UL, 0xbf5dabe1UL, 0x6dc96112UL, 0xbf836578UL,
2276 0xee241472UL, 0xbf9b0301UL, 0x9f95985aUL, 0xbfb528dbUL, 0xb3841d2aUL,
2277 0xbfd619b6UL, 0x518775e3UL, 0x3f9004f2UL, 0xac8349bbUL, 0x3fa76c9bUL,
2278 0x486ececcUL, 0x3fc4635eUL, 0x161bb241UL, 0xbf5dabe1UL, 0x9f95985aUL,
2279 0xbfb528dbUL, 0xf8b5787dUL, 0x3ef2531eUL, 0x486ececbUL, 0x3fc4635eUL,
2280 0x412055ccUL, 0xbdd61bb2UL, 0x00000000UL, 0xfffffff8UL, 0x00000000UL,
2281 0xffffffffUL, 0x00000000UL, 0x3ff00000UL, 0x00000000UL, 0x3b700000UL,
2282 0xfa5abcbfUL, 0x3ff00b1aUL, 0xa7609f71UL, 0xbc84f6b2UL, 0xa9fb3335UL,
2283 0x3ff0163dUL, 0x9ab8cdb7UL, 0x3c9b6129UL, 0x143b0281UL, 0x3ff02168UL,
2284 0x0fc54eb6UL, 0xbc82bf31UL, 0x3e778061UL, 0x3ff02c9aUL, 0x535b085dUL,
2285 0xbc719083UL, 0x2e11bbccUL, 0x3ff037d4UL, 0xeeade11aUL, 0x3c656811UL,
2286 0xe86e7f85UL, 0x3ff04315UL, 0x1977c96eUL, 0xbc90a31cUL, 0x72f654b1UL,
2287 0x3ff04e5fUL, 0x3aa0d08cUL, 0x3c84c379UL, 0xd3158574UL, 0x3ff059b0UL,
2288 0xa475b465UL, 0x3c8d73e2UL, 0x0e3c1f89UL, 0x3ff0650aUL, 0x5799c397UL,
2289 0xbc95cb7bUL, 0x29ddf6deUL, 0x3ff0706bUL, 0xe2b13c27UL, 0xbc8c91dfUL,
2290 0x2b72a836UL, 0x3ff07bd4UL, 0x54458700UL, 0x3c832334UL, 0x18759bc8UL,
2291 0x3ff08745UL, 0x4bb284ffUL, 0x3c6186beUL, 0xf66607e0UL, 0x3ff092bdUL,
2292 0x800a3fd1UL, 0xbc968063UL, 0xcac6f383UL, 0x3ff09e3eUL, 0x18316136UL,
2293 0x3c914878UL, 0x9b1f3919UL, 0x3ff0a9c7UL, 0x873d1d38UL, 0x3c85d16cUL,
2294 0x6cf9890fUL, 0x3ff0b558UL, 0x4adc610bUL, 0x3c98a62eUL, 0x45e46c85UL,
2295 0x3ff0c0f1UL, 0x06d21cefUL, 0x3c94f989UL, 0x2b7247f7UL, 0x3ff0cc92UL,
2296 0x16e24f71UL, 0x3c901edcUL, 0x23395decUL, 0x3ff0d83bUL, 0xe43f316aUL,
2297 0xbc9bc14dUL, 0x32d3d1a2UL, 0x3ff0e3ecUL, 0x27c57b52UL, 0x3c403a17UL,
2298 0x5fdfa9c5UL, 0x3ff0efa5UL, 0xbc54021bUL, 0xbc949db9UL, 0xaffed31bUL,
2299 0x3ff0fb66UL, 0xc44ebd7bUL, 0xbc6b9bedUL, 0x28d7233eUL, 0x3ff10730UL,
2300 0x1692fdd5UL, 0x3c8d46ebUL, 0xd0125b51UL, 0x3ff11301UL, 0x39449b3aUL,
2301 0xbc96c510UL, 0xab5e2ab6UL, 0x3ff11edbUL, 0xf703fb72UL, 0xbc9ca454UL,
2302 0xc06c31ccUL, 0x3ff12abdUL, 0xb36ca5c7UL, 0xbc51b514UL, 0x14f204abUL,
2303 0x3ff136a8UL, 0xba48dcf0UL, 0xbc67108fUL, 0xaea92de0UL, 0x3ff1429aUL,
2304 0x9af1369eUL, 0xbc932fbfUL, 0x934f312eUL, 0x3ff14e95UL, 0x39bf44abUL,
2305 0xbc8b91e8UL, 0xc8a58e51UL, 0x3ff15a98UL, 0xb9eeab0aUL, 0x3c82406aUL,
2306 0x5471c3c2UL, 0x3ff166a4UL, 0x82ea1a32UL, 0x3c58f23bUL, 0x3c7d517bUL,
2307 0x3ff172b8UL, 0xb9d78a76UL, 0xbc819041UL, 0x8695bbc0UL, 0x3ff17ed4UL,
2308 0xe2ac5a64UL, 0x3c709e3fUL, 0x388c8deaUL, 0x3ff18af9UL, 0xd1970f6cUL,
2309 0xbc911023UL, 0x58375d2fUL, 0x3ff19726UL, 0x85f17e08UL, 0x3c94aaddUL,
2310 0xeb6fcb75UL, 0x3ff1a35bUL, 0x7b4968e4UL, 0x3c8e5b4cUL, 0xf8138a1cUL,
2311 0x3ff1af99UL, 0xa4b69280UL, 0x3c97bf85UL, 0x84045cd4UL, 0x3ff1bbe0UL,
2312 0x352ef607UL, 0xbc995386UL, 0x95281c6bUL, 0x3ff1c82fUL, 0x8010f8c9UL,
2313 0x3c900977UL, 0x3168b9aaUL, 0x3ff1d487UL, 0x00a2643cUL, 0x3c9e016eUL,
2314 0x5eb44027UL, 0x3ff1e0e7UL, 0x088cb6deUL, 0xbc96fdd8UL, 0x22fcd91dUL,
2315 0x3ff1ed50UL, 0x027bb78cUL, 0xbc91df98UL, 0x8438ce4dUL, 0x3ff1f9c1UL,
2316 0xa097af5cUL, 0xbc9bf524UL, 0x88628cd6UL, 0x3ff2063bUL, 0x814a8495UL,
2317 0x3c8dc775UL, 0x3578a819UL, 0x3ff212beUL, 0x2cfcaac9UL, 0x3c93592dUL,
2318 0x917ddc96UL, 0x3ff21f49UL, 0x9494a5eeUL, 0x3c82a97eUL, 0xa27912d1UL,
2319 0x3ff22bddUL, 0x5577d69fUL, 0x3c8d34fbUL, 0x6e756238UL, 0x3ff2387aUL,
2320 0xb6c70573UL, 0x3c99b07eUL, 0xfb82140aUL, 0x3ff2451fUL, 0x911ca996UL,
2321 0x3c8acfccUL, 0x4fb2a63fUL, 0x3ff251ceUL, 0xbef4f4a4UL, 0x3c8ac155UL,
2322 0x711ece75UL, 0x3ff25e85UL, 0x4ac31b2cUL, 0x3c93e1a2UL, 0x65e27cddUL,
2323 0x3ff26b45UL, 0x9940e9d9UL, 0x3c82bd33UL, 0x341ddf29UL, 0x3ff2780eUL,
2324 0x05f9e76cUL, 0x3c9e067cUL, 0xe1f56381UL, 0x3ff284dfUL, 0x8c3f0d7eUL,
2325 0xbc9a4c3aUL, 0x7591bb70UL, 0x3ff291baUL, 0x28401cbdUL, 0xbc82cc72UL,
2326 0xf51fdee1UL, 0x3ff29e9dUL, 0xafad1255UL, 0x3c8612e8UL, 0x66d10f13UL,
2327 0x3ff2ab8aUL, 0x191690a7UL, 0xbc995743UL, 0xd0dad990UL, 0x3ff2b87fUL,
2328 0xd6381aa4UL, 0xbc410adcUL, 0x39771b2fUL, 0x3ff2c57eUL, 0xa6eb5124UL,
2329 0xbc950145UL, 0xa6e4030bUL, 0x3ff2d285UL, 0x54db41d5UL, 0x3c900247UL,
2330 0x1f641589UL, 0x3ff2df96UL, 0xfbbce198UL, 0x3c9d16cfUL, 0xa93e2f56UL,
2331 0x3ff2ecafUL, 0x45d52383UL, 0x3c71ca0fUL, 0x4abd886bUL, 0x3ff2f9d2UL,
2332 0x532bda93UL, 0xbc653c55UL, 0x0a31b715UL, 0x3ff306feUL, 0xd23182e4UL,
2333 0x3c86f46aUL, 0xedeeb2fdUL, 0x3ff31432UL, 0xf3f3fcd1UL, 0x3c8959a3UL,
2334 0xfc4cd831UL, 0x3ff32170UL, 0x8e18047cUL, 0x3c8a9ce7UL, 0x3ba8ea32UL,
2335 0x3ff32eb8UL, 0x3cb4f318UL, 0xbc9c45e8UL, 0xb26416ffUL, 0x3ff33c08UL,
2336 0x843659a6UL, 0x3c932721UL, 0x66e3fa2dUL, 0x3ff34962UL, 0x930881a4UL,
2337 0xbc835a75UL, 0x5f929ff1UL, 0x3ff356c5UL, 0x5c4e4628UL, 0xbc8b5ceeUL,
2338 0xa2de883bUL, 0x3ff36431UL, 0xa06cb85eUL, 0xbc8c3144UL, 0x373aa9cbUL,
2339 0x3ff371a7UL, 0xbf42eae2UL, 0xbc963aeaUL, 0x231e754aUL, 0x3ff37f26UL,
2340 0x9eceb23cUL, 0xbc99f5caUL, 0x6d05d866UL, 0x3ff38caeUL, 0x3c9904bdUL,
2341 0xbc9e958dUL, 0x1b7140efUL, 0x3ff39a40UL, 0xfc8e2934UL, 0xbc99a9a5UL,
2342 0x34e59ff7UL, 0x3ff3a7dbUL, 0xd661f5e3UL, 0xbc75e436UL, 0xbfec6cf4UL,
2343 0x3ff3b57fUL, 0xe26fff18UL, 0x3c954c66UL, 0xc313a8e5UL, 0x3ff3c32dUL,
2344 0x375d29c3UL, 0xbc9efff8UL, 0x44ede173UL, 0x3ff3d0e5UL, 0x8c284c71UL,
2345 0x3c7fe8d0UL, 0x4c123422UL, 0x3ff3dea6UL, 0x11f09ebcUL, 0x3c8ada09UL,
2346 0xdf1c5175UL, 0x3ff3ec70UL, 0x7b8c9bcaUL, 0xbc8af663UL, 0x04ac801cUL,
2347 0x3ff3fa45UL, 0xf956f9f3UL, 0xbc97d023UL, 0xc367a024UL, 0x3ff40822UL,
2348 0xb6f4d048UL, 0x3c8bddf8UL, 0x21f72e2aUL, 0x3ff4160aUL, 0x1c309278UL,
2349 0xbc5ef369UL, 0x2709468aUL, 0x3ff423fbUL, 0xc0b314ddUL, 0xbc98462dUL,
2350 0xd950a897UL, 0x3ff431f5UL, 0xe35f7999UL, 0xbc81c7ddUL, 0x3f84b9d4UL,
2351 0x3ff43ffaUL, 0x9704c003UL, 0x3c8880beUL, 0x6061892dUL, 0x3ff44e08UL,
2352 0x04ef80d0UL, 0x3c489b7aUL, 0x42a7d232UL, 0x3ff45c20UL, 0x82fb1f8eUL,
2353 0xbc686419UL, 0xed1d0057UL, 0x3ff46a41UL, 0xd1648a76UL, 0x3c9c944bUL,
2354 0x668b3237UL, 0x3ff4786dUL, 0xed445733UL, 0xbc9c20f0UL, 0xb5c13cd0UL,
2355 0x3ff486a2UL, 0xb69062f0UL, 0x3c73c1a3UL, 0xe192aed2UL, 0x3ff494e1UL,
2356 0x5e499ea0UL, 0xbc83b289UL, 0xf0d7d3deUL, 0x3ff4a32aUL, 0xf3d1be56UL,
2357 0x3c99cb62UL, 0xea6db7d7UL, 0x3ff4b17dUL, 0x7f2897f0UL, 0xbc8125b8UL,
2358 0xd5362a27UL, 0x3ff4bfdaUL, 0xafec42e2UL, 0x3c7d4397UL, 0xb817c114UL,
2359 0x3ff4ce41UL, 0x690abd5dUL, 0x3c905e29UL, 0x99fddd0dUL, 0x3ff4dcb2UL,
2360 0xbc6a7833UL, 0x3c98ecdbUL, 0x81d8abffUL, 0x3ff4eb2dUL, 0x2e5d7a52UL,
2361 0xbc95257dUL, 0x769d2ca7UL, 0x3ff4f9b2UL, 0xd25957e3UL, 0xbc94b309UL,
2362 0x7f4531eeUL, 0x3ff50841UL, 0x49b7465fUL, 0x3c7a249bUL, 0xa2cf6642UL,
2363 0x3ff516daUL, 0x69bd93efUL, 0xbc8f7685UL, 0xe83f4eefUL, 0x3ff5257dUL,
2364 0x43efef71UL, 0xbc7c998dUL, 0x569d4f82UL, 0x3ff5342bUL, 0x1db13cadUL,
2365 0xbc807abeUL, 0xf4f6ad27UL, 0x3ff542e2UL, 0x192d5f7eUL, 0x3c87926dUL,
2366 0xca5d920fUL, 0x3ff551a4UL, 0xefede59bUL, 0xbc8d689cUL, 0xdde910d2UL,
2367 0x3ff56070UL, 0x168eebf0UL, 0xbc90fb6eUL, 0x36b527daUL, 0x3ff56f47UL,
2368 0x011d93adUL, 0x3c99bb2cUL, 0xdbe2c4cfUL, 0x3ff57e27UL, 0x8a57b9c4UL,
2369 0xbc90b98cUL, 0xd497c7fdUL, 0x3ff58d12UL, 0x5b9a1de8UL, 0x3c8295e1UL,
2370 0x27ff07ccUL, 0x3ff59c08UL, 0xe467e60fUL, 0xbc97e2ceUL, 0xdd485429UL,
2371 0x3ff5ab07UL, 0x054647adUL, 0x3c96324cUL, 0xfba87a03UL, 0x3ff5ba11UL,
2372 0x4c233e1aUL, 0xbc9b77a1UL, 0x8a5946b7UL, 0x3ff5c926UL, 0x816986a2UL,
2373 0x3c3c4b1bUL, 0x90998b93UL, 0x3ff5d845UL, 0xa8b45643UL, 0xbc9cd6a7UL,
2374 0x15ad2148UL, 0x3ff5e76fUL, 0x3080e65eUL, 0x3c9ba6f9UL, 0x20dceb71UL,
2375 0x3ff5f6a3UL, 0xe3cdcf92UL, 0xbc89eaddUL, 0xb976dc09UL, 0x3ff605e1UL,
2376 0x9b56de47UL, 0xbc93e242UL, 0xe6cdf6f4UL, 0x3ff6152aUL, 0x4ab84c27UL,
2377 0x3c9e4b3eUL, 0xb03a5585UL, 0x3ff6247eUL, 0x7e40b497UL, 0xbc9383c1UL,
2378 0x1d1929fdUL, 0x3ff633ddUL, 0xbeb964e5UL, 0x3c984710UL, 0x34ccc320UL,
2379 0x3ff64346UL, 0x759d8933UL, 0xbc8c483cUL, 0xfebc8fb7UL, 0x3ff652b9UL,
2380 0xc9a73e09UL, 0xbc9ae3d5UL, 0x82552225UL, 0x3ff66238UL, 0x87591c34UL,
2381 0xbc9bb609UL, 0xc70833f6UL, 0x3ff671c1UL, 0x586c6134UL, 0xbc8e8732UL,
2382 0xd44ca973UL, 0x3ff68155UL, 0x44f73e65UL, 0x3c6038aeUL, 0xb19e9538UL,
2383 0x3ff690f4UL, 0x9aeb445dUL, 0x3c8804bdUL, 0x667f3bcdUL, 0x3ff6a09eUL,
2384 0x13b26456UL, 0xbc9bdd34UL, 0xfa75173eUL, 0x3ff6b052UL, 0x2c9a9d0eUL,
2385 0x3c7a38f5UL, 0x750bdabfUL, 0x3ff6c012UL, 0x67ff0b0dUL, 0xbc728956UL,
2386 0xddd47645UL, 0x3ff6cfdcUL, 0xb6f17309UL, 0x3c9c7aa9UL, 0x3c651a2fUL,
2387 0x3ff6dfb2UL, 0x683c88abUL, 0xbc6bbe3aUL, 0x98593ae5UL, 0x3ff6ef92UL,
2388 0x9e1ac8b2UL, 0xbc90b974UL, 0xf9519484UL, 0x3ff6ff7dUL, 0x25860ef6UL,
2389 0xbc883c0fUL, 0x66f42e87UL, 0x3ff70f74UL, 0xd45aa65fUL, 0x3c59d644UL,
2390 0xe8ec5f74UL, 0x3ff71f75UL, 0x86887a99UL, 0xbc816e47UL, 0x86ead08aUL,
2391 0x3ff72f82UL, 0x2cd62c72UL, 0xbc920aa0UL, 0x48a58174UL, 0x3ff73f9aUL,
2392 0x6c65d53cUL, 0xbc90a8d9UL, 0x35d7cbfdUL, 0x3ff74fbdUL, 0x618a6e1cUL,
2393 0x3c9047fdUL, 0x564267c9UL, 0x3ff75febUL, 0x57316dd3UL, 0xbc902459UL,
2394 0xb1ab6e09UL, 0x3ff77024UL, 0x169147f8UL, 0x3c9b7877UL, 0x4fde5d3fUL,
2395 0x3ff78069UL, 0x0a02162dUL, 0x3c9866b8UL, 0x38ac1cf6UL, 0x3ff790b9UL,
2396 0x62aadd3eUL, 0x3c9349a8UL, 0x73eb0187UL, 0x3ff7a114UL, 0xee04992fUL,
2397 0xbc841577UL, 0x0976cfdbUL, 0x3ff7b17bUL, 0x8468dc88UL, 0xbc9bebb5UL,
2398 0x0130c132UL, 0x3ff7c1edUL, 0xd1164dd6UL, 0x3c9f124cUL, 0x62ff86f0UL,
2399 0x3ff7d26aUL, 0xfb72b8b4UL, 0x3c91bddbUL, 0x36cf4e62UL, 0x3ff7e2f3UL,
2400 0xba15797eUL, 0x3c705d02UL, 0x8491c491UL, 0x3ff7f387UL, 0xcf9311aeUL,
2401 0xbc807f11UL, 0x543e1a12UL, 0x3ff80427UL, 0x626d972bUL, 0xbc927c86UL,
2402 0xadd106d9UL, 0x3ff814d2UL, 0x0d151d4dUL, 0x3c946437UL, 0x994cce13UL,
2403 0x3ff82589UL, 0xd41532d8UL, 0xbc9d4c1dUL, 0x1eb941f7UL, 0x3ff8364cUL,
2404 0x31df2bd5UL, 0x3c999b9aUL, 0x4623c7adUL, 0x3ff8471aUL, 0xa341cdfbUL,
2405 0xbc88d684UL, 0x179f5b21UL, 0x3ff857f4UL, 0xf8b216d0UL, 0xbc5ba748UL,
2406 0x9b4492edUL, 0x3ff868d9UL, 0x9bd4f6baUL, 0xbc9fc6f8UL, 0xd931a436UL,
2407 0x3ff879caUL, 0xd2db47bdUL, 0x3c85d2d7UL, 0xd98a6699UL, 0x3ff88ac7UL,
2408 0xf37cb53aUL, 0x3c9994c2UL, 0xa478580fUL, 0x3ff89bd0UL, 0x4475202aUL,
2409 0x3c9d5395UL, 0x422aa0dbUL, 0x3ff8ace5UL, 0x56864b27UL, 0x3c96e9f1UL,
2410 0xbad61778UL, 0x3ff8be05UL, 0xfc43446eUL, 0x3c9ecb5eUL, 0x16b5448cUL,
2411 0x3ff8cf32UL, 0x32e9e3aaUL, 0xbc70d55eUL, 0x5e0866d9UL, 0x3ff8e06aUL,
2412 0x6fc9b2e6UL, 0xbc97114aUL, 0x99157736UL, 0x3ff8f1aeUL, 0xa2e3976cUL,
2413 0x3c85cc13UL, 0xd0282c8aUL, 0x3ff902feUL, 0x85fe3fd2UL, 0x3c9592caUL,
2414 0x0b91ffc6UL, 0x3ff9145bUL, 0x2e582524UL, 0xbc9dd679UL, 0x53aa2fe2UL,
2415 0x3ff925c3UL, 0xa639db7fUL, 0xbc83455fUL, 0xb0cdc5e5UL, 0x3ff93737UL,
2416 0x81b57ebcUL, 0xbc675fc7UL, 0x2b5f98e5UL, 0x3ff948b8UL, 0x797d2d99UL,
2417 0xbc8dc3d6UL, 0xcbc8520fUL, 0x3ff95a44UL, 0x96a5f039UL, 0xbc764b7cUL,
2418 0x9a7670b3UL, 0x3ff96bddUL, 0x7f19c896UL, 0xbc5ba596UL, 0x9fde4e50UL,
2419 0x3ff97d82UL, 0x7c1b85d1UL, 0xbc9d185bUL, 0xe47a22a2UL, 0x3ff98f33UL,
2420 0xa24c78ecUL, 0x3c7cabdaUL, 0x70ca07baUL, 0x3ff9a0f1UL, 0x91cee632UL,
2421 0xbc9173bdUL, 0x4d53fe0dUL, 0x3ff9b2bbUL, 0x4df6d518UL, 0xbc9dd84eUL,
2422 0x82a3f090UL, 0x3ff9c491UL, 0xb071f2beUL, 0x3c7c7c46UL, 0x194bb8d5UL,
2423 0x3ff9d674UL, 0xa3dd8233UL, 0xbc9516beUL, 0x19e32323UL, 0x3ff9e863UL,
2424 0x78e64c6eUL, 0x3c7824caUL, 0x8d07f29eUL, 0x3ff9fa5eUL, 0xaaf1faceUL,
2425 0xbc84a9ceUL, 0x7b5de565UL, 0x3ffa0c66UL, 0x5d1cd533UL, 0xbc935949UL,
2426 0xed8eb8bbUL, 0x3ffa1e7aUL, 0xee8be70eUL, 0x3c9c6618UL, 0xec4a2d33UL,
2427 0x3ffa309bUL, 0x7ddc36abUL, 0x3c96305cUL, 0x80460ad8UL, 0x3ffa42c9UL,
2428 0x589fb120UL, 0xbc9aa780UL, 0xb23e255dUL, 0x3ffa5503UL, 0xdb8d41e1UL,
2429 0xbc9d2f6eUL, 0x8af46052UL, 0x3ffa674aUL, 0x30670366UL, 0x3c650f56UL,
2430 0x1330b358UL, 0x3ffa799eUL, 0xcac563c7UL, 0x3c9bcb7eUL, 0x53c12e59UL,
2431 0x3ffa8bfeUL, 0xb2ba15a9UL, 0xbc94f867UL, 0x5579fdbfUL, 0x3ffa9e6bUL,
2432 0x0ef7fd31UL, 0x3c90fac9UL, 0x21356ebaUL, 0x3ffab0e5UL, 0xdae94545UL,
2433 0x3c889c31UL, 0xbfd3f37aUL, 0x3ffac36bUL, 0xcae76cd0UL, 0xbc8f9234UL,
2434 0x3a3c2774UL, 0x3ffad5ffUL, 0xb6b1b8e5UL, 0x3c97ef3bUL, 0x995ad3adUL,
2435 0x3ffae89fUL, 0x345dcc81UL, 0x3c97a1cdUL, 0xe622f2ffUL, 0x3ffafb4cUL,
2436 0x0f315ecdUL, 0xbc94b2fcUL, 0x298db666UL, 0x3ffb0e07UL, 0x4c80e425UL,
2437 0xbc9bdef5UL, 0x6c9a8952UL, 0x3ffb20ceUL, 0x4a0756ccUL, 0x3c94dd02UL,
2438 0xb84f15fbUL, 0x3ffb33a2UL, 0x3084d708UL, 0xbc62805eUL, 0x15b749b1UL,
2439 0x3ffb4684UL, 0xe9df7c90UL, 0xbc7f763dUL, 0x8de5593aUL, 0x3ffb5972UL,
2440 0xbbba6de3UL, 0xbc9c71dfUL, 0x29f1c52aUL, 0x3ffb6c6eUL, 0x52883f6eUL,
2441 0x3c92a8f3UL, 0xf2fb5e47UL, 0x3ffb7f76UL, 0x7e54ac3bUL, 0xbc75584fUL,
2442 0xf22749e4UL, 0x3ffb928cUL, 0x54cb65c6UL, 0xbc9b7216UL, 0x30a1064aUL,
2443 0x3ffba5b0UL, 0x0e54292eUL, 0xbc9efcd3UL, 0xb79a6f1fUL, 0x3ffbb8e0UL,
2444 0xc9696205UL, 0xbc3f52d1UL, 0x904bc1d2UL, 0x3ffbcc1eUL, 0x7a2d9e84UL,
2445 0x3c823dd0UL, 0xc3f3a207UL, 0x3ffbdf69UL, 0x60ea5b53UL, 0xbc3c2623UL,
2446 0x5bd71e09UL, 0x3ffbf2c2UL, 0x3f6b9c73UL, 0xbc9efdcaUL, 0x6141b33dUL,
2447 0x3ffc0628UL, 0xa1fbca34UL, 0xbc8d8a5aUL, 0xdd85529cUL, 0x3ffc199bUL,
2448 0x895048ddUL, 0x3c811065UL, 0xd9fa652cUL, 0x3ffc2d1cUL, 0x17c8a5d7UL,
2449 0xbc96e516UL, 0x5fffd07aUL, 0x3ffc40abUL, 0xe083c60aUL, 0x3c9b4537UL,
2450 0x78fafb22UL, 0x3ffc5447UL, 0x2493b5afUL, 0x3c912f07UL, 0x2e57d14bUL,
2451 0x3ffc67f1UL, 0xff483cadUL, 0x3c92884dUL, 0x8988c933UL, 0x3ffc7ba8UL,
2452 0xbe255559UL, 0xbc8e76bbUL, 0x9406e7b5UL, 0x3ffc8f6dUL, 0x48805c44UL,
2453 0x3c71acbcUL, 0x5751c4dbUL, 0x3ffca340UL, 0xd10d08f5UL, 0xbc87f2beUL,
2454 0xdcef9069UL, 0x3ffcb720UL, 0xd1e949dbUL, 0x3c7503cbUL, 0x2e6d1675UL,
2455 0x3ffccb0fUL, 0x86009092UL, 0xbc7d220fUL, 0x555dc3faUL, 0x3ffcdf0bUL,
2456 0x53829d72UL, 0xbc8dd83bUL, 0x5b5bab74UL, 0x3ffcf315UL, 0xb86dff57UL,
2457 0xbc9a08e9UL, 0x4a07897cUL, 0x3ffd072dUL, 0x43797a9cUL, 0xbc9cbc37UL,
2458 0x2b08c968UL, 0x3ffd1b53UL, 0x219a36eeUL, 0x3c955636UL, 0x080d89f2UL,
2459 0x3ffd2f87UL, 0x719d8578UL, 0xbc9d487bUL, 0xeacaa1d6UL, 0x3ffd43c8UL,
2460 0xbf5a1614UL, 0x3c93db53UL, 0xdcfba487UL, 0x3ffd5818UL, 0xd75b3707UL,
2461 0x3c82ed02UL, 0xe862e6d3UL, 0x3ffd6c76UL, 0x4a8165a0UL, 0x3c5fe87aUL,
2462 0x16c98398UL, 0x3ffd80e3UL, 0x8beddfe8UL, 0xbc911ec1UL, 0x71ff6075UL,
2463 0x3ffd955dUL, 0xbb9af6beUL, 0x3c9a052dUL, 0x03db3285UL, 0x3ffda9e6UL,
2464 0x696db532UL, 0x3c9c2300UL, 0xd63a8315UL, 0x3ffdbe7cUL, 0x926b8be4UL,
2465 0xbc9b76f1UL, 0xf301b460UL, 0x3ffdd321UL, 0x78f018c3UL, 0x3c92da57UL,
2466 0x641c0658UL, 0x3ffde7d5UL, 0x8e79ba8fUL, 0xbc9ca552UL, 0x337b9b5fUL,
2467 0x3ffdfc97UL, 0x4f184b5cUL, 0xbc91a5cdUL, 0x6b197d17UL, 0x3ffe1167UL,
2468 0xbd5c7f44UL, 0xbc72b529UL, 0x14f5a129UL, 0x3ffe2646UL, 0x817a1496UL,
2469 0xbc97b627UL, 0x3b16ee12UL, 0x3ffe3b33UL, 0x31fdc68bUL, 0xbc99f4a4UL,
2470 0xe78b3ff6UL, 0x3ffe502eUL, 0x80a9cc8fUL, 0x3c839e89UL, 0x24676d76UL,
2471 0x3ffe6539UL, 0x7522b735UL, 0xbc863ff8UL, 0xfbc74c83UL, 0x3ffe7a51UL,
2472 0xca0c8de2UL, 0x3c92d522UL, 0x77cdb740UL, 0x3ffe8f79UL, 0x80b054b1UL,
2473 0xbc910894UL, 0xa2a490daUL, 0x3ffea4afUL, 0x179c2893UL, 0xbc9e9c23UL,
2474 0x867cca6eUL, 0x3ffeb9f4UL, 0x2293e4f2UL, 0x3c94832fUL, 0x2d8e67f1UL,
2475 0x3ffecf48UL, 0xb411ad8cUL, 0xbc9c93f3UL, 0xa2188510UL, 0x3ffee4aaUL,
2476 0xa487568dUL, 0x3c91c68dUL, 0xee615a27UL, 0x3ffefa1bUL, 0x86a4b6b0UL,
2477 0x3c9dc7f4UL, 0x1cb6412aUL, 0x3fff0f9cUL, 0x65181d45UL, 0xbc932200UL,
2478 0x376bba97UL, 0x3fff252bUL, 0xbf0d8e43UL, 0x3c93a1a5UL, 0x48dd7274UL,
2479 0x3fff3ac9UL, 0x3ed837deUL, 0xbc795a5aUL, 0x5b6e4540UL, 0x3fff5076UL,
2480 0x2dd8a18bUL, 0x3c99d3e1UL, 0x798844f8UL, 0x3fff6632UL, 0x3539343eUL,
2481 0x3c9fa37bUL, 0xad9cbe14UL, 0x3fff7bfdUL, 0xd006350aUL, 0xbc9dbb12UL,
2482 0x02243c89UL, 0x3fff91d8UL, 0xa779f689UL, 0xbc612ea8UL, 0x819e90d8UL,
2483 0x3fffa7c1UL, 0xf3a5931eUL, 0x3c874853UL, 0x3692d514UL, 0x3fffbdbaUL,
2484 0x15098eb6UL, 0xbc796773UL, 0x2b8f71f1UL, 0x3fffd3c2UL, 0x966579e7UL,
2485 0x3c62eb74UL, 0x6b2a23d9UL, 0x3fffe9d9UL, 0x7442fde3UL, 0x3c74a603UL,
2486 0xe78a6731UL, 0x3f55d87fUL, 0xd704a0c0UL, 0x3fac6b08UL, 0x6fba4e77UL,
2487 0x3f83b2abUL, 0xff82c58fUL, 0x3fcebfbdUL, 0xfefa39efUL, 0x3fe62e42UL,
2488 0x00000000UL, 0x00000000UL, 0xfefa39efUL, 0x3fe62e42UL, 0xfefa39efUL,
2489 0xbfe62e42UL, 0xf8000000UL, 0xffffffffUL, 0xf8000000UL, 0xffffffffUL,
2490 0x00000000UL, 0x80000000UL, 0x00000000UL, 0x00000000UL
2491
2492};
2493
2494//registers,
2495// input: xmm0, xmm1
2496// scratch: xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7
2497// eax, edx, ecx, ebx
2498
2499// Code generated by Intel C compiler for LIBM library
2500
2501void MacroAssembler::fast_pow(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register eax, Register ecx, Register edx, Register tmp) {
2502 Label L_2TAG_PACKET_0_0_2, L_2TAG_PACKET_1_0_2, L_2TAG_PACKET_2_0_2, L_2TAG_PACKET_3_0_2;
2503 Label L_2TAG_PACKET_4_0_2, L_2TAG_PACKET_5_0_2, L_2TAG_PACKET_6_0_2, L_2TAG_PACKET_7_0_2;
2504 Label L_2TAG_PACKET_8_0_2, L_2TAG_PACKET_9_0_2, L_2TAG_PACKET_10_0_2, L_2TAG_PACKET_11_0_2;
2505 Label L_2TAG_PACKET_12_0_2, L_2TAG_PACKET_13_0_2, L_2TAG_PACKET_14_0_2, L_2TAG_PACKET_15_0_2;
2506 Label L_2TAG_PACKET_16_0_2, L_2TAG_PACKET_17_0_2, L_2TAG_PACKET_18_0_2, L_2TAG_PACKET_19_0_2;
2507 Label L_2TAG_PACKET_20_0_2, L_2TAG_PACKET_21_0_2, L_2TAG_PACKET_22_0_2, L_2TAG_PACKET_23_0_2;
2508 Label L_2TAG_PACKET_24_0_2, L_2TAG_PACKET_25_0_2, L_2TAG_PACKET_26_0_2, L_2TAG_PACKET_27_0_2;
2509 Label L_2TAG_PACKET_28_0_2, L_2TAG_PACKET_29_0_2, L_2TAG_PACKET_30_0_2, L_2TAG_PACKET_31_0_2;
2510 Label L_2TAG_PACKET_32_0_2, L_2TAG_PACKET_33_0_2, L_2TAG_PACKET_34_0_2, L_2TAG_PACKET_35_0_2;
2511 Label L_2TAG_PACKET_36_0_2, L_2TAG_PACKET_37_0_2, L_2TAG_PACKET_38_0_2, L_2TAG_PACKET_39_0_2;
2512 Label L_2TAG_PACKET_40_0_2, L_2TAG_PACKET_41_0_2, L_2TAG_PACKET_42_0_2, L_2TAG_PACKET_43_0_2;
2513 Label L_2TAG_PACKET_44_0_2, L_2TAG_PACKET_45_0_2, L_2TAG_PACKET_46_0_2, L_2TAG_PACKET_47_0_2;
2514 Label L_2TAG_PACKET_48_0_2, L_2TAG_PACKET_49_0_2, L_2TAG_PACKET_50_0_2, L_2TAG_PACKET_51_0_2;
2515 Label L_2TAG_PACKET_52_0_2, L_2TAG_PACKET_53_0_2, L_2TAG_PACKET_54_0_2, L_2TAG_PACKET_55_0_2;
2516 Label L_2TAG_PACKET_56_0_2, L_2TAG_PACKET_57_0_2, L_2TAG_PACKET_58_0_2, start;
2517
2518 assert_different_registers(tmp, eax, ecx, edx);
2519
2520 address static_const_table_pow = (address)_static_const_table_pow;
2521
2522 bind(start);
2523 subl(rsp, 120);
2524 movl(Address(rsp, 64), tmp);
2525 lea(tmp, ExternalAddress(static_const_table_pow));
2526 movsd(xmm0, Address(rsp, 128));
2527 movsd(xmm1, Address(rsp, 136));
2528 xorpd(xmm2, xmm2);
2529 movl(eax, 16368);
2530 pinsrw(xmm2, eax, 3);
2531 movl(ecx, 1069088768);
2532 movdl(xmm7, ecx);
2533 movsd(Address(rsp, 16), xmm1);
2534 xorpd(xmm1, xmm1);
2535 movl(edx, 30704);
2536 pinsrw(xmm1, edx, 3);
2537 movsd(Address(rsp, 8), xmm0);
2538 movdqu(xmm3, xmm0);
2539 movl(edx, 8192);
2540 movdl(xmm4, edx);
2541 movdqu(xmm6, Address(tmp, 8240));
2542 pextrw(eax, xmm0, 3);
2543 por(xmm0, xmm2);
2544 psllq(xmm0, 5);
2545 movsd(xmm2, Address(tmp, 8256));
2546 psrlq(xmm0, 34);
2547 movl(edx, eax);
2548 andl(edx, 32752);
2549 subl(edx, 16368);
2550 movl(ecx, edx);
2551 sarl(edx, 31);
2552 addl(ecx, edx);
2553 xorl(ecx, edx);
2554 rcpss(xmm0, xmm0);
2555 psllq(xmm3, 12);
2556 addl(ecx, 16);
2557 bsrl(ecx, ecx);
2558 psrlq(xmm3, 12);
2559 movl(Address(rsp, 24), rsi);
2560 subl(eax, 16);
2561 cmpl(eax, 32736);
2562 jcc(Assembler::aboveEqual, L_2TAG_PACKET_0_0_2);
2563 movl(rsi, 0);
2564
2565 bind(L_2TAG_PACKET_1_0_2);
2566 mulss(xmm0, xmm7);
2567 movl(edx, -1);
2568 subl(ecx, 4);
2569 shll(edx);
2570 movdl(xmm5, edx);
2571 por(xmm3, xmm1);
2572 subl(eax, 16351);
2573 cmpl(eax, 1);
2574 jcc(Assembler::belowEqual, L_2TAG_PACKET_2_0_2);
2575 paddd(xmm0, xmm4);
2576 psllq(xmm5, 32);
2577 movdl(edx, xmm0);
2578 psllq(xmm0, 29);
2579 pand(xmm5, xmm3);
2580
2581 bind(L_2TAG_PACKET_3_0_2);
2582 pand(xmm0, xmm6);
2583 subsd(xmm3, xmm5);
2584 subl(eax, 1);
2585 sarl(eax, 4);
2586 cvtsi2sdl(xmm7, eax);
2587 mulpd(xmm5, xmm0);
2588
2589 bind(L_2TAG_PACKET_4_0_2);
2590 mulsd(xmm3, xmm0);
2591 movdqu(xmm1, Address(tmp, 8272));
2592 subsd(xmm5, xmm2);
2593 movdqu(xmm4, Address(tmp, 8288));
2594 movl(ecx, eax);
2595 sarl(eax, 31);
2596 addl(ecx, eax);
2597 xorl(eax, ecx);
2598 addl(eax, 1);
2599 bsrl(eax, eax);
2600 unpcklpd(xmm5, xmm3);
2601 movdqu(xmm6, Address(tmp, 8304));
2602 addsd(xmm3, xmm5);
2603 andl(edx, 16760832);
2604 shrl(edx, 10);
2605 addpd(xmm5, Address(tmp, edx, Address::times_1, -3616));
2606 movdqu(xmm0, Address(tmp, 8320));
2607 pshufd(xmm2, xmm3, 68);
2608 mulsd(xmm3, xmm3);
2609 mulpd(xmm1, xmm2);
2610 mulpd(xmm4, xmm2);
2611 addsd(xmm5, xmm7);
2612 mulsd(xmm2, xmm3);
2613 addpd(xmm6, xmm1);
2614 mulsd(xmm3, xmm3);
2615 addpd(xmm0, xmm4);
2616 movsd(xmm1, Address(rsp, 16));
2617 movzwl(ecx, Address(rsp, 22));
2618 pshufd(xmm7, xmm5, 238);
2619 movsd(xmm4, Address(tmp, 8368));
2620 mulpd(xmm6, xmm2);
2621 pshufd(xmm3, xmm3, 68);
2622 mulpd(xmm0, xmm2);
2623 shll(eax, 4);
2624 subl(eax, 15872);
2625 andl(ecx, 32752);
2626 addl(eax, ecx);
2627 mulpd(xmm3, xmm6);
2628 cmpl(eax, 624);
2629 jcc(Assembler::aboveEqual, L_2TAG_PACKET_5_0_2);
2630 xorpd(xmm6, xmm6);
2631 movl(edx, 17080);
2632 pinsrw(xmm6, edx, 3);
2633 movdqu(xmm2, xmm1);
2634 pand(xmm4, xmm1);
2635 subsd(xmm1, xmm4);
2636 mulsd(xmm4, xmm5);
2637 addsd(xmm0, xmm7);
2638 mulsd(xmm1, xmm5);
2639 movdqu(xmm7, xmm6);
2640 addsd(xmm6, xmm4);
2641 addpd(xmm3, xmm0);
2642 movdl(edx, xmm6);
2643 subsd(xmm6, xmm7);
2644 pshufd(xmm0, xmm3, 238);
2645 subsd(xmm4, xmm6);
2646 addsd(xmm0, xmm3);
2647 movl(ecx, edx);
2648 andl(edx, 255);
2649 addl(edx, edx);
2650 movdqu(xmm5, Address(tmp, edx, Address::times_8, 8384));
2651 addsd(xmm4, xmm1);
2652 mulsd(xmm2, xmm0);
2653 movdqu(xmm7, Address(tmp, 12480));
2654 movdqu(xmm3, Address(tmp, 12496));
2655 shll(ecx, 12);
2656 xorl(ecx, rsi);
2657 andl(ecx, -1048576);
2658 movdl(xmm6, ecx);
2659 addsd(xmm2, xmm4);
2660 movsd(xmm1, Address(tmp, 12512));
2661 pshufd(xmm0, xmm2, 68);
2662 pshufd(xmm4, xmm2, 68);
2663 mulpd(xmm0, xmm0);
2664 movl(rsi, Address(rsp, 24));
2665 mulpd(xmm7, xmm4);
2666 pshufd(xmm6, xmm6, 17);
2667 mulsd(xmm1, xmm2);
2668 mulsd(xmm0, xmm0);
2669 paddd(xmm5, xmm6);
2670 addpd(xmm3, xmm7);
2671 mulsd(xmm1, xmm5);
2672 pshufd(xmm6, xmm5, 238);
2673 mulpd(xmm0, xmm3);
2674 addsd(xmm1, xmm6);
2675 pshufd(xmm3, xmm0, 238);
2676 mulsd(xmm0, xmm5);
2677 mulsd(xmm3, xmm5);
2678 addsd(xmm0, xmm1);
2679 addsd(xmm0, xmm3);
2680 addsd(xmm0, xmm5);
2681 movsd(Address(rsp, 0), xmm0);
2682 fld_d(Address(rsp, 0));
2683 jmp(L_2TAG_PACKET_6_0_2);
2684
2685 bind(L_2TAG_PACKET_7_0_2);
2686 movsd(xmm0, Address(rsp, 128));
2687 movsd(xmm1, Address(rsp, 136));
2688 mulsd(xmm0, xmm1);
2689 movsd(Address(rsp, 0), xmm0);
2690 fld_d(Address(rsp, 0));
2691 jmp(L_2TAG_PACKET_6_0_2);
2692
2693 bind(L_2TAG_PACKET_0_0_2);
2694 addl(eax, 16);
2695 movl(edx, 32752);
2696 andl(edx, eax);
2697 cmpl(edx, 32752);
2698 jcc(Assembler::equal, L_2TAG_PACKET_8_0_2);
2699 testl(eax, 32768);
2700 jcc(Assembler::notEqual, L_2TAG_PACKET_9_0_2);
2701
2702 bind(L_2TAG_PACKET_10_0_2);
2703 movl(ecx, Address(rsp, 16));
2704 xorl(edx, edx);
2705 testl(ecx, ecx);
2706 movl(ecx, 1);
2707 cmovl(Assembler::notEqual, edx, ecx);
2708 orl(edx, Address(rsp, 20));
2709 cmpl(edx, 1072693248);
2710 jcc(Assembler::equal, L_2TAG_PACKET_7_0_2);
2711 movsd(xmm0, Address(rsp, 8));
2712 movsd(xmm3, Address(rsp, 8));
2713 movdl(edx, xmm3);
2714 psrlq(xmm3, 32);
2715 movdl(ecx, xmm3);
2716 orl(edx, ecx);
2717 cmpl(edx, 0);
2718 jcc(Assembler::equal, L_2TAG_PACKET_11_0_2);
2719 xorpd(xmm3, xmm3);
2720 movl(eax, 18416);
2721 pinsrw(xmm3, eax, 3);
2722 mulsd(xmm0, xmm3);
2723 xorpd(xmm2, xmm2);
2724 movl(eax, 16368);
2725 pinsrw(xmm2, eax, 3);
2726 movdqu(xmm3, xmm0);
2727 pextrw(eax, xmm0, 3);
2728 por(xmm0, xmm2);
2729 movl(ecx, 18416);
2730 psllq(xmm0, 5);
2731 movsd(xmm2, Address(tmp, 8256));
2732 psrlq(xmm0, 34);
2733 rcpss(xmm0, xmm0);
2734 psllq(xmm3, 12);
2735 movdqu(xmm6, Address(tmp, 8240));
2736 psrlq(xmm3, 12);
2737 mulss(xmm0, xmm7);
2738 movl(edx, -1024);
2739 movdl(xmm5, edx);
2740 por(xmm3, xmm1);
2741 paddd(xmm0, xmm4);
2742 psllq(xmm5, 32);
2743 movdl(edx, xmm0);
2744 psllq(xmm0, 29);
2745 pand(xmm5, xmm3);
2746 movl(rsi, 0);
2747 pand(xmm0, xmm6);
2748 subsd(xmm3, xmm5);
2749 andl(eax, 32752);
2750 subl(eax, 18416);
2751 sarl(eax, 4);
2752 cvtsi2sdl(xmm7, eax);
2753 mulpd(xmm5, xmm0);
2754 jmp(L_2TAG_PACKET_4_0_2);
2755
2756 bind(L_2TAG_PACKET_12_0_2);
2757 movl(ecx, Address(rsp, 16));
2758 xorl(edx, edx);
2759 testl(ecx, ecx);
2760 movl(ecx, 1);
2761 cmovl(Assembler::notEqual, edx, ecx);
2762 orl(edx, Address(rsp, 20));
2763 cmpl(edx, 1072693248);
2764 jcc(Assembler::equal, L_2TAG_PACKET_7_0_2);
2765 movsd(xmm0, Address(rsp, 8));
2766 movsd(xmm3, Address(rsp, 8));
2767 movdl(edx, xmm3);
2768 psrlq(xmm3, 32);
2769 movdl(ecx, xmm3);
2770 orl(edx, ecx);
2771 cmpl(edx, 0);
2772 jcc(Assembler::equal, L_2TAG_PACKET_11_0_2);
2773 xorpd(xmm3, xmm3);
2774 movl(eax, 18416);
2775 pinsrw(xmm3, eax, 3);
2776 mulsd(xmm0, xmm3);
2777 xorpd(xmm2, xmm2);
2778 movl(eax, 16368);
2779 pinsrw(xmm2, eax, 3);
2780 movdqu(xmm3, xmm0);
2781 pextrw(eax, xmm0, 3);
2782 por(xmm0, xmm2);
2783 movl(ecx, 18416);
2784 psllq(xmm0, 5);
2785 movsd(xmm2, Address(tmp, 8256));
2786 psrlq(xmm0, 34);
2787 rcpss(xmm0, xmm0);
2788 psllq(xmm3, 12);
2789 movdqu(xmm6, Address(tmp, 8240));
2790 psrlq(xmm3, 12);
2791 mulss(xmm0, xmm7);
2792 movl(edx, -1024);
2793 movdl(xmm5, edx);
2794 por(xmm3, xmm1);
2795 paddd(xmm0, xmm4);
2796 psllq(xmm5, 32);
2797 movdl(edx, xmm0);
2798 psllq(xmm0, 29);
2799 pand(xmm5, xmm3);
2800 movl(rsi, INT_MIN);
2801 pand(xmm0, xmm6);
2802 subsd(xmm3, xmm5);
2803 andl(eax, 32752);
2804 subl(eax, 18416);
2805 sarl(eax, 4);
2806 cvtsi2sdl(xmm7, eax);
2807 mulpd(xmm5, xmm0);
2808 jmp(L_2TAG_PACKET_4_0_2);
2809
2810 bind(L_2TAG_PACKET_5_0_2);
2811 cmpl(eax, 0);
2812 jcc(Assembler::less, L_2TAG_PACKET_13_0_2);
2813 cmpl(eax, 752);
2814 jcc(Assembler::aboveEqual, L_2TAG_PACKET_14_0_2);
2815
2816 bind(L_2TAG_PACKET_15_0_2);
2817 addsd(xmm0, xmm7);
2818 movsd(xmm2, Address(tmp, 12544));
2819 addpd(xmm3, xmm0);
2820 xorpd(xmm6, xmm6);
2821 movl(eax, 17080);
2822 pinsrw(xmm6, eax, 3);
2823 pshufd(xmm0, xmm3, 238);
2824 addsd(xmm0, xmm3);
2825 movdqu(xmm3, xmm5);
2826 addsd(xmm5, xmm0);
2827 movdqu(xmm4, xmm2);
2828 subsd(xmm3, xmm5);
2829 movdqu(xmm7, xmm5);
2830 pand(xmm5, xmm2);
2831 movdqu(xmm2, xmm1);
2832 pand(xmm4, xmm1);
2833 subsd(xmm7, xmm5);
2834 addsd(xmm0, xmm3);
2835 subsd(xmm1, xmm4);
2836 mulsd(xmm4, xmm5);
2837 addsd(xmm0, xmm7);
2838 mulsd(xmm2, xmm0);
2839 movdqu(xmm7, xmm6);
2840 mulsd(xmm1, xmm5);
2841 addsd(xmm6, xmm4);
2842 movdl(eax, xmm6);
2843 subsd(xmm6, xmm7);
2844 addsd(xmm2, xmm1);
2845 movdqu(xmm7, Address(tmp, 12480));
2846 movdqu(xmm3, Address(tmp, 12496));
2847 subsd(xmm4, xmm6);
2848 pextrw(edx, xmm6, 3);
2849 movl(ecx, eax);
2850 andl(eax, 255);
2851 addl(eax, eax);
2852 movdqu(xmm5, Address(tmp, eax, Address::times_8, 8384));
2853 addsd(xmm2, xmm4);
2854 sarl(ecx, 8);
2855 movl(eax, ecx);
2856 sarl(ecx, 1);
2857 subl(eax, ecx);
2858 shll(ecx, 20);
2859 xorl(ecx, rsi);
2860 movdl(xmm6, ecx);
2861 movsd(xmm1, Address(tmp, 12512));
2862 andl(edx, 32767);
2863 cmpl(edx, 16529);
2864 jcc(Assembler::above, L_2TAG_PACKET_14_0_2);
2865 pshufd(xmm0, xmm2, 68);
2866 pshufd(xmm4, xmm2, 68);
2867 mulpd(xmm0, xmm0);
2868 mulpd(xmm7, xmm4);
2869 pshufd(xmm6, xmm6, 17);
2870 mulsd(xmm1, xmm2);
2871 mulsd(xmm0, xmm0);
2872 paddd(xmm5, xmm6);
2873 addpd(xmm3, xmm7);
2874 mulsd(xmm1, xmm5);
2875 pshufd(xmm6, xmm5, 238);
2876 mulpd(xmm0, xmm3);
2877 addsd(xmm1, xmm6);
2878 pshufd(xmm3, xmm0, 238);
2879 mulsd(xmm0, xmm5);
2880 mulsd(xmm3, xmm5);
2881 shll(eax, 4);
2882 xorpd(xmm4, xmm4);
2883 addl(eax, 16368);
2884 pinsrw(xmm4, eax, 3);
2885 addsd(xmm0, xmm1);
2886 movl(rsi, Address(rsp, 24));
2887 addsd(xmm0, xmm3);
2888 movdqu(xmm1, xmm0);
2889 addsd(xmm0, xmm5);
2890 mulsd(xmm0, xmm4);
2891 pextrw(eax, xmm0, 3);
2892 andl(eax, 32752);
2893 jcc(Assembler::equal, L_2TAG_PACKET_16_0_2);
2894 cmpl(eax, 32752);
2895 jcc(Assembler::equal, L_2TAG_PACKET_17_0_2);
2896
2897 bind(L_2TAG_PACKET_18_0_2);
2898 movsd(Address(rsp, 0), xmm0);
2899 fld_d(Address(rsp, 0));
2900 jmp(L_2TAG_PACKET_6_0_2);
2901
2902 bind(L_2TAG_PACKET_8_0_2);
2903 movsd(xmm1, Address(rsp, 16));
2904 movsd(xmm0, Address(rsp, 8));
2905 movdqu(xmm2, xmm0);
2906 movdl(eax, xmm2);
2907 psrlq(xmm2, 20);
2908 movdl(edx, xmm2);
2909 orl(eax, edx);
2910 jcc(Assembler::equal, L_2TAG_PACKET_19_0_2);
2911 addsd(xmm0, xmm0);
2912 movdl(eax, xmm1);
2913 psrlq(xmm1, 32);
2914 movdl(edx, xmm1);
2915 movl(ecx, edx);
2916 addl(edx, edx);
2917 orl(eax, edx);
2918 jcc(Assembler::equal, L_2TAG_PACKET_20_0_2);
2919 jmp(L_2TAG_PACKET_18_0_2);
2920
2921 bind(L_2TAG_PACKET_20_0_2);
2922 xorpd(xmm0, xmm0);
2923 movl(eax, 16368);
2924 pinsrw(xmm0, eax, 3);
2925 movl(edx, 29);
2926 jmp(L_2TAG_PACKET_21_0_2);
2927
2928 bind(L_2TAG_PACKET_22_0_2);
2929 movsd(xmm0, Address(rsp, 16));
2930 addpd(xmm0, xmm0);
2931 jmp(L_2TAG_PACKET_18_0_2);
2932
2933 bind(L_2TAG_PACKET_19_0_2);
2934 movdl(eax, xmm1);
2935 movdqu(xmm2, xmm1);
2936 psrlq(xmm1, 32);
2937 movdl(edx, xmm1);
2938 movl(ecx, edx);
2939 addl(edx, edx);
2940 orl(eax, edx);
2941 jcc(Assembler::equal, L_2TAG_PACKET_23_0_2);
2942 pextrw(eax, xmm2, 3);
2943 andl(eax, 32752);
2944 cmpl(eax, 32752);
2945 jcc(Assembler::notEqual, L_2TAG_PACKET_24_0_2);
2946 movdl(eax, xmm2);
2947 psrlq(xmm2, 20);
2948 movdl(edx, xmm2);
2949 orl(eax, edx);
2950 jcc(Assembler::notEqual, L_2TAG_PACKET_22_0_2);
2951
2952 bind(L_2TAG_PACKET_24_0_2);
2953 pextrw(eax, xmm0, 3);
2954 testl(eax, 32768);
2955 jcc(Assembler::notEqual, L_2TAG_PACKET_25_0_2);
2956 testl(ecx, INT_MIN);
2957 jcc(Assembler::notEqual, L_2TAG_PACKET_26_0_2);
2958 jmp(L_2TAG_PACKET_18_0_2);
2959
2960 bind(L_2TAG_PACKET_27_0_2);
2961 movsd(xmm1, Address(rsp, 16));
2962 movdl(eax, xmm1);
2963 testl(eax, 1);
2964 jcc(Assembler::notEqual, L_2TAG_PACKET_28_0_2);
2965 testl(eax, 2);
2966 jcc(Assembler::notEqual, L_2TAG_PACKET_29_0_2);
2967 jmp(L_2TAG_PACKET_28_0_2);
2968
2969 bind(L_2TAG_PACKET_25_0_2);
2970 shrl(ecx, 20);
2971 andl(ecx, 2047);
2972 cmpl(ecx, 1075);
2973 jcc(Assembler::above, L_2TAG_PACKET_28_0_2);
2974 jcc(Assembler::equal, L_2TAG_PACKET_30_0_2);
2975 cmpl(ecx, 1074);
2976 jcc(Assembler::above, L_2TAG_PACKET_27_0_2);
2977 cmpl(ecx, 1023);
2978 jcc(Assembler::below, L_2TAG_PACKET_28_0_2);
2979 movsd(xmm1, Address(rsp, 16));
2980 movl(eax, 17208);
2981 xorpd(xmm3, xmm3);
2982 pinsrw(xmm3, eax, 3);
2983 movdqu(xmm4, xmm3);
2984 addsd(xmm3, xmm1);
2985 subsd(xmm4, xmm3);
2986 addsd(xmm1, xmm4);
2987 pextrw(eax, xmm1, 3);
2988 andl(eax, 32752);
2989 jcc(Assembler::notEqual, L_2TAG_PACKET_28_0_2);
2990 movdl(eax, xmm3);
2991 andl(eax, 1);
2992 jcc(Assembler::equal, L_2TAG_PACKET_28_0_2);
2993
2994 bind(L_2TAG_PACKET_29_0_2);
2995 movsd(xmm1, Address(rsp, 16));
2996 pextrw(eax, xmm1, 3);
2997 andl(eax, 32768);
2998 jcc(Assembler::equal, L_2TAG_PACKET_18_0_2);
2999 xorpd(xmm0, xmm0);
3000 movl(eax, 32768);
3001 pinsrw(xmm0, eax, 3);
3002 jmp(L_2TAG_PACKET_18_0_2);
3003
3004 bind(L_2TAG_PACKET_28_0_2);
3005 movsd(xmm1, Address(rsp, 16));
3006 pextrw(eax, xmm1, 3);
3007 andl(eax, 32768);
3008 jcc(Assembler::notEqual, L_2TAG_PACKET_26_0_2);
3009
3010 bind(L_2TAG_PACKET_31_0_2);
3011 xorpd(xmm0, xmm0);
3012 movl(eax, 32752);
3013 pinsrw(xmm0, eax, 3);
3014 jmp(L_2TAG_PACKET_18_0_2);
3015
3016 bind(L_2TAG_PACKET_30_0_2);
3017 movsd(xmm1, Address(rsp, 16));
3018 movdl(eax, xmm1);
3019 andl(eax, 1);
3020 jcc(Assembler::equal, L_2TAG_PACKET_28_0_2);
3021 jmp(L_2TAG_PACKET_29_0_2);
3022
3023 bind(L_2TAG_PACKET_32_0_2);
3024 movdl(eax, xmm1);
3025 psrlq(xmm1, 20);
3026 movdl(edx, xmm1);
3027 orl(eax, edx);
3028 jcc(Assembler::equal, L_2TAG_PACKET_33_0_2);
3029 movsd(xmm0, Address(rsp, 16));
3030 addsd(xmm0, xmm0);
3031 jmp(L_2TAG_PACKET_18_0_2);
3032
3033 bind(L_2TAG_PACKET_33_0_2);
3034 movsd(xmm0, Address(rsp, 8));
3035 pextrw(eax, xmm0, 3);
3036 cmpl(eax, 49136);
3037 jcc(Assembler::notEqual, L_2TAG_PACKET_34_0_2);
3038 movdl(ecx, xmm0);
3039 psrlq(xmm0, 20);
3040 movdl(edx, xmm0);
3041 orl(ecx, edx);
3042 jcc(Assembler::notEqual, L_2TAG_PACKET_34_0_2);
3043 xorpd(xmm0, xmm0);
3044 movl(eax, 32760);
3045 pinsrw(xmm0, eax, 3);
3046 jmp(L_2TAG_PACKET_18_0_2);
3047
3048 bind(L_2TAG_PACKET_34_0_2);
3049 movsd(xmm1, Address(rsp, 16));
3050 andl(eax, 32752);
3051 subl(eax, 16368);
3052 pextrw(edx, xmm1, 3);
3053 xorpd(xmm0, xmm0);
3054 xorl(eax, edx);
3055 andl(eax, 32768);
3056 jcc(Assembler::notEqual, L_2TAG_PACKET_18_0_2);
3057 movl(ecx, 32752);
3058 pinsrw(xmm0, ecx, 3);
3059 jmp(L_2TAG_PACKET_18_0_2);
3060
3061 bind(L_2TAG_PACKET_35_0_2);
3062 movdl(eax, xmm1);
3063 cmpl(edx, 17184);
3064 jcc(Assembler::above, L_2TAG_PACKET_36_0_2);
3065 testl(eax, 1);
3066 jcc(Assembler::notEqual, L_2TAG_PACKET_37_0_2);
3067 testl(eax, 2);
3068 jcc(Assembler::equal, L_2TAG_PACKET_38_0_2);
3069 jmp(L_2TAG_PACKET_39_0_2);
3070
3071 bind(L_2TAG_PACKET_36_0_2);
3072 testl(eax, 1);
3073 jcc(Assembler::equal, L_2TAG_PACKET_38_0_2);
3074 jmp(L_2TAG_PACKET_39_0_2);
3075
3076 bind(L_2TAG_PACKET_9_0_2);
3077 movsd(xmm2, Address(rsp, 8));
3078 movdl(eax, xmm2);
3079 psrlq(xmm2, 31);
3080 movdl(ecx, xmm2);
3081 orl(eax, ecx);
3082 jcc(Assembler::equal, L_2TAG_PACKET_11_0_2);
3083 movsd(xmm1, Address(rsp, 16));
3084 pextrw(edx, xmm1, 3);
3085 movdl(eax, xmm1);
3086 movdqu(xmm2, xmm1);
3087 psrlq(xmm2, 32);
3088 movdl(ecx, xmm2);
3089 addl(ecx, ecx);
3090 orl(ecx, eax);
3091 jcc(Assembler::equal, L_2TAG_PACKET_40_0_2);
3092 andl(edx, 32752);
3093 cmpl(edx, 32752);
3094 jcc(Assembler::equal, L_2TAG_PACKET_32_0_2);
3095 cmpl(edx, 17200);
3096 jcc(Assembler::above, L_2TAG_PACKET_38_0_2);
3097 cmpl(edx, 17184);
3098 jcc(Assembler::aboveEqual, L_2TAG_PACKET_35_0_2);
3099 cmpl(edx, 16368);
3100 jcc(Assembler::below, L_2TAG_PACKET_37_0_2);
3101 movl(eax, 17208);
3102 xorpd(xmm2, xmm2);
3103 pinsrw(xmm2, eax, 3);
3104 movdqu(xmm4, xmm2);
3105 addsd(xmm2, xmm1);
3106 subsd(xmm4, xmm2);
3107 addsd(xmm1, xmm4);
3108 pextrw(eax, xmm1, 3);
3109 andl(eax, 32767);
3110 jcc(Assembler::notEqual, L_2TAG_PACKET_37_0_2);
3111 movdl(eax, xmm2);
3112 andl(eax, 1);
3113 jcc(Assembler::equal, L_2TAG_PACKET_38_0_2);
3114
3115 bind(L_2TAG_PACKET_39_0_2);
3116 xorpd(xmm1, xmm1);
3117 movl(edx, 30704);
3118 pinsrw(xmm1, edx, 3);
3119 movsd(xmm2, Address(tmp, 8256));
3120 movsd(xmm4, Address(rsp, 8));
3121 pextrw(eax, xmm4, 3);
3122 movl(edx, 8192);
3123 movdl(xmm4, edx);
3124 andl(eax, 32767);
3125 subl(eax, 16);
3126 jcc(Assembler::less, L_2TAG_PACKET_12_0_2);
3127 movl(edx, eax);
3128 andl(edx, 32752);
3129 subl(edx, 16368);
3130 movl(ecx, edx);
3131 sarl(edx, 31);
3132 addl(ecx, edx);
3133 xorl(ecx, edx);
3134 addl(ecx, 16);
3135 bsrl(ecx, ecx);
3136 movl(rsi, INT_MIN);
3137 jmp(L_2TAG_PACKET_1_0_2);
3138
3139 bind(L_2TAG_PACKET_37_0_2);
3140 xorpd(xmm1, xmm1);
3141 movl(eax, 32752);
3142 pinsrw(xmm1, eax, 3);
3143 xorpd(xmm0, xmm0);
3144 mulsd(xmm0, xmm1);
3145 movl(edx, 28);
3146 jmp(L_2TAG_PACKET_21_0_2);
3147
3148 bind(L_2TAG_PACKET_38_0_2);
3149 xorpd(xmm1, xmm1);
3150 movl(edx, 30704);
3151 pinsrw(xmm1, edx, 3);
3152 movsd(xmm2, Address(tmp, 8256));
3153 movsd(xmm4, Address(rsp, 8));
3154 pextrw(eax, xmm4, 3);
3155 movl(edx, 8192);
3156 movdl(xmm4, edx);
3157 andl(eax, 32767);
3158 subl(eax, 16);
3159 jcc(Assembler::less, L_2TAG_PACKET_10_0_2);
3160 movl(edx, eax);
3161 andl(edx, 32752);
3162 subl(edx, 16368);
3163 movl(ecx, edx);
3164 sarl(edx, 31);
3165 addl(ecx, edx);
3166 xorl(ecx, edx);
3167 addl(ecx, 16);
3168 bsrl(ecx, ecx);
3169 movl(rsi, 0);
3170 jmp(L_2TAG_PACKET_1_0_2);
3171
3172 bind(L_2TAG_PACKET_23_0_2);
3173 xorpd(xmm0, xmm0);
3174 movl(eax, 16368);
3175 pinsrw(xmm0, eax, 3);
3176 jmp(L_2TAG_PACKET_18_0_2);
3177
3178 bind(L_2TAG_PACKET_26_0_2);
3179 xorpd(xmm0, xmm0);
3180 jmp(L_2TAG_PACKET_18_0_2);
3181
3182 bind(L_2TAG_PACKET_13_0_2);
3183 addl(eax, 384);
3184 cmpl(eax, 0);
3185 jcc(Assembler::less, L_2TAG_PACKET_41_0_2);
3186 mulsd(xmm5, xmm1);
3187 addsd(xmm0, xmm7);
3188 shrl(rsi, 31);
3189 addpd(xmm3, xmm0);
3190 pshufd(xmm0, xmm3, 238);
3191 addsd(xmm3, xmm0);
3192 movsd(xmm4, Address(tmp, rsi, Address::times_8, 12528));
3193 mulsd(xmm1, xmm3);
3194 xorpd(xmm0, xmm0);
3195 movl(eax, 16368);
3196 shll(rsi, 15);
3197 orl(eax, rsi);
3198 pinsrw(xmm0, eax, 3);
3199 addsd(xmm5, xmm1);
3200 movl(rsi, Address(rsp, 24));
3201 mulsd(xmm5, xmm4);
3202 addsd(xmm0, xmm5);
3203 jmp(L_2TAG_PACKET_18_0_2);
3204
3205 bind(L_2TAG_PACKET_41_0_2);
3206 movl(rsi, Address(rsp, 24));
3207 xorpd(xmm0, xmm0);
3208 movl(eax, 16368);
3209 pinsrw(xmm0, eax, 3);
3210 jmp(L_2TAG_PACKET_18_0_2);
3211
3212 bind(L_2TAG_PACKET_40_0_2);
3213 xorpd(xmm0, xmm0);
3214 movl(eax, 16368);
3215 pinsrw(xmm0, eax, 3);
3216 jmp(L_2TAG_PACKET_18_0_2);
3217
3218 bind(L_2TAG_PACKET_42_0_2);
3219 xorpd(xmm0, xmm0);
3220 movl(eax, 16368);
3221 pinsrw(xmm0, eax, 3);
3222 movl(edx, 26);
3223 jmp(L_2TAG_PACKET_21_0_2);
3224
3225 bind(L_2TAG_PACKET_11_0_2);
3226 movsd(xmm1, Address(rsp, 16));
3227 movdqu(xmm2, xmm1);
3228 pextrw(eax, xmm1, 3);
3229 andl(eax, 32752);
3230 cmpl(eax, 32752);
3231 jcc(Assembler::notEqual, L_2TAG_PACKET_43_0_2);
3232 movdl(eax, xmm2);
3233 psrlq(xmm2, 20);
3234 movdl(edx, xmm2);
3235 orl(eax, edx);
3236 jcc(Assembler::notEqual, L_2TAG_PACKET_22_0_2);
3237
3238 bind(L_2TAG_PACKET_43_0_2);
3239 movdl(eax, xmm1);
3240 psrlq(xmm1, 32);
3241 movdl(edx, xmm1);
3242 movl(ecx, edx);
3243 addl(edx, edx);
3244 orl(eax, edx);
3245 jcc(Assembler::equal, L_2TAG_PACKET_42_0_2);
3246 shrl(edx, 21);
3247 cmpl(edx, 1075);
3248 jcc(Assembler::above, L_2TAG_PACKET_44_0_2);
3249 jcc(Assembler::equal, L_2TAG_PACKET_45_0_2);
3250 cmpl(edx, 1023);
3251 jcc(Assembler::below, L_2TAG_PACKET_44_0_2);
3252 movsd(xmm1, Address(rsp, 16));
3253 movl(eax, 17208);
3254 xorpd(xmm3, xmm3);
3255 pinsrw(xmm3, eax, 3);
3256 movdqu(xmm4, xmm3);
3257 addsd(xmm3, xmm1);
3258 subsd(xmm4, xmm3);
3259 addsd(xmm1, xmm4);
3260 pextrw(eax, xmm1, 3);
3261 andl(eax, 32752);
3262 jcc(Assembler::notEqual, L_2TAG_PACKET_44_0_2);
3263 movdl(eax, xmm3);
3264 andl(eax, 1);
3265 jcc(Assembler::equal, L_2TAG_PACKET_44_0_2);
3266
3267 bind(L_2TAG_PACKET_46_0_2);
3268 movsd(xmm0, Address(rsp, 8));
3269 testl(ecx, INT_MIN);
3270 jcc(Assembler::notEqual, L_2TAG_PACKET_47_0_2);
3271 jmp(L_2TAG_PACKET_18_0_2);
3272
3273 bind(L_2TAG_PACKET_45_0_2);
3274 movsd(xmm1, Address(rsp, 16));
3275 movdl(eax, xmm1);
3276 testl(eax, 1);
3277 jcc(Assembler::notEqual, L_2TAG_PACKET_46_0_2);
3278
3279 bind(L_2TAG_PACKET_44_0_2);
3280 testl(ecx, INT_MIN);
3281 jcc(Assembler::equal, L_2TAG_PACKET_26_0_2);
3282 xorpd(xmm0, xmm0);
3283
3284 bind(L_2TAG_PACKET_47_0_2);
3285 movl(eax, 16368);
3286 xorpd(xmm1, xmm1);
3287 pinsrw(xmm1, eax, 3);
3288 divsd(xmm1, xmm0);
3289 movdqu(xmm0, xmm1);
3290 movl(edx, 27);
3291 jmp(L_2TAG_PACKET_21_0_2);
3292
3293 bind(L_2TAG_PACKET_14_0_2);
3294 movsd(xmm2, Address(rsp, 8));
3295 movsd(xmm6, Address(rsp, 16));
3296 pextrw(eax, xmm2, 3);
3297 pextrw(edx, xmm6, 3);
3298 movl(ecx, 32752);
3299 andl(ecx, edx);
3300 cmpl(ecx, 32752);
3301 jcc(Assembler::equal, L_2TAG_PACKET_48_0_2);
3302 andl(eax, 32752);
3303 subl(eax, 16368);
3304 xorl(edx, eax);
3305 testl(edx, 32768);
3306 jcc(Assembler::notEqual, L_2TAG_PACKET_49_0_2);
3307
3308 bind(L_2TAG_PACKET_50_0_2);
3309 movl(eax, 32736);
3310 pinsrw(xmm0, eax, 3);
3311 shrl(rsi, 16);
3312 orl(eax, rsi);
3313 pinsrw(xmm1, eax, 3);
3314 movl(rsi, Address(rsp, 24));
3315 mulsd(xmm0, xmm1);
3316
3317 bind(L_2TAG_PACKET_17_0_2);
3318 movl(edx, 24);
3319
3320 bind(L_2TAG_PACKET_21_0_2);
3321 movsd(Address(rsp, 0), xmm0);
3322 fld_d(Address(rsp, 0));
3323 jmp(L_2TAG_PACKET_6_0_2);
3324
3325 bind(L_2TAG_PACKET_49_0_2);
3326 movl(eax, 16);
3327 pinsrw(xmm0, eax, 3);
3328 mulsd(xmm0, xmm0);
3329 testl(rsi, INT_MIN);
3330 jcc(Assembler::equal, L_2TAG_PACKET_51_0_2);
3331 movsd(xmm2, Address(tmp, 12560));
3332 xorpd(xmm0, xmm2);
3333
3334 bind(L_2TAG_PACKET_51_0_2);
3335 movl(rsi, Address(rsp, 24));
3336 movl(edx, 25);
3337 jmp(L_2TAG_PACKET_21_0_2);
3338
3339 bind(L_2TAG_PACKET_16_0_2);
3340 pextrw(ecx, xmm5, 3);
3341 pextrw(edx, xmm4, 3);
3342 movl(eax, -1);
3343 andl(ecx, 32752);
3344 subl(ecx, 16368);
3345 andl(edx, 32752);
3346 addl(edx, ecx);
3347 movl(ecx, -31);
3348 sarl(edx, 4);
3349 subl(ecx, edx);
3350 jcc(Assembler::lessEqual, L_2TAG_PACKET_52_0_2);
3351 cmpl(ecx, 20);
3352 jcc(Assembler::above, L_2TAG_PACKET_53_0_2);
3353 shll(eax);
3354
3355 bind(L_2TAG_PACKET_52_0_2);
3356 movdl(xmm0, eax);
3357 psllq(xmm0, 32);
3358 pand(xmm0, xmm5);
3359 subsd(xmm5, xmm0);
3360 addsd(xmm5, xmm1);
3361 mulsd(xmm0, xmm4);
3362 mulsd(xmm5, xmm4);
3363 addsd(xmm0, xmm5);
3364
3365 bind(L_2TAG_PACKET_53_0_2);
3366 movl(edx, 25);
3367 jmp(L_2TAG_PACKET_21_0_2);
3368
3369 bind(L_2TAG_PACKET_2_0_2);
3370 movzwl(ecx, Address(rsp, 22));
3371 movl(edx, INT_MIN);
3372 movdl(xmm1, edx);
3373 xorpd(xmm7, xmm7);
3374 paddd(xmm0, xmm4);
3375 psllq(xmm5, 32);
3376 movdl(edx, xmm0);
3377 psllq(xmm0, 29);
3378 paddq(xmm1, xmm3);
3379 pand(xmm5, xmm1);
3380 andl(ecx, 32752);
3381 cmpl(ecx, 16560);
3382 jcc(Assembler::below, L_2TAG_PACKET_3_0_2);
3383 pand(xmm0, xmm6);
3384 subsd(xmm3, xmm5);
3385 addl(eax, 16351);
3386 shrl(eax, 4);
3387 subl(eax, 1022);
3388 cvtsi2sdl(xmm7, eax);
3389 mulpd(xmm5, xmm0);
3390 movsd(xmm4, Address(tmp, 0));
3391 mulsd(xmm3, xmm0);
3392 movsd(xmm6, Address(tmp, 0));
3393 subsd(xmm5, xmm2);
3394 movsd(xmm1, Address(tmp, 8));
3395 pshufd(xmm2, xmm3, 68);
3396 unpcklpd(xmm5, xmm3);
3397 addsd(xmm3, xmm5);
3398 movsd(xmm0, Address(tmp, 8));
3399 andl(edx, 16760832);
3400 shrl(edx, 10);
3401 addpd(xmm7, Address(tmp, edx, Address::times_1, -3616));
3402 mulsd(xmm4, xmm5);
3403 mulsd(xmm0, xmm5);
3404 mulsd(xmm6, xmm2);
3405 mulsd(xmm1, xmm2);
3406 movdqu(xmm2, xmm5);
3407 mulsd(xmm4, xmm5);
3408 addsd(xmm5, xmm0);
3409 movdqu(xmm0, xmm7);
3410 addsd(xmm2, xmm3);
3411 addsd(xmm7, xmm5);
3412 mulsd(xmm6, xmm2);
3413 subsd(xmm0, xmm7);
3414 movdqu(xmm2, xmm7);
3415 addsd(xmm7, xmm4);
3416 addsd(xmm0, xmm5);
3417 subsd(xmm2, xmm7);
3418 addsd(xmm4, xmm2);
3419 pshufd(xmm2, xmm5, 238);
3420 movdqu(xmm5, xmm7);
3421 addsd(xmm7, xmm2);
3422 addsd(xmm4, xmm0);
3423 movdqu(xmm0, Address(tmp, 8272));
3424 subsd(xmm5, xmm7);
3425 addsd(xmm6, xmm4);
3426 movdqu(xmm4, xmm7);
3427 addsd(xmm5, xmm2);
3428 addsd(xmm7, xmm1);
3429 movdqu(xmm2, Address(tmp, 8336));
3430 subsd(xmm4, xmm7);
3431 addsd(xmm6, xmm5);
3432 addsd(xmm4, xmm1);
3433 pshufd(xmm5, xmm7, 238);
3434 movdqu(xmm1, xmm7);
3435 addsd(xmm7, xmm5);
3436 subsd(xmm1, xmm7);
3437 addsd(xmm1, xmm5);
3438 movdqu(xmm5, Address(tmp, 8352));
3439 pshufd(xmm3, xmm3, 68);
3440 addsd(xmm6, xmm4);
3441 addsd(xmm6, xmm1);
3442 movdqu(xmm1, Address(tmp, 8304));
3443 mulpd(xmm0, xmm3);
3444 mulpd(xmm2, xmm3);
3445 pshufd(xmm4, xmm3, 68);
3446 mulpd(xmm3, xmm3);
3447 addpd(xmm0, xmm1);
3448 addpd(xmm5, xmm2);
3449 mulsd(xmm4, xmm3);
3450 movsd(xmm2, Address(tmp, 16));
3451 mulpd(xmm3, xmm3);
3452 movsd(xmm1, Address(rsp, 16));
3453 movzwl(ecx, Address(rsp, 22));
3454 mulpd(xmm0, xmm4);
3455 pextrw(eax, xmm7, 3);
3456 mulpd(xmm5, xmm4);
3457 mulpd(xmm0, xmm3);
3458 movsd(xmm4, Address(tmp, 8376));
3459 pand(xmm2, xmm7);
3460 addsd(xmm5, xmm6);
3461 subsd(xmm7, xmm2);
3462 addpd(xmm5, xmm0);
3463 andl(eax, 32752);
3464 subl(eax, 16368);
3465 andl(ecx, 32752);
3466 cmpl(ecx, 32752);
3467 jcc(Assembler::equal, L_2TAG_PACKET_48_0_2);
3468 addl(ecx, eax);
3469 cmpl(ecx, 16576);
3470 jcc(Assembler::aboveEqual, L_2TAG_PACKET_54_0_2);
3471 pshufd(xmm0, xmm5, 238);
3472 pand(xmm4, xmm1);
3473 movdqu(xmm3, xmm1);
3474 addsd(xmm5, xmm0);
3475 subsd(xmm1, xmm4);
3476 xorpd(xmm6, xmm6);
3477 movl(edx, 17080);
3478 pinsrw(xmm6, edx, 3);
3479 addsd(xmm7, xmm5);
3480 mulsd(xmm4, xmm2);
3481 mulsd(xmm1, xmm2);
3482 movdqu(xmm5, xmm6);
3483 mulsd(xmm3, xmm7);
3484 addsd(xmm6, xmm4);
3485 addsd(xmm1, xmm3);
3486 movdqu(xmm7, Address(tmp, 12480));
3487 movdl(edx, xmm6);
3488 subsd(xmm6, xmm5);
3489 movdqu(xmm3, Address(tmp, 12496));
3490 movsd(xmm2, Address(tmp, 12512));
3491 subsd(xmm4, xmm6);
3492 movl(ecx, edx);
3493 andl(edx, 255);
3494 addl(edx, edx);
3495 movdqu(xmm5, Address(tmp, edx, Address::times_8, 8384));
3496 addsd(xmm4, xmm1);
3497 pextrw(edx, xmm6, 3);
3498 shrl(ecx, 8);
3499 movl(eax, ecx);
3500 shrl(ecx, 1);
3501 subl(eax, ecx);
3502 shll(ecx, 20);
3503 movdl(xmm6, ecx);
3504 pshufd(xmm0, xmm4, 68);
3505 pshufd(xmm1, xmm4, 68);
3506 mulpd(xmm0, xmm0);
3507 mulpd(xmm7, xmm1);
3508 pshufd(xmm6, xmm6, 17);
3509 mulsd(xmm2, xmm4);
3510 andl(edx, 32767);
3511 cmpl(edx, 16529);
3512 jcc(Assembler::above, L_2TAG_PACKET_14_0_2);
3513 mulsd(xmm0, xmm0);
3514 paddd(xmm5, xmm6);
3515 addpd(xmm3, xmm7);
3516 mulsd(xmm2, xmm5);
3517 pshufd(xmm6, xmm5, 238);
3518 mulpd(xmm0, xmm3);
3519 addsd(xmm2, xmm6);
3520 pshufd(xmm3, xmm0, 238);
3521 addl(eax, 1023);
3522 shll(eax, 20);
3523 orl(eax, rsi);
3524 movdl(xmm4, eax);
3525 mulsd(xmm0, xmm5);
3526 mulsd(xmm3, xmm5);
3527 addsd(xmm0, xmm2);
3528 psllq(xmm4, 32);
3529 addsd(xmm0, xmm3);
3530 movdqu(xmm1, xmm0);
3531 addsd(xmm0, xmm5);
3532 movl(rsi, Address(rsp, 24));
3533 mulsd(xmm0, xmm4);
3534 pextrw(eax, xmm0, 3);
3535 andl(eax, 32752);
3536 jcc(Assembler::equal, L_2TAG_PACKET_16_0_2);
3537 cmpl(eax, 32752);
3538 jcc(Assembler::equal, L_2TAG_PACKET_17_0_2);
3539
3540 bind(L_2TAG_PACKET_55_0_2);
3541 movsd(Address(rsp, 0), xmm0);
3542 fld_d(Address(rsp, 0));
3543 jmp(L_2TAG_PACKET_6_0_2);
3544
3545 bind(L_2TAG_PACKET_48_0_2);
3546 movl(rsi, Address(rsp, 24));
3547
3548 bind(L_2TAG_PACKET_56_0_2);
3549 movsd(xmm0, Address(rsp, 8));
3550 movsd(xmm1, Address(rsp, 16));
3551 addsd(xmm1, xmm1);
3552 xorpd(xmm2, xmm2);
3553 movl(eax, 49136);
3554 pinsrw(xmm2, eax, 3);
3555 addsd(xmm2, xmm0);
3556 pextrw(eax, xmm2, 3);
3557 cmpl(eax, 0);
3558 jcc(Assembler::notEqual, L_2TAG_PACKET_57_0_2);
3559 xorpd(xmm0, xmm0);
3560 movl(eax, 32760);
3561 pinsrw(xmm0, eax, 3);
3562 jmp(L_2TAG_PACKET_18_0_2);
3563
3564 bind(L_2TAG_PACKET_57_0_2);
3565 movdl(edx, xmm1);
3566 movdqu(xmm3, xmm1);
3567 psrlq(xmm3, 20);
3568 movdl(ecx, xmm3);
3569 orl(ecx, edx);
3570 jcc(Assembler::equal, L_2TAG_PACKET_58_0_2);
3571 addsd(xmm1, xmm1);
3572 movdqu(xmm0, xmm1);
3573 jmp(L_2TAG_PACKET_18_0_2);
3574
3575 bind(L_2TAG_PACKET_58_0_2);
3576 pextrw(eax, xmm0, 3);
3577 andl(eax, 32752);
3578 pextrw(edx, xmm1, 3);
3579 xorpd(xmm0, xmm0);
3580 subl(eax, 16368);
3581 xorl(eax, edx);
3582 testl(eax, 32768);
3583 jcc(Assembler::notEqual, L_2TAG_PACKET_18_0_2);
3584 movl(edx, 32752);
3585 pinsrw(xmm0, edx, 3);
3586 jmp(L_2TAG_PACKET_18_0_2);
3587
3588 bind(L_2TAG_PACKET_54_0_2);
3589 pextrw(eax, xmm1, 3);
3590 pextrw(ecx, xmm2, 3);
3591 xorl(eax, ecx);
3592 testl(eax, 32768);
3593 jcc(Assembler::equal, L_2TAG_PACKET_50_0_2);
3594 jmp(L_2TAG_PACKET_49_0_2);
3595
3596 bind(L_2TAG_PACKET_6_0_2);
3597 movl(tmp, Address(rsp, 64));
3598
3599}
3600#endif
3601