comparison src/share/vm/opto/runtime.cpp @ 20438:166d744df0de

8055494: Add C2 x86 intrinsic for BigInteger::multiplyToLen() method Summary: Add new C2 intrinsic for BigInteger::multiplyToLen() on x86 in 64-bit VM. Reviewed-by: roland
author kvn
date Tue, 02 Sep 2014 12:48:45 -0700
parents b20a35eae442
children 7848fc12602b
comparison
equal deleted inserted replaced
20437:bddcb33dadf4 20438: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