@@ -1288,10 +1288,13 @@ bool LibraryCallKit::inline_string_copy(bool compress) {
1288
1288
AllocateArrayNode* alloc = tightly_coupled_allocation (dst);
1289
1289
1290
1290
// Figure out the size and type of the elements we will be copying.
1291
- const Type* src_type = src->Value (&_gvn);
1292
- const Type* dst_type = dst->Value (&_gvn);
1293
- BasicType src_elem = src_type->isa_aryptr ()->klass ()->as_array_klass ()->element_type ()->basic_type ();
1294
- BasicType dst_elem = dst_type->isa_aryptr ()->klass ()->as_array_klass ()->element_type ()->basic_type ();
1291
+ const TypeAryPtr* src_type = src->Value (&_gvn)->isa_aryptr ();
1292
+ const TypeAryPtr* dst_type = dst->Value (&_gvn)->isa_aryptr ();
1293
+ if (src_type == nullptr || dst_type == nullptr ) {
1294
+ return false ;
1295
+ }
1296
+ BasicType src_elem = src_type->klass ()->as_array_klass ()->element_type ()->basic_type ();
1297
+ BasicType dst_elem = dst_type->klass ()->as_array_klass ()->element_type ()->basic_type ();
1295
1298
assert ((compress && dst_elem == T_BYTE && (src_elem == T_BYTE || src_elem == T_CHAR)) ||
1296
1299
(!compress && src_elem == T_BYTE && (dst_elem == T_BYTE || dst_elem == T_CHAR)),
1297
1300
" Unsupported array types for inline_string_copy" );
@@ -4943,8 +4946,8 @@ bool LibraryCallKit::inline_encodeISOArray(bool ascii) {
4943
4946
}
4944
4947
4945
4948
// Figure out the size and type of the elements we will be copying.
4946
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
4947
- BasicType dst_elem = dst_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
4949
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
4950
+ BasicType dst_elem = top_dest ->klass ()->as_array_klass ()->element_type ()->basic_type ();
4948
4951
if (!((src_elem == T_CHAR) || (src_elem== T_BYTE)) || dst_elem != T_BYTE) {
4949
4952
return false ;
4950
4953
}
@@ -4997,8 +5000,8 @@ bool LibraryCallKit::inline_multiplyToLen() {
4997
5000
return false ;
4998
5001
}
4999
5002
5000
- BasicType x_elem = x_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5001
- BasicType y_elem = y_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5003
+ BasicType x_elem = top_x ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5004
+ BasicType y_elem = top_y ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5002
5005
if (x_elem != T_INT || y_elem != T_INT) {
5003
5006
return false ;
5004
5007
}
@@ -5105,8 +5108,8 @@ bool LibraryCallKit::inline_squareToLen() {
5105
5108
return false ;
5106
5109
}
5107
5110
5108
- BasicType x_elem = x_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5109
- BasicType z_elem = z_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5111
+ BasicType x_elem = top_x ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5112
+ BasicType z_elem = top_z ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5110
5113
if (x_elem != T_INT || z_elem != T_INT) {
5111
5114
return false ;
5112
5115
}
@@ -5154,8 +5157,8 @@ bool LibraryCallKit::inline_mulAdd() {
5154
5157
return false ;
5155
5158
}
5156
5159
5157
- BasicType out_elem = out_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5158
- BasicType in_elem = in_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5160
+ BasicType out_elem = top_out ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5161
+ BasicType in_elem = top_in ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5159
5162
if (out_elem != T_INT || in_elem != T_INT) {
5160
5163
return false ;
5161
5164
}
@@ -5209,10 +5212,10 @@ bool LibraryCallKit::inline_montgomeryMultiply() {
5209
5212
return false ;
5210
5213
}
5211
5214
5212
- BasicType a_elem = a_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5213
- BasicType b_elem = b_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5214
- BasicType n_elem = n_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5215
- BasicType m_elem = m_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5215
+ BasicType a_elem = top_a ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5216
+ BasicType b_elem = top_b ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5217
+ BasicType n_elem = top_n ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5218
+ BasicType m_elem = top_m ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5216
5219
if (a_elem != T_INT || b_elem != T_INT || n_elem != T_INT || m_elem != T_INT) {
5217
5220
return false ;
5218
5221
}
@@ -5265,9 +5268,9 @@ bool LibraryCallKit::inline_montgomerySquare() {
5265
5268
return false ;
5266
5269
}
5267
5270
5268
- BasicType a_elem = a_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5269
- BasicType n_elem = n_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5270
- BasicType m_elem = m_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5271
+ BasicType a_elem = top_a ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5272
+ BasicType n_elem = top_n ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5273
+ BasicType m_elem = top_m ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5271
5274
if (a_elem != T_INT || n_elem != T_INT || m_elem != T_INT) {
5272
5275
return false ;
5273
5276
}
@@ -5317,8 +5320,8 @@ bool LibraryCallKit::inline_bigIntegerShift(bool isRightShift) {
5317
5320
return false ;
5318
5321
}
5319
5322
5320
- BasicType newArr_elem = newArr_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5321
- BasicType oldArr_elem = oldArr_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5323
+ BasicType newArr_elem = top_newArr ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5324
+ BasicType oldArr_elem = top_oldArr ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5322
5325
if (newArr_elem != T_INT || oldArr_elem != T_INT) {
5323
5326
return false ;
5324
5327
}
@@ -5531,7 +5534,7 @@ bool LibraryCallKit::inline_updateBytesCRC32() {
5531
5534
}
5532
5535
5533
5536
// Figure out the size and type of the elements we will be copying.
5534
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5537
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5535
5538
if (src_elem != T_BYTE) {
5536
5539
return false ;
5537
5540
}
@@ -5620,7 +5623,7 @@ bool LibraryCallKit::inline_updateBytesCRC32C() {
5620
5623
}
5621
5624
5622
5625
// Figure out the size and type of the elements we will be copying.
5623
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5626
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5624
5627
if (src_elem != T_BYTE) {
5625
5628
return false ;
5626
5629
}
@@ -5713,7 +5716,7 @@ bool LibraryCallKit::inline_updateBytesAdler32() {
5713
5716
}
5714
5717
5715
5718
// Figure out the size and type of the elements we will be copying.
5716
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5719
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
5717
5720
if (src_elem != T_BYTE) {
5718
5721
return false ;
5719
5722
}
@@ -6550,7 +6553,7 @@ bool LibraryCallKit::inline_digestBase_implCompress(vmIntrinsics::ID id) {
6550
6553
return false ;
6551
6554
}
6552
6555
// Figure out the size and type of the elements we will be copying.
6553
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
6556
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
6554
6557
if (src_elem != T_BYTE) {
6555
6558
return false ;
6556
6559
}
@@ -6642,7 +6645,7 @@ bool LibraryCallKit::inline_digestBase_implCompressMB(int predicate) {
6642
6645
return false ;
6643
6646
}
6644
6647
// Figure out the size and type of the elements we will be copying.
6645
- BasicType src_elem = src_type-> isa_aryptr () ->klass ()->as_array_klass ()->element_type ()->basic_type ();
6648
+ BasicType src_elem = top_src ->klass ()->as_array_klass ()->element_type ()->basic_type ();
6646
6649
if (src_elem != T_BYTE) {
6647
6650
return false ;
6648
6651
}
0 commit comments