168
169 // these are recommended but optional:
170 static address _checkcast_arraycopy, _checkcast_arraycopy_uninit;
171 static address _unsafe_arraycopy;
172 static address _generic_arraycopy;
173
174 static address _jbyte_fill;
175 static address _jshort_fill;
176 static address _jint_fill;
177 static address _arrayof_jbyte_fill;
178 static address _arrayof_jshort_fill;
179 static address _arrayof_jint_fill;
180
181 // zero heap space aligned to jlong (8 bytes)
182 static address _zero_aligned_words;
183
184 static address _aescrypt_encryptBlock;
185 static address _aescrypt_decryptBlock;
186 static address _cipherBlockChaining_encryptAESCrypt;
187 static address _cipherBlockChaining_decryptAESCrypt;
188
189 static address _sha1_implCompress;
190 static address _sha1_implCompressMB;
191 static address _sha256_implCompress;
192 static address _sha256_implCompressMB;
193 static address _sha512_implCompress;
194 static address _sha512_implCompressMB;
195
196 static address _updateBytesCRC32;
197 static address _crc_table_adr;
198
199 static address _multiplyToLen;
200 static address _squareToLen;
201 static address _mulAdd;
202
203 // These are versions of the java.lang.Math methods which perform
204 // the same operations as the intrinsic version. They are used for
205 // constant folding in the compiler to ensure equivalence. If the
206 // intrinsic version returns the same result as the strict version
207 // then they can be set to the appropriate function from
329 return dest_uninitialized ? _arrayof_oop_disjoint_arraycopy_uninit : _arrayof_oop_disjoint_arraycopy;
330 }
331
332 static address checkcast_arraycopy(bool dest_uninitialized = false) {
333 return dest_uninitialized ? _checkcast_arraycopy_uninit : _checkcast_arraycopy;
334 }
335 static address unsafe_arraycopy() { return _unsafe_arraycopy; }
336 static address generic_arraycopy() { return _generic_arraycopy; }
337
338 static address jbyte_fill() { return _jbyte_fill; }
339 static address jshort_fill() { return _jshort_fill; }
340 static address jint_fill() { return _jint_fill; }
341 static address arrayof_jbyte_fill() { return _arrayof_jbyte_fill; }
342 static address arrayof_jshort_fill() { return _arrayof_jshort_fill; }
343 static address arrayof_jint_fill() { return _arrayof_jint_fill; }
344
345 static address aescrypt_encryptBlock() { return _aescrypt_encryptBlock; }
346 static address aescrypt_decryptBlock() { return _aescrypt_decryptBlock; }
347 static address cipherBlockChaining_encryptAESCrypt() { return _cipherBlockChaining_encryptAESCrypt; }
348 static address cipherBlockChaining_decryptAESCrypt() { return _cipherBlockChaining_decryptAESCrypt; }
349
350 static address sha1_implCompress() { return _sha1_implCompress; }
351 static address sha1_implCompressMB() { return _sha1_implCompressMB; }
352 static address sha256_implCompress() { return _sha256_implCompress; }
353 static address sha256_implCompressMB() { return _sha256_implCompressMB; }
354 static address sha512_implCompress() { return _sha512_implCompress; }
355 static address sha512_implCompressMB() { return _sha512_implCompressMB; }
356
357 static address updateBytesCRC32() { return _updateBytesCRC32; }
358 static address crc_table_addr() { return _crc_table_adr; }
359
360 static address multiplyToLen() {return _multiplyToLen; }
361 static address squareToLen() {return _squareToLen; }
362 static address mulAdd() {return _mulAdd; }
363
364 static address select_fill_function(BasicType t, bool aligned, const char* &name);
365
366 static address zero_aligned_words() { return _zero_aligned_words; }
367
368 static double intrinsic_log(double d) {
|
168
169 // these are recommended but optional:
170 static address _checkcast_arraycopy, _checkcast_arraycopy_uninit;
171 static address _unsafe_arraycopy;
172 static address _generic_arraycopy;
173
174 static address _jbyte_fill;
175 static address _jshort_fill;
176 static address _jint_fill;
177 static address _arrayof_jbyte_fill;
178 static address _arrayof_jshort_fill;
179 static address _arrayof_jint_fill;
180
181 // zero heap space aligned to jlong (8 bytes)
182 static address _zero_aligned_words;
183
184 static address _aescrypt_encryptBlock;
185 static address _aescrypt_decryptBlock;
186 static address _cipherBlockChaining_encryptAESCrypt;
187 static address _cipherBlockChaining_decryptAESCrypt;
188 static address _ghash_processBlocks;
189
190 static address _sha1_implCompress;
191 static address _sha1_implCompressMB;
192 static address _sha256_implCompress;
193 static address _sha256_implCompressMB;
194 static address _sha512_implCompress;
195 static address _sha512_implCompressMB;
196
197 static address _updateBytesCRC32;
198 static address _crc_table_adr;
199
200 static address _multiplyToLen;
201 static address _squareToLen;
202 static address _mulAdd;
203
204 // These are versions of the java.lang.Math methods which perform
205 // the same operations as the intrinsic version. They are used for
206 // constant folding in the compiler to ensure equivalence. If the
207 // intrinsic version returns the same result as the strict version
208 // then they can be set to the appropriate function from
330 return dest_uninitialized ? _arrayof_oop_disjoint_arraycopy_uninit : _arrayof_oop_disjoint_arraycopy;
331 }
332
333 static address checkcast_arraycopy(bool dest_uninitialized = false) {
334 return dest_uninitialized ? _checkcast_arraycopy_uninit : _checkcast_arraycopy;
335 }
336 static address unsafe_arraycopy() { return _unsafe_arraycopy; }
337 static address generic_arraycopy() { return _generic_arraycopy; }
338
339 static address jbyte_fill() { return _jbyte_fill; }
340 static address jshort_fill() { return _jshort_fill; }
341 static address jint_fill() { return _jint_fill; }
342 static address arrayof_jbyte_fill() { return _arrayof_jbyte_fill; }
343 static address arrayof_jshort_fill() { return _arrayof_jshort_fill; }
344 static address arrayof_jint_fill() { return _arrayof_jint_fill; }
345
346 static address aescrypt_encryptBlock() { return _aescrypt_encryptBlock; }
347 static address aescrypt_decryptBlock() { return _aescrypt_decryptBlock; }
348 static address cipherBlockChaining_encryptAESCrypt() { return _cipherBlockChaining_encryptAESCrypt; }
349 static address cipherBlockChaining_decryptAESCrypt() { return _cipherBlockChaining_decryptAESCrypt; }
350 static address ghash_processBlocks() { return _ghash_processBlocks; }
351
352 static address sha1_implCompress() { return _sha1_implCompress; }
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 multiplyToLen() {return _multiplyToLen; }
363 static address squareToLen() {return _squareToLen; }
364 static address mulAdd() {return _mulAdd; }
365
366 static address select_fill_function(BasicType t, bool aligned, const char* &name);
367
368 static address zero_aligned_words() { return _zero_aligned_words; }
369
370 static double intrinsic_log(double d) {
|