hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
changeset 19710 2f8ca425504e
parent 16611 6807a703dd6b
child 22234 da823d78ad65
equal deleted inserted replaced
19709:33aa3e85cc75 19710:2f8ca425504e
   305       address ptr = (address)(_pc_start + i);
   305       address ptr = (address)(_pc_start + i);
   306       int a_byte = (*ptr) & 0xFF;
   306       int a_byte = (*ptr) & 0xFF;
   307       assert(a_byte == *start++, "should be the same code");
   307       assert(a_byte == *start++, "should be the same code");
   308     }
   308     }
   309 #endif
   309 #endif
   310   } else if (_id == load_mirror_id) {
   310   } else if (_id == load_mirror_id || _id == load_appendix_id) {
   311     // produce a copy of the load mirror instruction for use by the being initialized case
   311     // produce a copy of the load mirror instruction for use by the being initialized case
   312 #ifdef ASSERT
   312 #ifdef ASSERT
   313     address start = __ pc();
   313     address start = __ pc();
   314 #endif
   314 #endif
   315     AddressLiteral addrlit(NULL, oop_Relocation::spec(_index));
   315     AddressLiteral addrlit(NULL, oop_Relocation::spec(_index));
   382   relocInfo::relocType reloc_type = relocInfo::none;
   382   relocInfo::relocType reloc_type = relocInfo::none;
   383   switch (_id) {
   383   switch (_id) {
   384     case access_field_id:  target = Runtime1::entry_for(Runtime1::access_field_patching_id); break;
   384     case access_field_id:  target = Runtime1::entry_for(Runtime1::access_field_patching_id); break;
   385     case load_klass_id:    target = Runtime1::entry_for(Runtime1::load_klass_patching_id); reloc_type = relocInfo::metadata_type; break;
   385     case load_klass_id:    target = Runtime1::entry_for(Runtime1::load_klass_patching_id); reloc_type = relocInfo::metadata_type; break;
   386     case load_mirror_id:   target = Runtime1::entry_for(Runtime1::load_mirror_patching_id); reloc_type = relocInfo::oop_type; break;
   386     case load_mirror_id:   target = Runtime1::entry_for(Runtime1::load_mirror_patching_id); reloc_type = relocInfo::oop_type; break;
       
   387     case load_appendix_id: target = Runtime1::entry_for(Runtime1::load_appendix_patching_id); reloc_type = relocInfo::oop_type; break;
   387     default: ShouldNotReachHere();
   388     default: ShouldNotReachHere();
   388   }
   389   }
   389   __ bind(call_patch);
   390   __ bind(call_patch);
   390 
   391 
   391   if (CommentedAssembly) {
   392   if (CommentedAssembly) {
   395   __ delayed()->nop();
   396   __ delayed()->nop();
   396   assert(_patch_info_offset == (patch_info_pc - __ pc()), "must not change");
   397   assert(_patch_info_offset == (patch_info_pc - __ pc()), "must not change");
   397   ce->add_call_info_here(_info);
   398   ce->add_call_info_here(_info);
   398   __ br(Assembler::always, false, Assembler::pt, _patch_site_entry);
   399   __ br(Assembler::always, false, Assembler::pt, _patch_site_entry);
   399   __ delayed()->nop();
   400   __ delayed()->nop();
   400   if (_id == load_klass_id || _id == load_mirror_id) {
   401   if (_id == load_klass_id || _id == load_mirror_id || _id == load_appendix_id) {
   401     CodeSection* cs = __ code_section();
   402     CodeSection* cs = __ code_section();
   402     address pc = (address)_pc_start;
   403     address pc = (address)_pc_start;
   403     RelocIterator iter(cs, pc, pc + 1);
   404     RelocIterator iter(cs, pc, pc + 1);
   404     relocInfo::change_reloc_info_for_address(&iter, (address) pc, reloc_type, relocInfo::none);
   405     relocInfo::change_reloc_info_for_address(&iter, (address) pc, reloc_type, relocInfo::none);
   405 
   406