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