diff -r 22e4420d19f7 -r 75588558f1bf src/share/vm/opto/runtime.cpp --- a/src/share/vm/opto/runtime.cpp Wed Oct 06 14:18:32 2010 -0700 +++ b/src/share/vm/opto/runtime.cpp Thu Oct 07 21:40:55 2010 -0700 @@ -646,12 +646,14 @@ const TypeFunc* OptoRuntime::array_fill_Type() { - // create input type (domain) - const Type** fields = TypeTuple::fields(3); - fields[TypeFunc::Parms+0] = TypePtr::NOTNULL; - fields[TypeFunc::Parms+1] = TypeInt::INT; - fields[TypeFunc::Parms+2] = TypeInt::INT; - const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms + 3, fields); + // create input type (domain): pointer, int, size_t + const Type** fields = TypeTuple::fields(3 LP64_ONLY( + 1)); + int argp = TypeFunc::Parms; + fields[argp++] = TypePtr::NOTNULL; + fields[argp++] = TypeInt::INT; + fields[argp++] = TypeX_X; // size in whatevers (size_t) + LP64_ONLY(fields[argp++] = Type::HALF); // other half of long length + const TypeTuple *domain = TypeTuple::make(argp, fields); // create result type fields = TypeTuple::fields(1);