1 /*
2 * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
179 static address _sha256_implCompress;
180 static address _sha256_implCompressMB;
181 static address _sha512_implCompress;
182 static address _sha512_implCompressMB;
183
184 static address _updateBytesCRC32;
185 static address _crc_table_adr;
186
187 static address _crc32c_table_addr;
188 static address _updateBytesCRC32C;
189 static address _updateBytesAdler32;
190
191 static address _multiplyToLen;
192 static address _squareToLen;
193 static address _mulAdd;
194 static address _montgomeryMultiply;
195 static address _montgomerySquare;
196
197 static address _vectorizedMismatch;
198
199 static address _dexp;
200 static address _dlog;
201 static address _dlog10;
202 static address _dpow;
203 static address _dsin;
204 static address _dcos;
205 static address _dlibm_sin_cos_huge;
206 static address _dlibm_reduce_pi04l;
207 static address _dlibm_tan_cot_huge;
208 static address _dtan;
209
210 // These are versions of the java.lang.Math methods which perform
211 // the same operations as the intrinsic version. They are used for
212 // constant folding in the compiler to ensure equivalence. If the
213 // intrinsic version returns the same result as the strict version
214 // then they can be set to the appropriate function from
215 // SharedRuntime.
216 static double (*_intrinsic_log10)(double);
217 static double (*_intrinsic_pow)(double, double);
218 static double (*_intrinsic_sin)(double);
353 static address sha1_implCompressMB() { return _sha1_implCompressMB; }
354 static address sha256_implCompress() { return _sha256_implCompress; }
355 static address sha256_implCompressMB() { return _sha256_implCompressMB; }
356 static address sha512_implCompress() { return _sha512_implCompress; }
357 static address sha512_implCompressMB() { return _sha512_implCompressMB; }
358
359 static address updateBytesCRC32() { return _updateBytesCRC32; }
360 static address crc_table_addr() { return _crc_table_adr; }
361
362 static address crc32c_table_addr() { return _crc32c_table_addr; }
363 static address updateBytesCRC32C() { return _updateBytesCRC32C; }
364 static address updateBytesAdler32() { return _updateBytesAdler32; }
365
366 static address multiplyToLen() { return _multiplyToLen; }
367 static address squareToLen() { return _squareToLen; }
368 static address mulAdd() { return _mulAdd; }
369 static address montgomeryMultiply() { return _montgomeryMultiply; }
370 static address montgomerySquare() { return _montgomerySquare; }
371
372 static address vectorizedMismatch() { return _vectorizedMismatch; }
373
374 static address dexp() { return _dexp; }
375 static address dlog() { return _dlog; }
376 static address dlog10() { return _dlog10; }
377 static address dpow() { return _dpow; }
378 static address dsin() { return _dsin; }
379 static address dcos() { return _dcos; }
380 static address dlibm_reduce_pi04l() { return _dlibm_reduce_pi04l; }
381 static address dlibm_sin_cos_huge() { return _dlibm_sin_cos_huge; }
382 static address dlibm_tan_cot_huge() { return _dlibm_tan_cot_huge; }
383 static address dtan() { return _dtan; }
384
385 static address select_fill_function(BasicType t, bool aligned, const char* &name);
386
387 static address zero_aligned_words() { return _zero_aligned_words; }
388
389 static double intrinsic_log10(double d) {
390 assert(_intrinsic_log10 != NULL, "must be defined");
391 return _intrinsic_log10(d);
392 }
|
1 /*
2 * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
179 static address _sha256_implCompress;
180 static address _sha256_implCompressMB;
181 static address _sha512_implCompress;
182 static address _sha512_implCompressMB;
183
184 static address _updateBytesCRC32;
185 static address _crc_table_adr;
186
187 static address _crc32c_table_addr;
188 static address _updateBytesCRC32C;
189 static address _updateBytesAdler32;
190
191 static address _multiplyToLen;
192 static address _squareToLen;
193 static address _mulAdd;
194 static address _montgomeryMultiply;
195 static address _montgomerySquare;
196
197 static address _vectorizedMismatch;
198
199 static address _setBit;
200 static address _clrBit;
201
202 static address _dexp;
203 static address _dlog;
204 static address _dlog10;
205 static address _dpow;
206 static address _dsin;
207 static address _dcos;
208 static address _dlibm_sin_cos_huge;
209 static address _dlibm_reduce_pi04l;
210 static address _dlibm_tan_cot_huge;
211 static address _dtan;
212
213 // These are versions of the java.lang.Math methods which perform
214 // the same operations as the intrinsic version. They are used for
215 // constant folding in the compiler to ensure equivalence. If the
216 // intrinsic version returns the same result as the strict version
217 // then they can be set to the appropriate function from
218 // SharedRuntime.
219 static double (*_intrinsic_log10)(double);
220 static double (*_intrinsic_pow)(double, double);
221 static double (*_intrinsic_sin)(double);
356 static address sha1_implCompressMB() { return _sha1_implCompressMB; }
357 static address sha256_implCompress() { return _sha256_implCompress; }
358 static address sha256_implCompressMB() { return _sha256_implCompressMB; }
359 static address sha512_implCompress() { return _sha512_implCompress; }
360 static address sha512_implCompressMB() { return _sha512_implCompressMB; }
361
362 static address updateBytesCRC32() { return _updateBytesCRC32; }
363 static address crc_table_addr() { return _crc_table_adr; }
364
365 static address crc32c_table_addr() { return _crc32c_table_addr; }
366 static address updateBytesCRC32C() { return _updateBytesCRC32C; }
367 static address updateBytesAdler32() { return _updateBytesAdler32; }
368
369 static address multiplyToLen() { return _multiplyToLen; }
370 static address squareToLen() { return _squareToLen; }
371 static address mulAdd() { return _mulAdd; }
372 static address montgomeryMultiply() { return _montgomeryMultiply; }
373 static address montgomerySquare() { return _montgomerySquare; }
374
375 static address vectorizedMismatch() { return _vectorizedMismatch; }
376
377 static address setBit() { return _setBit; }
378 static address clrBit() { return _clrBit; }
379
380 static address dexp() { return _dexp; }
381 static address dlog() { return _dlog; }
382 static address dlog10() { return _dlog10; }
383 static address dpow() { return _dpow; }
384 static address dsin() { return _dsin; }
385 static address dcos() { return _dcos; }
386 static address dlibm_reduce_pi04l() { return _dlibm_reduce_pi04l; }
387 static address dlibm_sin_cos_huge() { return _dlibm_sin_cos_huge; }
388 static address dlibm_tan_cot_huge() { return _dlibm_tan_cot_huge; }
389 static address dtan() { return _dtan; }
390
391 static address select_fill_function(BasicType t, bool aligned, const char* &name);
392
393 static address zero_aligned_words() { return _zero_aligned_words; }
394
395 static double intrinsic_log10(double d) {
396 assert(_intrinsic_log10 != NULL, "must be defined");
397 return _intrinsic_log10(d);
398 }
|