src/hotspot/share/opto/runtime.cpp
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 51078 fc6cfe40e32a
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
     1 /*
     1 /*
     2  * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1998, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   898   fields[TypeFunc::Parms+0] = TypeInt::INT;
   898   fields[TypeFunc::Parms+0] = TypeInt::INT;
   899   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms+1, fields);
   899   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms+1, fields);
   900   return TypeFunc::make(domain, range);
   900   return TypeFunc::make(domain, range);
   901 }
   901 }
   902 
   902 
       
   903 // for electronicCodeBook calls of aescrypt encrypt/decrypt, three pointers and a length, returning int
       
   904 const TypeFunc* OptoRuntime::electronicCodeBook_aescrypt_Type() {
       
   905   // create input type (domain)
       
   906   int num_args = 4;
       
   907   if (Matcher::pass_original_key_for_aes()) {
       
   908      num_args = 5;
       
   909   }
       
   910   int argcnt = num_args;
       
   911   const Type** fields = TypeTuple::fields(argcnt);
       
   912   int argp = TypeFunc::Parms;
       
   913   fields[argp++] = TypePtr::NOTNULL;    // src
       
   914   fields[argp++] = TypePtr::NOTNULL;    // dest
       
   915   fields[argp++] = TypePtr::NOTNULL;    // k array
       
   916   fields[argp++] = TypeInt::INT;        // src len
       
   917   if (Matcher::pass_original_key_for_aes()) {
       
   918      fields[argp++] = TypePtr::NOTNULL;    // original k array
       
   919   }
       
   920   assert(argp == TypeFunc::Parms + argcnt, "correct decoding");
       
   921   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms + argcnt, fields);
       
   922 
       
   923   // returning cipher len (int)
       
   924   fields = TypeTuple::fields(1);
       
   925   fields[TypeFunc::Parms + 0] = TypeInt::INT;
       
   926   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms + 1, fields);
       
   927   return TypeFunc::make(domain, range);
       
   928 }
       
   929 
   903 //for counterMode calls of aescrypt encrypt/decrypt, four pointers and a length, returning int
   930 //for counterMode calls of aescrypt encrypt/decrypt, four pointers and a length, returning int
   904 const TypeFunc* OptoRuntime::counterMode_aescrypt_Type() {
   931 const TypeFunc* OptoRuntime::counterMode_aescrypt_Type() {
   905   // create input type (domain)
   932   // create input type (domain)
   906   int num_args = 7;
   933   int num_args = 7;
   907   if (Matcher::pass_original_key_for_aes()) {
   934   if (Matcher::pass_original_key_for_aes()) {
  1410 //       to handle deoptimized blobs
  1437 //       to handle deoptimized blobs
  1411 //
  1438 //
  1412 // However, there needs to be a safepoint check in the middle!  So compiled
  1439 // However, there needs to be a safepoint check in the middle!  So compiled
  1413 // safepoints are completely watertight.
  1440 // safepoints are completely watertight.
  1414 //
  1441 //
  1415 // Thus, it cannot be a leaf since it contains the NoGCVerifier.
  1442 // Thus, it cannot be a leaf since it contains the NoSafepointVerifier.
  1416 //
  1443 //
  1417 // *THIS IS NOT RECOMMENDED PROGRAMMING STYLE*
  1444 // *THIS IS NOT RECOMMENDED PROGRAMMING STYLE*
  1418 //
  1445 //
  1419 address OptoRuntime::rethrow_C(oopDesc* exception, JavaThread* thread, address ret_pc) {
  1446 address OptoRuntime::rethrow_C(oopDesc* exception, JavaThread* thread, address ret_pc) {
  1420 #ifndef PRODUCT
  1447 #ifndef PRODUCT