src/cpu/sparc/vm/stubGenerator_sparc.cpp

changeset 5694
7944aba7ba41
parent 5400
980532a806a5
child 6198
55fb97c4c58d
equal deleted inserted replaced
5654:313b724f8911 5694:7944aba7ba41
2943 __ delayed()->tst(length); 2943 __ delayed()->tst(length);
2944 __ br(Assembler::negative, false, Assembler::pn, L_failed); 2944 __ br(Assembler::negative, false, Assembler::pn, L_failed);
2945 2945
2946 BLOCK_COMMENT("arraycopy argument klass checks"); 2946 BLOCK_COMMENT("arraycopy argument klass checks");
2947 // get src->klass() 2947 // get src->klass()
2948 if (UseCompressedKlassPointers) { 2948 if (UseCompressedClassPointers) {
2949 __ delayed()->nop(); // ??? not good 2949 __ delayed()->nop(); // ??? not good
2950 __ load_klass(src, G3_src_klass); 2950 __ load_klass(src, G3_src_klass);
2951 } else { 2951 } else {
2952 __ delayed()->ld_ptr(src, oopDesc::klass_offset_in_bytes(), G3_src_klass); 2952 __ delayed()->ld_ptr(src, oopDesc::klass_offset_in_bytes(), G3_src_klass);
2953 } 2953 }
2978 int lh_offset = in_bytes(Klass::layout_helper_offset()); 2978 int lh_offset = in_bytes(Klass::layout_helper_offset());
2979 2979
2980 // Load 32-bits signed value. Use br() instruction with it to check icc. 2980 // Load 32-bits signed value. Use br() instruction with it to check icc.
2981 __ lduw(G3_src_klass, lh_offset, G5_lh); 2981 __ lduw(G3_src_klass, lh_offset, G5_lh);
2982 2982
2983 if (UseCompressedKlassPointers) { 2983 if (UseCompressedClassPointers) {
2984 __ load_klass(dst, G4_dst_klass); 2984 __ load_klass(dst, G4_dst_klass);
2985 } 2985 }
2986 // Handle objArrays completely differently... 2986 // Handle objArrays completely differently...
2987 juint objArray_lh = Klass::array_layout_helper(T_OBJECT); 2987 juint objArray_lh = Klass::array_layout_helper(T_OBJECT);
2988 __ set(objArray_lh, O5_temp); 2988 __ set(objArray_lh, O5_temp);
2989 __ cmp(G5_lh, O5_temp); 2989 __ cmp(G5_lh, O5_temp);
2990 __ br(Assembler::equal, false, Assembler::pt, L_objArray); 2990 __ br(Assembler::equal, false, Assembler::pt, L_objArray);
2991 if (UseCompressedKlassPointers) { 2991 if (UseCompressedClassPointers) {
2992 __ delayed()->nop(); 2992 __ delayed()->nop();
2993 } else { 2993 } else {
2994 __ delayed()->ld_ptr(dst, oopDesc::klass_offset_in_bytes(), G4_dst_klass); 2994 __ delayed()->ld_ptr(dst, oopDesc::klass_offset_in_bytes(), G4_dst_klass);
2995 } 2995 }
2996 2996

mercurial