< prev index next >

src/hotspot/cpu/ppc/interp_masm_ppc.hpp

Print this page
rev 48251 : 8193257: PPC64, s390 implementation for Thread-local handshakes
Reviewed-by:


  40   void null_check_throw(Register a, int offset, Register temp_reg);
  41 
  42   void jump_to_entry(address entry, Register Rscratch);
  43 
  44   // Handy address generation macros.
  45 #define thread_(field_name) in_bytes(JavaThread::field_name ## _offset()), R16_thread
  46 #define method_(field_name) in_bytes(Method::field_name ## _offset()), R19_method
  47 
  48   virtual void check_and_handle_popframe(Register scratch_reg);
  49   virtual void check_and_handle_earlyret(Register scratch_reg);
  50 
  51   // Base routine for all dispatches.
  52   void dispatch_base(TosState state, address* table);
  53 
  54   void load_earlyret_value(TosState state, Register Rscratch1);
  55 
  56   static const Address l_tmp;
  57   static const Address d_tmp;
  58 
  59   // dispatch routines
  60   void dispatch_next(TosState state, int step = 0);
  61   void dispatch_via (TosState state, address* table);
  62   void load_dispatch_table(Register dst, address* table);
  63   void dispatch_Lbyte_code(TosState state, Register bytecode, address* table, bool verify = false);
  64 
  65   // Called by shared interpreter generator.
  66   void dispatch_prolog(TosState state, int step = 0);
  67   void dispatch_epilog(TosState state, int step = 0);
  68 
  69   // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls.
  70   void super_call_VM_leaf(Register thread_cache, address entry_point, Register arg_1);
  71   void super_call_VM(Register thread_cache, Register oop_result, Register last_java_sp,
  72                      address entry_point, Register arg_1, Register arg_2, bool check_exception = true);
  73 
  74   // Generate a subtype check: branch to ok_is_subtype if sub_klass is
  75   // a subtype of super_klass.  Blows registers tmp1, tmp2 and tmp3.
  76   void gen_subtype_check(Register sub_klass, Register super_klass,
  77                          Register tmp1, Register tmp2, Register tmp3, Label &ok_is_subtype);
  78 
  79   // Load object from cpool->resolved_references(index).
  80   void load_resolved_reference_at_index(Register result, Register index, Label *is_null = NULL);
  81 
  82   // load cpool->resolved_klass_at(index)
  83   void load_resolved_klass_at_offset(Register Rcpool, Register Roffset, Register Rklass);




  40   void null_check_throw(Register a, int offset, Register temp_reg);
  41 
  42   void jump_to_entry(address entry, Register Rscratch);
  43 
  44   // Handy address generation macros.
  45 #define thread_(field_name) in_bytes(JavaThread::field_name ## _offset()), R16_thread
  46 #define method_(field_name) in_bytes(Method::field_name ## _offset()), R19_method
  47 
  48   virtual void check_and_handle_popframe(Register scratch_reg);
  49   virtual void check_and_handle_earlyret(Register scratch_reg);
  50 
  51   // Base routine for all dispatches.
  52   void dispatch_base(TosState state, address* table);
  53 
  54   void load_earlyret_value(TosState state, Register Rscratch1);
  55 
  56   static const Address l_tmp;
  57   static const Address d_tmp;
  58 
  59   // dispatch routines
  60   void dispatch_next(TosState state, int step = 0, bool generate_poll = false);
  61   void dispatch_via (TosState state, address* table);
  62   void load_dispatch_table(Register dst, address* table);
  63   void dispatch_Lbyte_code(TosState state, Register bytecode, address* table, bool generate_poll = false);
  64 
  65   // Called by shared interpreter generator.
  66   void dispatch_prolog(TosState state, int step = 0);
  67   void dispatch_epilog(TosState state, int step = 0);
  68 
  69   // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls.
  70   void super_call_VM_leaf(Register thread_cache, address entry_point, Register arg_1);
  71   void super_call_VM(Register thread_cache, Register oop_result, Register last_java_sp,
  72                      address entry_point, Register arg_1, Register arg_2, bool check_exception = true);
  73 
  74   // Generate a subtype check: branch to ok_is_subtype if sub_klass is
  75   // a subtype of super_klass.  Blows registers tmp1, tmp2 and tmp3.
  76   void gen_subtype_check(Register sub_klass, Register super_klass,
  77                          Register tmp1, Register tmp2, Register tmp3, Label &ok_is_subtype);
  78 
  79   // Load object from cpool->resolved_references(index).
  80   void load_resolved_reference_at_index(Register result, Register index, Label *is_null = NULL);
  81 
  82   // load cpool->resolved_klass_at(index)
  83   void load_resolved_klass_at_offset(Register Rcpool, Register Roffset, Register Rklass);


< prev index next >