예제 #1
0
void InterpreterStubs::generate_interpreter_deoptimization_entry() {
  Segment seg(this, code_segment, "Interpreter deoptimization entry");
  define_call_info();
  bind("interpreter_deoptimization_entry");
  restore_interpreter_state();
  prefetch(0);
  dispatch(tos_on_stack);
}
void InterpreterStubs::generate_interpreter_deoptimization_entry() {
  comment_section("Interpreter deoptimization entry");
  entry("interpreter_deoptimization_entry");

  // Define an interpreter call info.
  define_call_info();

  comment("Restore bytecode and locals pointers");
  movl(esi, Address(ebp, Constant(JavaFrame::bcp_store_offset())));
  movl(edi, Address(ebp, Constant(JavaFrame::locals_pointer_offset())));

  // Dispatch to the next bytecode.
  dispatch_next();

  entry_end(); // interpreter_deoptimization_entry
}