< prev index next >
src/hotspot/share/opto/runtime.cpp
Print this page
@@ -1109,10 +1109,29 @@
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 >