Mercurial > hg > graal-jvmci-8
comparison src/cpu/sparc/vm/stubGenerator_sparc.cpp @ 14422:2b8e28fdf503
Merge
author | kvn |
---|---|
date | Tue, 05 Nov 2013 17:38:04 -0800 |
parents | 7944aba7ba41 |
children | cefad50507d8 de6a9e811145 |
comparison
equal
deleted
inserted
replaced
14421:3068270ba476 | 14422:2b8e28fdf503 |
---|---|
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 |