< prev index next >

src/share/vm/opto/runtime.cpp

Print this page




 939   int num_args      = 6;
 940   int argcnt = num_args;
 941   const Type** fields = TypeTuple::fields(argcnt);
 942   int argp = TypeFunc::Parms;
 943   fields[argp++] = TypePtr::NOTNULL;    // x
 944   fields[argp++] = TypeInt::INT;        // xlen
 945   fields[argp++] = TypePtr::NOTNULL;    // y
 946   fields[argp++] = TypeInt::INT;        // ylen
 947   fields[argp++] = TypePtr::NOTNULL;    // z
 948   fields[argp++] = TypeInt::INT;        // zlen
 949   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
 950   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
 951 
 952   // no result type needed
 953   fields = TypeTuple::fields(1);
 954   fields[TypeFunc::Parms+0] = NULL;
 955   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
 956   return TypeFunc::make(domain, range);
 957 }
 958 














































 959 
 960 
 961 //------------- Interpreter state access for on stack replacement
 962 const TypeFunc* OptoRuntime::osr_end_Type() {
 963   // create input type (domain)
 964   const Type **fields = TypeTuple::fields(1);
 965   fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf
 966   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
 967 
 968   // create result type
 969   fields = TypeTuple::fields(1);
 970   // fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // locked oop
 971   fields[TypeFunc::Parms+0] = NULL; // void
 972   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields);
 973   return TypeFunc::make(domain, range);
 974 }
 975 
 976 //-------------- methodData update helpers
 977 
 978 const TypeFunc* OptoRuntime::profile_receiver_type_Type() {




 939   int num_args      = 6;
 940   int argcnt = num_args;
 941   const Type** fields = TypeTuple::fields(argcnt);
 942   int argp = TypeFunc::Parms;
 943   fields[argp++] = TypePtr::NOTNULL;    // x
 944   fields[argp++] = TypeInt::INT;        // xlen
 945   fields[argp++] = TypePtr::NOTNULL;    // y
 946   fields[argp++] = TypeInt::INT;        // ylen
 947   fields[argp++] = TypePtr::NOTNULL;    // z
 948   fields[argp++] = TypeInt::INT;        // zlen
 949   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
 950   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
 951 
 952   // no result type needed
 953   fields = TypeTuple::fields(1);
 954   fields[TypeFunc::Parms+0] = NULL;
 955   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
 956   return TypeFunc::make(domain, range);
 957 }
 958 
 959 const TypeFunc* OptoRuntime::montgomeryMultiply_Type() {
 960   // create input type (domain)
 961   int num_args      = 7;
 962   int argcnt = num_args;
 963   const Type** fields = TypeTuple::fields(argcnt);
 964   int argp = TypeFunc::Parms;
 965   fields[argp++] = TypePtr::NOTNULL;    // a
 966   fields[argp++] = TypePtr::NOTNULL;    // b
 967   fields[argp++] = TypePtr::NOTNULL;    // n
 968   fields[argp++] = TypeInt::INT;        // len
 969   fields[argp++] = TypeLong::LONG;      // inv
 970   fields[argp++] = Type::HALF;
 971   fields[argp++] = TypePtr::NOTNULL;    // result
 972   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
 973   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
 974 
 975   // result type needed
 976   fields = TypeTuple::fields(1);
 977   fields[TypeFunc::Parms+0] = TypePtr::NOTNULL;
 978 
 979   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
 980   return TypeFunc::make(domain, range);
 981 }
 982 
 983 const TypeFunc* OptoRuntime::montgomerySquare_Type() {
 984   // create input type (domain)
 985   int num_args      = 6;
 986   int argcnt = num_args;
 987   const Type** fields = TypeTuple::fields(argcnt);
 988   int argp = TypeFunc::Parms;
 989   fields[argp++] = TypePtr::NOTNULL;    // a
 990   fields[argp++] = TypePtr::NOTNULL;    // n
 991   fields[argp++] = TypeInt::INT;        // len
 992   fields[argp++] = TypeLong::LONG;      // inv
 993   fields[argp++] = Type::HALF;
 994   fields[argp++] = TypePtr::NOTNULL;    // result
 995   assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
 996   const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
 997 
 998   // result type needed
 999   fields = TypeTuple::fields(1);
1000   fields[TypeFunc::Parms+0] = TypePtr::NOTNULL;
1001 
1002   const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
1003   return TypeFunc::make(domain, range);
1004 }
1005 
1006 
1007 //------------- Interpreter state access for on stack replacement
1008 const TypeFunc* OptoRuntime::osr_end_Type() {
1009   // create input type (domain)
1010   const Type **fields = TypeTuple::fields(1);
1011   fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf
1012   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+1, fields);
1013 
1014   // create result type
1015   fields = TypeTuple::fields(1);
1016   // fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // locked oop
1017   fields[TypeFunc::Parms+0] = NULL; // void
1018   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields);
1019   return TypeFunc::make(domain, range);
1020 }
1021 
1022 //-------------- methodData update helpers
1023 
1024 const TypeFunc* OptoRuntime::profile_receiver_type_Type() {


< prev index next >