< prev index next >

src/hotspot/share/interpreter/abstractInterpreter.cpp

Print this page

        

*** 1,7 **** --- 1,8 ---- /* * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015-2018, Azul Systems, Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 186,195 **** --- 187,227 ---- case vmIntrinsics::_Reference_get : return java_lang_ref_reference_get; default : break; } + #ifdef AARCH32 + if (UseAESIntrinsics) { + // Use optimized stub code for AES native methods. + switch (m->intrinsic_id()) { + case vmIntrinsics::_aescrypt_encryptBlock : return com_sun_crypto_provider_AESCrypt_encryptBlock; + case vmIntrinsics::_aescrypt_decryptBlock : return com_sun_crypto_provider_AESCrypt_decryptBlock; + } + // Use optimized stub code for AES CBC native methods. + if (StubRoutines::cipherBlockChaining_encryptAESCrypt_special() && + m->intrinsic_id() == vmIntrinsics::_cipherBlockChaining_encryptAESCrypt) + return com_sun_crypto_provider_CipherBlockChaining_encrypt; + + if (StubRoutines::cipherBlockChaining_decryptAESCrypt_special() && + m->intrinsic_id() == vmIntrinsics::_cipherBlockChaining_decryptAESCrypt) + return com_sun_crypto_provider_CipherBlockChaining_decrypt; + } + + // Use optimized stub code for SHA256/512 native methods. + switch (m->intrinsic_id()) { + case vmIntrinsics::_sha_implCompress : + if (UseSHA1Intrinsics) return sun_security_provider_SHA_implCompress; + break; + case vmIntrinsics::_sha2_implCompress : + if (UseSHA256Intrinsics) return sun_security_provider_SHA2_implCompress; + break; + case vmIntrinsics::_sha5_implCompress : + if (UseSHA512Intrinsics) return sun_security_provider_SHA5_implCompress; + break; + } + #endif + // Accessor method? if (m->is_getter()) { // TODO: We should have used ::is_accessor above, but fast accessors in Zero expect only getters. // See CppInterpreter::accessor_entry in cppInterpreter_zero.cpp. This should be fixed in Zero, // then the call above updated to ::is_accessor
*** 280,289 **** --- 312,330 ---- case java_util_zip_CRC32_update : tty->print("java_util_zip_CRC32_update"); break; case java_util_zip_CRC32_updateBytes : tty->print("java_util_zip_CRC32_updateBytes"); break; case java_util_zip_CRC32_updateByteBuffer : tty->print("java_util_zip_CRC32_updateByteBuffer"); break; case java_util_zip_CRC32C_updateBytes : tty->print("java_util_zip_CRC32C_updateBytes"); break; case java_util_zip_CRC32C_updateDirectByteBuffer: tty->print("java_util_zip_CRC32C_updateDirectByteByffer"); break; + #ifdef AARCH32 + case com_sun_crypto_provider_AESCrypt_encryptBlock : tty->print("com_sun_crypto_provider_AESCrypt_encryptBlock"); break; + case com_sun_crypto_provider_AESCrypt_decryptBlock : tty->print("com_sun_crypto_provider_AESCrypt_decryptBlock"); break; + case com_sun_crypto_provider_CipherBlockChaining_encrypt : tty->print("com_sun_crypto_provider_CipherBlockChaining_encrypt"); break; + case com_sun_crypto_provider_CipherBlockChaining_decrypt : tty->print("com_sun_crypto_provider_CipherBlockChaining_decrypt"); break; + case sun_security_provider_SHA_implCompress : tty->print("sun_security_provider_SHA_implCompress"); break; + case sun_security_provider_SHA2_implCompress : tty->print("sun_security_provider_SHA2_implCompress"); break; + case sun_security_provider_SHA5_implCompress : tty->print("sun_security_provider_SHA5_implCompress"); break; + #endif default: if (kind >= method_handle_invoke_FIRST && kind <= method_handle_invoke_LAST) { const char* kind_name = vmIntrinsics::name_at(method_handle_intrinsic(kind)); if (kind_name[0] == '_') kind_name = &kind_name[1]; // '_invokeExact' => 'invokeExact'
< prev index next >