< prev index next >

src/hotspot/share/opto/runtime.cpp

Print this page

        

*** 1109,1118 **** --- 1109,1137 ---- const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields); return TypeFunc::make(domain, range); } + const TypeFunc * OptoRuntime::bigIntegerShift_Type() { + int argcnt = 5; + const Type** fields = TypeTuple::fields(argcnt); + int argp = TypeFunc::Parms; + fields[argp++] = TypePtr::NOTNULL; // newArr + fields[argp++] = TypePtr::NOTNULL; // oldArr + fields[argp++] = TypeInt::INT; // newIdx + fields[argp++] = TypeInt::INT; // shiftCount + fields[argp++] = TypeInt::INT; // numIter + assert(argp == TypeFunc::Parms + argcnt, "correct decoding"); + const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms + argcnt, fields); + + // no result type needed + fields = TypeTuple::fields(1); + fields[TypeFunc::Parms + 0] = NULL; + const TypeTuple* range = TypeTuple::make(TypeFunc::Parms, fields); + return TypeFunc::make(domain, range); + } + const TypeFunc* OptoRuntime::vectorizedMismatch_Type() { // create input type (domain) int num_args = 4; int argcnt = num_args; const Type** fields = TypeTuple::fields(argcnt);
< prev index next >