src/cpu/sparc/vm/stubGenerator_sparc.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
7118863 Cdiff src/cpu/sparc/vm/stubGenerator_sparc.cpp
src/cpu/sparc/vm/stubGenerator_sparc.cpp
Print this page
*** 3044,3055 ****
// 32 30 24 16 8 2 0
//
// array_tag: typeArray = 0x3, objArray = 0x2, non-array = 0x0
//
! int lh_offset = klassOopDesc::header_size() * HeapWordSize +
! Klass::layout_helper_offset_in_bytes();
// Load 32-bits signed value. Use br() instruction with it to check icc.
__ lduw(G3_src_klass, lh_offset, G5_lh);
if (UseCompressedOops) {
--- 3044,3054 ----
// 32 30 24 16 8 2 0
//
// array_tag: typeArray = 0x3, objArray = 0x2, non-array = 0x0
//
! int lh_offset = in_bytes(Klass::layout_helper_offset());
// Load 32-bits signed value. Use br() instruction with it to check icc.
__ lduw(G3_src_klass, lh_offset, G5_lh);
if (UseCompressedOops) {
*** 3192,3210 ****
Register sco_temp = O3; // this register is free now
assert_different_registers(from, to, count, sco_temp,
G4_dst_klass, G3_src_klass);
// Generate the type check.
! int sco_offset = (klassOopDesc::header_size() * HeapWordSize +
! Klass::super_check_offset_offset_in_bytes());
__ lduw(G4_dst_klass, sco_offset, sco_temp);
generate_type_check(G3_src_klass, sco_temp, G4_dst_klass,
O5_temp, L_plain_copy);
// Fetch destination element klass from the objArrayKlass header.
! int ek_offset = (klassOopDesc::header_size() * HeapWordSize +
! objArrayKlass::element_klass_offset_in_bytes());
// the checkcast_copy loop needs two extra arguments:
__ ld_ptr(G4_dst_klass, ek_offset, O4); // dest elem klass
// lduw(O4, sco_offset, O3); // sco of elem klass
--- 3191,3207 ----
Register sco_temp = O3; // this register is free now
assert_different_registers(from, to, count, sco_temp,
G4_dst_klass, G3_src_klass);
// Generate the type check.
! int sco_offset = in_bytes(Klass::super_check_offset_offset());
__ lduw(G4_dst_klass, sco_offset, sco_temp);
generate_type_check(G3_src_klass, sco_temp, G4_dst_klass,
O5_temp, L_plain_copy);
// Fetch destination element klass from the objArrayKlass header.
! int ek_offset = in_bytes(objArrayKlass::element_klass_offset());
// the checkcast_copy loop needs two extra arguments:
__ ld_ptr(G4_dst_klass, ek_offset, O4); // dest elem klass
// lduw(O4, sco_offset, O3); // sco of elem klass
src/cpu/sparc/vm/stubGenerator_sparc.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File