643 // This signature is like System.arraycopy, except that it returns status. |
643 // This signature is like System.arraycopy, except that it returns status. |
644 return make_arraycopy_Type(ac_generic); |
644 return make_arraycopy_Type(ac_generic); |
645 } |
645 } |
646 |
646 |
647 |
647 |
|
648 const TypeFunc* OptoRuntime::array_fill_Type() { |
|
649 // create input type (domain) |
|
650 const Type** fields = TypeTuple::fields(3); |
|
651 fields[TypeFunc::Parms+0] = TypePtr::NOTNULL; |
|
652 fields[TypeFunc::Parms+1] = TypeInt::INT; |
|
653 fields[TypeFunc::Parms+2] = TypeInt::INT; |
|
654 const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms + 3, fields); |
|
655 |
|
656 // create result type |
|
657 fields = TypeTuple::fields(1); |
|
658 fields[TypeFunc::Parms+0] = NULL; // void |
|
659 const TypeTuple *range = TypeTuple::make(TypeFunc::Parms, fields); |
|
660 |
|
661 return TypeFunc::make(domain, range); |
|
662 } |
|
663 |
648 //------------- Interpreter state access for on stack replacement |
664 //------------- Interpreter state access for on stack replacement |
649 const TypeFunc* OptoRuntime::osr_end_Type() { |
665 const TypeFunc* OptoRuntime::osr_end_Type() { |
650 // create input type (domain) |
666 // create input type (domain) |
651 const Type **fields = TypeTuple::fields(1); |
667 const Type **fields = TypeTuple::fields(1); |
652 fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf |
668 fields[TypeFunc::Parms+0] = TypeRawPtr::BOTTOM; // OSR temp buf |