< prev index next >

src/cpu/ppc/vm/interp_masm_ppc_64.cpp

Print this page
rev 8107 : 8077838: Recent developments for ppc.

*** 444,454 **** } #endif } // Load object from cpool->resolved_references(index). ! void InterpreterMacroAssembler::load_resolved_reference_at_index(Register result, Register index) { assert_different_registers(result, index); get_constant_pool(result); // Convert from field index to resolved_references() index and from // word index to byte offset. Since this is a java object, it can be compressed. --- 444,454 ---- } #endif } // Load object from cpool->resolved_references(index). ! void InterpreterMacroAssembler::load_resolved_reference_at_index(Register result, Register index, Label *is_null) { assert_different_registers(result, index); get_constant_pool(result); // Convert from field index to resolved_references() index and from // word index to byte offset. Since this is a java object, it can be compressed.
*** 467,477 **** stop("resolved reference index out of bounds", 0x09256); bind(index_ok); #endif // Add in the index. add(result, tmp, result); ! load_heap_oop(result, arrayOopDesc::base_offset_in_bytes(T_OBJECT), result); } // Generate a subtype check: branch to ok_is_subtype if sub_klass is // a subtype of super_klass. Blows registers Rsub_klass, tmp1, tmp2. void InterpreterMacroAssembler::gen_subtype_check(Register Rsub_klass, Register Rsuper_klass, Register Rtmp1, --- 467,477 ---- stop("resolved reference index out of bounds", 0x09256); bind(index_ok); #endif // Add in the index. add(result, tmp, result); ! load_heap_oop(result, arrayOopDesc::base_offset_in_bytes(T_OBJECT), result, is_null); } // Generate a subtype check: branch to ok_is_subtype if sub_klass is // a subtype of super_klass. Blows registers Rsub_klass, tmp1, tmp2. void InterpreterMacroAssembler::gen_subtype_check(Register Rsub_klass, Register Rsuper_klass, Register Rtmp1,
*** 874,884 **** and_(R0/*==0?*/, current_header, tmp); // If condition is true we are done and hence we can store 0 in the displaced // header indicating it is a recursive lock. bne(CCR0, slow_case); - release(); std(R0/*==0!*/, BasicObjectLock::lock_offset_in_bytes() + BasicLock::displaced_header_offset_in_bytes(), monitor); b(done); // } else { --- 874,883 ----
*** 1859,1869 **** // Pointer to the parameter area in the MDO. const Register mdp = tmp1; add(mdp, tmp1, R28_mdx); ! // Pffset of the current profile entry to update. const Register entry_offset = tmp2; // entry_offset = array len in number of cells ld(entry_offset, in_bytes(ArrayData::array_len_offset()), mdp); int off_base = in_bytes(ParametersTypeData::stack_slot_offset(0)); --- 1858,1868 ---- // Pointer to the parameter area in the MDO. const Register mdp = tmp1; add(mdp, tmp1, R28_mdx); ! // Offset of the current profile entry to update. const Register entry_offset = tmp2; // entry_offset = array len in number of cells ld(entry_offset, in_bytes(ArrayData::array_len_offset()), mdp); int off_base = in_bytes(ParametersTypeData::stack_slot_offset(0));
< prev index next >