< prev index next >

src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp

Print this page
*** 43,10 ***
--- 43,11 ---
                                   int number_of_arguments);
  
    virtual void call_VM_base(Register oop_result,
                              Register java_thread,
                              Register last_java_sp,
+                             Label*   return_pc,
                              address  entry_point,
                              int number_of_arguments,
                              bool check_exceptions);
  
    // base routine for all dispatches

*** 56,15 ***
   public:
    InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {}
  
    void load_earlyret_value(TosState state);
  
    void call_VM_preemptable(Register oop_result,
                             address entry_point,
!                            Register arg_1);
    void restore_after_resume(bool is_native);
  
    void jump_to_entry(address entry);
  
    virtual void check_and_handle_popframe(Register java_thread);
    virtual void check_and_handle_earlyret(Register java_thread);
  
--- 57,28 ---
   public:
    InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {}
  
    void load_earlyret_value(TosState state);
  
+   // Use for vthread preemption
    void call_VM_preemptable(Register oop_result,
                             address entry_point,
!                            Register arg_1,
+                            bool check_exceptions = true);
+   void call_VM_preemptable(Register oop_result,
+                            address entry_point,
+                            Register arg_1,
+                            Register arg_2,
+                            bool check_exceptions = true);
    void restore_after_resume(bool is_native);
+  private:
+   void call_VM_preemptable_helper(Register oop_result,
+                                   address entry_point,
+                                   int number_of_arguments,
+                                   bool check_exceptions);
  
+  public:
    void jump_to_entry(address entry);
  
    virtual void check_and_handle_popframe(Register java_thread);
    virtual void check_and_handle_earlyret(Register java_thread);
  
< prev index next >