54084
|
1 |
/*
|
58299
|
2 |
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
|
54084
|
3 |
* Copyright (c) 2016, Intel Corporation. All rights reserved.
|
|
4 |
* Intel Math Library (LIBM) Source Code
|
|
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 |
package org.graalvm.compiler.lir.amd64;
|
|
28 |
|
|
29 |
import static jdk.vm.ci.amd64.AMD64.r10;
|
|
30 |
import static jdk.vm.ci.amd64.AMD64.r11;
|
|
31 |
import static jdk.vm.ci.amd64.AMD64.r8;
|
|
32 |
import static jdk.vm.ci.amd64.AMD64.r9;
|
|
33 |
import static jdk.vm.ci.amd64.AMD64.rax;
|
|
34 |
import static jdk.vm.ci.amd64.AMD64.rcx;
|
|
35 |
import static jdk.vm.ci.amd64.AMD64.rdx;
|
|
36 |
import static jdk.vm.ci.amd64.AMD64.rsp;
|
|
37 |
import static jdk.vm.ci.amd64.AMD64.xmm0;
|
|
38 |
import static jdk.vm.ci.amd64.AMD64.xmm1;
|
|
39 |
import static jdk.vm.ci.amd64.AMD64.xmm2;
|
|
40 |
import static jdk.vm.ci.amd64.AMD64.xmm3;
|
|
41 |
import static jdk.vm.ci.amd64.AMD64.xmm4;
|
|
42 |
import static jdk.vm.ci.amd64.AMD64.xmm5;
|
|
43 |
import static jdk.vm.ci.amd64.AMD64.xmm6;
|
|
44 |
import static jdk.vm.ci.amd64.AMD64.xmm7;
|
|
45 |
import static org.graalvm.compiler.lir.amd64.AMD64HotSpotHelper.pointerConstant;
|
|
46 |
import static org.graalvm.compiler.lir.amd64.AMD64HotSpotHelper.recordExternalAddress;
|
|
47 |
|
|
48 |
import org.graalvm.compiler.asm.Label;
|
|
49 |
import org.graalvm.compiler.asm.amd64.AMD64Address;
|
|
50 |
import org.graalvm.compiler.asm.amd64.AMD64Assembler;
|
|
51 |
import org.graalvm.compiler.asm.amd64.AMD64MacroAssembler;
|
|
52 |
import org.graalvm.compiler.lir.LIRInstructionClass;
|
|
53 |
import org.graalvm.compiler.lir.asm.ArrayDataPointerConstant;
|
|
54 |
import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
|
|
55 |
|
|
56 |
import jdk.vm.ci.code.Register;
|
|
57 |
|
|
58 |
/**
|
|
59 |
* <pre>
|
|
60 |
* ALGORITHM DESCRIPTION - POW()
|
|
61 |
* ---------------------
|
|
62 |
*
|
|
63 |
* Let x=2^k * mx, mx in [1,2)
|
|
64 |
*
|
|
65 |
* log2(x) calculation:
|
|
66 |
*
|
|
67 |
* Get B~1/mx based on the output of rcpps instruction (B0)
|
|
68 |
* B = int((B0*LH*2^9+0.5))/2^9
|
|
69 |
* LH is a short approximation for log2(e)
|
|
70 |
*
|
|
71 |
* Reduced argument, scaled by LH:
|
|
72 |
* r=B*mx-LH (computed accurately in high and low parts)
|
|
73 |
*
|
|
74 |
* log2(x) result: k - log2(B) + p(r)
|
|
75 |
* p(r) is a degree 8 polynomial
|
|
76 |
* -log2(B) read from data table (high, low parts)
|
|
77 |
* log2(x) is formed from high and low parts
|
|
78 |
* For |x| in [1-1/32, 1+1/16), a slower but more accurate computation
|
|
79 |
* based om the same table design is performed.
|
|
80 |
*
|
|
81 |
* Main path is taken if | floor(log2(|log2(|x|)|) + floor(log2|y|) | < 8,
|
|
82 |
* to filter out all potential OF/UF cases.
|
|
83 |
* exp2(y*log2(x)) is computed using an 8-bit index table and a degree 5
|
|
84 |
* polynomial
|
|
85 |
*
|
|
86 |
* Special cases:
|
|
87 |
* pow(-0,y) = -INF and raises the divide-by-zero exception for y an odd
|
|
88 |
* integer < 0.
|
|
89 |
* pow(-0,y) = +INF and raises the divide-by-zero exception for y < 0 and
|
|
90 |
* not an odd integer.
|
|
91 |
* pow(-0,y) = -0 for y an odd integer > 0.
|
|
92 |
* pow(-0,y) = +0 for y > 0 and not an odd integer.
|
|
93 |
* pow(-1,-INF) = NaN.
|
|
94 |
* pow(+1,y) = NaN for any y, even a NaN.
|
|
95 |
* pow(x,-0) = 1 for any x, even a NaN.
|
|
96 |
* pow(x,y) = a NaN and raises the invalid exception for finite x < 0 and
|
|
97 |
* finite non-integer y.
|
|
98 |
* pow(x,-INF) = +INF for |x|<1.
|
|
99 |
* pow(x,-INF) = +0 for |x|>1.
|
|
100 |
* pow(x,+INF) = +0 for |x|<1.
|
|
101 |
* pow(x,+INF) = +INF for |x|>1.
|
|
102 |
* pow(-INF,y) = -0 for y an odd integer < 0.
|
|
103 |
* pow(-INF,y) = +0 for y < 0 and not an odd integer.
|
|
104 |
* pow(-INF,y) = -INF for y an odd integer > 0.
|
|
105 |
* pow(-INF,y) = +INF for y > 0 and not an odd integer.
|
|
106 |
* pow(+INF,y) = +0 for y <0.
|
|
107 |
* pow(+INF,y) = +INF for y >0.
|
|
108 |
* </pre>
|
|
109 |
*/
|
|
110 |
public final class AMD64MathPowOp extends AMD64MathIntrinsicBinaryOp {
|
|
111 |
|
|
112 |
public static final LIRInstructionClass<AMD64MathPowOp> TYPE = LIRInstructionClass.create(AMD64MathPowOp.class);
|
|
113 |
|
|
114 |
public AMD64MathPowOp() {
|
|
115 |
super(TYPE, /* GPR */ rax, rcx, rdx, r8, r9, r10, r11,
|
|
116 |
/* XMM */ xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);
|
|
117 |
}
|
|
118 |
|
|
119 |
private ArrayDataPointerConstant highsigmask = pointerConstant(16, new int[]{
|
|
120 |
//@formatter:off
|
|
121 |
0x00000000, 0xfffff800, 0x00000000, 0xfffff800
|
|
122 |
//@formatter:on
|
|
123 |
});
|
|
124 |
|
|
125 |
private ArrayDataPointerConstant log2E = pointerConstant(16, new int[]{
|
|
126 |
//@formatter:off
|
|
127 |
0x00000000, 0x3ff72000, 0x161bb241, 0xbf5dabe1
|
|
128 |
//@formatter:on
|
|
129 |
});
|
|
130 |
|
|
131 |
private ArrayDataPointerConstant highmaskY = pointerConstant(8, new int[]{
|
|
132 |
//@formatter:off
|
|
133 |
0x00000000, 0xfffffff8,
|
|
134 |
});
|
|
135 |
private ArrayDataPointerConstant highmaskY8 = pointerConstant(8, new int[]{
|
|
136 |
0x00000000, 0xffffffff
|
|
137 |
//@formatter:on
|
|
138 |
});
|
|
139 |
|
|
140 |
private ArrayDataPointerConstant tExp = pointerConstant(16, new int[]{
|
|
141 |
//@formatter:off
|
|
142 |
0x00000000, 0x3ff00000, 0x00000000, 0x3b700000, 0xfa5abcbf,
|
|
143 |
0x3ff00b1a, 0xa7609f71, 0xbc84f6b2, 0xa9fb3335, 0x3ff0163d,
|
|
144 |
0x9ab8cdb7, 0x3c9b6129, 0x143b0281, 0x3ff02168, 0x0fc54eb6,
|
|
145 |
0xbc82bf31, 0x3e778061, 0x3ff02c9a, 0x535b085d, 0xbc719083,
|
|
146 |
0x2e11bbcc, 0x3ff037d4, 0xeeade11a, 0x3c656811, 0xe86e7f85,
|
|
147 |
0x3ff04315, 0x1977c96e, 0xbc90a31c, 0x72f654b1, 0x3ff04e5f,
|
|
148 |
0x3aa0d08c, 0x3c84c379, 0xd3158574, 0x3ff059b0, 0xa475b465,
|
|
149 |
0x3c8d73e2, 0x0e3c1f89, 0x3ff0650a, 0x5799c397, 0xbc95cb7b,
|
|
150 |
0x29ddf6de, 0x3ff0706b, 0xe2b13c27, 0xbc8c91df, 0x2b72a836,
|
|
151 |
0x3ff07bd4, 0x54458700, 0x3c832334, 0x18759bc8, 0x3ff08745,
|
|
152 |
0x4bb284ff, 0x3c6186be, 0xf66607e0, 0x3ff092bd, 0x800a3fd1,
|
|
153 |
0xbc968063, 0xcac6f383, 0x3ff09e3e, 0x18316136, 0x3c914878,
|
|
154 |
0x9b1f3919, 0x3ff0a9c7, 0x873d1d38, 0x3c85d16c, 0x6cf9890f,
|
|
155 |
0x3ff0b558, 0x4adc610b, 0x3c98a62e, 0x45e46c85, 0x3ff0c0f1,
|
|
156 |
0x06d21cef, 0x3c94f989, 0x2b7247f7, 0x3ff0cc92, 0x16e24f71,
|
|
157 |
0x3c901edc, 0x23395dec, 0x3ff0d83b, 0xe43f316a, 0xbc9bc14d,
|
|
158 |
0x32d3d1a2, 0x3ff0e3ec, 0x27c57b52, 0x3c403a17, 0x5fdfa9c5,
|
|
159 |
0x3ff0efa5, 0xbc54021b, 0xbc949db9, 0xaffed31b, 0x3ff0fb66,
|
|
160 |
0xc44ebd7b, 0xbc6b9bed, 0x28d7233e, 0x3ff10730, 0x1692fdd5,
|
|
161 |
0x3c8d46eb, 0xd0125b51, 0x3ff11301, 0x39449b3a, 0xbc96c510,
|
|
162 |
0xab5e2ab6, 0x3ff11edb, 0xf703fb72, 0xbc9ca454, 0xc06c31cc,
|
|
163 |
0x3ff12abd, 0xb36ca5c7, 0xbc51b514, 0x14f204ab, 0x3ff136a8,
|
|
164 |
0xba48dcf0, 0xbc67108f, 0xaea92de0, 0x3ff1429a, 0x9af1369e,
|
|
165 |
0xbc932fbf, 0x934f312e, 0x3ff14e95, 0x39bf44ab, 0xbc8b91e8,
|
|
166 |
0xc8a58e51, 0x3ff15a98, 0xb9eeab0a, 0x3c82406a, 0x5471c3c2,
|
|
167 |
0x3ff166a4, 0x82ea1a32, 0x3c58f23b, 0x3c7d517b, 0x3ff172b8,
|
|
168 |
0xb9d78a76, 0xbc819041, 0x8695bbc0, 0x3ff17ed4, 0xe2ac5a64,
|
|
169 |
0x3c709e3f, 0x388c8dea, 0x3ff18af9, 0xd1970f6c, 0xbc911023,
|
|
170 |
0x58375d2f, 0x3ff19726, 0x85f17e08, 0x3c94aadd, 0xeb6fcb75,
|
|
171 |
0x3ff1a35b, 0x7b4968e4, 0x3c8e5b4c, 0xf8138a1c, 0x3ff1af99,
|
|
172 |
0xa4b69280, 0x3c97bf85, 0x84045cd4, 0x3ff1bbe0, 0x352ef607,
|
|
173 |
0xbc995386, 0x95281c6b, 0x3ff1c82f, 0x8010f8c9, 0x3c900977,
|
|
174 |
0x3168b9aa, 0x3ff1d487, 0x00a2643c, 0x3c9e016e, 0x5eb44027,
|
|
175 |
0x3ff1e0e7, 0x088cb6de, 0xbc96fdd8, 0x22fcd91d, 0x3ff1ed50,
|
|
176 |
0x027bb78c, 0xbc91df98, 0x8438ce4d, 0x3ff1f9c1, 0xa097af5c,
|
|
177 |
0xbc9bf524, 0x88628cd6, 0x3ff2063b, 0x814a8495, 0x3c8dc775,
|
|
178 |
0x3578a819, 0x3ff212be, 0x2cfcaac9, 0x3c93592d, 0x917ddc96,
|
|
179 |
0x3ff21f49, 0x9494a5ee, 0x3c82a97e, 0xa27912d1, 0x3ff22bdd,
|
|
180 |
0x5577d69f, 0x3c8d34fb, 0x6e756238, 0x3ff2387a, 0xb6c70573,
|
|
181 |
0x3c99b07e, 0xfb82140a, 0x3ff2451f, 0x911ca996, 0x3c8acfcc,
|
|
182 |
0x4fb2a63f, 0x3ff251ce, 0xbef4f4a4, 0x3c8ac155, 0x711ece75,
|
|
183 |
0x3ff25e85, 0x4ac31b2c, 0x3c93e1a2, 0x65e27cdd, 0x3ff26b45,
|
|
184 |
0x9940e9d9, 0x3c82bd33, 0x341ddf29, 0x3ff2780e, 0x05f9e76c,
|
|
185 |
0x3c9e067c, 0xe1f56381, 0x3ff284df, 0x8c3f0d7e, 0xbc9a4c3a,
|
|
186 |
0x7591bb70, 0x3ff291ba, 0x28401cbd, 0xbc82cc72, 0xf51fdee1,
|
|
187 |
0x3ff29e9d, 0xafad1255, 0x3c8612e8, 0x66d10f13, 0x3ff2ab8a,
|
|
188 |
0x191690a7, 0xbc995743, 0xd0dad990, 0x3ff2b87f, 0xd6381aa4,
|
|
189 |
0xbc410adc, 0x39771b2f, 0x3ff2c57e, 0xa6eb5124, 0xbc950145,
|
|
190 |
0xa6e4030b, 0x3ff2d285, 0x54db41d5, 0x3c900247, 0x1f641589,
|
|
191 |
0x3ff2df96, 0xfbbce198, 0x3c9d16cf, 0xa93e2f56, 0x3ff2ecaf,
|
|
192 |
0x45d52383, 0x3c71ca0f, 0x4abd886b, 0x3ff2f9d2, 0x532bda93,
|
|
193 |
0xbc653c55, 0x0a31b715, 0x3ff306fe, 0xd23182e4, 0x3c86f46a,
|
|
194 |
0xedeeb2fd, 0x3ff31432, 0xf3f3fcd1, 0x3c8959a3, 0xfc4cd831,
|
|
195 |
0x3ff32170, 0x8e18047c, 0x3c8a9ce7, 0x3ba8ea32, 0x3ff32eb8,
|
|
196 |
0x3cb4f318, 0xbc9c45e8, 0xb26416ff, 0x3ff33c08, 0x843659a6,
|
|
197 |
0x3c932721, 0x66e3fa2d, 0x3ff34962, 0x930881a4, 0xbc835a75,
|
|
198 |
0x5f929ff1, 0x3ff356c5, 0x5c4e4628, 0xbc8b5cee, 0xa2de883b,
|
|
199 |
0x3ff36431, 0xa06cb85e, 0xbc8c3144, 0x373aa9cb, 0x3ff371a7,
|
|
200 |
0xbf42eae2, 0xbc963aea, 0x231e754a, 0x3ff37f26, 0x9eceb23c,
|
|
201 |
0xbc99f5ca, 0x6d05d866, 0x3ff38cae, 0x3c9904bd, 0xbc9e958d,
|
|
202 |
0x1b7140ef, 0x3ff39a40, 0xfc8e2934, 0xbc99a9a5, 0x34e59ff7,
|
|
203 |
0x3ff3a7db, 0xd661f5e3, 0xbc75e436, 0xbfec6cf4, 0x3ff3b57f,
|
|
204 |
0xe26fff18, 0x3c954c66, 0xc313a8e5, 0x3ff3c32d, 0x375d29c3,
|
|
205 |
0xbc9efff8, 0x44ede173, 0x3ff3d0e5, 0x8c284c71, 0x3c7fe8d0,
|
|
206 |
0x4c123422, 0x3ff3dea6, 0x11f09ebc, 0x3c8ada09, 0xdf1c5175,
|
|
207 |
0x3ff3ec70, 0x7b8c9bca, 0xbc8af663, 0x04ac801c, 0x3ff3fa45,
|
|
208 |
0xf956f9f3, 0xbc97d023, 0xc367a024, 0x3ff40822, 0xb6f4d048,
|
|
209 |
0x3c8bddf8, 0x21f72e2a, 0x3ff4160a, 0x1c309278, 0xbc5ef369,
|
|
210 |
0x2709468a, 0x3ff423fb, 0xc0b314dd, 0xbc98462d, 0xd950a897,
|
|
211 |
0x3ff431f5, 0xe35f7999, 0xbc81c7dd, 0x3f84b9d4, 0x3ff43ffa,
|
|
212 |
0x9704c003, 0x3c8880be, 0x6061892d, 0x3ff44e08, 0x04ef80d0,
|
|
213 |
0x3c489b7a, 0x42a7d232, 0x3ff45c20, 0x82fb1f8e, 0xbc686419,
|
|
214 |
0xed1d0057, 0x3ff46a41, 0xd1648a76, 0x3c9c944b, 0x668b3237,
|
|
215 |
0x3ff4786d, 0xed445733, 0xbc9c20f0, 0xb5c13cd0, 0x3ff486a2,
|
|
216 |
0xb69062f0, 0x3c73c1a3, 0xe192aed2, 0x3ff494e1, 0x5e499ea0,
|
|
217 |
0xbc83b289, 0xf0d7d3de, 0x3ff4a32a, 0xf3d1be56, 0x3c99cb62,
|
|
218 |
0xea6db7d7, 0x3ff4b17d, 0x7f2897f0, 0xbc8125b8, 0xd5362a27,
|
|
219 |
0x3ff4bfda, 0xafec42e2, 0x3c7d4397, 0xb817c114, 0x3ff4ce41,
|
|
220 |
0x690abd5d, 0x3c905e29, 0x99fddd0d, 0x3ff4dcb2, 0xbc6a7833,
|
|
221 |
0x3c98ecdb, 0x81d8abff, 0x3ff4eb2d, 0x2e5d7a52, 0xbc95257d,
|
|
222 |
0x769d2ca7, 0x3ff4f9b2, 0xd25957e3, 0xbc94b309, 0x7f4531ee,
|
|
223 |
0x3ff50841, 0x49b7465f, 0x3c7a249b, 0xa2cf6642, 0x3ff516da,
|
|
224 |
0x69bd93ef, 0xbc8f7685, 0xe83f4eef, 0x3ff5257d, 0x43efef71,
|
|
225 |
0xbc7c998d, 0x569d4f82, 0x3ff5342b, 0x1db13cad, 0xbc807abe,
|
|
226 |
0xf4f6ad27, 0x3ff542e2, 0x192d5f7e, 0x3c87926d, 0xca5d920f,
|
|
227 |
0x3ff551a4, 0xefede59b, 0xbc8d689c, 0xdde910d2, 0x3ff56070,
|
|
228 |
0x168eebf0, 0xbc90fb6e, 0x36b527da, 0x3ff56f47, 0x011d93ad,
|
|
229 |
0x3c99bb2c, 0xdbe2c4cf, 0x3ff57e27, 0x8a57b9c4, 0xbc90b98c,
|
|
230 |
0xd497c7fd, 0x3ff58d12, 0x5b9a1de8, 0x3c8295e1, 0x27ff07cc,
|
|
231 |
0x3ff59c08, 0xe467e60f, 0xbc97e2ce, 0xdd485429, 0x3ff5ab07,
|
|
232 |
0x054647ad, 0x3c96324c, 0xfba87a03, 0x3ff5ba11, 0x4c233e1a,
|
|
233 |
0xbc9b77a1, 0x8a5946b7, 0x3ff5c926, 0x816986a2, 0x3c3c4b1b,
|
|
234 |
0x90998b93, 0x3ff5d845, 0xa8b45643, 0xbc9cd6a7, 0x15ad2148,
|
|
235 |
0x3ff5e76f, 0x3080e65e, 0x3c9ba6f9, 0x20dceb71, 0x3ff5f6a3,
|
|
236 |
0xe3cdcf92, 0xbc89eadd, 0xb976dc09, 0x3ff605e1, 0x9b56de47,
|
|
237 |
0xbc93e242, 0xe6cdf6f4, 0x3ff6152a, 0x4ab84c27, 0x3c9e4b3e,
|
|
238 |
0xb03a5585, 0x3ff6247e, 0x7e40b497, 0xbc9383c1, 0x1d1929fd,
|
|
239 |
0x3ff633dd, 0xbeb964e5, 0x3c984710, 0x34ccc320, 0x3ff64346,
|
|
240 |
0x759d8933, 0xbc8c483c, 0xfebc8fb7, 0x3ff652b9, 0xc9a73e09,
|
|
241 |
0xbc9ae3d5, 0x82552225, 0x3ff66238, 0x87591c34, 0xbc9bb609,
|
|
242 |
0xc70833f6, 0x3ff671c1, 0x586c6134, 0xbc8e8732, 0xd44ca973,
|
|
243 |
0x3ff68155, 0x44f73e65, 0x3c6038ae, 0xb19e9538, 0x3ff690f4,
|
|
244 |
0x9aeb445d, 0x3c8804bd, 0x667f3bcd, 0x3ff6a09e, 0x13b26456,
|
|
245 |
0xbc9bdd34, 0xfa75173e, 0x3ff6b052, 0x2c9a9d0e, 0x3c7a38f5,
|
|
246 |
0x750bdabf, 0x3ff6c012, 0x67ff0b0d, 0xbc728956, 0xddd47645,
|
|
247 |
0x3ff6cfdc, 0xb6f17309, 0x3c9c7aa9, 0x3c651a2f, 0x3ff6dfb2,
|
|
248 |
0x683c88ab, 0xbc6bbe3a, 0x98593ae5, 0x3ff6ef92, 0x9e1ac8b2,
|
|
249 |
0xbc90b974, 0xf9519484, 0x3ff6ff7d, 0x25860ef6, 0xbc883c0f,
|
|
250 |
0x66f42e87, 0x3ff70f74, 0xd45aa65f, 0x3c59d644, 0xe8ec5f74,
|
|
251 |
0x3ff71f75, 0x86887a99, 0xbc816e47, 0x86ead08a, 0x3ff72f82,
|
|
252 |
0x2cd62c72, 0xbc920aa0, 0x48a58174, 0x3ff73f9a, 0x6c65d53c,
|
|
253 |
0xbc90a8d9, 0x35d7cbfd, 0x3ff74fbd, 0x618a6e1c, 0x3c9047fd,
|
|
254 |
0x564267c9, 0x3ff75feb, 0x57316dd3, 0xbc902459, 0xb1ab6e09,
|
|
255 |
0x3ff77024, 0x169147f8, 0x3c9b7877, 0x4fde5d3f, 0x3ff78069,
|
|
256 |
0x0a02162d, 0x3c9866b8, 0x38ac1cf6, 0x3ff790b9, 0x62aadd3e,
|
|
257 |
0x3c9349a8, 0x73eb0187, 0x3ff7a114, 0xee04992f, 0xbc841577,
|
|
258 |
0x0976cfdb, 0x3ff7b17b, 0x8468dc88, 0xbc9bebb5, 0x0130c132,
|
|
259 |
0x3ff7c1ed, 0xd1164dd6, 0x3c9f124c, 0x62ff86f0, 0x3ff7d26a,
|
|
260 |
0xfb72b8b4, 0x3c91bddb, 0x36cf4e62, 0x3ff7e2f3, 0xba15797e,
|
|
261 |
0x3c705d02, 0x8491c491, 0x3ff7f387, 0xcf9311ae, 0xbc807f11,
|
|
262 |
0x543e1a12, 0x3ff80427, 0x626d972b, 0xbc927c86, 0xadd106d9,
|
|
263 |
0x3ff814d2, 0x0d151d4d, 0x3c946437, 0x994cce13, 0x3ff82589,
|
|
264 |
0xd41532d8, 0xbc9d4c1d, 0x1eb941f7, 0x3ff8364c, 0x31df2bd5,
|
|
265 |
0x3c999b9a, 0x4623c7ad, 0x3ff8471a, 0xa341cdfb, 0xbc88d684,
|
|
266 |
0x179f5b21, 0x3ff857f4, 0xf8b216d0, 0xbc5ba748, 0x9b4492ed,
|
|
267 |
0x3ff868d9, 0x9bd4f6ba, 0xbc9fc6f8, 0xd931a436, 0x3ff879ca,
|
|
268 |
0xd2db47bd, 0x3c85d2d7, 0xd98a6699, 0x3ff88ac7, 0xf37cb53a,
|
|
269 |
0x3c9994c2, 0xa478580f, 0x3ff89bd0, 0x4475202a, 0x3c9d5395,
|
|
270 |
0x422aa0db, 0x3ff8ace5, 0x56864b27, 0x3c96e9f1, 0xbad61778,
|
|
271 |
0x3ff8be05, 0xfc43446e, 0x3c9ecb5e, 0x16b5448c, 0x3ff8cf32,
|
|
272 |
0x32e9e3aa, 0xbc70d55e, 0x5e0866d9, 0x3ff8e06a, 0x6fc9b2e6,
|
|
273 |
0xbc97114a, 0x99157736, 0x3ff8f1ae, 0xa2e3976c, 0x3c85cc13,
|
|
274 |
0xd0282c8a, 0x3ff902fe, 0x85fe3fd2, 0x3c9592ca, 0x0b91ffc6,
|
|
275 |
0x3ff9145b, 0x2e582524, 0xbc9dd679, 0x53aa2fe2, 0x3ff925c3,
|
|
276 |
0xa639db7f, 0xbc83455f, 0xb0cdc5e5, 0x3ff93737, 0x81b57ebc,
|
|
277 |
0xbc675fc7, 0x2b5f98e5, 0x3ff948b8, 0x797d2d99, 0xbc8dc3d6,
|
|
278 |
0xcbc8520f, 0x3ff95a44, 0x96a5f039, 0xbc764b7c, 0x9a7670b3,
|
|
279 |
0x3ff96bdd, 0x7f19c896, 0xbc5ba596, 0x9fde4e50, 0x3ff97d82,
|
|
280 |
0x7c1b85d1, 0xbc9d185b, 0xe47a22a2, 0x3ff98f33, 0xa24c78ec,
|
|
281 |
0x3c7cabda, 0x70ca07ba, 0x3ff9a0f1, 0x91cee632, 0xbc9173bd,
|
|
282 |
0x4d53fe0d, 0x3ff9b2bb, 0x4df6d518, 0xbc9dd84e, 0x82a3f090,
|
|
283 |
0x3ff9c491, 0xb071f2be, 0x3c7c7c46, 0x194bb8d5, 0x3ff9d674,
|
|
284 |
0xa3dd8233, 0xbc9516be, 0x19e32323, 0x3ff9e863, 0x78e64c6e,
|
|
285 |
0x3c7824ca, 0x8d07f29e, 0x3ff9fa5e, 0xaaf1face, 0xbc84a9ce,
|
|
286 |
0x7b5de565, 0x3ffa0c66, 0x5d1cd533, 0xbc935949, 0xed8eb8bb,
|
|
287 |
0x3ffa1e7a, 0xee8be70e, 0x3c9c6618, 0xec4a2d33, 0x3ffa309b,
|
|
288 |
0x7ddc36ab, 0x3c96305c, 0x80460ad8, 0x3ffa42c9, 0x589fb120,
|
|
289 |
0xbc9aa780, 0xb23e255d, 0x3ffa5503, 0xdb8d41e1, 0xbc9d2f6e,
|
|
290 |
0x8af46052, 0x3ffa674a, 0x30670366, 0x3c650f56, 0x1330b358,
|
|
291 |
0x3ffa799e, 0xcac563c7, 0x3c9bcb7e, 0x53c12e59, 0x3ffa8bfe,
|
|
292 |
0xb2ba15a9, 0xbc94f867, 0x5579fdbf, 0x3ffa9e6b, 0x0ef7fd31,
|
|
293 |
0x3c90fac9, 0x21356eba, 0x3ffab0e5, 0xdae94545, 0x3c889c31,
|
|
294 |
0xbfd3f37a, 0x3ffac36b, 0xcae76cd0, 0xbc8f9234, 0x3a3c2774,
|
|
295 |
0x3ffad5ff, 0xb6b1b8e5, 0x3c97ef3b, 0x995ad3ad, 0x3ffae89f,
|
|
296 |
0x345dcc81, 0x3c97a1cd, 0xe622f2ff, 0x3ffafb4c, 0x0f315ecd,
|
|
297 |
0xbc94b2fc, 0x298db666, 0x3ffb0e07, 0x4c80e425, 0xbc9bdef5,
|
|
298 |
0x6c9a8952, 0x3ffb20ce, 0x4a0756cc, 0x3c94dd02, 0xb84f15fb,
|
|
299 |
0x3ffb33a2, 0x3084d708, 0xbc62805e, 0x15b749b1, 0x3ffb4684,
|
|
300 |
0xe9df7c90, 0xbc7f763d, 0x8de5593a, 0x3ffb5972, 0xbbba6de3,
|
|
301 |
0xbc9c71df, 0x29f1c52a, 0x3ffb6c6e, 0x52883f6e, 0x3c92a8f3,
|
|
302 |
0xf2fb5e47, 0x3ffb7f76, 0x7e54ac3b, 0xbc75584f, 0xf22749e4,
|
|
303 |
0x3ffb928c, 0x54cb65c6, 0xbc9b7216, 0x30a1064a, 0x3ffba5b0,
|
|
304 |
0x0e54292e, 0xbc9efcd3, 0xb79a6f1f, 0x3ffbb8e0, 0xc9696205,
|
|
305 |
0xbc3f52d1, 0x904bc1d2, 0x3ffbcc1e, 0x7a2d9e84, 0x3c823dd0,
|
|
306 |
0xc3f3a207, 0x3ffbdf69, 0x60ea5b53, 0xbc3c2623, 0x5bd71e09,
|
|
307 |
0x3ffbf2c2, 0x3f6b9c73, 0xbc9efdca, 0x6141b33d, 0x3ffc0628,
|
|
308 |
0xa1fbca34, 0xbc8d8a5a, 0xdd85529c, 0x3ffc199b, 0x895048dd,
|
|
309 |
0x3c811065, 0xd9fa652c, 0x3ffc2d1c, 0x17c8a5d7, 0xbc96e516,
|
|
310 |
0x5fffd07a, 0x3ffc40ab, 0xe083c60a, 0x3c9b4537, 0x78fafb22,
|
|
311 |
0x3ffc5447, 0x2493b5af, 0x3c912f07, 0x2e57d14b, 0x3ffc67f1,
|
|
312 |
0xff483cad, 0x3c92884d, 0x8988c933, 0x3ffc7ba8, 0xbe255559,
|
|
313 |
0xbc8e76bb, 0x9406e7b5, 0x3ffc8f6d, 0x48805c44, 0x3c71acbc,
|
|
314 |
0x5751c4db, 0x3ffca340, 0xd10d08f5, 0xbc87f2be, 0xdcef9069,
|
|
315 |
0x3ffcb720, 0xd1e949db, 0x3c7503cb, 0x2e6d1675, 0x3ffccb0f,
|
|
316 |
0x86009092, 0xbc7d220f, 0x555dc3fa, 0x3ffcdf0b, 0x53829d72,
|
|
317 |
0xbc8dd83b, 0x5b5bab74, 0x3ffcf315, 0xb86dff57, 0xbc9a08e9,
|
|
318 |
0x4a07897c, 0x3ffd072d, 0x43797a9c, 0xbc9cbc37, 0x2b08c968,
|
|
319 |
0x3ffd1b53, 0x219a36ee, 0x3c955636, 0x080d89f2, 0x3ffd2f87,
|
|
320 |
0x719d8578, 0xbc9d487b, 0xeacaa1d6, 0x3ffd43c8, 0xbf5a1614,
|
|
321 |
0x3c93db53, 0xdcfba487, 0x3ffd5818, 0xd75b3707, 0x3c82ed02,
|
|
322 |
0xe862e6d3, 0x3ffd6c76, 0x4a8165a0, 0x3c5fe87a, 0x16c98398,
|
|
323 |
0x3ffd80e3, 0x8beddfe8, 0xbc911ec1, 0x71ff6075, 0x3ffd955d,
|
|
324 |
0xbb9af6be, 0x3c9a052d, 0x03db3285, 0x3ffda9e6, 0x696db532,
|
|
325 |
0x3c9c2300, 0xd63a8315, 0x3ffdbe7c, 0x926b8be4, 0xbc9b76f1,
|
|
326 |
0xf301b460, 0x3ffdd321, 0x78f018c3, 0x3c92da57, 0x641c0658,
|
|
327 |
0x3ffde7d5, 0x8e79ba8f, 0xbc9ca552, 0x337b9b5f, 0x3ffdfc97,
|
|
328 |
0x4f184b5c, 0xbc91a5cd, 0x6b197d17, 0x3ffe1167, 0xbd5c7f44,
|
|
329 |
0xbc72b529, 0x14f5a129, 0x3ffe2646, 0x817a1496, 0xbc97b627,
|
|
330 |
0x3b16ee12, 0x3ffe3b33, 0x31fdc68b, 0xbc99f4a4, 0xe78b3ff6,
|
|
331 |
0x3ffe502e, 0x80a9cc8f, 0x3c839e89, 0x24676d76, 0x3ffe6539,
|
|
332 |
0x7522b735, 0xbc863ff8, 0xfbc74c83, 0x3ffe7a51, 0xca0c8de2,
|
|
333 |
0x3c92d522, 0x77cdb740, 0x3ffe8f79, 0x80b054b1, 0xbc910894,
|
|
334 |
0xa2a490da, 0x3ffea4af, 0x179c2893, 0xbc9e9c23, 0x867cca6e,
|
|
335 |
0x3ffeb9f4, 0x2293e4f2, 0x3c94832f, 0x2d8e67f1, 0x3ffecf48,
|
|
336 |
0xb411ad8c, 0xbc9c93f3, 0xa2188510, 0x3ffee4aa, 0xa487568d,
|
|
337 |
0x3c91c68d, 0xee615a27, 0x3ffefa1b, 0x86a4b6b0, 0x3c9dc7f4,
|
|
338 |
0x1cb6412a, 0x3fff0f9c, 0x65181d45, 0xbc932200, 0x376bba97,
|
|
339 |
0x3fff252b, 0xbf0d8e43, 0x3c93a1a5, 0x48dd7274, 0x3fff3ac9,
|
|
340 |
0x3ed837de, 0xbc795a5a, 0x5b6e4540, 0x3fff5076, 0x2dd8a18b,
|
|
341 |
0x3c99d3e1, 0x798844f8, 0x3fff6632, 0x3539343e, 0x3c9fa37b,
|
|
342 |
0xad9cbe14, 0x3fff7bfd, 0xd006350a, 0xbc9dbb12, 0x02243c89,
|
|
343 |
0x3fff91d8, 0xa779f689, 0xbc612ea8, 0x819e90d8, 0x3fffa7c1,
|
|
344 |
0xf3a5931e, 0x3c874853, 0x3692d514, 0x3fffbdba, 0x15098eb6,
|
|
345 |
0xbc796773, 0x2b8f71f1, 0x3fffd3c2, 0x966579e7, 0x3c62eb74,
|
|
346 |
0x6b2a23d9, 0x3fffe9d9, 0x7442fde3, 0x3c74a603
|
|
347 |
//@formatter:on
|
|
348 |
});
|
|
349 |
|
|
350 |
private ArrayDataPointerConstant eCoeff = pointerConstant(16, new int[]{
|
|
351 |
//@formatter:off
|
|
352 |
0xe78a6731, 0x3f55d87f, 0xd704a0c0, 0x3fac6b08,
|
|
353 |
});
|
|
354 |
private ArrayDataPointerConstant eCoeff16 = pointerConstant(16, new int[]{
|
|
355 |
0x6fba4e77, 0x3f83b2ab, 0xff82c58f, 0x3fcebfbd,
|
|
356 |
});
|
|
357 |
private ArrayDataPointerConstant eCoeff32 = pointerConstant(16, new int[]{
|
|
358 |
0xfefa39ef, 0x3fe62e42, 0x00000000, 0x00000000
|
|
359 |
//@formatter:on
|
|
360 |
});
|
|
361 |
|
|
362 |
private ArrayDataPointerConstant coeffH = pointerConstant(8, new int[]{
|
|
363 |
//@formatter:off
|
|
364 |
0x00000000, 0xbfd61a00,
|
|
365 |
});
|
|
366 |
private ArrayDataPointerConstant coeffH8 = pointerConstant(8, new int[]{
|
|
367 |
0x00000000, 0xbf5dabe1
|
|
368 |
//@formatter:on
|
|
369 |
});
|
|
370 |
|
|
371 |
private ArrayDataPointerConstant highmaskLogX = pointerConstant(16, new int[]{
|
|
372 |
//@formatter:off
|
|
373 |
0xf8000000, 0xffffffff, 0x00000000, 0xfffff800
|
|
374 |
//@formatter:on
|
|
375 |
});
|
|
376 |
|
|
377 |
private ArrayDataPointerConstant halfmask = pointerConstant(8, new int[]{
|
|
378 |
//@formatter:off
|
|
379 |
0xf8000000, 0xffffffff, 0xf8000000, 0xffffffff
|
|
380 |
//@formatter:on
|
|
381 |
});
|
|
382 |
|
|
383 |
private ArrayDataPointerConstant coeff = pointerConstant(16, new int[]{
|
|
384 |
//@formatter:off
|
|
385 |
0x6dc96112, 0xbf836578, 0xee241472, 0xbf9b0301,
|
|
386 |
});
|
|
387 |
private ArrayDataPointerConstant coeff16 = pointerConstant(16, new int[]{
|
|
388 |
0x9f95985a, 0xbfb528db, 0xb3841d2a, 0xbfd619b6,
|
|
389 |
});
|
|
390 |
private ArrayDataPointerConstant coeff32 = pointerConstant(16, new int[]{
|
|
391 |
0x518775e3, 0x3f9004f2, 0xac8349bb, 0x3fa76c9b,
|
|
392 |
});
|
|
393 |
private ArrayDataPointerConstant coeff48 = pointerConstant(16, new int[]{
|
|
394 |
0x486ececc, 0x3fc4635e, 0x161bb241, 0xbf5dabe1,
|
|
395 |
});
|
|
396 |
private ArrayDataPointerConstant coeff64 = pointerConstant(16, new int[]{
|
|
397 |
0x9f95985a, 0xbfb528db, 0xf8b5787d, 0x3ef2531e,
|
|
398 |
});
|
|
399 |
private ArrayDataPointerConstant coeff80 = pointerConstant(16, new int[]{
|
|
400 |
0x486ececb, 0x3fc4635e, 0x412055cc, 0xbdd61bb2
|
|
401 |
//@formatter:on
|
|
402 |
});
|
|
403 |
|
|
404 |
private ArrayDataPointerConstant lTbl = pointerConstant(16, new int[]{
|
|
405 |
//@formatter:off
|
|
406 |
0x00000000, 0x3ff00000, 0x00000000, 0x00000000, 0x20000000,
|
|
407 |
0x3feff00a, 0x96621f95, 0x3e5b1856, 0xe0000000, 0x3fefe019,
|
|
408 |
0xe5916f9e, 0xbe325278, 0x00000000, 0x3fefd02f, 0x859a1062,
|
|
409 |
0x3e595fb7, 0xc0000000, 0x3fefc049, 0xb245f18f, 0xbe529c38,
|
|
410 |
0xe0000000, 0x3fefb069, 0xad2880a7, 0xbe501230, 0x60000000,
|
|
411 |
0x3fefa08f, 0xc8e72420, 0x3e597bd1, 0x80000000, 0x3fef90ba,
|
|
412 |
0xc30c4500, 0xbe5d6c75, 0xe0000000, 0x3fef80ea, 0x02c63f43,
|
|
413 |
0x3e2e1318, 0xc0000000, 0x3fef7120, 0xb3d4cccc, 0xbe44c52a,
|
|
414 |
0x00000000, 0x3fef615c, 0xdbd91397, 0xbe4e7d6c, 0xa0000000,
|
|
415 |
0x3fef519c, 0x65c5cd68, 0xbe522dc8, 0xa0000000, 0x3fef41e2,
|
|
416 |
0x46d1306c, 0xbe5a840e, 0xe0000000, 0x3fef322d, 0xd2980e94,
|
|
417 |
0x3e5071af, 0xa0000000, 0x3fef227e, 0x773abade, 0xbe5891e5,
|
|
418 |
0xa0000000, 0x3fef12d4, 0xdc6bf46b, 0xbe5cccbe, 0xe0000000,
|
|
419 |
0x3fef032f, 0xbc7247fa, 0xbe2bab83, 0x80000000, 0x3feef390,
|
|
420 |
0xbcaa1e46, 0xbe53bb3b, 0x60000000, 0x3feee3f6, 0x5f6c682d,
|
|
421 |
0xbe54c619, 0x80000000, 0x3feed461, 0x5141e368, 0xbe4b6d86,
|
|
422 |
0xe0000000, 0x3feec4d1, 0xec678f76, 0xbe369af6, 0x80000000,
|
|
423 |
0x3feeb547, 0x41301f55, 0xbe2d4312, 0x60000000, 0x3feea5c2,
|
|
424 |
0x676da6bd, 0xbe4d8dd0, 0x60000000, 0x3fee9642, 0x57a891c4,
|
|
425 |
0x3e51f991, 0xa0000000, 0x3fee86c7, 0xe4eb491e, 0x3e579bf9,
|
|
426 |
0x20000000, 0x3fee7752, 0xfddc4a2c, 0xbe3356e6, 0xc0000000,
|
|
427 |
0x3fee67e1, 0xd75b5bf1, 0xbe449531, 0x80000000, 0x3fee5876,
|
|
428 |
0xbd423b8e, 0x3df54fe4, 0x60000000, 0x3fee4910, 0x330e51b9,
|
|
429 |
0x3e54289c, 0x80000000, 0x3fee39af, 0x8651a95f, 0xbe55aad6,
|
|
430 |
0xa0000000, 0x3fee2a53, 0x5e98c708, 0xbe2fc4a9, 0xe0000000,
|
|
431 |
0x3fee1afc, 0x0989328d, 0x3e23958c, 0x40000000, 0x3fee0bab,
|
|
432 |
0xee642abd, 0xbe425dd8, 0xa0000000, 0x3fedfc5e, 0xc394d236,
|
|
433 |
0x3e526362, 0x20000000, 0x3feded17, 0xe104aa8e, 0x3e4ce247,
|
|
434 |
0xc0000000, 0x3fedddd4, 0x265a9be4, 0xbe5bb77a, 0x40000000,
|
|
435 |
0x3fedce97, 0x0ecac52f, 0x3e4a7cb1, 0xe0000000, 0x3fedbf5e,
|
|
436 |
0x124cb3b8, 0x3e257024, 0x80000000, 0x3fedb02b, 0xe6d4febe,
|
|
437 |
0xbe2033ee, 0x20000000, 0x3feda0fd, 0x39cca00e, 0xbe3ddabc,
|
|
438 |
0xc0000000, 0x3fed91d3, 0xef8a552a, 0xbe543390, 0x40000000,
|
|
439 |
0x3fed82af, 0xb8e85204, 0x3e513850, 0xe0000000, 0x3fed738f,
|
|
440 |
0x3d59fe08, 0xbe5db728, 0x40000000, 0x3fed6475, 0x3aa7ead1,
|
|
441 |
0x3e58804b, 0xc0000000, 0x3fed555f, 0xf8a35ba9, 0xbe5298b0,
|
|
442 |
0x00000000, 0x3fed464f, 0x9a88dd15, 0x3e5a8cdb, 0x40000000,
|
|
443 |
0x3fed3743, 0xb0b0a190, 0x3e598635, 0x80000000, 0x3fed283c,
|
|
444 |
0xe2113295, 0xbe5c1119, 0x80000000, 0x3fed193a, 0xafbf1728,
|
|
445 |
0xbe492e9c, 0x60000000, 0x3fed0a3d, 0xe4a4ccf3, 0x3e19b90e,
|
|
446 |
0x20000000, 0x3fecfb45, 0xba3cbeb8, 0x3e406b50, 0xc0000000,
|
|
447 |
0x3fecec51, 0x110f7ddd, 0x3e0d6806, 0x40000000, 0x3fecdd63,
|
|
448 |
0x7dd7d508, 0xbe5a8943, 0x80000000, 0x3fecce79, 0x9b60f271,
|
|
449 |
0xbe50676a, 0x80000000, 0x3fecbf94, 0x0b9ad660, 0x3e59174f,
|
|
450 |
0x60000000, 0x3fecb0b4, 0x00823d9c, 0x3e5bbf72, 0x20000000,
|
|
451 |
0x3feca1d9, 0x38a6ec89, 0xbe4d38f9, 0x80000000, 0x3fec9302,
|
|
452 |
0x3a0b7d8e, 0x3e53dbfd, 0xc0000000, 0x3fec8430, 0xc6826b34,
|
|
453 |
0xbe27c5c9, 0xc0000000, 0x3fec7563, 0x0c706381, 0xbe593653,
|
|
454 |
0x60000000, 0x3fec669b, 0x7df34ec7, 0x3e461ab5, 0xe0000000,
|
|
455 |
0x3fec57d7, 0x40e5e7e8, 0xbe5c3dae, 0x00000000, 0x3fec4919,
|
|
456 |
0x5602770f, 0xbe55219d, 0xc0000000, 0x3fec3a5e, 0xec7911eb,
|
|
457 |
0x3e5a5d25, 0x60000000, 0x3fec2ba9, 0xb39ea225, 0xbe53c00b,
|
|
458 |
0x80000000, 0x3fec1cf8, 0x967a212e, 0x3e5a8ddf, 0x60000000,
|
|
459 |
0x3fec0e4c, 0x580798bd, 0x3e5f53ab, 0x00000000, 0x3febffa5,
|
|
460 |
0xb8282df6, 0xbe46b874, 0x20000000, 0x3febf102, 0xe33a6729,
|
|
461 |
0x3e54963f, 0x00000000, 0x3febe264, 0x3b53e88a, 0xbe3adce1,
|
|
462 |
0x60000000, 0x3febd3ca, 0xc2585084, 0x3e5cde9f, 0x80000000,
|
|
463 |
0x3febc535, 0xa335c5ee, 0xbe39fd9c, 0x20000000, 0x3febb6a5,
|
|
464 |
0x7325b04d, 0x3e42ba15, 0x60000000, 0x3feba819, 0x1564540f,
|
|
465 |
0x3e3a9f35, 0x40000000, 0x3feb9992, 0x83fff592, 0xbe5465ce,
|
|
466 |
0xa0000000, 0x3feb8b0f, 0xb9da63d3, 0xbe4b1a0a, 0x80000000,
|
|
467 |
0x3feb7c91, 0x6d6f1ea4, 0x3e557657, 0x00000000, 0x3feb6e18,
|
|
468 |
0x5e80a1bf, 0x3e4ddbb6, 0x00000000, 0x3feb5fa3, 0x1c9eacb5,
|
|
469 |
0x3e592877, 0xa0000000, 0x3feb5132, 0x6d40beb3, 0xbe51858c,
|
|
470 |
0xa0000000, 0x3feb42c6, 0xd740c67b, 0x3e427ad2, 0x40000000,
|
|
471 |
0x3feb345f, 0xa3e0ccee, 0xbe5c2fc4, 0x40000000, 0x3feb25fc,
|
|
472 |
0x8e752b50, 0xbe3da3c2, 0xc0000000, 0x3feb179d, 0xa892e7de,
|
|
473 |
0x3e1fb481, 0xc0000000, 0x3feb0943, 0x21ed71e9, 0xbe365206,
|
|
474 |
0x20000000, 0x3feafaee, 0x0e1380a3, 0x3e5c5b7b, 0x20000000,
|
|
475 |
0x3feaec9d, 0x3c3d640e, 0xbe5dbbd0, 0x60000000, 0x3feade50,
|
|
476 |
0x8f97a715, 0x3e3a8ec5, 0x20000000, 0x3fead008, 0x23ab2839,
|
|
477 |
0x3e2fe98a, 0x40000000, 0x3feac1c4, 0xf4bbd50f, 0x3e54d8f6,
|
|
478 |
0xe0000000, 0x3feab384, 0x14757c4d, 0xbe48774c, 0xc0000000,
|
|
479 |
0x3feaa549, 0x7c7b0eea, 0x3e5b51bb, 0x20000000, 0x3fea9713,
|
|
480 |
0xf56f7013, 0x3e386200, 0xe0000000, 0x3fea88e0, 0xbe428ebe,
|
|
481 |
0xbe514af5, 0xe0000000, 0x3fea7ab2, 0x8d0e4496, 0x3e4f9165,
|
|
482 |
0x60000000, 0x3fea6c89, 0xdbacc5d5, 0xbe5c063b, 0x20000000,
|
|
483 |
0x3fea5e64, 0x3f19d970, 0xbe5a0c8c, 0x20000000, 0x3fea5043,
|
|
484 |
0x09ea3e6b, 0x3e5065dc, 0x80000000, 0x3fea4226, 0x78df246c,
|
|
485 |
0x3e5e05f6, 0x40000000, 0x3fea340e, 0x4057d4a0, 0x3e431b2b,
|
|
486 |
0x40000000, 0x3fea25fa, 0x82867bb5, 0x3e4b76be, 0xa0000000,
|
|
487 |
0x3fea17ea, 0x9436f40a, 0xbe5aad39, 0x20000000, 0x3fea09df,
|
|
488 |
0x4b5253b3, 0x3e46380b, 0x00000000, 0x3fe9fbd8, 0x8fc52466,
|
|
489 |
0xbe386f9b, 0x20000000, 0x3fe9edd5, 0x22d3f344, 0xbe538347,
|
|
490 |
0x60000000, 0x3fe9dfd6, 0x1ac33522, 0x3e5dbc53, 0x00000000,
|
|
491 |
0x3fe9d1dc, 0xeabdff1d, 0x3e40fc0c, 0xe0000000, 0x3fe9c3e5,
|
|
492 |
0xafd30e73, 0xbe585e63, 0xe0000000, 0x3fe9b5f3, 0xa52f226a,
|
|
493 |
0xbe43e8f9, 0x20000000, 0x3fe9a806, 0xecb8698d, 0xbe515b36,
|
|
494 |
0x80000000, 0x3fe99a1c, 0xf2b4e89d, 0x3e48b62b, 0x20000000,
|
|
495 |
0x3fe98c37, 0x7c9a88fb, 0x3e44414c, 0x00000000, 0x3fe97e56,
|
|
496 |
0xda015741, 0xbe5d13ba, 0xe0000000, 0x3fe97078, 0x5fdace06,
|
|
497 |
0x3e51b947, 0x00000000, 0x3fe962a0, 0x956ca094, 0x3e518785,
|
|
498 |
0x40000000, 0x3fe954cb, 0x01164c1d, 0x3e5d5b57, 0xc0000000,
|
|
499 |
0x3fe946fa, 0xe63b3767, 0xbe4f84e7, 0x40000000, 0x3fe9392e,
|
|
500 |
0xe57cc2a9, 0x3e34eda3, 0xe0000000, 0x3fe92b65, 0x8c75b544,
|
|
501 |
0x3e5766a0, 0xc0000000, 0x3fe91da1, 0x37d1d087, 0xbe5e2ab1,
|
|
502 |
0x80000000, 0x3fe90fe1, 0xa953dc20, 0x3e5fa1f3, 0x80000000,
|
|
503 |
0x3fe90225, 0xdbd3f369, 0x3e47d6db, 0xa0000000, 0x3fe8f46d,
|
|
504 |
0x1c9be989, 0xbe5e2b0a, 0xa0000000, 0x3fe8e6b9, 0x3c93d76a,
|
|
505 |
0x3e5c8618, 0xe0000000, 0x3fe8d909, 0x2182fc9a, 0xbe41aa9e,
|
|
506 |
0x20000000, 0x3fe8cb5e, 0xe6b3539d, 0xbe530d19, 0x60000000,
|
|
507 |
0x3fe8bdb6, 0x49e58cc3, 0xbe3bb374, 0xa0000000, 0x3fe8b012,
|
|
508 |
0xa7cfeb8f, 0x3e56c412, 0x00000000, 0x3fe8a273, 0x8d52bc19,
|
|
509 |
0x3e1429b8, 0x60000000, 0x3fe894d7, 0x4dc32c6c, 0xbe48604c,
|
|
510 |
0xc0000000, 0x3fe8873f, 0x0c868e56, 0xbe564ee5, 0x00000000,
|
|
511 |
0x3fe879ac, 0x56aee828, 0x3e5e2fd8, 0x60000000, 0x3fe86c1c,
|
|
512 |
0x7ceab8ec, 0x3e493365, 0xc0000000, 0x3fe85e90, 0x78d4dadc,
|
|
513 |
0xbe4f7f25, 0x00000000, 0x3fe85109, 0x0ccd8280, 0x3e31e7a2,
|
|
514 |
0x40000000, 0x3fe84385, 0x34ba4e15, 0x3e328077, 0x80000000,
|
|
515 |
0x3fe83605, 0xa670975a, 0xbe53eee5, 0xa0000000, 0x3fe82889,
|
|
516 |
0xf61b77b2, 0xbe43a20a, 0xa0000000, 0x3fe81b11, 0x13e6643b,
|
|
517 |
0x3e5e5fe5, 0xc0000000, 0x3fe80d9d, 0x82cc94e8, 0xbe5ff1f9,
|
|
518 |
0xa0000000, 0x3fe8002d, 0x8a0c9c5d, 0xbe42b0e7, 0x60000000,
|
|
519 |
0x3fe7f2c1, 0x22a16f01, 0x3e5d9ea0, 0x20000000, 0x3fe7e559,
|
|
520 |
0xc38cd451, 0x3e506963, 0xc0000000, 0x3fe7d7f4, 0x9902bc71,
|
|
521 |
0x3e4503d7, 0x40000000, 0x3fe7ca94, 0xdef2a3c0, 0x3e3d98ed,
|
|
522 |
0xa0000000, 0x3fe7bd37, 0xed49abb0, 0x3e24c1ff, 0xe0000000,
|
|
523 |
0x3fe7afde, 0xe3b0be70, 0xbe40c467, 0x00000000, 0x3fe7a28a,
|
|
524 |
0xaf9f193c, 0xbe5dff6c, 0xe0000000, 0x3fe79538, 0xb74cf6b6,
|
|
525 |
0xbe258ed0, 0xa0000000, 0x3fe787eb, 0x1d9127c7, 0x3e345fb0,
|
|
526 |
0x40000000, 0x3fe77aa2, 0x1028c21d, 0xbe4619bd, 0xa0000000,
|
|
527 |
0x3fe76d5c, 0x7cb0b5e4, 0x3e40f1a2, 0xe0000000, 0x3fe7601a,
|
|
528 |
0x2b1bc4ad, 0xbe32e8bb, 0xe0000000, 0x3fe752dc, 0x6839f64e,
|
|
529 |
0x3e41f57b, 0xc0000000, 0x3fe745a2, 0xc4121f7e, 0xbe52c40a,
|
|
530 |
0x60000000, 0x3fe7386c, 0xd6852d72, 0xbe5c4e6b, 0xc0000000,
|
|
531 |
0x3fe72b39, 0x91d690f7, 0xbe57f88f, 0xe0000000, 0x3fe71e0a,
|
|
532 |
0x627a2159, 0xbe4425d5, 0xc0000000, 0x3fe710df, 0x50a54033,
|
|
533 |
0x3e422b7e, 0x60000000, 0x3fe703b8, 0x3b0b5f91, 0x3e5d3857,
|
|
534 |
0xe0000000, 0x3fe6f694, 0x84d628a2, 0xbe51f090, 0x00000000,
|
|
535 |
0x3fe6e975, 0x306d8894, 0xbe414d83, 0xe0000000, 0x3fe6dc58,
|
|
536 |
0x30bf24aa, 0xbe4650ca, 0x80000000, 0x3fe6cf40, 0xd4628d69,
|
|
537 |
0xbe5db007, 0xc0000000, 0x3fe6c22b, 0xa2aae57b, 0xbe31d279,
|
|
538 |
0xc0000000, 0x3fe6b51a, 0x860edf7e, 0xbe2d4c4a, 0x80000000,
|
|
539 |
0x3fe6a80d, 0xf3559341, 0xbe5f7e98, 0xe0000000, 0x3fe69b03,
|
|
540 |
0xa885899e, 0xbe5c2011, 0xe0000000, 0x3fe68dfd, 0x2bdc6d37,
|
|
541 |
0x3e224a82, 0xa0000000, 0x3fe680fb, 0xc12ad1b9, 0xbe40cf56,
|
|
542 |
0x00000000, 0x3fe673fd, 0x1bcdf659, 0xbdf52f2d, 0x00000000,
|
|
543 |
0x3fe66702, 0x5df10408, 0x3e5663e0, 0xc0000000, 0x3fe65a0a,
|
|
544 |
0xa4070568, 0xbe40b12f, 0x00000000, 0x3fe64d17, 0x71c54c47,
|
|
545 |
0x3e5f5e8b, 0x00000000, 0x3fe64027, 0xbd4b7e83, 0x3e42ead6,
|
|
546 |
0xa0000000, 0x3fe6333a, 0x61598bd2, 0xbe4c48d4, 0xc0000000,
|
|
547 |
0x3fe62651, 0x6f538d61, 0x3e548401, 0xa0000000, 0x3fe6196c,
|
|
548 |
0x14344120, 0xbe529af6, 0x00000000, 0x3fe60c8b, 0x5982c587,
|
|
549 |
0xbe3e1e4f, 0x00000000, 0x3fe5ffad, 0xfe51d4ea, 0xbe4c897a,
|
|
550 |
0x80000000, 0x3fe5f2d2, 0xfd46ebe1, 0x3e552e00, 0xa0000000,
|
|
551 |
0x3fe5e5fb, 0xa4695699, 0x3e5ed471, 0x60000000, 0x3fe5d928,
|
|
552 |
0x80d118ae, 0x3e456b61, 0xa0000000, 0x3fe5cc58, 0x304c330b,
|
|
553 |
0x3e54dc29, 0x80000000, 0x3fe5bf8c, 0x0af2dedf, 0xbe3aa9bd,
|
|
554 |
0xe0000000, 0x3fe5b2c3, 0x15fc9258, 0xbe479a37, 0xc0000000,
|
|
555 |
0x3fe5a5fe, 0x9292c7ea, 0x3e188650, 0x20000000, 0x3fe5993d,
|
|
556 |
0x33b4d380, 0x3e5d6d93, 0x20000000, 0x3fe58c7f, 0x02fd16c7,
|
|
557 |
0x3e2fe961, 0xa0000000, 0x3fe57fc4, 0x4a05edb6, 0xbe4d55b4,
|
|
558 |
0xa0000000, 0x3fe5730d, 0x3d443abb, 0xbe5e6954, 0x00000000,
|
|
559 |
0x3fe5665a, 0x024acfea, 0x3e50e61b, 0x00000000, 0x3fe559aa,
|
|
560 |
0xcc9edd09, 0xbe325403, 0x60000000, 0x3fe54cfd, 0x1fe26950,
|
|
561 |
0x3e5d500e, 0x60000000, 0x3fe54054, 0x6c5ae164, 0xbe4a79b4,
|
|
562 |
0xc0000000, 0x3fe533ae, 0x154b0287, 0xbe401571, 0xa0000000,
|
|
563 |
0x3fe5270c, 0x0673f401, 0xbe56e56b, 0xe0000000, 0x3fe51a6d,
|
|
564 |
0x751b639c, 0x3e235269, 0xa0000000, 0x3fe50dd2, 0x7c7b2bed,
|
|
565 |
0x3ddec887, 0xc0000000, 0x3fe5013a, 0xafab4e17, 0x3e5e7575,
|
|
566 |
0x60000000, 0x3fe4f4a6, 0x2e308668, 0x3e59aed6, 0x80000000,
|
|
567 |
0x3fe4e815, 0xf33e2a76, 0xbe51f184, 0xe0000000, 0x3fe4db87,
|
|
568 |
0x839f3e3e, 0x3e57db01, 0xc0000000, 0x3fe4cefd, 0xa9eda7bb,
|
|
569 |
0x3e535e0f, 0x00000000, 0x3fe4c277, 0x2a8f66a5, 0x3e5ce451,
|
|
570 |
0xc0000000, 0x3fe4b5f3, 0x05192456, 0xbe4e8518, 0xc0000000,
|
|
571 |
0x3fe4a973, 0x4aa7cd1d, 0x3e46784a, 0x40000000, 0x3fe49cf7,
|
|
572 |
0x8e23025e, 0xbe5749f2, 0x00000000, 0x3fe4907e, 0x18d30215,
|
|
573 |
0x3e360f39, 0x20000000, 0x3fe48408, 0x63dcf2f3, 0x3e5e00fe,
|
|
574 |
0xc0000000, 0x3fe47795, 0x46182d09, 0xbe5173d9, 0xa0000000,
|
|
575 |
0x3fe46b26, 0x8f0e62aa, 0xbe48f281, 0xe0000000, 0x3fe45eba,
|
|
576 |
0x5775c40c, 0xbe56aad4, 0x60000000, 0x3fe45252, 0x0fe25f69,
|
|
577 |
0x3e48bd71, 0x40000000, 0x3fe445ed, 0xe9989ec5, 0x3e590d97,
|
|
578 |
0x80000000, 0x3fe4398b, 0xb3d9ffe3, 0x3e479dbc, 0x20000000,
|
|
579 |
0x3fe42d2d, 0x388e4d2e, 0xbe5eed80, 0xe0000000, 0x3fe420d1,
|
|
580 |
0x6f797c18, 0x3e554b4c, 0x20000000, 0x3fe4147a, 0x31048bb4,
|
|
581 |
0xbe5b1112, 0x80000000, 0x3fe40825, 0x2efba4f9, 0x3e48ebc7,
|
|
582 |
0x40000000, 0x3fe3fbd4, 0x50201119, 0x3e40b701, 0x40000000,
|
|
583 |
0x3fe3ef86, 0x0a4db32c, 0x3e551de8, 0xa0000000, 0x3fe3e33b,
|
|
584 |
0x0c9c148b, 0xbe50c1f6, 0x20000000, 0x3fe3d6f4, 0xc9129447,
|
|
585 |
0x3e533fa0, 0x00000000, 0x3fe3cab0, 0xaae5b5a0, 0xbe22b68e,
|
|
586 |
0x20000000, 0x3fe3be6f, 0x02305e8a, 0xbe54fc08, 0x60000000,
|
|
587 |
0x3fe3b231, 0x7f908258, 0x3e57dc05, 0x00000000, 0x3fe3a5f7,
|
|
588 |
0x1a09af78, 0x3e08038b, 0xe0000000, 0x3fe399bf, 0x490643c1,
|
|
589 |
0xbe5dbe42, 0xe0000000, 0x3fe38d8b, 0x5e8ad724, 0xbe3c2b72,
|
|
590 |
0x20000000, 0x3fe3815b, 0xc67196b6, 0x3e1713cf, 0xa0000000,
|
|
591 |
0x3fe3752d, 0x6182e429, 0xbe3ec14c, 0x40000000, 0x3fe36903,
|
|
592 |
0xab6eb1ae, 0x3e5a2cc5, 0x40000000, 0x3fe35cdc, 0xfe5dc064,
|
|
593 |
0xbe5c5878, 0x40000000, 0x3fe350b8, 0x0ba6b9e4, 0x3e51619b,
|
|
594 |
0x80000000, 0x3fe34497, 0x857761aa, 0x3e5fff53, 0x00000000,
|
|
595 |
0x3fe3387a, 0xf872d68c, 0x3e484f4d, 0xa0000000, 0x3fe32c5f,
|
|
596 |
0x087e97c2, 0x3e52842e, 0x80000000, 0x3fe32048, 0x73d6d0c0,
|
|
597 |
0xbe503edf, 0x80000000, 0x3fe31434, 0x0c1456a1, 0xbe5f72ad,
|
|
598 |
0xa0000000, 0x3fe30823, 0x83a1a4d5, 0xbe5e65cc, 0xe0000000,
|
|
599 |
0x3fe2fc15, 0x855a7390, 0xbe506438, 0x40000000, 0x3fe2f00b,
|
|
600 |
0xa2898287, 0x3e3d22a2, 0xe0000000, 0x3fe2e403, 0x8b56f66f,
|
|
601 |
0xbe5aa5fd, 0x80000000, 0x3fe2d7ff, 0x52db119a, 0x3e3a2e3d,
|
|
602 |
0x60000000, 0x3fe2cbfe, 0xe2ddd4c0, 0xbe586469, 0x40000000,
|
|
603 |
0x3fe2c000, 0x6b01bf10, 0x3e352b9d, 0x40000000, 0x3fe2b405,
|
|
604 |
0xb07a1cdf, 0x3e5c5cda, 0x80000000, 0x3fe2a80d, 0xc7b5f868,
|
|
605 |
0xbe5668b3, 0xc0000000, 0x3fe29c18, 0x185edf62, 0xbe563d66,
|
|
606 |
0x00000000, 0x3fe29027, 0xf729e1cc, 0x3e59a9a0, 0x80000000,
|
|
607 |
0x3fe28438, 0x6433c727, 0xbe43cc89, 0x00000000, 0x3fe2784d,
|
|
608 |
0x41782631, 0xbe30750c, 0xa0000000, 0x3fe26c64, 0x914911b7,
|
|
609 |
0xbe58290e, 0x40000000, 0x3fe2607f, 0x3dcc73e1, 0xbe4269cd,
|
|
610 |
0x00000000, 0x3fe2549d, 0x2751bf70, 0xbe5a6998, 0xc0000000,
|
|
611 |
0x3fe248bd, 0x4248b9fb, 0xbe4ddb00, 0x80000000, 0x3fe23ce1,
|
|
612 |
0xf35cf82f, 0x3e561b71, 0x60000000, 0x3fe23108, 0x8e481a2d,
|
|
613 |
0x3e518fb9, 0x60000000, 0x3fe22532, 0x5ab96edc, 0xbe5fafc5,
|
|
614 |
0x40000000, 0x3fe2195f, 0x80943911, 0xbe07f819, 0x40000000,
|
|
615 |
0x3fe20d8f, 0x386f2d6c, 0xbe54ba8b, 0x40000000, 0x3fe201c2,
|
|
616 |
0xf29664ac, 0xbe5eb815, 0x20000000, 0x3fe1f5f8, 0x64f03390,
|
|
617 |
0x3e5e320c, 0x20000000, 0x3fe1ea31, 0x747ff696, 0x3e5ef0a5,
|
|
618 |
0x40000000, 0x3fe1de6d, 0x3e9ceb51, 0xbe5f8d27, 0x20000000,
|
|
619 |
0x3fe1d2ac, 0x4ae0b55e, 0x3e5faa21, 0x20000000, 0x3fe1c6ee,
|
|
620 |
0x28569a5e, 0x3e598a4f, 0x20000000, 0x3fe1bb33, 0x54b33e07,
|
|
621 |
0x3e46130a, 0x20000000, 0x3fe1af7b, 0x024f1078, 0xbe4dbf93,
|
|
622 |
0x00000000, 0x3fe1a3c6, 0xb0783bfa, 0x3e419248, 0xe0000000,
|
|
623 |
0x3fe19813, 0x2f02b836, 0x3e4e02b7, 0xc0000000, 0x3fe18c64,
|
|
624 |
0x28dec9d4, 0x3e09064f, 0x80000000, 0x3fe180b8, 0x45cbf406,
|
|
625 |
0x3e5b1f46, 0x40000000, 0x3fe1750f, 0x03d9964c, 0x3e5b0a79,
|
|
626 |
0x00000000, 0x3fe16969, 0x8b5b882b, 0xbe238086, 0xa0000000,
|
|
627 |
0x3fe15dc5, 0x73bad6f8, 0xbdf1fca4, 0x20000000, 0x3fe15225,
|
|
628 |
0x5385769c, 0x3e5e8d76, 0xa0000000, 0x3fe14687, 0x1676dc6b,
|
|
629 |
0x3e571d08, 0x20000000, 0x3fe13aed, 0xa8c41c7f, 0xbe598a25,
|
|
630 |
0x60000000, 0x3fe12f55, 0xc4e1aaf0, 0x3e435277, 0xa0000000,
|
|
631 |
0x3fe123c0, 0x403638e1, 0xbe21aa7c, 0xc0000000, 0x3fe1182e,
|
|
632 |
0x557a092b, 0xbdd0116b, 0xc0000000, 0x3fe10c9f, 0x7d779f66,
|
|
633 |
0x3e4a61ba, 0xc0000000, 0x3fe10113, 0x2b09c645, 0xbe5d586e,
|
|
634 |
0x20000000, 0x3fe0ea04, 0xea2cad46, 0x3e5aa97c, 0x20000000,
|
|
635 |
0x3fe0d300, 0x23190e54, 0x3e50f1a7, 0xa0000000, 0x3fe0bc07,
|
|
636 |
0x1379a5a6, 0xbe51619d, 0x60000000, 0x3fe0a51a, 0x926a3d4a,
|
|
637 |
0x3e5cf019, 0xa0000000, 0x3fe08e38, 0xa8c24358, 0x3e35241e,
|
|
638 |
0x20000000, 0x3fe07762, 0x24317e7a, 0x3e512cfa, 0x00000000,
|
|
639 |
0x3fe06097, 0xfd9cf274, 0xbe55bef3, 0x00000000, 0x3fe049d7,
|
|
640 |
0x3689b49d, 0xbe36d26d, 0x40000000, 0x3fe03322, 0xf72ef6c4,
|
|
641 |
0xbe54cd08, 0xa0000000, 0x3fe01c78, 0x23702d2d, 0xbe5900bf,
|
|
642 |
0x00000000, 0x3fe005da, 0x3f59c14c, 0x3e57d80b, 0x40000000,
|
|
643 |
0x3fdfde8d, 0xad67766d, 0xbe57fad4, 0x40000000, 0x3fdfb17c,
|
|
644 |
0x644f4ae7, 0x3e1ee43b, 0x40000000, 0x3fdf8481, 0x903234d2,
|
|
645 |
0x3e501a86, 0x40000000, 0x3fdf579c, 0xafe9e509, 0xbe267c3e,
|
|
646 |
0x00000000, 0x3fdf2acd, 0xb7dfda0b, 0xbe48149b, 0x40000000,
|
|
647 |
0x3fdefe13, 0x3b94305e, 0x3e5f4ea7, 0x80000000, 0x3fded16f,
|
|
648 |
0x5d95da61, 0xbe55c198, 0x00000000, 0x3fdea4e1, 0x406960c9,
|
|
649 |
0xbdd99a19, 0x00000000, 0x3fde7868, 0xd22f3539, 0x3e470c78,
|
|
650 |
0x80000000, 0x3fde4c04, 0x83eec535, 0xbe3e1232, 0x40000000,
|
|
651 |
0x3fde1fb6, 0x3dfbffcb, 0xbe4b7d71, 0x40000000, 0x3fddf37d,
|
|
652 |
0x7e1be4e0, 0xbe5b8f8f, 0x40000000, 0x3fddc759, 0x46dae887,
|
|
653 |
0xbe350458, 0x80000000, 0x3fdd9b4a, 0xed6ecc49, 0xbe5f0045,
|
|
654 |
0x80000000, 0x3fdd6f50, 0x2e9e883c, 0x3e2915da, 0x80000000,
|
|
655 |
0x3fdd436b, 0xf0bccb32, 0x3e4a68c9, 0x80000000, 0x3fdd179b,
|
|
656 |
0x9bbfc779, 0xbe54a26a, 0x00000000, 0x3fdcebe0, 0x7cea33ab,
|
|
657 |
0x3e43c6b7, 0x40000000, 0x3fdcc039, 0xe740fd06, 0x3e5526c2,
|
|
658 |
0x40000000, 0x3fdc94a7, 0x9eadeb1a, 0xbe396d8d, 0xc0000000,
|
|
659 |
0x3fdc6929, 0xf0a8f95a, 0xbe5c0ab2, 0x80000000, 0x3fdc3dc0,
|
|
660 |
0x6ee2693b, 0x3e0992e6, 0xc0000000, 0x3fdc126b, 0x5ac6b581,
|
|
661 |
0xbe2834b6, 0x40000000, 0x3fdbe72b, 0x8cc226ff, 0x3e3596a6,
|
|
662 |
0x00000000, 0x3fdbbbff, 0xf92a74bb, 0x3e3c5813, 0x00000000,
|
|
663 |
0x3fdb90e7, 0x479664c0, 0xbe50d644, 0x00000000, 0x3fdb65e3,
|
|
664 |
0x5004975b, 0xbe55258f, 0x00000000, 0x3fdb3af3, 0xe4b23194,
|
|
665 |
0xbe588407, 0xc0000000, 0x3fdb1016, 0xe65d4d0a, 0x3e527c26,
|
|
666 |
0x80000000, 0x3fdae54e, 0x814fddd6, 0x3e5962a2, 0x40000000,
|
|
667 |
0x3fdaba9a, 0xe19d0913, 0xbe562f4e, 0x80000000, 0x3fda8ff9,
|
|
668 |
0x43cfd006, 0xbe4cfdeb, 0x40000000, 0x3fda656c, 0x686f0a4e,
|
|
669 |
0x3e5e47a8, 0xc0000000, 0x3fda3af2, 0x7200d410, 0x3e5e1199,
|
|
670 |
0xc0000000, 0x3fda108c, 0xabd2266e, 0x3e5ee4d1, 0x40000000,
|
|
671 |
0x3fd9e63a, 0x396f8f2c, 0x3e4dbffb, 0x00000000, 0x3fd9bbfb,
|
|
672 |
0xe32b25dd, 0x3e5c3a54, 0x40000000, 0x3fd991cf, 0x431e4035,
|
|
673 |
0xbe457925, 0x80000000, 0x3fd967b6, 0x7bed3dd3, 0x3e40c61d,
|
|
674 |
0x00000000, 0x3fd93db1, 0xd7449365, 0x3e306419, 0x80000000,
|
|
675 |
0x3fd913be, 0x1746e791, 0x3e56fcfc, 0x40000000, 0x3fd8e9df,
|
|
676 |
0xf3a9028b, 0xbe5041b9, 0xc0000000, 0x3fd8c012, 0x56840c50,
|
|
677 |
0xbe26e20a, 0x40000000, 0x3fd89659, 0x19763102, 0xbe51f466,
|
|
678 |
0x80000000, 0x3fd86cb2, 0x7032de7c, 0xbe4d298a, 0x80000000,
|
|
679 |
0x3fd8431e, 0xdeb39fab, 0xbe4361eb, 0x40000000, 0x3fd8199d,
|
|
680 |
0x5d01cbe0, 0xbe5425b3, 0x80000000, 0x3fd7f02e, 0x3ce99aa9,
|
|
681 |
0x3e146fa8, 0x80000000, 0x3fd7c6d2, 0xd1a262b9, 0xbe5a1a69,
|
|
682 |
0xc0000000, 0x3fd79d88, 0x8606c236, 0x3e423a08, 0x80000000,
|
|
683 |
0x3fd77451, 0x8fd1e1b7, 0x3e5a6a63, 0xc0000000, 0x3fd74b2c,
|
|
684 |
0xe491456a, 0x3e42c1ca, 0x40000000, 0x3fd7221a, 0x4499a6d7,
|
|
685 |
0x3e36a69a, 0x00000000, 0x3fd6f91a, 0x5237df94, 0xbe0f8f02,
|
|
686 |
0x00000000, 0x3fd6d02c, 0xb6482c6e, 0xbe5abcf7, 0x00000000,
|
|
687 |
0x3fd6a750, 0x1919fd61, 0xbe57ade2, 0x00000000, 0x3fd67e86,
|
|
688 |
0xaa7a994d, 0xbe3f3fbd, 0x00000000, 0x3fd655ce, 0x67db014c,
|
|
689 |
0x3e33c550, 0x00000000, 0x3fd62d28, 0xa82856b7, 0xbe1409d1,
|
|
690 |
0xc0000000, 0x3fd60493, 0x1e6a300d, 0x3e55d899, 0x80000000,
|
|
691 |
0x3fd5dc11, 0x1222bd5c, 0xbe35bfc0, 0xc0000000, 0x3fd5b3a0,
|
|
692 |
0x6e8dc2d3, 0x3e5d4d79, 0x00000000, 0x3fd58b42, 0xe0e4ace6,
|
|
693 |
0xbe517303, 0x80000000, 0x3fd562f4, 0xb306e0a8, 0x3e5edf0f,
|
|
694 |
0xc0000000, 0x3fd53ab8, 0x6574bc54, 0x3e5ee859, 0x80000000,
|
|
695 |
0x3fd5128e, 0xea902207, 0x3e5f6188, 0xc0000000, 0x3fd4ea75,
|
|
696 |
0x9f911d79, 0x3e511735, 0x80000000, 0x3fd4c26e, 0xf9c77397,
|
|
697 |
0xbe5b1643, 0x40000000, 0x3fd49a78, 0x15fc9258, 0x3e479a37,
|
|
698 |
0x80000000, 0x3fd47293, 0xd5a04dd9, 0xbe426e56, 0xc0000000,
|
|
699 |
0x3fd44abf, 0xe04042f5, 0x3e56f7c6, 0x40000000, 0x3fd422fd,
|
|
700 |
0x1d8bf2c8, 0x3e5d8810, 0x00000000, 0x3fd3fb4c, 0x88a8ddee,
|
|
701 |
0xbe311454, 0xc0000000, 0x3fd3d3ab, 0x3e3b5e47, 0xbe5d1b72,
|
|
702 |
0x40000000, 0x3fd3ac1c, 0xc2ab5d59, 0x3e31b02b, 0xc0000000,
|
|
703 |
0x3fd3849d, 0xd4e34b9e, 0x3e51cb2f, 0x40000000, 0x3fd35d30,
|
|
704 |
0x177204fb, 0xbe2b8cd7, 0x80000000, 0x3fd335d3, 0xfcd38c82,
|
|
705 |
0xbe4356e1, 0x80000000, 0x3fd30e87, 0x64f54acc, 0xbe4e6224,
|
|
706 |
0x00000000, 0x3fd2e74c, 0xaa7975d9, 0x3e5dc0fe, 0x80000000,
|
|
707 |
0x3fd2c021, 0x516dab3f, 0xbe50ffa3, 0x40000000, 0x3fd29907,
|
|
708 |
0x2bfb7313, 0x3e5674a2, 0xc0000000, 0x3fd271fd, 0x0549fc99,
|
|
709 |
0x3e385d29, 0xc0000000, 0x3fd24b04, 0x55b63073, 0xbe500c6d,
|
|
710 |
0x00000000, 0x3fd2241c, 0x3f91953a, 0x3e389977, 0xc0000000,
|
|
711 |
0x3fd1fd43, 0xa1543f71, 0xbe3487ab, 0xc0000000, 0x3fd1d67b,
|
|
712 |
0x4ec8867c, 0x3df6a2dc, 0x00000000, 0x3fd1afc4, 0x4328e3bb,
|
|
713 |
0x3e41d9c0, 0x80000000, 0x3fd1891c, 0x2e1cda84, 0x3e3bdd87,
|
|
714 |
0x40000000, 0x3fd16285, 0x4b5331ae, 0xbe53128e, 0x00000000,
|
|
715 |
0x3fd13bfe, 0xb9aec164, 0xbe52ac98, 0xc0000000, 0x3fd11586,
|
|
716 |
0xd91e1316, 0xbe350630, 0x80000000, 0x3fd0ef1f, 0x7cacc12c,
|
|
717 |
0x3e3f5219, 0x40000000, 0x3fd0c8c8, 0xbce277b7, 0x3e3d30c0,
|
|
718 |
0x00000000, 0x3fd0a281, 0x2a63447d, 0xbe541377, 0x80000000,
|
|
719 |
0x3fd07c49, 0xfac483b5, 0xbe5772ec, 0xc0000000, 0x3fd05621,
|
|
720 |
0x36b8a570, 0xbe4fd4bd, 0xc0000000, 0x3fd03009, 0xbae505f7,
|
|
721 |
0xbe450388, 0x80000000, 0x3fd00a01, 0x3e35aead, 0xbe5430fc,
|
|
722 |
0x80000000, 0x3fcfc811, 0x707475ac, 0x3e38806e, 0x80000000,
|
|
723 |
0x3fcf7c3f, 0xc91817fc, 0xbe40ccea, 0x80000000, 0x3fcf308c,
|
|
724 |
0xae05d5e9, 0xbe4919b8, 0x80000000, 0x3fcee4f8, 0xae6cc9e6,
|
|
725 |
0xbe530b94, 0x00000000, 0x3fce9983, 0x1efe3e8e, 0x3e57747e,
|
|
726 |
0x00000000, 0x3fce4e2d, 0xda78d9bf, 0xbe59a608, 0x00000000,
|
|
727 |
0x3fce02f5, 0x8abe2c2e, 0x3e4a35ad, 0x00000000, 0x3fcdb7dc,
|
|
728 |
0x1495450d, 0xbe0872cc, 0x80000000, 0x3fcd6ce1, 0x86ee0ba0,
|
|
729 |
0xbe4f59a0, 0x00000000, 0x3fcd2205, 0xe81ca888, 0x3e5402c3,
|
|
730 |
0x00000000, 0x3fccd747, 0x3b4424b9, 0x3e5dfdc3, 0x80000000,
|
|
731 |
0x3fcc8ca7, 0xd305b56c, 0x3e202da6, 0x00000000, 0x3fcc4226,
|
|
732 |
0x399a6910, 0xbe482a1c, 0x80000000, 0x3fcbf7c2, 0x747f7938,
|
|
733 |
0xbe587372, 0x80000000, 0x3fcbad7c, 0x6fc246a0, 0x3e50d83d,
|
|
734 |
0x00000000, 0x3fcb6355, 0xee9e9be5, 0xbe5c35bd, 0x80000000,
|
|
735 |
0x3fcb194a, 0x8416c0bc, 0x3e546d4f, 0x00000000, 0x3fcacf5e,
|
|
736 |
0x49f7f08f, 0x3e56da76, 0x00000000, 0x3fca858f, 0x5dc30de2,
|
|
737 |
0x3e5f390c, 0x00000000, 0x3fca3bde, 0x950583b6, 0xbe5e4169,
|
|
738 |
0x80000000, 0x3fc9f249, 0x33631553, 0x3e52aeb1, 0x00000000,
|
|
739 |
0x3fc9a8d3, 0xde8795a6, 0xbe59a504, 0x00000000, 0x3fc95f79,
|
|
740 |
0x076bf41e, 0x3e5122fe, 0x80000000, 0x3fc9163c, 0x2914c8e7,
|
|
741 |
0x3e3dd064, 0x00000000, 0x3fc8cd1d, 0x3a30eca3, 0xbe21b4aa,
|
|
742 |
0x80000000, 0x3fc8841a, 0xb2a96650, 0xbe575444, 0x80000000,
|
|
743 |
0x3fc83b34, 0x2376c0cb, 0xbe2a74c7, 0x80000000, 0x3fc7f26b,
|
|
744 |
0xd8a0b653, 0xbe5181b6, 0x00000000, 0x3fc7a9bf, 0x32257882,
|
|
745 |
0xbe4a78b4, 0x00000000, 0x3fc7612f, 0x1eee8bd9, 0xbe1bfe9d,
|
|
746 |
0x80000000, 0x3fc718bb, 0x0c603cc4, 0x3e36fdc9, 0x80000000,
|
|
747 |
0x3fc6d064, 0x3728b8cf, 0xbe1e542e, 0x80000000, 0x3fc68829,
|
|
748 |
0xc79a4067, 0x3e5c380f, 0x00000000, 0x3fc6400b, 0xf69eac69,
|
|
749 |
0x3e550a84, 0x80000000, 0x3fc5f808, 0xb7a780a4, 0x3e5d9224,
|
|
750 |
0x80000000, 0x3fc5b022, 0xad9dfb1e, 0xbe55242f, 0x00000000,
|
|
751 |
0x3fc56858, 0x659b18be, 0xbe4bfda3, 0x80000000, 0x3fc520a9,
|
|
752 |
0x66ee3631, 0xbe57d769, 0x80000000, 0x3fc4d916, 0x1ec62819,
|
|
753 |
0x3e2427f7, 0x80000000, 0x3fc4919f, 0xdec25369, 0xbe435431,
|
|
754 |
0x00000000, 0x3fc44a44, 0xa8acfc4b, 0xbe3c62e8, 0x00000000,
|
|
755 |
0x3fc40304, 0xcf1d3eab, 0xbdfba29f, 0x80000000, 0x3fc3bbdf,
|
|
756 |
0x79aba3ea, 0xbdf1b7c8, 0x80000000, 0x3fc374d6, 0xb8d186da,
|
|
757 |
0xbe5130cf, 0x80000000, 0x3fc32de8, 0x9d74f152, 0x3e2285b6,
|
|
758 |
0x00000000, 0x3fc2e716, 0x50ae7ca9, 0xbe503920, 0x80000000,
|
|
759 |
0x3fc2a05e, 0x6caed92e, 0xbe533924, 0x00000000, 0x3fc259c2,
|
|
760 |
0x9cb5034e, 0xbe510e31, 0x80000000, 0x3fc21340, 0x12c4d378,
|
|
761 |
0xbe540b43, 0x80000000, 0x3fc1ccd9, 0xcc418706, 0x3e59887a,
|
|
762 |
0x00000000, 0x3fc1868e, 0x921f4106, 0xbe528e67, 0x80000000,
|
|
763 |
0x3fc1405c, 0x3969441e, 0x3e5d8051, 0x00000000, 0x3fc0fa46,
|
|
764 |
0xd941ef5b, 0x3e5f9079, 0x80000000, 0x3fc0b44a, 0x5a3e81b2,
|
|
765 |
0xbe567691, 0x00000000, 0x3fc06e69, 0x9d66afe7, 0xbe4d43fb,
|
|
766 |
0x00000000, 0x3fc028a2, 0x0a92a162, 0xbe52f394, 0x00000000,
|
|
767 |
0x3fbfc5ea, 0x209897e5, 0x3e529e37, 0x00000000, 0x3fbf3ac5,
|
|
768 |
0x8458bd7b, 0x3e582831, 0x00000000, 0x3fbeafd5, 0xb8d8b4b8,
|
|
769 |
0xbe486b4a, 0x00000000, 0x3fbe2518, 0xe0a3b7b6, 0x3e5bafd2,
|
|
770 |
0x00000000, 0x3fbd9a90, 0x2bf2710e, 0x3e383b2b, 0x00000000,
|
|
771 |
0x3fbd103c, 0x73eb6ab7, 0xbe56d78d, 0x00000000, 0x3fbc861b,
|
|
772 |
0x32ceaff5, 0xbe32dc5a, 0x00000000, 0x3fbbfc2e, 0xbee04cb7,
|
|
773 |
0xbe4a71a4, 0x00000000, 0x3fbb7274, 0x35ae9577, 0x3e38142f,
|
|
774 |
0x00000000, 0x3fbae8ee, 0xcbaddab4, 0xbe5490f0, 0x00000000,
|
|
775 |
0x3fba5f9a, 0x95ce1114, 0x3e597c71, 0x00000000, 0x3fb9d67a,
|
|
776 |
0x6d7c0f78, 0x3e3abc2d, 0x00000000, 0x3fb94d8d, 0x2841a782,
|
|
777 |
0xbe566cbc, 0x00000000, 0x3fb8c4d2, 0x6ed429c6, 0xbe3cfff9,
|
|
778 |
0x00000000, 0x3fb83c4a, 0xe4a49fbb, 0xbe552964, 0x00000000,
|
|
779 |
0x3fb7b3f4, 0x2193d81e, 0xbe42fa72, 0x00000000, 0x3fb72bd0,
|
|
780 |
0xdd70c122, 0x3e527a8c, 0x00000000, 0x3fb6a3df, 0x03108a54,
|
|
781 |
0xbe450393, 0x00000000, 0x3fb61c1f, 0x30ff7954, 0x3e565840,
|
|
782 |
0x00000000, 0x3fb59492, 0xdedd460c, 0xbe5422b5, 0x00000000,
|
|
783 |
0x3fb50d36, 0x950f9f45, 0xbe5313f6, 0x00000000, 0x3fb4860b,
|
|
784 |
0x582cdcb1, 0x3e506d39, 0x00000000, 0x3fb3ff12, 0x7216d3a6,
|
|
785 |
0x3e4aa719, 0x00000000, 0x3fb3784a, 0x57a423fd, 0x3e5a9b9f,
|
|
786 |
0x00000000, 0x3fb2f1b4, 0x7a138b41, 0xbe50b418, 0x00000000,
|
|
787 |
0x3fb26b4e, 0x2fbfd7ea, 0x3e23a53e, 0x00000000, 0x3fb1e519,
|
|
788 |
0x18913ccb, 0x3e465fc1, 0x00000000, 0x3fb15f15, 0x7ea24e21,
|
|
789 |
0x3e042843, 0x00000000, 0x3fb0d941, 0x7c6d9c77, 0x3e59f61e,
|
|
790 |
0x00000000, 0x3fb0539e, 0x114efd44, 0x3e4ccab7, 0x00000000,
|
|
791 |
0x3faf9c56, 0x1777f657, 0x3e552f65, 0x00000000, 0x3fae91d2,
|
|
792 |
0xc317b86a, 0xbe5a61e0, 0x00000000, 0x3fad87ac, 0xb7664efb,
|
|
793 |
0xbe41f64e, 0x00000000, 0x3fac7de6, 0x5d3d03a9, 0x3e0807a0,
|
|
794 |
0x00000000, 0x3fab7480, 0x743c38eb, 0xbe3726e1, 0x00000000,
|
|
795 |
0x3faa6b78, 0x06a253f1, 0x3e5ad636, 0x00000000, 0x3fa962d0,
|
|
796 |
0xa35f541b, 0x3e5a187a, 0x00000000, 0x3fa85a88, 0x4b86e446,
|
|
797 |
0xbe508150, 0x00000000, 0x3fa7529c, 0x2589cacf, 0x3e52938a,
|
|
798 |
0x00000000, 0x3fa64b10, 0xaf6b11f2, 0xbe3454cd, 0x00000000,
|
|
799 |
0x3fa543e2, 0x97506fef, 0xbe5fdec5, 0x00000000, 0x3fa43d10,
|
|
800 |
0xe75f7dd9, 0xbe388dd3, 0x00000000, 0x3fa3369c, 0xa4139632,
|
|
801 |
0xbdea5177, 0x00000000, 0x3fa23086, 0x352d6f1e, 0xbe565ad6,
|
|
802 |
0x00000000, 0x3fa12acc, 0x77449eb7, 0xbe50d5c7, 0x00000000,
|
|
803 |
0x3fa0256e, 0x7478da78, 0x3e404724, 0x00000000, 0x3f9e40dc,
|
|
804 |
0xf59cef7f, 0xbe539d0a, 0x00000000, 0x3f9c3790, 0x1511d43c,
|
|
805 |
0x3e53c2c8, 0x00000000, 0x3f9a2f00, 0x9b8bff3c, 0xbe43b3e1,
|
|
806 |
0x00000000, 0x3f982724, 0xad1e22a5, 0x3e46f0bd, 0x00000000,
|
|
807 |
0x3f962000, 0x130d9356, 0x3e475ba0, 0x00000000, 0x3f941994,
|
|
808 |
0x8f86f883, 0xbe513d0b, 0x00000000, 0x3f9213dc, 0x914d0dc8,
|
|
809 |
0xbe534335, 0x00000000, 0x3f900ed8, 0x2d73e5e7, 0xbe22ba75,
|
|
810 |
0x00000000, 0x3f8c1510, 0xc5b7d70e, 0x3e599c5d, 0x00000000,
|
|
811 |
0x3f880de0, 0x8a27857e, 0xbe3d28c8, 0x00000000, 0x3f840810,
|
|
812 |
0xda767328, 0x3e531b3d, 0x00000000, 0x3f8003b0, 0x77bacaf3,
|
|
813 |
0xbe5f04e3, 0x00000000, 0x3f780150, 0xdf4b0720, 0x3e5a8bff,
|
|
814 |
0x00000000, 0x3f6ffc40, 0x34c48e71, 0xbe3fcd99, 0x00000000,
|
|
815 |
0x3f5ff6c0, 0x1ad218af, 0xbe4c78a7, 0x00000000, 0x00000000,
|
|
816 |
0x00000000, 0x80000000
|
|
817 |
//@formatter:on
|
|
818 |
});
|
|
819 |
|
|
820 |
private ArrayDataPointerConstant log2 = pointerConstant(8, new int[]{
|
|
821 |
//@formatter:off
|
|
822 |
0xfefa39ef, 0x3fe62e42, 0xfefa39ef, 0xbfe62e42
|
|
823 |
//@formatter:on
|
|
824 |
});
|
|
825 |
|
|
826 |
private ArrayDataPointerConstant double2 = pointerConstant(8, new int[]{
|
|
827 |
//@formatter:off
|
|
828 |
0x00000000, 0x40000000
|
|
829 |
//@formatter:on
|
|
830 |
});
|
|
831 |
|
|
832 |
@Override
|
|
833 |
public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm) {
|
|
834 |
// registers,
|
|
835 |
// input: xmm0, xmm1
|
|
836 |
// scratch: xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7
|
|
837 |
// rax, rdx, rcx, r8, r11
|
|
838 |
|
|
839 |
// Code generated by Intel C compiler for LIBM library
|
|
840 |
Label block0 = new Label();
|
|
841 |
Label block1 = new Label();
|
|
842 |
Label block2 = new Label();
|
|
843 |
Label block3 = new Label();
|
|
844 |
Label block4 = new Label();
|
|
845 |
Label block5 = new Label();
|
|
846 |
Label block6 = new Label();
|
|
847 |
Label block7 = new Label();
|
|
848 |
Label block8 = new Label();
|
|
849 |
Label block9 = new Label();
|
|
850 |
Label block10 = new Label();
|
|
851 |
Label block11 = new Label();
|
|
852 |
Label block12 = new Label();
|
|
853 |
Label block13 = new Label();
|
|
854 |
Label block14 = new Label();
|
|
855 |
Label block15 = new Label();
|
|
856 |
Label block16 = new Label();
|
|
857 |
Label block17 = new Label();
|
|
858 |
Label block18 = new Label();
|
|
859 |
Label block19 = new Label();
|
|
860 |
Label block20 = new Label();
|
|
861 |
Label block21 = new Label();
|
|
862 |
Label block22 = new Label();
|
|
863 |
Label block23 = new Label();
|
|
864 |
Label block24 = new Label();
|
|
865 |
Label block25 = new Label();
|
|
866 |
Label block26 = new Label();
|
|
867 |
Label block27 = new Label();
|
|
868 |
Label block28 = new Label();
|
|
869 |
Label block29 = new Label();
|
|
870 |
Label block30 = new Label();
|
|
871 |
Label block31 = new Label();
|
|
872 |
Label block32 = new Label();
|
|
873 |
Label block33 = new Label();
|
|
874 |
Label block34 = new Label();
|
|
875 |
Label block35 = new Label();
|
|
876 |
Label block36 = new Label();
|
|
877 |
Label block37 = new Label();
|
|
878 |
Label block38 = new Label();
|
|
879 |
Label block39 = new Label();
|
|
880 |
Label block40 = new Label();
|
|
881 |
Label block41 = new Label();
|
|
882 |
Label block42 = new Label();
|
|
883 |
Label block43 = new Label();
|
|
884 |
Label block44 = new Label();
|
|
885 |
Label block45 = new Label();
|
|
886 |
Label block46 = new Label();
|
|
887 |
Label block47 = new Label();
|
|
888 |
Label block48 = new Label();
|
|
889 |
Label block49 = new Label();
|
|
890 |
Label block50 = new Label();
|
|
891 |
Label block51 = new Label();
|
|
892 |
Label block52 = new Label();
|
|
893 |
Label block53 = new Label();
|
|
894 |
Label block54 = new Label();
|
|
895 |
Label block55 = new Label();
|
|
896 |
Label block56 = new Label();
|
|
897 |
Label block57 = new Label();
|
|
898 |
|
|
899 |
Register tmp1 = r8;
|
|
900 |
Register tmp2 = r9;
|
|
901 |
Register tmp3 = r10;
|
|
902 |
Register tmp4 = r11;
|
|
903 |
|
|
904 |
masm.subq(rsp, 40);
|
|
905 |
masm.movsd(new AMD64Address(rsp, 8), xmm0);
|
|
906 |
masm.movsd(new AMD64Address(rsp, 16), xmm1);
|
|
907 |
|
|
908 |
// Special case: pow(x, 2.0) => x * x
|
|
909 |
masm.movdq(tmp1, xmm1);
|
|
910 |
masm.cmpq(tmp1, recordExternalAddress(crb, double2));
|
|
911 |
masm.jccb(AMD64Assembler.ConditionFlag.NotEqual, block57);
|
|
912 |
masm.mulsd(xmm0, xmm0);
|
|
913 |
masm.jmp(block56);
|
|
914 |
|
|
915 |
masm.bind(block57);
|
|
916 |
masm.pextrw(rax, xmm0, 3);
|
|
917 |
masm.xorpd(xmm2, xmm2);
|
|
918 |
masm.movq(tmp2, 0x3ff0000000000000L);
|
|
919 |
masm.movdq(xmm2, tmp2);
|
|
920 |
masm.movl(tmp1, 1069088768);
|
|
921 |
masm.movdq(xmm7, tmp1);
|
|
922 |
masm.xorpd(xmm1, xmm1);
|
|
923 |
masm.movq(tmp3, 0x77f0000000000000L);
|
|
924 |
masm.movdq(xmm1, tmp3);
|
|
925 |
masm.movdqu(xmm3, xmm0);
|
|
926 |
masm.movl(rdx, 32752);
|
|
927 |
masm.andl(rdx, rax);
|
|
928 |
masm.subl(rdx, 16368);
|
|
929 |
masm.movl(rcx, rdx);
|
|
930 |
masm.sarl(rdx, 31);
|
|
931 |
masm.addl(rcx, rdx);
|
|
932 |
masm.xorl(rcx, rdx);
|
|
933 |
masm.por(xmm0, xmm2);
|
|
934 |
masm.movdqu(xmm6, recordExternalAddress(crb, highsigmask)); // 0x00000000, 0xfffff800,
|
|
935 |
// 0x00000000, 0xfffff800
|
|
936 |
masm.psrlq(xmm0, 27);
|
|
937 |
masm.movq(xmm2, recordExternalAddress(crb, log2E)); // 0x00000000, 0x3ff72000,
|
|
938 |
// 0x161bb241, 0xbf5dabe1
|
|
939 |
masm.psrld(xmm0, 2);
|
|
940 |
masm.addl(rcx, 16);
|
|
941 |
masm.bsrl(rcx, rcx);
|
|
942 |
masm.rcpps(xmm0, xmm0);
|
|
943 |
masm.psllq(xmm3, 12);
|
|
944 |
masm.movl(tmp4, 8192);
|
|
945 |
masm.movdq(xmm4, tmp4);
|
|
946 |
masm.psrlq(xmm3, 12);
|
|
947 |
masm.subl(rax, 16);
|
|
948 |
masm.cmpl(rax, 32736);
|
|
949 |
masm.jcc(AMD64Assembler.ConditionFlag.AboveEqual, block0);
|
|
950 |
masm.movl(tmp1, 0);
|
|
951 |
|
|
952 |
masm.bind(block1);
|
|
953 |
masm.mulss(xmm0, xmm7);
|
|
954 |
masm.movl(rdx, -1);
|
|
955 |
masm.subl(rcx, 4);
|
|
956 |
masm.shll(rdx);
|
|
957 |
masm.shlq(rdx, 32);
|
|
958 |
masm.movdq(xmm5, rdx);
|
|
959 |
masm.por(xmm3, xmm1);
|
|
960 |
masm.subl(rax, 16351);
|
|
961 |
masm.cmpl(rax, 1);
|
|
962 |
masm.jcc(AMD64Assembler.ConditionFlag.BelowEqual, block2);
|
|
963 |
masm.paddd(xmm0, xmm4);
|
|
964 |
masm.pand(xmm5, xmm3);
|
|
965 |
masm.movdl(rdx, xmm0);
|
|
966 |
masm.psllq(xmm0, 29);
|
|
967 |
|
|
968 |
masm.bind(block3);
|
|
969 |
masm.subsd(xmm3, xmm5);
|
|
970 |
masm.pand(xmm0, xmm6);
|
|
971 |
masm.subl(rax, 1);
|
|
972 |
masm.sarl(rax, 4);
|
|
973 |
masm.cvtsi2sdl(xmm7, rax);
|
|
974 |
masm.mulpd(xmm5, xmm0);
|
|
975 |
|
|
976 |
masm.bind(block4);
|
|
977 |
masm.mulsd(xmm3, xmm0);
|
|
978 |
masm.movdqu(xmm1, recordExternalAddress(crb, coeff)); // 0x6dc96112, 0xbf836578,
|
|
979 |
// 0xee241472, 0xbf9b0301
|
|
980 |
masm.leaq(tmp4, recordExternalAddress(crb, lTbl));
|
|
981 |
masm.subsd(xmm5, xmm2);
|
|
982 |
masm.movdqu(xmm4, recordExternalAddress(crb, coeff16)); // 0x9f95985a, 0xbfb528db,
|
|
983 |
// 0xb3841d2a, 0xbfd619b6
|
|
984 |
masm.movl(rcx, rax);
|
|
985 |
masm.sarl(rax, 31);
|
|
986 |
masm.addl(rcx, rax);
|
|
987 |
masm.xorl(rax, rcx);
|
|
988 |
masm.addl(rax, 1);
|
|
989 |
masm.bsrl(rax, rax);
|
|
990 |
masm.unpcklpd(xmm5, xmm3);
|
|
991 |
masm.movdqu(xmm6, recordExternalAddress(crb, coeff32)); // 0x518775e3, 0x3f9004f2,
|
|
992 |
// 0xac8349bb, 0x3fa76c9b
|
|
993 |
masm.addsd(xmm3, xmm5);
|
|
994 |
masm.andl(rdx, 16760832);
|
|
995 |
masm.shrl(rdx, 10);
|
|
996 |
masm.addpd(xmm5, new AMD64Address(tmp4, rdx, AMD64Address.Scale.Times1, -3648));
|
|
997 |
masm.movdqu(xmm0, recordExternalAddress(crb, coeff48)); // 0x486ececc, 0x3fc4635e,
|
|
998 |
// 0x161bb241, 0xbf5dabe1
|
|
999 |
masm.pshufd(xmm2, xmm3, 68);
|
|
1000 |
masm.mulsd(xmm3, xmm3);
|
|
1001 |
masm.mulpd(xmm1, xmm2);
|
|
1002 |
masm.mulpd(xmm4, xmm2);
|
|
1003 |
masm.addsd(xmm5, xmm7);
|
|
1004 |
masm.mulsd(xmm2, xmm3);
|
|
1005 |
masm.addpd(xmm6, xmm1);
|
|
1006 |
masm.mulsd(xmm3, xmm3);
|
|
1007 |
masm.addpd(xmm0, xmm4);
|
|
1008 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1009 |
masm.movw(rcx, new AMD64Address(rsp, 22));
|
|
1010 |
masm.pshufd(xmm7, xmm5, 238);
|
|
1011 |
masm.movq(xmm4, recordExternalAddress(crb, highmaskY)); // 0x00000000, 0xfffffff8,
|
|
1012 |
// 0x00000000, 0xffffffff
|
|
1013 |
masm.mulpd(xmm6, xmm2);
|
|
1014 |
masm.pshufd(xmm3, xmm3, 68);
|
|
1015 |
masm.mulpd(xmm0, xmm2);
|
|
1016 |
masm.shll(rax, 4);
|
|
1017 |
masm.subl(rax, 15872);
|
|
1018 |
masm.andl(rcx, 32752);
|
|
1019 |
masm.addl(rax, rcx);
|
|
1020 |
masm.mulpd(xmm3, xmm6);
|
|
1021 |
masm.cmpl(rax, 624);
|
|
1022 |
masm.jcc(AMD64Assembler.ConditionFlag.AboveEqual, block5);
|
|
1023 |
masm.xorpd(xmm6, xmm6);
|
|
1024 |
masm.movl(rdx, 17080);
|
|
1025 |
masm.pinsrw(xmm6, rdx, 3);
|
|
1026 |
masm.movdqu(xmm2, xmm1);
|
|
1027 |
masm.pand(xmm4, xmm1);
|
|
1028 |
masm.subsd(xmm1, xmm4);
|
|
1029 |
masm.mulsd(xmm4, xmm5);
|
|
1030 |
masm.addsd(xmm0, xmm7);
|
|
1031 |
masm.mulsd(xmm1, xmm5);
|
|
1032 |
masm.movdqu(xmm7, xmm6);
|
|
1033 |
masm.addsd(xmm6, xmm4);
|
|
1034 |
masm.leaq(tmp4, recordExternalAddress(crb, tExp));
|
|
1035 |
masm.addpd(xmm3, xmm0);
|
|
1036 |
masm.movdl(rdx, xmm6);
|
|
1037 |
masm.subsd(xmm6, xmm7);
|
|
1038 |
masm.pshufd(xmm0, xmm3, 238);
|
|
1039 |
masm.subsd(xmm4, xmm6);
|
|
1040 |
masm.addsd(xmm0, xmm3);
|
|
1041 |
masm.movl(rcx, rdx);
|
|
1042 |
masm.andl(rdx, 255);
|
|
1043 |
masm.addl(rdx, rdx);
|
|
1044 |
masm.movdqu(xmm5, new AMD64Address(tmp4, rdx, AMD64Address.Scale.Times8, 0));
|
|
1045 |
masm.addsd(xmm4, xmm1);
|
|
1046 |
masm.mulsd(xmm2, xmm0);
|
|
1047 |
masm.movdqu(xmm7, recordExternalAddress(crb, eCoeff)); // 0xe78a6731, 0x3f55d87f,
|
|
1048 |
// 0xd704a0c0, 0x3fac6b08
|
|
1049 |
masm.movdqu(xmm3, recordExternalAddress(crb, eCoeff16)); // 0x6fba4e77, 0x3f83b2ab,
|
|
1050 |
// 0xff82c58f, 0x3fcebfbd
|
|
1051 |
masm.shll(rcx, 12);
|
|
1052 |
masm.xorl(rcx, tmp1);
|
|
1053 |
masm.andl(rcx, -1048576);
|
|
1054 |
masm.movdq(xmm6, rcx);
|
|
1055 |
masm.addsd(xmm2, xmm4);
|
|
1056 |
masm.movq(tmp2, 0x3fe62e42fefa39efL);
|
|
1057 |
masm.movdq(xmm1, tmp2);
|
|
1058 |
masm.pshufd(xmm0, xmm2, 68);
|
|
1059 |
masm.pshufd(xmm4, xmm2, 68);
|
|
1060 |
masm.mulsd(xmm1, xmm2);
|
|
1061 |
masm.pshufd(xmm6, xmm6, 17);
|
|
1062 |
masm.mulpd(xmm0, xmm0);
|
|
1063 |
masm.mulpd(xmm7, xmm4);
|
|
1064 |
masm.paddd(xmm5, xmm6);
|
|
1065 |
masm.mulsd(xmm1, xmm5);
|
|
1066 |
masm.pshufd(xmm6, xmm5, 238);
|
|
1067 |
masm.mulsd(xmm0, xmm0);
|
|
1068 |
masm.addpd(xmm3, xmm7);
|
|
1069 |
masm.addsd(xmm1, xmm6);
|
|
1070 |
masm.mulpd(xmm0, xmm3);
|
|
1071 |
masm.pshufd(xmm3, xmm0, 238);
|
|
1072 |
masm.mulsd(xmm0, xmm5);
|
|
1073 |
masm.mulsd(xmm3, xmm5);
|
|
1074 |
masm.addsd(xmm0, xmm1);
|
|
1075 |
masm.addsd(xmm0, xmm3);
|
|
1076 |
masm.addsd(xmm0, xmm5);
|
|
1077 |
masm.jmp(block56);
|
|
1078 |
|
|
1079 |
masm.bind(block0);
|
|
1080 |
masm.addl(rax, 16);
|
|
1081 |
masm.movl(rdx, 32752);
|
|
1082 |
masm.andl(rdx, rax);
|
|
1083 |
masm.cmpl(rdx, 32752);
|
|
1084 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block6);
|
|
1085 |
masm.testl(rax, 32768);
|
|
1086 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block7);
|
|
1087 |
|
|
1088 |
masm.bind(block8);
|
|
1089 |
masm.movq(xmm0, new AMD64Address(rsp, 8));
|
|
1090 |
masm.movq(xmm3, new AMD64Address(rsp, 8));
|
|
1091 |
masm.movdl(rdx, xmm3);
|
|
1092 |
masm.psrlq(xmm3, 32);
|
|
1093 |
masm.movdl(rcx, xmm3);
|
|
1094 |
masm.orl(rdx, rcx);
|
|
1095 |
masm.cmpl(rdx, 0);
|
|
1096 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block9);
|
|
1097 |
masm.xorpd(xmm3, xmm3);
|
|
1098 |
masm.movl(rax, 18416);
|
|
1099 |
masm.pinsrw(xmm3, rax, 3);
|
|
1100 |
masm.mulsd(xmm0, xmm3);
|
|
1101 |
masm.xorpd(xmm2, xmm2);
|
|
1102 |
masm.movl(rax, 16368);
|
|
1103 |
masm.pinsrw(xmm2, rax, 3);
|
|
1104 |
masm.movdqu(xmm3, xmm0);
|
|
1105 |
masm.pextrw(rax, xmm0, 3);
|
|
1106 |
masm.por(xmm0, xmm2);
|
|
1107 |
masm.movl(rcx, 18416);
|
|
1108 |
masm.psrlq(xmm0, 27);
|
|
1109 |
masm.movq(xmm2, recordExternalAddress(crb, log2E)); // 0x00000000, 0x3ff72000,
|
|
1110 |
// 0x161bb241, 0xbf5dabe1
|
|
1111 |
masm.psrld(xmm0, 2);
|
|
1112 |
masm.rcpps(xmm0, xmm0);
|
|
1113 |
masm.psllq(xmm3, 12);
|
|
1114 |
masm.movdqu(xmm6, recordExternalAddress(crb, highsigmask)); // 0x00000000, 0xfffff800,
|
|
1115 |
// 0x00000000, 0xfffff800
|
|
1116 |
masm.psrlq(xmm3, 12);
|
|
1117 |
masm.mulss(xmm0, xmm7);
|
|
1118 |
masm.movl(rdx, -1024);
|
|
1119 |
masm.movdl(xmm5, rdx);
|
|
1120 |
masm.por(xmm3, xmm1);
|
|
1121 |
masm.paddd(xmm0, xmm4);
|
|
1122 |
masm.psllq(xmm5, 32);
|
|
1123 |
masm.movdl(rdx, xmm0);
|
|
1124 |
masm.psllq(xmm0, 29);
|
|
1125 |
masm.pand(xmm5, xmm3);
|
|
1126 |
masm.movl(tmp1, 0);
|
|
1127 |
masm.pand(xmm0, xmm6);
|
|
1128 |
masm.subsd(xmm3, xmm5);
|
|
1129 |
masm.andl(rax, 32752);
|
|
1130 |
masm.subl(rax, 18416);
|
|
1131 |
masm.sarl(rax, 4);
|
|
1132 |
masm.cvtsi2sdl(xmm7, rax);
|
|
1133 |
masm.mulpd(xmm5, xmm0);
|
|
1134 |
masm.jmp(block4);
|
|
1135 |
|
|
1136 |
masm.bind(block10);
|
|
1137 |
masm.movq(xmm0, new AMD64Address(rsp, 8));
|
|
1138 |
masm.movq(xmm3, new AMD64Address(rsp, 8));
|
|
1139 |
masm.movdl(rdx, xmm3);
|
|
1140 |
masm.psrlq(xmm3, 32);
|
|
1141 |
masm.movdl(rcx, xmm3);
|
|
1142 |
masm.orl(rdx, rcx);
|
|
1143 |
masm.cmpl(rdx, 0);
|
|
1144 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block9);
|
|
1145 |
masm.xorpd(xmm3, xmm3);
|
|
1146 |
masm.movl(rax, 18416);
|
|
1147 |
masm.pinsrw(xmm3, rax, 3);
|
|
1148 |
masm.mulsd(xmm0, xmm3);
|
|
1149 |
masm.xorpd(xmm2, xmm2);
|
|
1150 |
masm.movl(rax, 16368);
|
|
1151 |
masm.pinsrw(xmm2, rax, 3);
|
|
1152 |
masm.movdqu(xmm3, xmm0);
|
|
1153 |
masm.pextrw(rax, xmm0, 3);
|
|
1154 |
masm.por(xmm0, xmm2);
|
|
1155 |
masm.movl(rcx, 18416);
|
|
1156 |
masm.psrlq(xmm0, 27);
|
|
1157 |
masm.movq(xmm2, recordExternalAddress(crb, log2E)); // 0x00000000, 0x3ff72000,
|
|
1158 |
// 0x161bb241, 0xbf5dabe1
|
|
1159 |
masm.psrld(xmm0, 2);
|
|
1160 |
masm.rcpps(xmm0, xmm0);
|
|
1161 |
masm.psllq(xmm3, 12);
|
|
1162 |
masm.movdqu(xmm6, recordExternalAddress(crb, highsigmask)); // 0x00000000, 0xfffff800,
|
|
1163 |
// 0x00000000, 0xfffff800
|
|
1164 |
masm.psrlq(xmm3, 12);
|
|
1165 |
masm.mulss(xmm0, xmm7);
|
|
1166 |
masm.movl(rdx, -1024);
|
|
1167 |
masm.movdl(xmm5, rdx);
|
|
1168 |
masm.por(xmm3, xmm1);
|
|
1169 |
masm.paddd(xmm0, xmm4);
|
|
1170 |
masm.psllq(xmm5, 32);
|
|
1171 |
masm.movdl(rdx, xmm0);
|
|
1172 |
masm.psllq(xmm0, 29);
|
|
1173 |
masm.pand(xmm5, xmm3);
|
|
1174 |
masm.movl(tmp1, Integer.MIN_VALUE);
|
|
1175 |
masm.pand(xmm0, xmm6);
|
|
1176 |
masm.subsd(xmm3, xmm5);
|
|
1177 |
masm.andl(rax, 32752);
|
|
1178 |
masm.subl(rax, 18416);
|
|
1179 |
masm.sarl(rax, 4);
|
|
1180 |
masm.cvtsi2sdl(xmm7, rax);
|
|
1181 |
masm.mulpd(xmm5, xmm0);
|
|
1182 |
masm.jmp(block4);
|
|
1183 |
|
|
1184 |
masm.bind(block5);
|
|
1185 |
masm.cmpl(rax, 0);
|
|
1186 |
masm.jcc(AMD64Assembler.ConditionFlag.Less, block11);
|
|
1187 |
masm.cmpl(rax, 752);
|
|
1188 |
masm.jcc(AMD64Assembler.ConditionFlag.AboveEqual, block12);
|
|
1189 |
masm.addsd(xmm0, xmm7);
|
|
1190 |
masm.movq(xmm2, recordExternalAddress(crb, halfmask)); // 0xf8000000, 0xffffffff,
|
|
1191 |
// 0xf8000000, 0xffffffff
|
|
1192 |
masm.addpd(xmm3, xmm0);
|
|
1193 |
masm.xorpd(xmm6, xmm6);
|
|
1194 |
masm.movl(rax, 17080);
|
|
1195 |
masm.pinsrw(xmm6, rax, 3);
|
|
1196 |
masm.pshufd(xmm0, xmm3, 238);
|
|
1197 |
masm.addsd(xmm0, xmm3);
|
|
1198 |
masm.movdqu(xmm3, xmm5);
|
|
1199 |
masm.addsd(xmm5, xmm0);
|
|
1200 |
masm.movdqu(xmm4, xmm2);
|
|
1201 |
masm.subsd(xmm3, xmm5);
|
|
1202 |
masm.movdqu(xmm7, xmm5);
|
|
1203 |
masm.pand(xmm5, xmm2);
|
|
1204 |
masm.movdqu(xmm2, xmm1);
|
|
1205 |
masm.pand(xmm4, xmm1);
|
|
1206 |
masm.subsd(xmm7, xmm5);
|
|
1207 |
masm.addsd(xmm0, xmm3);
|
|
1208 |
masm.subsd(xmm1, xmm4);
|
|
1209 |
masm.mulsd(xmm4, xmm5);
|
|
1210 |
masm.addsd(xmm0, xmm7);
|
|
1211 |
masm.mulsd(xmm2, xmm0);
|
|
1212 |
masm.movdqu(xmm7, xmm6);
|
|
1213 |
masm.mulsd(xmm1, xmm5);
|
|
1214 |
masm.addsd(xmm6, xmm4);
|
|
1215 |
masm.movdl(rax, xmm6);
|
|
1216 |
masm.subsd(xmm6, xmm7);
|
|
1217 |
masm.leaq(tmp4, recordExternalAddress(crb, tExp));
|
|
1218 |
masm.addsd(xmm2, xmm1);
|
|
1219 |
masm.movdqu(xmm7, recordExternalAddress(crb, eCoeff)); // 0xe78a6731, 0x3f55d87f,
|
|
1220 |
// 0xd704a0c0, 0x3fac6b08
|
|
1221 |
masm.movdqu(xmm3, recordExternalAddress(crb, eCoeff16)); // 0x6fba4e77, 0x3f83b2ab,
|
|
1222 |
// 0xff82c58f, 0x3fcebfbd
|
|
1223 |
masm.subsd(xmm4, xmm6);
|
|
1224 |
masm.pextrw(rdx, xmm6, 3);
|
|
1225 |
masm.movl(rcx, rax);
|
|
1226 |
masm.andl(rax, 255);
|
|
1227 |
masm.addl(rax, rax);
|
|
1228 |
masm.movdqu(xmm5, new AMD64Address(tmp4, rax, AMD64Address.Scale.Times8, 0));
|
|
1229 |
masm.addsd(xmm2, xmm4);
|
|
1230 |
masm.sarl(rcx, 8);
|
|
1231 |
masm.movl(rax, rcx);
|
|
1232 |
masm.sarl(rcx, 1);
|
|
1233 |
masm.subl(rax, rcx);
|
|
1234 |
masm.shll(rcx, 20);
|
|
1235 |
masm.xorl(rcx, tmp1);
|
|
1236 |
masm.movdl(xmm6, rcx);
|
|
1237 |
masm.movq(xmm1, recordExternalAddress(crb, eCoeff32)); // 0xfefa39ef, 0x3fe62e42,
|
|
1238 |
// 0x00000000, 0x00000000
|
|
1239 |
masm.andl(rdx, 32767);
|
|
1240 |
masm.cmpl(rdx, 16529);
|
|
1241 |
masm.jcc(AMD64Assembler.ConditionFlag.Above, block12);
|
|
1242 |
masm.pshufd(xmm0, xmm2, 68);
|
|
1243 |
masm.pshufd(xmm4, xmm2, 68);
|
|
1244 |
masm.mulpd(xmm0, xmm0);
|
|
1245 |
masm.mulpd(xmm7, xmm4);
|
|
1246 |
masm.pshufd(xmm6, xmm6, 17);
|
|
1247 |
masm.mulsd(xmm1, xmm2);
|
|
1248 |
masm.mulsd(xmm0, xmm0);
|
|
1249 |
masm.paddd(xmm5, xmm6);
|
|
1250 |
masm.addpd(xmm3, xmm7);
|
|
1251 |
masm.mulsd(xmm1, xmm5);
|
|
1252 |
masm.pshufd(xmm6, xmm5, 238);
|
|
1253 |
masm.mulpd(xmm0, xmm3);
|
|
1254 |
masm.addsd(xmm1, xmm6);
|
|
1255 |
masm.pshufd(xmm3, xmm0, 238);
|
|
1256 |
masm.mulsd(xmm0, xmm5);
|
|
1257 |
masm.mulsd(xmm3, xmm5);
|
|
1258 |
masm.shll(rax, 4);
|
|
1259 |
masm.xorpd(xmm4, xmm4);
|
|
1260 |
masm.addl(rax, 16368);
|
|
1261 |
masm.pinsrw(xmm4, rax, 3);
|
|
1262 |
masm.addsd(xmm0, xmm1);
|
|
1263 |
masm.addsd(xmm0, xmm3);
|
|
1264 |
masm.movdqu(xmm1, xmm0);
|
|
1265 |
masm.addsd(xmm0, xmm5);
|
|
1266 |
masm.mulsd(xmm0, xmm4);
|
|
1267 |
masm.pextrw(rax, xmm0, 3);
|
|
1268 |
masm.andl(rax, 32752);
|
|
1269 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block13);
|
|
1270 |
masm.cmpl(rax, 32752);
|
|
1271 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block14);
|
|
1272 |
masm.jmp(block56);
|
|
1273 |
|
|
1274 |
masm.bind(block6);
|
|
1275 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1276 |
masm.movq(xmm0, new AMD64Address(rsp, 8));
|
|
1277 |
masm.movdqu(xmm2, xmm0);
|
|
1278 |
masm.movdl(rax, xmm2);
|
|
1279 |
masm.psrlq(xmm2, 20);
|
|
1280 |
masm.movdl(rdx, xmm2);
|
|
1281 |
masm.orl(rax, rdx);
|
|
1282 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block15);
|
|
1283 |
masm.movdl(rax, xmm1);
|
|
1284 |
masm.psrlq(xmm1, 32);
|
|
1285 |
masm.movdl(rdx, xmm1);
|
|
1286 |
masm.movl(rcx, rdx);
|
|
1287 |
masm.addl(rdx, rdx);
|
|
1288 |
masm.orl(rax, rdx);
|
|
1289 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block16);
|
|
1290 |
masm.addsd(xmm0, xmm0);
|
|
1291 |
masm.jmp(block56);
|
|
1292 |
|
|
1293 |
masm.bind(block16);
|
|
1294 |
masm.xorpd(xmm0, xmm0);
|
|
1295 |
masm.movl(rax, 16368);
|
|
1296 |
masm.pinsrw(xmm0, rax, 3);
|
|
1297 |
masm.movl(new AMD64Address(rsp, 0), 29);
|
|
1298 |
masm.jmp(block17);
|
|
1299 |
|
|
1300 |
masm.bind(block18);
|
|
1301 |
masm.movq(xmm0, new AMD64Address(rsp, 16));
|
|
1302 |
masm.addpd(xmm0, xmm0);
|
|
1303 |
masm.jmp(block56);
|
|
1304 |
|
|
1305 |
masm.bind(block15);
|
|
1306 |
masm.movdl(rax, xmm1);
|
|
1307 |
masm.movdqu(xmm2, xmm1);
|
|
1308 |
masm.psrlq(xmm1, 32);
|
|
1309 |
masm.movdl(rdx, xmm1);
|
|
1310 |
masm.movl(rcx, rdx);
|
|
1311 |
masm.addl(rdx, rdx);
|
|
1312 |
masm.orl(rax, rdx);
|
|
1313 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block19);
|
|
1314 |
masm.pextrw(rax, xmm2, 3);
|
|
1315 |
masm.andl(rax, 32752);
|
|
1316 |
masm.cmpl(rax, 32752);
|
|
1317 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block20);
|
|
1318 |
masm.movdl(rax, xmm2);
|
|
1319 |
masm.psrlq(xmm2, 20);
|
|
1320 |
masm.movdl(rdx, xmm2);
|
|
1321 |
masm.orl(rax, rdx);
|
|
1322 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block18);
|
|
1323 |
|
|
1324 |
masm.bind(block20);
|
|
1325 |
masm.pextrw(rax, xmm0, 3);
|
|
1326 |
masm.testl(rax, 32768);
|
|
1327 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block21);
|
|
1328 |
masm.testl(rcx, Integer.MIN_VALUE);
|
|
1329 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block22);
|
|
1330 |
masm.jmp(block56);
|
|
1331 |
|
|
1332 |
masm.bind(block23);
|
|
1333 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1334 |
masm.movdl(rax, xmm1);
|
|
1335 |
masm.testl(rax, 1);
|
|
1336 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block24);
|
|
1337 |
masm.testl(rax, 2);
|
|
1338 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block25);
|
|
1339 |
masm.jmp(block24);
|
|
1340 |
|
|
1341 |
masm.bind(block21);
|
|
1342 |
masm.shrl(rcx, 20);
|
|
1343 |
masm.andl(rcx, 2047);
|
|
1344 |
masm.cmpl(rcx, 1075);
|
|
1345 |
masm.jcc(AMD64Assembler.ConditionFlag.Above, block24);
|
|
1346 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block26);
|
|
1347 |
masm.cmpl(rcx, 1074);
|
|
1348 |
masm.jcc(AMD64Assembler.ConditionFlag.Above, block23);
|
|
1349 |
masm.cmpl(rcx, 1023);
|
|
1350 |
masm.jcc(AMD64Assembler.ConditionFlag.Below, block24);
|
|
1351 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1352 |
masm.movl(rax, 17208);
|
|
1353 |
masm.xorpd(xmm3, xmm3);
|
|
1354 |
masm.pinsrw(xmm3, rax, 3);
|
|
1355 |
masm.movdqu(xmm4, xmm3);
|
|
1356 |
masm.addsd(xmm3, xmm1);
|
|
1357 |
masm.subsd(xmm4, xmm3);
|
|
1358 |
masm.addsd(xmm1, xmm4);
|
|
1359 |
masm.pextrw(rax, xmm1, 3);
|
|
1360 |
masm.andl(rax, 32752);
|
|
1361 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block24);
|
|
1362 |
masm.movdl(rax, xmm3);
|
|
1363 |
masm.andl(rax, 1);
|
|
1364 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block24);
|
|
1365 |
|
|
1366 |
masm.bind(block25);
|
|
1367 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1368 |
masm.pextrw(rax, xmm1, 3);
|
|
1369 |
masm.andl(rax, 32768);
|
|
1370 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block27);
|
|
1371 |
masm.jmp(block56);
|
|
1372 |
|
|
1373 |
masm.bind(block27);
|
|
1374 |
masm.xorpd(xmm0, xmm0);
|
|
1375 |
masm.movl(rax, 32768);
|
|
1376 |
masm.pinsrw(xmm0, rax, 3);
|
|
1377 |
masm.jmp(block56);
|
|
1378 |
|
|
1379 |
masm.bind(block24);
|
|
1380 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1381 |
masm.pextrw(rax, xmm1, 3);
|
|
1382 |
masm.andl(rax, 32768);
|
|
1383 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block22);
|
|
1384 |
masm.xorpd(xmm0, xmm0);
|
|
1385 |
masm.movl(rax, 32752);
|
|
1386 |
masm.pinsrw(xmm0, rax, 3);
|
|
1387 |
masm.jmp(block56);
|
|
1388 |
|
|
1389 |
masm.bind(block26);
|
|
1390 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1391 |
masm.movdl(rax, xmm1);
|
|
1392 |
masm.andl(rax, 1);
|
|
1393 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block24);
|
|
1394 |
masm.jmp(block25);
|
|
1395 |
|
|
1396 |
masm.bind(block28);
|
|
1397 |
masm.movdl(rax, xmm1);
|
|
1398 |
masm.psrlq(xmm1, 20);
|
|
1399 |
masm.movdl(rdx, xmm1);
|
|
1400 |
masm.orl(rax, rdx);
|
|
1401 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block29);
|
|
1402 |
masm.movq(xmm0, new AMD64Address(rsp, 16));
|
|
1403 |
masm.addsd(xmm0, xmm0);
|
|
1404 |
masm.jmp(block56);
|
|
1405 |
|
|
1406 |
masm.bind(block29);
|
|
1407 |
masm.movq(xmm0, new AMD64Address(rsp, 8));
|
|
1408 |
masm.pextrw(rax, xmm0, 3);
|
|
1409 |
masm.cmpl(rax, 49136);
|
|
1410 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block30);
|
|
1411 |
masm.movdl(rcx, xmm0);
|
|
1412 |
masm.psrlq(xmm0, 20);
|
|
1413 |
masm.movdl(rdx, xmm0);
|
|
1414 |
masm.orl(rcx, rdx);
|
|
1415 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block30);
|
|
1416 |
masm.xorpd(xmm0, xmm0);
|
|
1417 |
masm.movl(rax, 32760);
|
|
1418 |
masm.pinsrw(xmm0, rax, 3);
|
|
1419 |
masm.jmp(block56);
|
|
1420 |
|
|
1421 |
masm.bind(block30);
|
|
1422 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1423 |
masm.andl(rax, 32752);
|
|
1424 |
masm.subl(rax, 16368);
|
|
1425 |
masm.pextrw(rdx, xmm1, 3);
|
|
1426 |
masm.xorpd(xmm0, xmm0);
|
|
1427 |
masm.xorl(rax, rdx);
|
|
1428 |
masm.andl(rax, 32768);
|
|
1429 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block31);
|
|
1430 |
masm.jmp(block56);
|
|
1431 |
|
|
1432 |
masm.bind(block31);
|
|
1433 |
masm.movl(rcx, 32752);
|
|
1434 |
masm.pinsrw(xmm0, rcx, 3);
|
|
1435 |
masm.jmp(block56);
|
|
1436 |
|
|
1437 |
masm.bind(block32);
|
|
1438 |
masm.movdl(rax, xmm1);
|
|
1439 |
masm.cmpl(rdx, 17184);
|
|
1440 |
masm.jcc(AMD64Assembler.ConditionFlag.Above, block33);
|
|
1441 |
masm.testl(rax, 1);
|
|
1442 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block34);
|
|
1443 |
masm.testl(rax, 2);
|
|
1444 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block35);
|
|
1445 |
masm.jmp(block36);
|
|
1446 |
|
|
1447 |
masm.bind(block33);
|
|
1448 |
masm.testl(rax, 1);
|
|
1449 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block35);
|
|
1450 |
masm.jmp(block36);
|
|
1451 |
|
|
1452 |
masm.bind(block7);
|
|
1453 |
masm.movq(xmm2, new AMD64Address(rsp, 8));
|
|
1454 |
masm.movdl(rax, xmm2);
|
|
1455 |
masm.psrlq(xmm2, 31);
|
|
1456 |
masm.movdl(rcx, xmm2);
|
|
1457 |
masm.orl(rax, rcx);
|
|
1458 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block9);
|
|
1459 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1460 |
masm.pextrw(rdx, xmm1, 3);
|
|
1461 |
masm.movdl(rax, xmm1);
|
|
1462 |
masm.movdqu(xmm2, xmm1);
|
|
1463 |
masm.psrlq(xmm2, 32);
|
|
1464 |
masm.movdl(rcx, xmm2);
|
|
1465 |
masm.addl(rcx, rcx);
|
|
1466 |
masm.orl(rcx, rax);
|
|
1467 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block37);
|
|
1468 |
masm.andl(rdx, 32752);
|
|
1469 |
masm.cmpl(rdx, 32752);
|
|
1470 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block28);
|
|
1471 |
masm.cmpl(rdx, 17200);
|
|
1472 |
masm.jcc(AMD64Assembler.ConditionFlag.Above, block35);
|
|
1473 |
masm.cmpl(rdx, 17184);
|
|
1474 |
masm.jcc(AMD64Assembler.ConditionFlag.AboveEqual, block32);
|
|
1475 |
masm.cmpl(rdx, 16368);
|
|
1476 |
masm.jcc(AMD64Assembler.ConditionFlag.Below, block34);
|
|
1477 |
masm.movl(rax, 17208);
|
|
1478 |
masm.xorpd(xmm2, xmm2);
|
|
1479 |
masm.pinsrw(xmm2, rax, 3);
|
|
1480 |
masm.movdqu(xmm4, xmm2);
|
|
1481 |
masm.addsd(xmm2, xmm1);
|
|
1482 |
masm.subsd(xmm4, xmm2);
|
|
1483 |
masm.addsd(xmm1, xmm4);
|
|
1484 |
masm.pextrw(rax, xmm1, 3);
|
|
1485 |
masm.andl(rax, 32767);
|
|
1486 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block34);
|
|
1487 |
masm.movdl(rax, xmm2);
|
|
1488 |
masm.andl(rax, 1);
|
|
1489 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block35);
|
|
1490 |
|
|
1491 |
masm.bind(block36);
|
|
1492 |
masm.xorpd(xmm1, xmm1);
|
|
1493 |
masm.movl(rdx, 30704);
|
|
1494 |
masm.pinsrw(xmm1, rdx, 3);
|
|
1495 |
masm.movq(xmm2, recordExternalAddress(crb, log2E)); // 0x00000000, 0x3ff72000,
|
|
1496 |
// 0x161bb241, 0xbf5dabe1
|
|
1497 |
masm.movq(xmm4, new AMD64Address(rsp, 8));
|
|
1498 |
masm.pextrw(rax, xmm4, 3);
|
|
1499 |
masm.movl(rdx, 8192);
|
|
1500 |
masm.movdl(xmm4, rdx);
|
|
1501 |
masm.andl(rax, 32767);
|
|
1502 |
masm.subl(rax, 16);
|
|
1503 |
masm.jcc(AMD64Assembler.ConditionFlag.Less, block10);
|
|
1504 |
masm.movl(rdx, rax);
|
|
1505 |
masm.andl(rdx, 32752);
|
|
1506 |
masm.subl(rdx, 16368);
|
|
1507 |
masm.movl(rcx, rdx);
|
|
1508 |
masm.sarl(rdx, 31);
|
|
1509 |
masm.addl(rcx, rdx);
|
|
1510 |
masm.xorl(rcx, rdx);
|
|
1511 |
masm.addl(rcx, 16);
|
|
1512 |
masm.bsrl(rcx, rcx);
|
|
1513 |
masm.movl(tmp1, Integer.MIN_VALUE);
|
|
1514 |
masm.jmp(block1);
|
|
1515 |
|
|
1516 |
masm.bind(block34);
|
|
1517 |
masm.xorpd(xmm1, xmm1);
|
|
1518 |
masm.movl(rax, 32752);
|
|
1519 |
masm.pinsrw(xmm1, rax, 3);
|
|
1520 |
masm.xorpd(xmm0, xmm0);
|
|
1521 |
masm.mulsd(xmm0, xmm1);
|
|
1522 |
masm.movl(new AMD64Address(rsp, 0), 28);
|
|
1523 |
masm.jmp(block17);
|
|
1524 |
|
|
1525 |
masm.bind(block35);
|
|
1526 |
masm.xorpd(xmm1, xmm1);
|
|
1527 |
masm.movl(rdx, 30704);
|
|
1528 |
masm.pinsrw(xmm1, rdx, 3);
|
|
1529 |
masm.movq(xmm2, recordExternalAddress(crb, log2E)); // 0x00000000, 0x3ff72000,
|
|
1530 |
// 0x161bb241, 0xbf5dabe1
|
|
1531 |
masm.movq(xmm4, new AMD64Address(rsp, 8));
|
|
1532 |
masm.pextrw(rax, xmm4, 3);
|
|
1533 |
masm.movl(rdx, 8192);
|
|
1534 |
masm.movdl(xmm4, rdx);
|
|
1535 |
masm.andl(rax, 32767);
|
|
1536 |
masm.subl(rax, 16);
|
|
1537 |
masm.jcc(AMD64Assembler.ConditionFlag.Less, block8);
|
|
1538 |
masm.movl(rdx, rax);
|
|
1539 |
masm.andl(rdx, 32752);
|
|
1540 |
masm.subl(rdx, 16368);
|
|
1541 |
masm.movl(rcx, rdx);
|
|
1542 |
masm.sarl(rdx, 31);
|
|
1543 |
masm.addl(rcx, rdx);
|
|
1544 |
masm.xorl(rcx, rdx);
|
|
1545 |
masm.addl(rcx, 16);
|
|
1546 |
masm.bsrl(rcx, rcx);
|
|
1547 |
masm.movl(tmp1, 0);
|
|
1548 |
masm.jmp(block1);
|
|
1549 |
|
|
1550 |
masm.bind(block19);
|
|
1551 |
masm.xorpd(xmm0, xmm0);
|
|
1552 |
masm.movl(rax, 16368);
|
|
1553 |
masm.pinsrw(xmm0, rax, 3);
|
|
1554 |
masm.jmp(block56);
|
|
1555 |
|
|
1556 |
masm.bind(block22);
|
|
1557 |
masm.xorpd(xmm0, xmm0);
|
|
1558 |
masm.jmp(block56);
|
|
1559 |
|
|
1560 |
masm.bind(block11);
|
|
1561 |
masm.addl(rax, 384);
|
|
1562 |
masm.cmpl(rax, 0);
|
|
1563 |
masm.jcc(AMD64Assembler.ConditionFlag.Less, block38);
|
|
1564 |
masm.mulsd(xmm5, xmm1);
|
|
1565 |
masm.addsd(xmm0, xmm7);
|
|
1566 |
masm.shrl(tmp1, 31);
|
|
1567 |
masm.addpd(xmm3, xmm0);
|
|
1568 |
masm.pshufd(xmm0, xmm3, 238);
|
|
1569 |
masm.addsd(xmm3, xmm0);
|
|
1570 |
masm.leaq(tmp4, recordExternalAddress(crb, log2)); // 0xfefa39ef, 0x3fe62e42,
|
|
1571 |
// 0xfefa39ef, 0xbfe62e42
|
|
1572 |
masm.movq(xmm4, new AMD64Address(tmp4, tmp1, AMD64Address.Scale.Times8, 0));
|
|
1573 |
masm.mulsd(xmm1, xmm3);
|
|
1574 |
masm.xorpd(xmm0, xmm0);
|
|
1575 |
masm.movl(rax, 16368);
|
|
1576 |
masm.shll(tmp1, 15);
|
|
1577 |
masm.orl(rax, tmp1);
|
|
1578 |
masm.pinsrw(xmm0, rax, 3);
|
|
1579 |
masm.addsd(xmm5, xmm1);
|
|
1580 |
masm.mulsd(xmm5, xmm4);
|
|
1581 |
masm.addsd(xmm0, xmm5);
|
|
1582 |
masm.jmp(block56);
|
|
1583 |
|
|
1584 |
masm.bind(block38);
|
|
1585 |
|
|
1586 |
masm.bind(block37);
|
|
1587 |
masm.xorpd(xmm0, xmm0);
|
|
1588 |
masm.movl(rax, 16368);
|
|
1589 |
masm.pinsrw(xmm0, rax, 3);
|
|
1590 |
masm.jmp(block56);
|
|
1591 |
|
|
1592 |
masm.bind(block39);
|
|
1593 |
masm.xorpd(xmm0, xmm0);
|
|
1594 |
masm.movl(rax, 16368);
|
|
1595 |
masm.pinsrw(xmm0, rax, 3);
|
|
1596 |
masm.movl(new AMD64Address(rsp, 0), 26);
|
|
1597 |
masm.jmp(block17);
|
|
1598 |
|
|
1599 |
masm.bind(block9);
|
|
1600 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1601 |
masm.movdqu(xmm2, xmm1);
|
|
1602 |
masm.pextrw(rax, xmm1, 3);
|
|
1603 |
masm.andl(rax, 32752);
|
|
1604 |
masm.cmpl(rax, 32752);
|
|
1605 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block40);
|
|
1606 |
masm.movdl(rax, xmm2);
|
|
1607 |
masm.psrlq(xmm2, 20);
|
|
1608 |
masm.movdl(rdx, xmm2);
|
|
1609 |
masm.orl(rax, rdx);
|
|
1610 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block18);
|
|
1611 |
|
|
1612 |
masm.bind(block40);
|
|
1613 |
masm.movdl(rax, xmm1);
|
|
1614 |
masm.psrlq(xmm1, 32);
|
|
1615 |
masm.movdl(rdx, xmm1);
|
|
1616 |
masm.movl(rcx, rdx);
|
|
1617 |
masm.addl(rdx, rdx);
|
|
1618 |
masm.orl(rax, rdx);
|
|
1619 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block39);
|
|
1620 |
masm.shrl(rdx, 21);
|
|
1621 |
masm.cmpl(rdx, 1075);
|
|
1622 |
masm.jcc(AMD64Assembler.ConditionFlag.Above, block41);
|
|
1623 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block42);
|
|
1624 |
masm.cmpl(rdx, 1023);
|
|
1625 |
masm.jcc(AMD64Assembler.ConditionFlag.Below, block41);
|
|
1626 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1627 |
masm.movl(rax, 17208);
|
|
1628 |
masm.xorpd(xmm3, xmm3);
|
|
1629 |
masm.pinsrw(xmm3, rax, 3);
|
|
1630 |
masm.movdqu(xmm4, xmm3);
|
|
1631 |
masm.addsd(xmm3, xmm1);
|
|
1632 |
masm.subsd(xmm4, xmm3);
|
|
1633 |
masm.addsd(xmm1, xmm4);
|
|
1634 |
masm.pextrw(rax, xmm1, 3);
|
|
1635 |
masm.andl(rax, 32752);
|
|
1636 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block41);
|
|
1637 |
masm.movdl(rax, xmm3);
|
|
1638 |
masm.andl(rax, 1);
|
|
1639 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block41);
|
|
1640 |
|
|
1641 |
masm.bind(block43);
|
|
1642 |
masm.movq(xmm0, new AMD64Address(rsp, 8));
|
|
1643 |
masm.testl(rcx, Integer.MIN_VALUE);
|
|
1644 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block44);
|
|
1645 |
masm.jmp(block56);
|
|
1646 |
|
|
1647 |
masm.bind(block42);
|
|
1648 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1649 |
masm.movdl(rax, xmm1);
|
|
1650 |
masm.testl(rax, 1);
|
|
1651 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block43);
|
|
1652 |
|
|
1653 |
masm.bind(block41);
|
|
1654 |
masm.testl(rcx, Integer.MIN_VALUE);
|
|
1655 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block22);
|
|
1656 |
masm.xorpd(xmm0, xmm0);
|
|
1657 |
|
|
1658 |
masm.bind(block44);
|
|
1659 |
masm.movl(rax, 16368);
|
|
1660 |
masm.xorpd(xmm1, xmm1);
|
|
1661 |
masm.pinsrw(xmm1, rax, 3);
|
|
1662 |
masm.divsd(xmm1, xmm0);
|
|
1663 |
masm.movdqu(xmm0, xmm1);
|
|
1664 |
masm.movl(new AMD64Address(rsp, 0), 27);
|
|
1665 |
masm.jmp(block17);
|
|
1666 |
|
|
1667 |
masm.bind(block12);
|
|
1668 |
masm.movq(xmm2, new AMD64Address(rsp, 8));
|
|
1669 |
masm.movq(xmm6, new AMD64Address(rsp, 16));
|
|
1670 |
masm.pextrw(rax, xmm2, 3);
|
|
1671 |
masm.pextrw(rdx, xmm6, 3);
|
|
1672 |
masm.movl(rcx, 32752);
|
|
1673 |
masm.andl(rcx, rdx);
|
|
1674 |
masm.cmpl(rcx, 32752);
|
|
1675 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block45);
|
|
1676 |
masm.andl(rax, 32752);
|
|
1677 |
masm.subl(rax, 16368);
|
|
1678 |
masm.xorl(rdx, rax);
|
|
1679 |
masm.testl(rdx, 32768);
|
|
1680 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block46);
|
|
1681 |
|
|
1682 |
masm.bind(block47);
|
|
1683 |
masm.movl(rax, 32736);
|
|
1684 |
masm.pinsrw(xmm0, rax, 3);
|
|
1685 |
masm.shrl(tmp1, 16);
|
|
1686 |
masm.orl(rax, tmp1);
|
|
1687 |
masm.pinsrw(xmm1, rax, 3);
|
|
1688 |
masm.mulsd(xmm0, xmm1);
|
|
1689 |
|
|
1690 |
masm.bind(block14);
|
|
1691 |
masm.movl(new AMD64Address(rsp, 0), 24);
|
|
1692 |
masm.jmp(block17);
|
|
1693 |
|
|
1694 |
masm.bind(block46);
|
|
1695 |
masm.movl(rax, 16);
|
|
1696 |
masm.pinsrw(xmm0, rax, 3);
|
|
1697 |
masm.mulsd(xmm0, xmm0);
|
|
1698 |
masm.testl(tmp1, Integer.MIN_VALUE);
|
|
1699 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block48);
|
|
1700 |
masm.movq(tmp2, 0x8000000000000000L);
|
|
1701 |
masm.movdq(xmm2, tmp2);
|
|
1702 |
masm.xorpd(xmm0, xmm2);
|
|
1703 |
|
|
1704 |
masm.bind(block48);
|
|
1705 |
masm.movl(new AMD64Address(rsp, 0), 25);
|
|
1706 |
masm.jmp(block17);
|
|
1707 |
|
|
1708 |
masm.bind(block13);
|
|
1709 |
masm.pextrw(rcx, xmm5, 3);
|
|
1710 |
masm.pextrw(rdx, xmm4, 3);
|
|
1711 |
masm.movl(rax, -1);
|
|
1712 |
masm.andl(rcx, 32752);
|
|
1713 |
masm.subl(rcx, 16368);
|
|
1714 |
masm.andl(rdx, 32752);
|
|
1715 |
masm.addl(rdx, rcx);
|
|
1716 |
masm.movl(rcx, -31);
|
|
1717 |
masm.sarl(rdx, 4);
|
|
1718 |
masm.subl(rcx, rdx);
|
|
1719 |
masm.jcc(AMD64Assembler.ConditionFlag.LessEqual, block49);
|
|
1720 |
masm.cmpl(rcx, 20);
|
|
1721 |
masm.jcc(AMD64Assembler.ConditionFlag.Above, block50);
|
|
1722 |
masm.shll(rax);
|
|
1723 |
|
|
1724 |
masm.bind(block49);
|
|
1725 |
masm.movdl(xmm0, rax);
|
|
1726 |
masm.psllq(xmm0, 32);
|
|
1727 |
masm.pand(xmm0, xmm5);
|
|
1728 |
masm.subsd(xmm5, xmm0);
|
|
1729 |
masm.addsd(xmm5, xmm1);
|
|
1730 |
masm.mulsd(xmm0, xmm4);
|
|
1731 |
masm.mulsd(xmm5, xmm4);
|
|
1732 |
masm.addsd(xmm0, xmm5);
|
|
1733 |
|
|
1734 |
masm.bind(block50);
|
|
1735 |
masm.jmp(block48);
|
|
1736 |
|
|
1737 |
masm.bind(block2);
|
|
1738 |
masm.movw(rcx, new AMD64Address(rsp, 22));
|
|
1739 |
masm.movl(rdx, Integer.MIN_VALUE);
|
|
1740 |
masm.movdl(xmm1, rdx);
|
|
1741 |
masm.xorpd(xmm7, xmm7);
|
|
1742 |
masm.paddd(xmm0, xmm4);
|
|
1743 |
masm.movdl(rdx, xmm0);
|
|
1744 |
masm.psllq(xmm0, 29);
|
|
1745 |
masm.paddq(xmm1, xmm3);
|
|
1746 |
masm.pand(xmm5, xmm1);
|
|
1747 |
masm.andl(rcx, 32752);
|
|
1748 |
masm.cmpl(rcx, 16560);
|
|
1749 |
masm.jcc(AMD64Assembler.ConditionFlag.Less, block3);
|
|
1750 |
masm.pand(xmm0, xmm6);
|
|
1751 |
masm.subsd(xmm3, xmm5);
|
|
1752 |
masm.addl(rax, 16351);
|
|
1753 |
masm.shrl(rax, 4);
|
|
1754 |
masm.subl(rax, 1022);
|
|
1755 |
masm.cvtsi2sdl(xmm7, rax);
|
|
1756 |
masm.mulpd(xmm5, xmm0);
|
|
1757 |
masm.leaq(r11, recordExternalAddress(crb, lTbl));
|
|
1758 |
masm.movq(xmm4, recordExternalAddress(crb, coeffH)); // 0x00000000, 0xbfd61a00,
|
|
1759 |
// 0x00000000, 0xbf5dabe1
|
|
1760 |
masm.mulsd(xmm3, xmm0);
|
|
1761 |
masm.movq(xmm6, recordExternalAddress(crb, coeffH)); // 0x00000000, 0xbfd61a00,
|
|
1762 |
// 0x00000000, 0xbf5dabe1
|
|
1763 |
masm.subsd(xmm5, xmm2);
|
|
1764 |
masm.movq(xmm1, recordExternalAddress(crb, coeffH8)); // 0x00000000, 0xbf5dabe1
|
|
1765 |
masm.pshufd(xmm2, xmm3, 68);
|
|
1766 |
masm.unpcklpd(xmm5, xmm3);
|
|
1767 |
masm.addsd(xmm3, xmm5);
|
|
1768 |
masm.movq(xmm0, recordExternalAddress(crb, coeffH8)); // 0x00000000, 0xbf5dabe1
|
|
1769 |
masm.andl(rdx, 16760832);
|
|
1770 |
masm.shrl(rdx, 10);
|
|
1771 |
masm.addpd(xmm7, new AMD64Address(tmp4, rdx, AMD64Address.Scale.Times1, -3648));
|
|
1772 |
masm.mulsd(xmm4, xmm5);
|
|
1773 |
masm.mulsd(xmm0, xmm5);
|
|
1774 |
masm.mulsd(xmm6, xmm2);
|
|
1775 |
masm.mulsd(xmm1, xmm2);
|
|
1776 |
masm.movdqu(xmm2, xmm5);
|
|
1777 |
masm.mulsd(xmm4, xmm5);
|
|
1778 |
masm.addsd(xmm5, xmm0);
|
|
1779 |
masm.movdqu(xmm0, xmm7);
|
|
1780 |
masm.addsd(xmm2, xmm3);
|
|
1781 |
masm.addsd(xmm7, xmm5);
|
|
1782 |
masm.mulsd(xmm6, xmm2);
|
|
1783 |
masm.subsd(xmm0, xmm7);
|
|
1784 |
masm.movdqu(xmm2, xmm7);
|
|
1785 |
masm.addsd(xmm7, xmm4);
|
|
1786 |
masm.addsd(xmm0, xmm5);
|
|
1787 |
masm.subsd(xmm2, xmm7);
|
|
1788 |
masm.addsd(xmm4, xmm2);
|
|
1789 |
masm.pshufd(xmm2, xmm5, 238);
|
|
1790 |
masm.movdqu(xmm5, xmm7);
|
|
1791 |
masm.addsd(xmm7, xmm2);
|
|
1792 |
masm.addsd(xmm4, xmm0);
|
|
1793 |
masm.movdqu(xmm0, recordExternalAddress(crb, coeff)); // 0x6dc96112, 0xbf836578,
|
|
1794 |
// 0xee241472, 0xbf9b0301
|
|
1795 |
masm.subsd(xmm5, xmm7);
|
|
1796 |
masm.addsd(xmm6, xmm4);
|
|
1797 |
masm.movdqu(xmm4, xmm7);
|
|
1798 |
masm.addsd(xmm5, xmm2);
|
|
1799 |
masm.addsd(xmm7, xmm1);
|
|
1800 |
masm.movdqu(xmm2, recordExternalAddress(crb, coeff64)); // 0x486ececc, 0x3fc4635e,
|
|
1801 |
// 0x161bb241, 0xbf5dabe1
|
|
1802 |
masm.subsd(xmm4, xmm7);
|
|
1803 |
masm.addsd(xmm6, xmm5);
|
|
1804 |
masm.addsd(xmm4, xmm1);
|
|
1805 |
masm.pshufd(xmm5, xmm7, 238);
|
|
1806 |
masm.movapd(xmm1, xmm7);
|
|
1807 |
masm.addsd(xmm7, xmm5);
|
|
1808 |
masm.subsd(xmm1, xmm7);
|
|
1809 |
masm.addsd(xmm1, xmm5);
|
|
1810 |
masm.movdqu(xmm5, recordExternalAddress(crb, coeff80)); // 0x9f95985a, 0xbfb528db,
|
|
1811 |
// 0xf8b5787d, 0x3ef2531e
|
|
1812 |
masm.pshufd(xmm3, xmm3, 68);
|
|
1813 |
masm.addsd(xmm6, xmm4);
|
|
1814 |
masm.addsd(xmm6, xmm1);
|
|
1815 |
masm.movdqu(xmm1, recordExternalAddress(crb, coeff32)); // 0x9f95985a, 0xbfb528db,
|
|
1816 |
// 0xb3841d2a, 0xbfd619b6
|
|
1817 |
masm.mulpd(xmm0, xmm3);
|
|
1818 |
masm.mulpd(xmm2, xmm3);
|
|
1819 |
masm.pshufd(xmm4, xmm3, 68);
|
|
1820 |
masm.mulpd(xmm3, xmm3);
|
|
1821 |
masm.addpd(xmm0, xmm1);
|
|
1822 |
masm.addpd(xmm5, xmm2);
|
|
1823 |
masm.mulsd(xmm4, xmm3);
|
|
1824 |
masm.movq(xmm2, recordExternalAddress(crb, highmaskLogX)); // 0xf8000000, 0xffffffff,
|
|
1825 |
// 0x00000000, 0xfffff800
|
|
1826 |
masm.mulpd(xmm3, xmm3);
|
|
1827 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1828 |
masm.movw(rcx, new AMD64Address(rsp, 22));
|
|
1829 |
masm.mulpd(xmm0, xmm4);
|
|
1830 |
masm.pextrw(rax, xmm7, 3);
|
|
1831 |
masm.mulpd(xmm5, xmm4);
|
|
1832 |
masm.mulpd(xmm0, xmm3);
|
|
1833 |
masm.movq(xmm4, recordExternalAddress(crb, highmaskY8)); // 0x00000000, 0xffffffff
|
|
1834 |
masm.pand(xmm2, xmm7);
|
|
1835 |
masm.addsd(xmm5, xmm6);
|
|
1836 |
masm.subsd(xmm7, xmm2);
|
|
1837 |
masm.addpd(xmm5, xmm0);
|
|
1838 |
masm.andl(rax, 32752);
|
|
1839 |
masm.subl(rax, 16368);
|
|
1840 |
masm.andl(rcx, 32752);
|
|
1841 |
masm.cmpl(rcx, 32752);
|
|
1842 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block45);
|
|
1843 |
masm.addl(rcx, rax);
|
|
1844 |
masm.cmpl(rcx, 16576);
|
|
1845 |
masm.jcc(AMD64Assembler.ConditionFlag.AboveEqual, block51);
|
|
1846 |
masm.pshufd(xmm0, xmm5, 238);
|
|
1847 |
masm.pand(xmm4, xmm1);
|
|
1848 |
masm.movdqu(xmm3, xmm1);
|
|
1849 |
masm.addsd(xmm5, xmm0);
|
|
1850 |
masm.subsd(xmm1, xmm4);
|
|
1851 |
masm.xorpd(xmm6, xmm6);
|
|
1852 |
masm.movl(rdx, 17080);
|
|
1853 |
masm.pinsrw(xmm6, rdx, 3);
|
|
1854 |
masm.addsd(xmm7, xmm5);
|
|
1855 |
masm.mulsd(xmm4, xmm2);
|
|
1856 |
masm.mulsd(xmm1, xmm2);
|
|
1857 |
masm.movdqu(xmm5, xmm6);
|
|
1858 |
masm.mulsd(xmm3, xmm7);
|
|
1859 |
masm.addsd(xmm6, xmm4);
|
|
1860 |
masm.addsd(xmm1, xmm3);
|
|
1861 |
masm.movdqu(xmm7, recordExternalAddress(crb, eCoeff)); // 0xe78a6731, 0x3f55d87f,
|
|
1862 |
// 0xd704a0c0, 0x3fac6b08
|
|
1863 |
masm.movdl(rdx, xmm6);
|
|
1864 |
masm.subsd(xmm6, xmm5);
|
|
1865 |
masm.leaq(tmp4, recordExternalAddress(crb, tExp));
|
|
1866 |
masm.movdqu(xmm3, recordExternalAddress(crb, eCoeff16)); // 0x6fba4e77, 0x3f83b2ab,
|
|
1867 |
// 0xff82c58f, 0x3fcebfbd
|
|
1868 |
masm.movq(xmm2, recordExternalAddress(crb, eCoeff32)); // 0xfefa39ef, 0x3fe62e42,
|
|
1869 |
// 0x00000000, 0x00000000
|
|
1870 |
masm.subsd(xmm4, xmm6);
|
|
1871 |
masm.movl(rcx, rdx);
|
|
1872 |
masm.andl(rdx, 255);
|
|
1873 |
masm.addl(rdx, rdx);
|
|
1874 |
masm.movdqu(xmm5, new AMD64Address(tmp4, rdx, AMD64Address.Scale.Times8, 0));
|
|
1875 |
masm.addsd(xmm4, xmm1);
|
|
1876 |
masm.pextrw(rdx, xmm6, 3);
|
|
1877 |
masm.shrl(rcx, 8);
|
|
1878 |
masm.movl(rax, rcx);
|
|
1879 |
masm.shrl(rcx, 1);
|
|
1880 |
masm.subl(rax, rcx);
|
|
1881 |
masm.shll(rcx, 20);
|
|
1882 |
masm.movdl(xmm6, rcx);
|
|
1883 |
masm.pshufd(xmm0, xmm4, 68);
|
|
1884 |
masm.pshufd(xmm1, xmm4, 68);
|
|
1885 |
masm.mulpd(xmm0, xmm0);
|
|
1886 |
masm.mulpd(xmm7, xmm1);
|
|
1887 |
masm.pshufd(xmm6, xmm6, 17);
|
|
1888 |
masm.mulsd(xmm2, xmm4);
|
|
1889 |
masm.andl(rdx, 32767);
|
|
1890 |
masm.cmpl(rdx, 16529);
|
|
1891 |
masm.jcc(AMD64Assembler.ConditionFlag.Above, block12);
|
|
1892 |
masm.mulsd(xmm0, xmm0);
|
|
1893 |
masm.paddd(xmm5, xmm6);
|
|
1894 |
masm.addpd(xmm3, xmm7);
|
|
1895 |
masm.mulsd(xmm2, xmm5);
|
|
1896 |
masm.pshufd(xmm6, xmm5, 238);
|
|
1897 |
masm.mulpd(xmm0, xmm3);
|
|
1898 |
masm.addsd(xmm2, xmm6);
|
|
1899 |
masm.pshufd(xmm3, xmm0, 238);
|
|
1900 |
masm.addl(rax, 1023);
|
|
1901 |
masm.shll(rax, 20);
|
|
1902 |
masm.orl(rax, tmp1);
|
|
1903 |
masm.movdl(xmm4, rax);
|
|
1904 |
masm.mulsd(xmm0, xmm5);
|
|
1905 |
masm.mulsd(xmm3, xmm5);
|
|
1906 |
masm.addsd(xmm0, xmm2);
|
|
1907 |
masm.psllq(xmm4, 32);
|
|
1908 |
masm.addsd(xmm0, xmm3);
|
|
1909 |
masm.movdqu(xmm1, xmm0);
|
|
1910 |
masm.addsd(xmm0, xmm5);
|
|
1911 |
masm.mulsd(xmm0, xmm4);
|
|
1912 |
masm.pextrw(rax, xmm0, 3);
|
|
1913 |
masm.andl(rax, 32752);
|
|
1914 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block13);
|
|
1915 |
masm.cmpl(rax, 32752);
|
|
1916 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block14);
|
|
1917 |
|
|
1918 |
masm.bind(block52);
|
|
1919 |
masm.jmp(block56);
|
|
1920 |
|
|
1921 |
masm.bind(block45);
|
|
1922 |
masm.movq(xmm0, new AMD64Address(rsp, 8));
|
|
1923 |
masm.xorpd(xmm2, xmm2);
|
|
1924 |
masm.movl(rax, 49136);
|
|
1925 |
masm.pinsrw(xmm2, rax, 3);
|
|
1926 |
masm.addsd(xmm2, xmm0);
|
|
1927 |
masm.pextrw(rax, xmm2, 3);
|
|
1928 |
masm.cmpl(rax, 0);
|
|
1929 |
masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block53);
|
|
1930 |
masm.xorpd(xmm0, xmm0);
|
|
1931 |
masm.movl(rax, 32760);
|
|
1932 |
masm.pinsrw(xmm0, rax, 3);
|
|
1933 |
masm.jmp(block56);
|
|
1934 |
|
|
1935 |
masm.bind(block53);
|
|
1936 |
masm.movq(xmm1, new AMD64Address(rsp, 16));
|
|
1937 |
masm.movdl(rdx, xmm1);
|
|
1938 |
masm.movdqu(xmm3, xmm1);
|
|
1939 |
masm.psrlq(xmm3, 20);
|
|
1940 |
masm.movdl(rcx, xmm3);
|
|
1941 |
masm.orl(rcx, rdx);
|
|
1942 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block54);
|
|
1943 |
masm.addsd(xmm1, xmm1);
|
|
1944 |
masm.movdqu(xmm0, xmm1);
|
|
1945 |
masm.jmp(block56);
|
|
1946 |
|
|
1947 |
masm.bind(block51);
|
|
1948 |
masm.pextrw(rax, xmm1, 3);
|
|
1949 |
masm.pextrw(rcx, xmm2, 3);
|
|
1950 |
masm.xorl(rax, rcx);
|
|
1951 |
masm.testl(rax, 32768);
|
|
1952 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block47);
|
|
1953 |
masm.jmp(block46);
|
|
1954 |
|
|
1955 |
masm.bind(block54);
|
|
1956 |
masm.pextrw(rax, xmm0, 3);
|
|
1957 |
masm.andl(rax, 32752);
|
|
1958 |
masm.pextrw(rdx, xmm1, 3);
|
|
1959 |
masm.xorpd(xmm0, xmm0);
|
|
1960 |
masm.subl(rax, 16368);
|
|
1961 |
masm.xorl(rax, rdx);
|
|
1962 |
masm.testl(rax, 32768);
|
|
1963 |
masm.jcc(AMD64Assembler.ConditionFlag.Equal, block55);
|
|
1964 |
masm.jmp(block56);
|
|
1965 |
|
|
1966 |
masm.bind(block55);
|
|
1967 |
masm.movl(rdx, 32752);
|
|
1968 |
masm.pinsrw(xmm0, rdx, 3);
|
|
1969 |
masm.jmp(block56);
|
|
1970 |
|
|
1971 |
masm.bind(block17);
|
|
1972 |
masm.movq(new AMD64Address(rsp, 24), xmm0);
|
|
1973 |
|
|
1974 |
masm.movq(xmm0, new AMD64Address(rsp, 24));
|
|
1975 |
|
|
1976 |
masm.bind(block56);
|
|
1977 |
masm.addq(rsp, 40);
|
|
1978 |
}
|
|
1979 |
}
|