1.1 --- a/src/cpu/mips/vm/c1_Runtime1_mips.cpp Thu May 31 09:47:21 2018 +0800 1.2 +++ b/src/cpu/mips/vm/c1_Runtime1_mips.cpp Thu May 31 14:12:55 2018 +0800 1.3 @@ -1389,31 +1389,9 @@ 1.4 __ st_ptr(T1, SP, (-2) * wordSize); 1.5 __ addiu(SP, SP, (-2) * wordSize); 1.6 1.7 - //+ Klass::secondary_supers_offset_in_bytes())); 1.8 - __ ld_ptr(AT, A0, in_bytes( Klass::secondary_supers_offset())); 1.9 - __ lw(T1, AT, arrayOopDesc::length_offset_in_bytes()); 1.10 - __ addiu(AT, AT, arrayOopDesc::base_offset_in_bytes(T_OBJECT)); 1.11 + Label miss; 1.12 + __ check_klass_subtype_slow_path(A0, A1, T0, T1, NULL, &miss); 1.13 1.14 - Label miss, hit, loop; 1.15 - // T1:count, AT:array, A1:sub maybe supper 1.16 - __ bind(loop); 1.17 - __ beq(T1, R0, miss); 1.18 -#ifndef _LP64 1.19 - __ delayed()->lw(T0, AT, 0); 1.20 -#else 1.21 - __ delayed()->ld(T0, AT, 0); 1.22 -#endif 1.23 - __ beq(T0, A1, hit); 1.24 - __ delayed(); 1.25 - __ addiu(T1, T1, -1); 1.26 - __ b(loop); 1.27 - __ delayed(); 1.28 - __ addiu(AT, AT, 4); 1.29 - 1.30 - __ bind(hit); 1.31 - //+ Klass::secondary_super_cache_offset_in_bytes()), eax); 1.32 - __ st_ptr(A1, A0, 1.33 - in_bytes( Klass::secondary_super_cache_offset())); 1.34 __ addiu(V0, R0, 1); 1.35 __ addiu(SP, SP, 2 * wordSize); 1.36 __ ld_ptr(T0, SP, (-1) * wordSize);