< prev index next >

src/share/vm/opto/runtime.cpp

Print this page


   1 /*
   2  * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   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
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


 928   int argcnt = num_args;
 929   const Type** fields = TypeTuple::fields(argcnt);
 930   int argp = TypeFunc::Parms;
 931   fields[argp++] = TypePtr::NOTNULL;    // x
 932   fields[argp++] = TypeInt::INT;        // xlen
 933   fields[argp++] = TypePtr::NOTNULL;    // y
 934   fields[argp++] = TypeInt::INT;        // ylen
 935   fields[argp++] = TypePtr::NOTNULL;    // z
 936   fields[argp++] = TypeInt::INT;        // zlen
 937   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
 938   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
 939 
 940   // no result type needed
 941   fields = TypeTuple::fields(1);
 942   fields[TypeFunc::Parms+0] = NULL;
 943   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
 944   return TypeFunc::make(domain, range);
 945 }
 946 
 947 




















 948 
 949 //------------- Interpreter state access for on stack replacement
 950 const TypeFunc* OptoRuntime::osr_end_Type() {
 951   // create input type (domain)
 952   const Type **fields = TypeTuple::fields(1);
 953   fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf
 954   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
 955 
 956   // create result type
 957   fields = TypeTuple::fields(1);
 958   // fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // locked oop
 959   fields[TypeFunc::Parms+0] = NULL; // void
 960   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields);
 961   return TypeFunc::make(domain, range);
 962 }
 963 
 964 //-------------- methodData update helpers
 965 
 966 const TypeFunc* OptoRuntime::profile_receiver_type_Type() {
 967   // create input type (domain)


   1 /*
   2  * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   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
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


 928   int argcnt = num_args;
 929   const Type** fields = TypeTuple::fields(argcnt);
 930   int argp = TypeFunc::Parms;
 931   fields[argp++] = TypePtr::NOTNULL;    // x
 932   fields[argp++] = TypeInt::INT;        // xlen
 933   fields[argp++] = TypePtr::NOTNULL;    // y
 934   fields[argp++] = TypeInt::INT;        // ylen
 935   fields[argp++] = TypePtr::NOTNULL;    // z
 936   fields[argp++] = TypeInt::INT;        // zlen
 937   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
 938   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
 939 
 940   // no result type needed
 941   fields = TypeTuple::fields(1);
 942   fields[TypeFunc::Parms+0] = NULL;
 943   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
 944   return TypeFunc::make(domain, range);
 945 }
 946 
 947 
 948 
 949 // GHASH block processing
 950 const TypeFunc* OptoRuntime::ghash_processBlocks_Type() {
 951     int argcnt = 4;
 952 
 953     const Type** fields = TypeTuple::fields(argcnt);
 954     int argp = TypeFunc::Parms;
 955     fields[argp++] = TypePtr::NOTNULL;    // state
 956     fields[argp++] = TypePtr::NOTNULL;    // subkeyH
 957     fields[argp++] = TypePtr::NOTNULL;    // data
 958     fields[argp++] = TypeInt::INT;        // blocks
 959     assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
 960     const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
 961 
 962     // result type needed
 963     fields = TypeTuple::fields(1);
 964     fields[TypeFunc::Parms+0] = NULL; // void
 965     const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
 966     return TypeFunc::make(domain, range);
 967 }
 968 
 969 //------------- Interpreter state access for on stack replacement
 970 const TypeFunc* OptoRuntime::osr_end_Type() {
 971   // create input type (domain)
 972   const Type **fields = TypeTuple::fields(1);
 973   fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf
 974   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
 975 
 976   // create result type
 977   fields = TypeTuple::fields(1);
 978   // fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // locked oop
 979   fields[TypeFunc::Parms+0] = NULL; // void
 980   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields);
 981   return TypeFunc::make(domain, range);
 982 }
 983 
 984 //-------------- methodData update helpers
 985 
 986 const TypeFunc* OptoRuntime::profile_receiver_type_Type() {
 987   // create input type (domain)


< prev index next >