5792 // 'x_start' points to x array + scaled xlen |
5792 // 'x_start' points to x array + scaled xlen |
5793 // 'y_start' points to y array + scaled ylen |
5793 // 'y_start' points to y array + scaled ylen |
5794 |
5794 |
5795 // Allocate the result array |
5795 // Allocate the result array |
5796 Node* zlen = _gvn.transform(new(C) AddINode(xlen, ylen)); |
5796 Node* zlen = _gvn.transform(new(C) AddINode(xlen, ylen)); |
5797 Node* klass_node = makecon(TypeKlassPtr::make(ciTypeArrayKlass::make(T_INT))); |
5797 ciKlass* klass = ciTypeArrayKlass::make(T_INT); |
|
5798 Node* klass_node = makecon(TypeKlassPtr::make(klass)); |
5798 |
5799 |
5799 IdealKit ideal(this); |
5800 IdealKit ideal(this); |
5800 |
5801 |
5801 #define __ ideal. |
5802 #define __ ideal. |
5802 Node* one = __ ConI(1); |
5803 Node* one = __ ConI(1); |
5826 __ set(z_alloc, narr); |
5827 __ set(z_alloc, narr); |
5827 } __ end_if(); |
5828 } __ end_if(); |
5828 |
5829 |
5829 sync_kit(ideal); |
5830 sync_kit(ideal); |
5830 z = __ value(z_alloc); |
5831 z = __ value(z_alloc); |
5831 _gvn.set_type(z, TypeAryPtr::INTS); |
5832 // Can't use TypeAryPtr::INTS which uses Bottom offset. |
|
5833 _gvn.set_type(z, TypeOopPtr::make_from_klass(klass)); |
5832 // Final sync IdealKit and GraphKit. |
5834 // Final sync IdealKit and GraphKit. |
5833 final_sync(ideal); |
5835 final_sync(ideal); |
5834 #undef __ |
5836 #undef __ |
5835 |
5837 |
5836 Node* z_start = array_element_address(z, intcon(0), T_INT); |
5838 Node* z_start = array_element_address(z, intcon(0), T_INT); |