< prev index next >

src/share/vm/c1/c1_Runtime1.cpp

Print this page
rev 8069 : 8164652: aarch32: C1 port

*** 1047,1057 **** } } else { ShouldNotReachHere(); } ! #if defined(SPARC) || defined(PPC) if (load_klass_or_mirror_patch_id || stub_id == Runtime1::load_appendix_patching_id) { // Update the location in the nmethod with the proper // metadata. When the code was generated, a NULL was stuffed // in the metadata table and that table needs to be update to --- 1047,1057 ---- } } else { ShouldNotReachHere(); } ! #if defined(SPARC) || defined(PPC) || defined(AARCH32) if (load_klass_or_mirror_patch_id || stub_id == Runtime1::load_appendix_patching_id) { // Update the location in the nmethod with the proper // metadata. When the code was generated, a NULL was stuffed // in the metadata table and that table needs to be update to
*** 1084,1094 **** } #endif if (do_patch) { // replace instructions // first replace the tail, then the call ! #ifdef ARM if((load_klass_or_mirror_patch_id || stub_id == Runtime1::load_appendix_patching_id) && nativeMovConstReg_at(copy_buff)->is_pc_relative()) { nmethod* nm = CodeCache::find_nmethod(instr_pc); address addr = NULL; --- 1084,1094 ---- } #endif if (do_patch) { // replace instructions // first replace the tail, then the call ! #if defined(ARM) && !defined(AARCH32) if((load_klass_or_mirror_patch_id || stub_id == Runtime1::load_appendix_patching_id) && nativeMovConstReg_at(copy_buff)->is_pc_relative()) { nmethod* nm = CodeCache::find_nmethod(instr_pc); address addr = NULL;
*** 1132,1147 **** --- 1132,1149 ---- relocInfo::oop_type; // update relocInfo to metadata nmethod* nm = CodeCache::find_nmethod(instr_pc); assert(nm != NULL, "invalid nmethod_pc"); + #if !defined(AARCH32) // The old patch site is now a move instruction so update // the reloc info so that it will get updated during // future GCs. RelocIterator iter(nm, (address)instr_pc, (address)(instr_pc + 1)); relocInfo::change_reloc_info_for_address(&iter, (address) instr_pc, relocInfo::none, rtype); + #endif #ifdef SPARC // Sparc takes two relocations for an metadata so update the second one. address instr_pc2 = instr_pc + NativeMovConstReg::add_offset; RelocIterator iter2(nm, instr_pc2, instr_pc2 + 1); relocInfo::change_reloc_info_for_address(&iter2, (address) instr_pc2,
< prev index next >