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