src/cpu/x86/vm/stubGenerator_x86_32.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/cpu/x86/vm/stubGenerator_x86_32.cpp	Tue Dec 13 20:05:40 2011
--- new/src/cpu/x86/vm/stubGenerator_x86_32.cpp	Tue Dec 13 20:05:40 2011

*** 1372,1383 **** --- 1372,1382 ---- // one less register, because needed values are on the argument stack. // __ check_klass_subtype_fast_path(sub_klass, *super_klass*, temp, // L_success, L_failure, NULL); assert_different_registers(sub_klass, temp); ! int sc_offset = (klassOopDesc::header_size() * HeapWordSize + Klass::secondary_super_cache_offset_in_bytes()); ! int sc_offset = in_bytes(Klass::secondary_super_cache_offset()); // if the pointers are equal, we are done (e.g., String[] elements) __ cmpptr(sub_klass, super_klass_addr); LOCAL_JCC(Assembler::equal, L_success);
*** 1785,1796 **** --- 1784,1794 ---- // 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(); ! int lh_offset = in_bytes(Klass::layout_helper_offset()); Address src_klass_lh_addr(rcx_src_klass, lh_offset); // Handle objArrays completely differently... jint objArray_lh = Klass::array_layout_helper(T_OBJECT); __ cmpl(src_klass_lh_addr, objArray_lh);
*** 1912,1925 **** --- 1910,1921 ---- __ BIND(L_checkcast_copy); // live at this point: rcx_src_klass, dst[_pos], src[_pos] { // Handy offsets: ! int ek_offset = (klassOopDesc::header_size() * HeapWordSize + ! objArrayKlass::element_klass_offset_in_bytes()); int sco_offset = (klassOopDesc::header_size() * HeapWordSize + Klass::super_check_offset_offset_in_bytes()); ! int ek_offset = in_bytes(objArrayKlass::element_klass_offset()); ! int sco_offset = in_bytes(Klass::super_check_offset_offset()); Register rsi_dst_klass = rsi; Register rdi_temp = rdi; assert(rsi_dst_klass == src_pos, "expected alias w/ src_pos"); assert(rdi_temp == dst_pos, "expected alias w/ dst_pos");

src/cpu/x86/vm/stubGenerator_x86_32.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File