< prev index next >

src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp

Print this page

 41 
 42   virtual void call_VM_leaf_base(address entry_point,
 43                                  int number_of_arguments);
 44 
 45   virtual void call_VM_base(Register oop_result,
 46                             Register java_thread,
 47                             Register last_java_sp,
 48                             address  entry_point,
 49                             int number_of_arguments,
 50                             bool check_exceptions);
 51 
 52   // base routine for all dispatches
 53   void dispatch_base(TosState state, address* table,
 54                      bool verifyoop = true, bool generate_poll = false);
 55 
 56  public:
 57   InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {}
 58 
 59   void load_earlyret_value(TosState state);
 60 

 61   void call_VM_preemptable(Register oop_result,
 62                            address entry_point,
 63                            Register arg_1);











 64   void restore_after_resume(bool is_native);
 65 
 66   void jump_to_entry(address entry);
 67 
 68   virtual void check_and_handle_popframe(Register java_thread);
 69   virtual void check_and_handle_earlyret(Register java_thread);
 70 
 71   // Interpreter-specific registers
 72   void save_bcp() {
 73     str(rbcp, Address(rfp, frame::interpreter_frame_bcp_offset * wordSize));
 74   }
 75 
 76   void restore_bcp() {
 77     ldr(rbcp, Address(rfp, frame::interpreter_frame_bcp_offset * wordSize));
 78   }
 79 
 80   void restore_locals() {
 81     ldr(rlocals, Address(rfp, frame::interpreter_frame_locals_offset * wordSize));
 82     lea(rlocals, Address(rfp, rlocals, Address::lsl(3)));
 83   }

 41 
 42   virtual void call_VM_leaf_base(address entry_point,
 43                                  int number_of_arguments);
 44 
 45   virtual void call_VM_base(Register oop_result,
 46                             Register java_thread,
 47                             Register last_java_sp,
 48                             address  entry_point,
 49                             int number_of_arguments,
 50                             bool check_exceptions);
 51 
 52   // base routine for all dispatches
 53   void dispatch_base(TosState state, address* table,
 54                      bool verifyoop = true, bool generate_poll = false);
 55 
 56  public:
 57   InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {}
 58 
 59   void load_earlyret_value(TosState state);
 60 
 61   // Use for vthread preemption
 62   void call_VM_preemptable(Register oop_result,
 63                            address entry_point,
 64                            Register arg_1,
 65                            bool check_exceptions = true);
 66   void call_VM_preemptable(Register oop_result,
 67                            address entry_point,
 68                            Register arg_1,
 69                            Register arg_2,
 70                            bool check_exceptions = true);
 71 
 72   void call_VM_preemptable_helper(Register oop_result,
 73                                   address entry_point,
 74                                   int number_of_arguments,
 75                                   bool check_exceptions);
 76   void restore_after_resume(bool is_native);
 77 
 78   void jump_to_entry(address entry);
 79 
 80   virtual void check_and_handle_popframe(Register java_thread);
 81   virtual void check_and_handle_earlyret(Register java_thread);
 82 
 83   // Interpreter-specific registers
 84   void save_bcp() {
 85     str(rbcp, Address(rfp, frame::interpreter_frame_bcp_offset * wordSize));
 86   }
 87 
 88   void restore_bcp() {
 89     ldr(rbcp, Address(rfp, frame::interpreter_frame_bcp_offset * wordSize));
 90   }
 91 
 92   void restore_locals() {
 93     ldr(rlocals, Address(rfp, frame::interpreter_frame_locals_offset * wordSize));
 94     lea(rlocals, Address(rfp, rlocals, Address::lsl(3)));
 95   }
< prev index next >