192 193 // zero heap space aligned to jlong (8 bytes) 194 static address _zero_aligned_words; 195 196 static address _aescrypt_encryptBlock; 197 static address _aescrypt_decryptBlock; 198 static address _cipherBlockChaining_encryptAESCrypt; 199 static address _cipherBlockChaining_decryptAESCrypt; 200 201 static address _sha1_implCompress; 202 static address _sha1_implCompressMB; 203 static address _sha256_implCompress; 204 static address _sha256_implCompressMB; 205 static address _sha512_implCompress; 206 static address _sha512_implCompressMB; 207 208 static address _updateBytesCRC32; 209 static address _crc_table_adr; 210 211 static address _multiplyToLen; 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_log)(double); 220 static double (*_intrinsic_log10)(double); 221 static double (*_intrinsic_exp)(double); 222 static double (*_intrinsic_pow)(double, double); 223 static double (*_intrinsic_sin)(double); 224 static double (*_intrinsic_cos)(double); 225 static double (*_intrinsic_tan)(double); 226 227 // Safefetch stubs. 228 static address _safefetch32_entry; 229 static address _safefetch32_fault_pc; 230 static address _safefetch32_continuation_pc; 231 static address _safefetchN_entry; 350 static address arrayof_jbyte_fill() { return _arrayof_jbyte_fill; } 351 static address arrayof_jshort_fill() { return _arrayof_jshort_fill; } 352 static address arrayof_jint_fill() { return _arrayof_jint_fill; } 353 354 static address aescrypt_encryptBlock() { return _aescrypt_encryptBlock; } 355 static address aescrypt_decryptBlock() { return _aescrypt_decryptBlock; } 356 static address cipherBlockChaining_encryptAESCrypt() { return _cipherBlockChaining_encryptAESCrypt; } 357 static address cipherBlockChaining_decryptAESCrypt() { return _cipherBlockChaining_decryptAESCrypt; } 358 359 static address sha1_implCompress() { return _sha1_implCompress; } 360 static address sha1_implCompressMB() { return _sha1_implCompressMB; } 361 static address sha256_implCompress() { return _sha256_implCompress; } 362 static address sha256_implCompressMB() { return _sha256_implCompressMB; } 363 static address sha512_implCompress() { return _sha512_implCompress; } 364 static address sha512_implCompressMB() { return _sha512_implCompressMB; } 365 366 static address updateBytesCRC32() { return _updateBytesCRC32; } 367 static address crc_table_addr() { return _crc_table_adr; } 368 369 static address multiplyToLen() {return _multiplyToLen; } 370 371 static address select_fill_function(BasicType t, bool aligned, const char* &name); 372 373 static address zero_aligned_words() { return _zero_aligned_words; } 374 375 static double intrinsic_log(double d) { 376 assert(_intrinsic_log != NULL, "must be defined"); 377 return _intrinsic_log(d); 378 } 379 static double intrinsic_log10(double d) { 380 assert(_intrinsic_log != NULL, "must be defined"); 381 return _intrinsic_log10(d); 382 } 383 static double intrinsic_exp(double d) { 384 assert(_intrinsic_exp != NULL, "must be defined"); 385 return _intrinsic_exp(d); 386 } 387 static double intrinsic_pow(double d, double d2) { 388 assert(_intrinsic_pow != NULL, "must be defined"); 389 return _intrinsic_pow(d, d2); | 192 193 // zero heap space aligned to jlong (8 bytes) 194 static address _zero_aligned_words; 195 196 static address _aescrypt_encryptBlock; 197 static address _aescrypt_decryptBlock; 198 static address _cipherBlockChaining_encryptAESCrypt; 199 static address _cipherBlockChaining_decryptAESCrypt; 200 201 static address _sha1_implCompress; 202 static address _sha1_implCompressMB; 203 static address _sha256_implCompress; 204 static address _sha256_implCompressMB; 205 static address _sha512_implCompress; 206 static address _sha512_implCompressMB; 207 208 static address _updateBytesCRC32; 209 static address _crc_table_adr; 210 211 static address _multiplyToLen; 212 static address _montgomeryMultiply; 213 static address _montgomerySquare; 214 215 // These are versions of the java.lang.Math methods which perform 216 // the same operations as the intrinsic version. They are used for 217 // constant folding in the compiler to ensure equivalence. If the 218 // intrinsic version returns the same result as the strict version 219 // then they can be set to the appropriate function from 220 // SharedRuntime. 221 static double (*_intrinsic_log)(double); 222 static double (*_intrinsic_log10)(double); 223 static double (*_intrinsic_exp)(double); 224 static double (*_intrinsic_pow)(double, double); 225 static double (*_intrinsic_sin)(double); 226 static double (*_intrinsic_cos)(double); 227 static double (*_intrinsic_tan)(double); 228 229 // Safefetch stubs. 230 static address _safefetch32_entry; 231 static address _safefetch32_fault_pc; 232 static address _safefetch32_continuation_pc; 233 static address _safefetchN_entry; 352 static address arrayof_jbyte_fill() { return _arrayof_jbyte_fill; } 353 static address arrayof_jshort_fill() { return _arrayof_jshort_fill; } 354 static address arrayof_jint_fill() { return _arrayof_jint_fill; } 355 356 static address aescrypt_encryptBlock() { return _aescrypt_encryptBlock; } 357 static address aescrypt_decryptBlock() { return _aescrypt_decryptBlock; } 358 static address cipherBlockChaining_encryptAESCrypt() { return _cipherBlockChaining_encryptAESCrypt; } 359 static address cipherBlockChaining_decryptAESCrypt() { return _cipherBlockChaining_decryptAESCrypt; } 360 361 static address sha1_implCompress() { return _sha1_implCompress; } 362 static address sha1_implCompressMB() { return _sha1_implCompressMB; } 363 static address sha256_implCompress() { return _sha256_implCompress; } 364 static address sha256_implCompressMB() { return _sha256_implCompressMB; } 365 static address sha512_implCompress() { return _sha512_implCompress; } 366 static address sha512_implCompressMB() { return _sha512_implCompressMB; } 367 368 static address updateBytesCRC32() { return _updateBytesCRC32; } 369 static address crc_table_addr() { return _crc_table_adr; } 370 371 static address multiplyToLen() {return _multiplyToLen; } 372 static address montgomeryMultiply() { return _montgomeryMultiply; } 373 static address montgomerySquare() { return _montgomerySquare; } 374 375 static address select_fill_function(BasicType t, bool aligned, const char* &name); 376 377 static address zero_aligned_words() { return _zero_aligned_words; } 378 379 static double intrinsic_log(double d) { 380 assert(_intrinsic_log != NULL, "must be defined"); 381 return _intrinsic_log(d); 382 } 383 static double intrinsic_log10(double d) { 384 assert(_intrinsic_log != NULL, "must be defined"); 385 return _intrinsic_log10(d); 386 } 387 static double intrinsic_exp(double d) { 388 assert(_intrinsic_exp != NULL, "must be defined"); 389 return _intrinsic_exp(d); 390 } 391 static double intrinsic_pow(double d, double d2) { 392 assert(_intrinsic_pow != NULL, "must be defined"); 393 return _intrinsic_pow(d, d2); |