Wed, 01 Dec 2010 15:47:52 -0800
6875026: CTW failure jdk6_18/hotspot/src/share/vm/c1/c1_LinearScan.cpp:5486
Reviewed-by: kvn, iveresov
src/cpu/x86/vm/c1_LIRGenerator_x86.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Wed Dec 01 10:16:31 2010 -0800 1.2 +++ b/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Wed Dec 01 15:47:52 2010 -0800 1.3 @@ -874,6 +874,10 @@ 1.4 1.5 void LIRGenerator::do_ArrayCopy(Intrinsic* x) { 1.6 assert(x->number_of_arguments() == 5, "wrong type"); 1.7 + 1.8 + // Make all state_for calls early since they can emit code 1.9 + CodeEmitInfo* info = state_for(x, x->state()); 1.10 + 1.11 LIRItem src(x->argument_at(0), this); 1.12 LIRItem src_pos(x->argument_at(1), this); 1.13 LIRItem dst(x->argument_at(2), this); 1.14 @@ -916,7 +920,6 @@ 1.15 ciArrayKlass* expected_type; 1.16 arraycopy_helper(x, &flags, &expected_type); 1.17 1.18 - CodeEmitInfo* info = state_for(x, x->state()); // we may want to have stack (deoptimization?) 1.19 __ arraycopy(src.result(), src_pos.result(), dst.result(), dst_pos.result(), length.result(), tmp, expected_type, flags, info); // does add_safepoint 1.20 } 1.21