hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
changeset 42085 b23a10ed6a60
parent 40049 a23a3ed6c7a6
child 42551 11422f6d92b3
equal deleted inserted replaced
42084:e2ed92f56bcf 42085:b23a10ed6a60
  2275     __ ldrw(rscratch1, dst_length_addr);
  2275     __ ldrw(rscratch1, dst_length_addr);
  2276     __ cmpw(tmp, rscratch1);
  2276     __ cmpw(tmp, rscratch1);
  2277     __ br(Assembler::HI, *stub->entry());
  2277     __ br(Assembler::HI, *stub->entry());
  2278   }
  2278   }
  2279 
  2279 
  2280   // FIXME: The logic in LIRGenerator::arraycopy_helper clears
       
  2281   // length_positive_check if the source of our length operand is an
       
  2282   // arraylength.  However, that arraylength might be zero, and the
       
  2283   // stub that we're about to call contains an assertion that count !=
       
  2284   // 0 .  So we make this check purely in order not to trigger an
       
  2285   // assertion failure.
       
  2286   __ cbzw(length, *stub->continuation());
       
  2287 
       
  2288   if (flags & LIR_OpArrayCopy::type_check) {
  2280   if (flags & LIR_OpArrayCopy::type_check) {
  2289     // We don't know the array types are compatible
  2281     // We don't know the array types are compatible
  2290     if (basic_type != T_OBJECT) {
  2282     if (basic_type != T_OBJECT) {
  2291       // Simple test for basic type arrays
  2283       // Simple test for basic type arrays
  2292       if (UseCompressedClassPointers) {
  2284       if (UseCompressedClassPointers) {