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