@@ -1496,10 +1496,13 @@ bool LibraryCallKit::inline_string_copy(bool compress) {
1496
1496
AllocateArrayNode* alloc = tightly_coupled_allocation (dst, NULL );
1497
1497
1498
1498
// Figure out the size and type of the elements we will be copying.
1499
- const Type* src_type = src->Value (&_gvn);
1500
- const Type* dst_type = dst->Value (&_gvn);
1501
- BasicType src_elem = src_type->isa_aryptr ()->klass ()->as_array_klass ()->element_type ()->basic_type ();
1502
- BasicType dst_elem = dst_type->isa_aryptr ()->klass ()->as_array_klass ()->element_type ()->basic_type ();
1499
+ const TypeAryPtr* src_type = src->Value (&_gvn)->isa_aryptr ();
1500
+ const TypeAryPtr* dst_type = dst->Value (&_gvn)->isa_aryptr ();
1501
+ if (src_type == NULL || dst_type == NULL ) {
1502
+ return false ;
1503
+ }
1504
+ BasicType src_elem = src_type->klass ()->as_array_klass ()->element_type ()->basic_type ();
1505
+ BasicType dst_elem = dst_type->klass ()->as_array_klass ()->element_type ()->basic_type ();
1503
1506
assert ((compress && dst_elem == T_BYTE && (src_elem == T_BYTE || src_elem == T_CHAR)) ||
1504
1507
(!compress && src_elem == T_BYTE && (dst_elem == T_BYTE || dst_elem == T_CHAR)),
1505
1508
" Unsupported array types for inline_string_copy" );
@@ -5018,8 +5021,8 @@ bool LibraryCallKit::inline_encodeISOArray() {
5018
5021
}
5019
5022
5020
5023
// Figure out the size and type of the elements we will be copying.
5021
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5022
- BasicType dst_elem = dst_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5024
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5025
+ BasicType dst_elem = top_dest ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5023
5026
if (!((src_elem == T_CHAR) || (src_elem== T_BYTE)) || dst_elem != T_BYTE) {
5024
5027
return false ;
5025
5028
}
@@ -5072,8 +5075,8 @@ bool LibraryCallKit::inline_multiplyToLen() {
5072
5075
return false ;
5073
5076
}
5074
5077
5075
- BasicType x_elem = x_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5076
- BasicType y_elem = y_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5078
+ BasicType x_elem = top_x ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5079
+ BasicType y_elem = top_y ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5077
5080
if (x_elem != T_INT || y_elem != T_INT) {
5078
5081
return false ;
5079
5082
}
@@ -5180,8 +5183,8 @@ bool LibraryCallKit::inline_squareToLen() {
5180
5183
return false ;
5181
5184
}
5182
5185
5183
- BasicType x_elem = x_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5184
- BasicType z_elem = z_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5186
+ BasicType x_elem = top_x ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5187
+ BasicType z_elem = top_z ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5185
5188
if (x_elem != T_INT || z_elem != T_INT) {
5186
5189
return false ;
5187
5190
}
@@ -5229,8 +5232,8 @@ bool LibraryCallKit::inline_mulAdd() {
5229
5232
return false ;
5230
5233
}
5231
5234
5232
- BasicType out_elem = out_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5233
- BasicType in_elem = in_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5235
+ BasicType out_elem = top_out ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5236
+ BasicType in_elem = top_in ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5234
5237
if (out_elem != T_INT || in_elem != T_INT) {
5235
5238
return false ;
5236
5239
}
@@ -5284,10 +5287,10 @@ bool LibraryCallKit::inline_montgomeryMultiply() {
5284
5287
return false ;
5285
5288
}
5286
5289
5287
- BasicType a_elem = a_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5288
- BasicType b_elem = b_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5289
- BasicType n_elem = n_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5290
- BasicType m_elem = m_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5290
+ BasicType a_elem = top_a ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5291
+ BasicType b_elem = top_b ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5292
+ BasicType n_elem = top_n ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5293
+ BasicType m_elem = top_m ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5291
5294
if (a_elem != T_INT || b_elem != T_INT || n_elem != T_INT || m_elem != T_INT) {
5292
5295
return false ;
5293
5296
}
@@ -5340,9 +5343,9 @@ bool LibraryCallKit::inline_montgomerySquare() {
5340
5343
return false ;
5341
5344
}
5342
5345
5343
- BasicType a_elem = a_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5344
- BasicType n_elem = n_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5345
- BasicType m_elem = m_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5346
+ BasicType a_elem = top_a ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5347
+ BasicType n_elem = top_n ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5348
+ BasicType m_elem = top_m ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5346
5349
if (a_elem != T_INT || n_elem != T_INT || m_elem != T_INT) {
5347
5350
return false ;
5348
5351
}
@@ -5465,7 +5468,7 @@ bool LibraryCallKit::inline_updateBytesCRC32() {
5465
5468
}
5466
5469
5467
5470
// Figure out the size and type of the elements we will be copying.
5468
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5471
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5469
5472
if (src_elem != T_BYTE) {
5470
5473
return false ;
5471
5474
}
@@ -5554,7 +5557,7 @@ bool LibraryCallKit::inline_updateBytesCRC32C() {
5554
5557
}
5555
5558
5556
5559
// Figure out the size and type of the elements we will be copying.
5557
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5560
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5558
5561
if (src_elem != T_BYTE) {
5559
5562
return false ;
5560
5563
}
@@ -5647,7 +5650,7 @@ bool LibraryCallKit::inline_updateBytesAdler32() {
5647
5650
}
5648
5651
5649
5652
// Figure out the size and type of the elements we will be copying.
5650
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5653
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5651
5654
if (src_elem != T_BYTE) {
5652
5655
return false ;
5653
5656
}
@@ -6462,7 +6465,7 @@ bool LibraryCallKit::inline_sha_implCompress(vmIntrinsics::ID id) {
6462
6465
return false ;
6463
6466
}
6464
6467
// Figure out the size and type of the elements we will be copying.
6465
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
6468
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
6466
6469
if (src_elem != T_BYTE) {
6467
6470
return false ;
6468
6471
}
@@ -6532,7 +6535,7 @@ bool LibraryCallKit::inline_digestBase_implCompressMB(int predicate) {
6532
6535
return false ;
6533
6536
}
6534
6537
// Figure out the size and type of the elements we will be copying.
6535
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
6538
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
6536
6539
if (src_elem != T_BYTE) {
6537
6540
return false ;
6538
6541
}
0 commit comments