src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hs-comp-code-aging Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp

Print this page




 397   assert(_patch_info_offset == (patch_info_pc - __ pc()), "must not change");
 398   ce->add_call_info_here(_info);
 399   __ br(Assembler::always, false, Assembler::pt, _patch_site_entry);
 400   __ delayed()->nop();
 401   if (_id == load_klass_id || _id == load_mirror_id || _id == load_appendix_id) {
 402     CodeSection* cs = __ code_section();
 403     address pc = (address)_pc_start;
 404     RelocIterator iter(cs, pc, pc + 1);
 405     relocInfo::change_reloc_info_for_address(&iter, (address) pc, reloc_type, relocInfo::none);
 406 
 407     pc = (address)(_pc_start + NativeMovConstReg::add_offset);
 408     RelocIterator iter2(cs, pc, pc+1);
 409     relocInfo::change_reloc_info_for_address(&iter2, (address) pc, reloc_type, relocInfo::none);
 410   }
 411 
 412 }
 413 
 414 
 415 void DeoptimizeStub::emit_code(LIR_Assembler* ce) {
 416   __ bind(_entry);

 417   __ call(Runtime1::entry_for(Runtime1::deoptimize_id), relocInfo::runtime_call_type);
 418   __ delayed()->nop();
 419   ce->add_call_info_here(_info);
 420   DEBUG_ONLY(__ should_not_reach_here());
 421 }
 422 
 423 
 424 void ArrayCopyStub::emit_code(LIR_Assembler* ce) {
 425   //---------------slow case: call to native-----------------
 426   __ bind(_entry);
 427   __ mov(src()->as_register(),     O0);
 428   __ mov(src_pos()->as_register(), O1);
 429   __ mov(dst()->as_register(),     O2);
 430   __ mov(dst_pos()->as_register(), O3);
 431   __ mov(length()->as_register(),  O4);
 432 
 433   ce->emit_static_call_stub();
 434 
 435   __ call(SharedRuntime::get_resolve_static_call_stub(), relocInfo::static_call_type);
 436   __ delayed()->nop();




 397   assert(_patch_info_offset == (patch_info_pc - __ pc()), "must not change");
 398   ce->add_call_info_here(_info);
 399   __ br(Assembler::always, false, Assembler::pt, _patch_site_entry);
 400   __ delayed()->nop();
 401   if (_id == load_klass_id || _id == load_mirror_id || _id == load_appendix_id) {
 402     CodeSection* cs = __ code_section();
 403     address pc = (address)_pc_start;
 404     RelocIterator iter(cs, pc, pc + 1);
 405     relocInfo::change_reloc_info_for_address(&iter, (address) pc, reloc_type, relocInfo::none);
 406 
 407     pc = (address)(_pc_start + NativeMovConstReg::add_offset);
 408     RelocIterator iter2(cs, pc, pc+1);
 409     relocInfo::change_reloc_info_for_address(&iter2, (address) pc, reloc_type, relocInfo::none);
 410   }
 411 
 412 }
 413 
 414 
 415 void DeoptimizeStub::emit_code(LIR_Assembler* ce) {
 416   __ bind(_entry);
 417   __ set(_trap_request, G4);
 418   __ call(Runtime1::entry_for(Runtime1::deoptimize_id), relocInfo::runtime_call_type);
 419   __ delayed()->nop();
 420   ce->add_call_info_here(_info);
 421   DEBUG_ONLY(__ should_not_reach_here());
 422 }
 423 
 424 
 425 void ArrayCopyStub::emit_code(LIR_Assembler* ce) {
 426   //---------------slow case: call to native-----------------
 427   __ bind(_entry);
 428   __ mov(src()->as_register(),     O0);
 429   __ mov(src_pos()->as_register(), O1);
 430   __ mov(dst()->as_register(),     O2);
 431   __ mov(dst_pos()->as_register(), O3);
 432   __ mov(length()->as_register(),  O4);
 433 
 434   ce->emit_static_call_stub();
 435 
 436   __ call(SharedRuntime::get_resolve_static_call_stub(), relocInfo::static_call_type);
 437   __ delayed()->nop();


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