793 return make_arraycopy_Type(ac_generic); |
793 return make_arraycopy_Type(ac_generic); |
794 } |
794 } |
795 |
795 |
796 |
796 |
797 const TypeFunc* OptoRuntime::array_fill_Type() { |
797 const TypeFunc* OptoRuntime::array_fill_Type() { |
|
798 const Type** fields; |
|
799 int argp = TypeFunc::Parms; |
|
800 if (CCallingConventionRequiresIntsAsLongs) { |
798 // create input type (domain): pointer, int, size_t |
801 // create input type (domain): pointer, int, size_t |
799 const Type** fields = TypeTuple::fields(3 LP64_ONLY( + 1)); |
802 fields = TypeTuple::fields(3 LP64_ONLY( + 2)); |
800 int argp = TypeFunc::Parms; |
803 fields[argp++] = TypePtr::NOTNULL; |
801 fields[argp++] = TypePtr::NOTNULL; |
804 fields[argp++] = TypeLong::LONG; |
802 fields[argp++] = TypeInt::INT; |
805 fields[argp++] = Type::HALF; |
|
806 } else { |
|
807 // create input type (domain): pointer, int, size_t |
|
808 fields = TypeTuple::fields(3 LP64_ONLY( + 1)); |
|
809 fields[argp++] = TypePtr::NOTNULL; |
|
810 fields[argp++] = TypeInt::INT; |
|
811 } |
803 fields[argp++] = TypeX_X; // size in whatevers (size_t) |
812 fields[argp++] = TypeX_X; // size in whatevers (size_t) |
804 LP64_ONLY(fields[argp++] = Type::HALF); // other half of long length |
813 LP64_ONLY(fields[argp++] = Type::HALF); // other half of long length |
805 const TypeTuple *domain = TypeTuple::make(argp, fields); |
814 const TypeTuple *domain = TypeTuple::make(argp, fields); |
806 |
815 |
807 // create result type |
816 // create result type |