src/cpu/mips/vm/c1_Runtime1_mips.cpp

changeset 9132
0f025dcc49cc
parent 8865
ffcdff41a92f
child 9134
dde0a270fac2
     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);

mercurial