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 201 // These are versions of the java.lang.Math methods which perform 202 // the same operations as the intrinsic version. They are used for 203 // constant folding in the compiler to ensure equivalence. If the 204 // intrinsic version returns the same result as the strict version 205 // then they can be set to the appropriate function from 206 // SharedRuntime. 207 static double (*_intrinsic_log)(double); 208 static double (*_intrinsic_log10)(double); 209 static double (*_intrinsic_exp)(double); 210 static double (*_intrinsic_pow)(double, double); 211 static double (*_intrinsic_sin)(double); 212 static double (*_intrinsic_cos)(double); 213 static double (*_intrinsic_tan)(double); 214 215 // Safefetch stubs. 216 static address _safefetch32_entry; 217 static address _safefetch32_fault_pc; 218 static address _safefetch32_continuation_pc; 219 static address _safefetchN_entry; 339 static address arrayof_jbyte_fill() { return _arrayof_jbyte_fill; } 340 static address arrayof_jshort_fill() { return _arrayof_jshort_fill; } 341 static address arrayof_jint_fill() { return _arrayof_jint_fill; } 342 343 static address aescrypt_encryptBlock() { return _aescrypt_encryptBlock; } 344 static address aescrypt_decryptBlock() { return _aescrypt_decryptBlock; } 345 static address cipherBlockChaining_encryptAESCrypt() { return _cipherBlockChaining_encryptAESCrypt; } 346 static address cipherBlockChaining_decryptAESCrypt() { return _cipherBlockChaining_decryptAESCrypt; } 347 348 static address sha1_implCompress() { return _sha1_implCompress; } 349 static address sha1_implCompressMB() { return _sha1_implCompressMB; } 350 static address sha256_implCompress() { return _sha256_implCompress; } 351 static address sha256_implCompressMB() { return _sha256_implCompressMB; } 352 static address sha512_implCompress() { return _sha512_implCompress; } 353 static address sha512_implCompressMB() { return _sha512_implCompressMB; } 354 355 static address updateBytesCRC32() { return _updateBytesCRC32; } 356 static address crc_table_addr() { return _crc_table_adr; } 357 358 static address multiplyToLen() {return _multiplyToLen; } 359 360 static address select_fill_function(BasicType t, bool aligned, const char* &name); 361 362 static address zero_aligned_words() { return _zero_aligned_words; } 363 364 static double intrinsic_log(double d) { 365 assert(_intrinsic_log != NULL, "must be defined"); 366 return _intrinsic_log(d); 367 } 368 static double intrinsic_log10(double d) { 369 assert(_intrinsic_log != NULL, "must be defined"); 370 return _intrinsic_log10(d); 371 } 372 static double intrinsic_exp(double d) { 373 assert(_intrinsic_exp != NULL, "must be defined"); 374 return _intrinsic_exp(d); 375 } 376 static double intrinsic_pow(double d, double d2) { 377 assert(_intrinsic_pow != NULL, "must be defined"); 378 return _intrinsic_pow(d, d2); | 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 208 // SharedRuntime. 209 static double (*_intrinsic_log)(double); 210 static double (*_intrinsic_log10)(double); 211 static double (*_intrinsic_exp)(double); 212 static double (*_intrinsic_pow)(double, double); 213 static double (*_intrinsic_sin)(double); 214 static double (*_intrinsic_cos)(double); 215 static double (*_intrinsic_tan)(double); 216 217 // Safefetch stubs. 218 static address _safefetch32_entry; 219 static address _safefetch32_fault_pc; 220 static address _safefetch32_continuation_pc; 221 static address _safefetchN_entry; 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) { 369 assert(_intrinsic_log != NULL, "must be defined"); 370 return _intrinsic_log(d); 371 } 372 static double intrinsic_log10(double d) { 373 assert(_intrinsic_log != NULL, "must be defined"); 374 return _intrinsic_log10(d); 375 } 376 static double intrinsic_exp(double d) { 377 assert(_intrinsic_exp != NULL, "must be defined"); 378 return _intrinsic_exp(d); 379 } 380 static double intrinsic_pow(double d, double d2) { 381 assert(_intrinsic_pow != NULL, "must be defined"); 382 return _intrinsic_pow(d, d2); |