< prev index next >

src/cpu/ppc/vm/interp_masm_ppc.hpp

Print this page
rev 13142 : 8181809: PPC64: Leverage mtfprd/mffprd on POWER8
Reviewed-by: mdoerr, simonis
Contributed-by: Matthew Brandyberry <mbrandy@linux.vnet.ibm.com>


  82   // load cpool->resolved_klass_at(index)
  83   void load_resolved_klass_at_offset(Register Rcpool, Register Roffset, Register Rklass);
  84 
  85   void load_receiver(Register Rparam_count, Register Rrecv_dst);
  86 
  87   // helpers for expression stack
  88   void pop_i(     Register r = R17_tos);
  89   void pop_ptr(   Register r = R17_tos);
  90   void pop_l(     Register r = R17_tos);
  91   void pop_f(FloatRegister f = F15_ftos);
  92   void pop_d(FloatRegister f = F15_ftos );
  93 
  94   void push_i(     Register r = R17_tos);
  95   void push_ptr(   Register r = R17_tos);
  96   void push_l(     Register r = R17_tos);
  97   void push_f(FloatRegister f = F15_ftos );
  98   void push_d(FloatRegister f = F15_ftos);
  99 
 100   void push_2ptrs(Register first, Register second);
 101 
 102   void push_l_pop_d(Register l = R17_tos, FloatRegister d = F15_ftos);
 103   void push_d_pop_l(FloatRegister d = F15_ftos, Register l = R17_tos);
 104 
 105   void pop (TosState state);           // transition vtos -> state
 106   void push(TosState state);           // transition state -> vtos
 107   void empty_expression_stack();       // Resets both Lesp and SP.
 108 
 109  public:
 110   // Load values from bytecode stream:
 111 
 112   enum signedOrNot { Signed, Unsigned };
 113   enum setCCOrNot  { set_CC, dont_set_CC };
 114 
 115   void get_2_byte_integer_at_bcp(int         bcp_offset,
 116                                  Register    Rdst,
 117                                  signedOrNot is_signed);
 118 
 119   void get_4_byte_integer_at_bcp(int         bcp_offset,
 120                                  Register    Rdst,
 121                                  signedOrNot is_signed = Unsigned);
 122 
 123   void get_cache_index_at_bcp(Register Rdst, int bcp_offset, size_t index_size);




  82   // load cpool->resolved_klass_at(index)
  83   void load_resolved_klass_at_offset(Register Rcpool, Register Roffset, Register Rklass);
  84 
  85   void load_receiver(Register Rparam_count, Register Rrecv_dst);
  86 
  87   // helpers for expression stack
  88   void pop_i(     Register r = R17_tos);
  89   void pop_ptr(   Register r = R17_tos);
  90   void pop_l(     Register r = R17_tos);
  91   void pop_f(FloatRegister f = F15_ftos);
  92   void pop_d(FloatRegister f = F15_ftos );
  93 
  94   void push_i(     Register r = R17_tos);
  95   void push_ptr(   Register r = R17_tos);
  96   void push_l(     Register r = R17_tos);
  97   void push_f(FloatRegister f = F15_ftos );
  98   void push_d(FloatRegister f = F15_ftos);
  99 
 100   void push_2ptrs(Register first, Register second);
 101 
 102   void move_l_to_d(Register l = R17_tos, FloatRegister d = F15_ftos);
 103   void move_d_to_l(FloatRegister d = F15_ftos, Register l = R17_tos);
 104 
 105   void pop (TosState state);           // transition vtos -> state
 106   void push(TosState state);           // transition state -> vtos
 107   void empty_expression_stack();       // Resets both Lesp and SP.
 108 
 109  public:
 110   // Load values from bytecode stream:
 111 
 112   enum signedOrNot { Signed, Unsigned };
 113   enum setCCOrNot  { set_CC, dont_set_CC };
 114 
 115   void get_2_byte_integer_at_bcp(int         bcp_offset,
 116                                  Register    Rdst,
 117                                  signedOrNot is_signed);
 118 
 119   void get_4_byte_integer_at_bcp(int         bcp_offset,
 120                                  Register    Rdst,
 121                                  signedOrNot is_signed = Unsigned);
 122 
 123   void get_cache_index_at_bcp(Register Rdst, int bcp_offset, size_t index_size);


< prev index next >