src/cpu/s390/vm/templateInterpreterGenerator_s390.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8169206.02 Sdiff src/cpu/s390/vm

src/cpu/s390/vm/templateInterpreterGenerator_s390.cpp

Print this page




 625                Z_ARG2, Z_tos /*object (see TT::aastore())*/);
 626   } else {
 627     if (message != NULL) {
 628       __ load_absolute_address(Z_ARG3, (address)message);
 629     } else {
 630       __ clear_reg(Z_ARG3, true, false);
 631     }
 632     __ call_VM(Z_tos,
 633                CAST_FROM_FN_PTR(address, InterpreterRuntime::create_exception),
 634                Z_ARG2, Z_ARG3);
 635   }
 636   // Throw exception.
 637   __ load_absolute_address(Z_R1_scratch, Interpreter::throw_exception_entry());
 638   __ z_br(Z_R1_scratch);
 639 
 640   BLOCK_COMMENT("} exception_handler_common");
 641 
 642   return entry;
 643 }
 644 
 645 // Unused, should never pass by.
 646 address TemplateInterpreterGenerator::generate_continuation_for (TosState state) {
 647   address entry = __ pc();
 648   __ should_not_reach_here();
 649   return entry;
 650 }
 651 
 652 address TemplateInterpreterGenerator::generate_return_entry_for (TosState state, int step, size_t index_size) {
 653   address entry = __ pc();
 654 
 655   BLOCK_COMMENT("return_entry {");
 656 
 657   // Pop i2c extension or revert top-2-parent-resize done by interpreted callees.
 658   Register sp_before_i2c_extension = Z_bcp;
 659   __ z_lg(Z_fp, _z_abi(callers_sp), Z_SP); // Restore frame pointer.
 660   __ z_lg(sp_before_i2c_extension, Address(Z_fp, _z_ijava_state_neg(top_frame_sp)));
 661   __ resize_frame_absolute(sp_before_i2c_extension, Z_locals/*tmp*/, true/*load_fp*/);
 662 
 663   // TODO(ZASM): necessary??
 664   //  // and NULL it as marker that esp is now tos until next java call
 665   //  __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
 666 
 667   __ restore_bcp();
 668   __ restore_locals();
 669   __ restore_esp();
 670 
 671   if (state == atos) {




 625                Z_ARG2, Z_tos /*object (see TT::aastore())*/);
 626   } else {
 627     if (message != NULL) {
 628       __ load_absolute_address(Z_ARG3, (address)message);
 629     } else {
 630       __ clear_reg(Z_ARG3, true, false);
 631     }
 632     __ call_VM(Z_tos,
 633                CAST_FROM_FN_PTR(address, InterpreterRuntime::create_exception),
 634                Z_ARG2, Z_ARG3);
 635   }
 636   // Throw exception.
 637   __ load_absolute_address(Z_R1_scratch, Interpreter::throw_exception_entry());
 638   __ z_br(Z_R1_scratch);
 639 
 640   BLOCK_COMMENT("} exception_handler_common");
 641 
 642   return entry;
 643 }
 644 







 645 address TemplateInterpreterGenerator::generate_return_entry_for (TosState state, int step, size_t index_size) {
 646   address entry = __ pc();
 647 
 648   BLOCK_COMMENT("return_entry {");
 649 
 650   // Pop i2c extension or revert top-2-parent-resize done by interpreted callees.
 651   Register sp_before_i2c_extension = Z_bcp;
 652   __ z_lg(Z_fp, _z_abi(callers_sp), Z_SP); // Restore frame pointer.
 653   __ z_lg(sp_before_i2c_extension, Address(Z_fp, _z_ijava_state_neg(top_frame_sp)));
 654   __ resize_frame_absolute(sp_before_i2c_extension, Z_locals/*tmp*/, true/*load_fp*/);
 655 
 656   // TODO(ZASM): necessary??
 657   //  // and NULL it as marker that esp is now tos until next java call
 658   //  __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
 659 
 660   __ restore_bcp();
 661   __ restore_locals();
 662   __ restore_esp();
 663 
 664   if (state == atos) {


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