diff src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp @ 12272:6996f14f9d02

8167578: C1: compiler.escapeAnalysis.TestArrayCopy fails to throw ArrayStoreException Summary: Remove code that causes C1's arraycopy to skip type checks if the length argument is 0 Reviewed-by: kvn
author zmajo
date Tue, 01 Nov 2016 09:19:14 +0100
parents 9146e68921cc
children 824a8dcba48b
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Mon Oct 31 17:36:39 2016 +0000
+++ b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Tue Nov 01 09:19:14 2016 +0100
@@ -2277,14 +2277,6 @@
     __ br(Assembler::HI, *stub->entry());
   }
 
-  // FIXME: The logic in LIRGenerator::arraycopy_helper clears
-  // length_positive_check if the source of our length operand is an
-  // arraylength.  However, that arraylength might be zero, and the
-  // stub that we're about to call contains an assertion that count !=
-  // 0 .  So we make this check purely in order not to trigger an
-  // assertion failure.
-  __ cbzw(length, *stub->continuation());
-
   if (flags & LIR_OpArrayCopy::type_check) {
     // We don't know the array types are compatible
     if (basic_type != T_OBJECT) {