< prev index next >

src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp

Print this page
rev 8806 : Handling some more JPRT complaints


 435   if (ce->compilation()->bailed_out()) {
 436     return; // CodeCache is full
 437   }
 438 
 439   __ call(SharedRuntime::get_resolve_static_call_stub(), relocInfo::static_call_type);
 440   __ delayed()->nop();
 441   ce->add_call_info_here(info());
 442   ce->verify_oop_map(info());
 443 
 444 #ifndef PRODUCT
 445   __ set((intptr_t)&Runtime1::_arraycopy_slowcase_cnt, O0);
 446   __ ld(O0, 0, O1);
 447   __ inc(O1);
 448   __ st(O1, 0, O0);
 449 #endif
 450 
 451   __ br(Assembler::always, false, Assembler::pt, _continuation);
 452   __ delayed()->nop();
 453 }
 454 



 455 
 456 ///////////////////////////////////////////////////////////////////////////////////
 457 #if INCLUDE_ALL_GCS
 458 
 459 void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
 460   // At this point we know that marking is in progress.
 461   // If do_load() is true then we have to emit the
 462   // load of the previous value; otherwise it has already
 463   // been loaded into _pre_val.
 464 
 465   __ bind(_entry);
 466 
 467   assert(pre_val()->is_register(), "Precondition.");
 468   Register pre_val_reg = pre_val()->as_register();
 469 
 470   if (do_load()) {
 471     ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
 472   }
 473 
 474   if (__ is_in_wdisp16_range(_continuation)) {




 435   if (ce->compilation()->bailed_out()) {
 436     return; // CodeCache is full
 437   }
 438 
 439   __ call(SharedRuntime::get_resolve_static_call_stub(), relocInfo::static_call_type);
 440   __ delayed()->nop();
 441   ce->add_call_info_here(info());
 442   ce->verify_oop_map(info());
 443 
 444 #ifndef PRODUCT
 445   __ set((intptr_t)&Runtime1::_arraycopy_slowcase_cnt, O0);
 446   __ ld(O0, 0, O1);
 447   __ inc(O1);
 448   __ st(O1, 0, O0);
 449 #endif
 450 
 451   __ br(Assembler::always, false, Assembler::pt, _continuation);
 452   __ delayed()->nop();
 453 }
 454 
 455 void C1ThreadLocalSafepoint::emit_code(LIR_Assembler* ce) {
 456   ShouldNotReachHere();
 457 }
 458 
 459 ///////////////////////////////////////////////////////////////////////////////////
 460 #if INCLUDE_ALL_GCS
 461 
 462 void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
 463   // At this point we know that marking is in progress.
 464   // If do_load() is true then we have to emit the
 465   // load of the previous value; otherwise it has already
 466   // been loaded into _pre_val.
 467 
 468   __ bind(_entry);
 469 
 470   assert(pre_val()->is_register(), "Precondition.");
 471   Register pre_val_reg = pre_val()->as_register();
 472 
 473   if (do_load()) {
 474     ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
 475   }
 476 
 477   if (__ is_in_wdisp16_range(_continuation)) {


< prev index next >