< prev index next >

src/hotspot/share/interpreter/templateInterpreterGenerator.cpp

Print this page

        

@@ -1,7 +1,8 @@
 /*
  * Copyright (c) 1997, 2018, 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.

@@ -225,10 +226,33 @@
   method_entry(java_lang_Float_intBitsToFloat);
   method_entry(java_lang_Float_floatToRawIntBits);
   method_entry(java_lang_Double_longBitsToDouble);
   method_entry(java_lang_Double_doubleToRawLongBits);
 
+#ifdef AARCH32
+  if (UseAESIntrinsics) {
+    method_entry(com_sun_crypto_provider_AESCrypt_encryptBlock)
+    method_entry(com_sun_crypto_provider_AESCrypt_decryptBlock)
+    if (StubRoutines::cipherBlockChaining_encryptAESCrypt_special()) {
+      method_entry(com_sun_crypto_provider_CipherBlockChaining_encrypt)
+    }
+    if (StubRoutines::cipherBlockChaining_decryptAESCrypt_special()) {
+      method_entry(com_sun_crypto_provider_CipherBlockChaining_decrypt)
+    }
+  }
+
+  if (UseSHA1Intrinsics) {
+    method_entry(sun_security_provider_SHA_implCompress)
+  }
+  if (UseSHA256Intrinsics) {
+    method_entry(sun_security_provider_SHA2_implCompress)
+  }
+  if (UseSHA512Intrinsics) {
+    method_entry(sun_security_provider_SHA5_implCompress)
+  }
+#endif
+
 #undef method_entry
 
   // Bytecodes
   set_entry_points_for_all_bytes();
 

@@ -458,10 +482,25 @@
   case Interpreter::java_lang_Double_longBitsToDouble:
   case Interpreter::java_lang_Double_doubleToRawLongBits:
     native = true;
     break;
 #endif // !IA32
+#ifdef AARCH32
+  case Interpreter::com_sun_crypto_provider_AESCrypt_encryptBlock:
+  case Interpreter::com_sun_crypto_provider_AESCrypt_decryptBlock:
+    entry_point = generate_aescrypt_block_entry(kind);
+    break;
+  case Interpreter::com_sun_crypto_provider_CipherBlockChaining_encrypt:
+  case Interpreter::com_sun_crypto_provider_CipherBlockChaining_decrypt:
+    // don't use AES CBC intrinsic in interpreter
+    break;
+  case Interpreter::sun_security_provider_SHA_implCompress:
+  case Interpreter::sun_security_provider_SHA2_implCompress:
+  case Interpreter::sun_security_provider_SHA5_implCompress:
+    entry_point = generate_SHA_implCompress_entry(kind);
+    break;
+#endif
   default:
     fatal("unexpected method kind: %d", kind);
     break;
   }
 
< prev index next >