< prev index next >

src/hotspot/cpu/s390/macroAssembler_s390.cpp

Print this page
rev 47398 : 8166317: InterpreterCodeSize should be computed
Reviewed-by: kvn, coleenp


3760   lgr_if_needed(Rcard_addr, Rcard_addr_x); // copy back asap. push_frame will destroy Z_R0_scratch!
3761 
3762   // VM call need frame to access(write) O register.
3763   if (needs_frame) {
3764     save_return_pc();
3765     push_frame_abi160(0); // Will use Z_R0 as tmp on old CPUs.
3766   }
3767 
3768   // Save the live input values.
3769   call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), Rcard_addr, Z_thread);
3770 
3771   if (needs_frame) {
3772     pop_frame();
3773     restore_return_pc();
3774   }
3775 
3776   bind(filtered);
3777 
3778   BLOCK_COMMENT("} g1_write_barrier_post");
3779 }





3780 #endif // INCLUDE_ALL_GCS
3781 
3782 // Last_Java_sp must comply to the rules in frame_s390.hpp.
3783 void MacroAssembler::set_last_Java_frame(Register last_Java_sp, Register last_Java_pc, bool allow_relocation) {
3784   BLOCK_COMMENT("set_last_Java_frame {");
3785 
3786   // Always set last_Java_pc and flags first because once last_Java_sp
3787   // is visible has_last_Java_frame is true and users will look at the
3788   // rest of the fields. (Note: flags should always be zero before we
3789   // get here so doesn't need to be set.)
3790 
3791   // Verify that last_Java_pc was zeroed on return to Java.
3792   if (allow_relocation) {
3793     asm_assert_mem8_is_zero(in_bytes(JavaThread::last_Java_pc_offset()),
3794                             Z_thread,
3795                             "last_Java_pc not zeroed before leaving Java",
3796                             0x200);
3797   } else {
3798     asm_assert_mem8_is_zero_static(in_bytes(JavaThread::last_Java_pc_offset()),
3799                                    Z_thread,




3760   lgr_if_needed(Rcard_addr, Rcard_addr_x); // copy back asap. push_frame will destroy Z_R0_scratch!
3761 
3762   // VM call need frame to access(write) O register.
3763   if (needs_frame) {
3764     save_return_pc();
3765     push_frame_abi160(0); // Will use Z_R0 as tmp on old CPUs.
3766   }
3767 
3768   // Save the live input values.
3769   call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_post), Rcard_addr, Z_thread);
3770 
3771   if (needs_frame) {
3772     pop_frame();
3773     restore_return_pc();
3774   }
3775 
3776   bind(filtered);
3777 
3778   BLOCK_COMMENT("} g1_write_barrier_post");
3779 }
3780 
3781 // Called from init_globals() after universe_init() and before interpreter_init()
3782 void g1_barrier_stubs_init() {
3783   // G1 barrier stubs currently only generated on SPARC
3784 }
3785 #endif // INCLUDE_ALL_GCS
3786 
3787 // Last_Java_sp must comply to the rules in frame_s390.hpp.
3788 void MacroAssembler::set_last_Java_frame(Register last_Java_sp, Register last_Java_pc, bool allow_relocation) {
3789   BLOCK_COMMENT("set_last_Java_frame {");
3790 
3791   // Always set last_Java_pc and flags first because once last_Java_sp
3792   // is visible has_last_Java_frame is true and users will look at the
3793   // rest of the fields. (Note: flags should always be zero before we
3794   // get here so doesn't need to be set.)
3795 
3796   // Verify that last_Java_pc was zeroed on return to Java.
3797   if (allow_relocation) {
3798     asm_assert_mem8_is_zero(in_bytes(JavaThread::last_Java_pc_offset()),
3799                             Z_thread,
3800                             "last_Java_pc not zeroed before leaving Java",
3801                             0x200);
3802   } else {
3803     asm_assert_mem8_is_zero_static(in_bytes(JavaThread::last_Java_pc_offset()),
3804                                    Z_thread,


< prev index next >