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)) {
|