777 |
777 |
778 |
778 |
779 const TypeFunc* OptoRuntime::array_fill_Type() { |
779 const TypeFunc* OptoRuntime::array_fill_Type() { |
780 const Type** fields; |
780 const Type** fields; |
781 int argp = TypeFunc::Parms; |
781 int argp = TypeFunc::Parms; |
782 if (CCallingConventionRequiresIntsAsLongs) { |
|
783 // create input type (domain): pointer, int, size_t |
782 // create input type (domain): pointer, int, size_t |
784 fields = TypeTuple::fields(3 LP64_ONLY( + 2)); |
783 fields = TypeTuple::fields(3 LP64_ONLY( + 1)); |
785 fields[argp++] = TypePtr::NOTNULL; |
784 fields[argp++] = TypePtr::NOTNULL; |
786 fields[argp++] = TypeLong::LONG; |
785 fields[argp++] = TypeInt::INT; |
787 fields[argp++] = Type::HALF; |
|
788 } else { |
|
789 // create input type (domain): pointer, int, size_t |
|
790 fields = TypeTuple::fields(3 LP64_ONLY( + 1)); |
|
791 fields[argp++] = TypePtr::NOTNULL; |
|
792 fields[argp++] = TypeInt::INT; |
|
793 } |
|
794 fields[argp++] = TypeX_X; // size in whatevers (size_t) |
786 fields[argp++] = TypeX_X; // size in whatevers (size_t) |
795 LP64_ONLY(fields[argp++] = Type::HALF); // other half of long length |
787 LP64_ONLY(fields[argp++] = Type::HALF); // other half of long length |
796 const TypeTuple *domain = TypeTuple::make(argp, fields); |
788 const TypeTuple *domain = TypeTuple::make(argp, fields); |
797 |
789 |
798 // create result type |
790 // create result type |