src/share/vm/opto/runtime.cpp

changeset 7152
166d744df0de
parent 7027
b20a35eae442
child 7535
7ae4e26cb1e0
child 7598
ddce0b7cee93
equal deleted inserted replaced
7151:bddcb33dadf4 7152:166d744df0de
940 fields[TypeFunc::Parms+0] = TypeInt::INT; // ofs 940 fields[TypeFunc::Parms+0] = TypeInt::INT; // ofs
941 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms+1, fields); 941 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms+1, fields);
942 return TypeFunc::make(domain, range); 942 return TypeFunc::make(domain, range);
943 } 943 }
944 944
945 const TypeFunc* OptoRuntime::multiplyToLen_Type() {
946 // create input type (domain)
947 int num_args = 6;
948 int argcnt = num_args;
949 const Type** fields = TypeTuple::fields(argcnt);
950 int argp = TypeFunc::Parms;
951 fields[argp++] = TypePtr::NOTNULL; // x
952 fields[argp++] = TypeInt::INT; // xlen
953 fields[argp++] = TypePtr::NOTNULL; // y
954 fields[argp++] = TypeInt::INT; // ylen
955 fields[argp++] = TypePtr::NOTNULL; // z
956 fields[argp++] = TypeInt::INT; // zlen
957 assert(argp == TypeFunc::Parms+argcnt, "correct decoding");
958 const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms+argcnt, fields);
959
960 // no result type needed
961 fields = TypeTuple::fields(1);
962 fields[TypeFunc::Parms+0] = NULL;
963 const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields);
964 return TypeFunc::make(domain, range);
965 }
966
967
968
945 //------------- Interpreter state access for on stack replacement 969 //------------- Interpreter state access for on stack replacement
946 const TypeFunc* OptoRuntime::osr_end_Type() { 970 const TypeFunc* OptoRuntime::osr_end_Type() {
947 // create input type (domain) 971 // create input type (domain)
948 const Type **fields = TypeTuple::fields(1); 972 const Type **fields = TypeTuple::fields(1);
949 fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf 973 fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf

mercurial