hotspot/src/cpu/arm/vm/interp_masm_arm.hpp
changeset 46369 3bf4544bec14
parent 44406 a46a6c4d1dd9
parent 46338 e84b501fa52e
child 46427 54713555867e
equal deleted inserted replaced
44470:d10b1eca0b45 46369:3bf4544bec14
    51  protected:
    51  protected:
    52 
    52 
    53   // Template interpreter specific version of call_VM_helper
    53   // Template interpreter specific version of call_VM_helper
    54   virtual void call_VM_helper(Register oop_result, address entry_point, int number_of_arguments, bool check_exceptions);
    54   virtual void call_VM_helper(Register oop_result, address entry_point, int number_of_arguments, bool check_exceptions);
    55 
    55 
    56   virtual void check_and_handle_popframe();
       
    57   virtual void check_and_handle_earlyret();
       
    58 
       
    59   // base routine for all dispatches
    56   // base routine for all dispatches
    60   typedef enum { DispatchDefault, DispatchNormal } DispatchTableMode;
    57   typedef enum { DispatchDefault, DispatchNormal } DispatchTableMode;
    61   void dispatch_base(TosState state, DispatchTableMode table_mode, bool verifyoop = true);
    58   void dispatch_base(TosState state, DispatchTableMode table_mode, bool verifyoop = true);
    62 
    59 
    63  public:
    60  public:
    64   InterpreterMacroAssembler(CodeBuffer* code);
    61   InterpreterMacroAssembler(CodeBuffer* code);
       
    62 
       
    63   virtual void check_and_handle_popframe();
       
    64   virtual void check_and_handle_earlyret();
    65 
    65 
    66   // Interpreter-specific registers
    66   // Interpreter-specific registers
    67 #if defined(AARCH64) && defined(ASSERT)
    67 #if defined(AARCH64) && defined(ASSERT)
    68 
    68 
    69 #define check_stack_top()               _check_stack_top("invalid Rstack_top at " __FILE__ ":" XSTR(__LINE__))
    69 #define check_stack_top()               _check_stack_top("invalid Rstack_top at " __FILE__ ":" XSTR(__LINE__))
   326   void notify_method_exit(TosState state, NotifyMethodExitMode mode,
   326   void notify_method_exit(TosState state, NotifyMethodExitMode mode,
   327                           bool native = false, Register result_lo = noreg, Register result_hi = noreg, FloatRegister result_fp = fnoreg);
   327                           bool native = false, Register result_lo = noreg, Register result_hi = noreg, FloatRegister result_fp = fnoreg);
   328 
   328 
   329   void trace_state(const char* msg) PRODUCT_RETURN;
   329   void trace_state(const char* msg) PRODUCT_RETURN;
   330 
   330 
   331   void get_method_counters(Register method, Register Rcounters, Label& skip);
   331 void get_method_counters(Register method,
       
   332                          Register Rcounters,
       
   333                          Label& skip,
       
   334                          bool saveRegs = false,
       
   335                          Register reg1 = noreg,
       
   336                          Register reg2 = noreg,
       
   337                          Register reg3 = noreg);
   332 };
   338 };
   333 
   339 
   334 #endif // CPU_ARM_VM_INTERP_MASM_ARM_HPP
   340 #endif // CPU_ARM_VM_INTERP_MASM_ARM_HPP