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