src/cpu/sparc/vm/interp_masm_sparc.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6829193 Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/interp_masm_sparc.hpp

Print this page




 174 
 175  public:
 176   void if_cmp(Condition cc, bool ptr_compare);
 177 
 178   // Load values from bytecode stream:
 179 
 180   enum signedOrNot { Signed, Unsigned };
 181   enum setCCOrNot  { set_CC,  dont_set_CC };
 182 
 183   void get_2_byte_integer_at_bcp( int         bcp_offset,
 184                                   Register    Rtmp,
 185                                   Register    Rdst,
 186                                   signedOrNot is_signed,
 187                                   setCCOrNot  should_set_CC = dont_set_CC );
 188 
 189   void get_4_byte_integer_at_bcp( int        bcp_offset,
 190                                   Register   Rtmp,
 191                                   Register   Rdst,
 192                                   setCCOrNot should_set_CC = dont_set_CC );
 193 
 194   void get_cache_and_index_at_bcp(Register cache, Register tmp, int bcp_offset);
 195   void get_cache_entry_pointer_at_bcp(Register cache, Register tmp, int bcp_offset);

 196 
 197 
 198   // common code
 199 
 200   void field_offset_at(int n, Register tmp, Register dest, Register base);
 201   int  field_offset_at(Register object, address bcp, int offset);
 202   void fast_iaaccess(int n, address bcp);
 203   void fast_iagetfield(address bcp);
 204   void fast_iaputfield(address bcp, bool do_store_check );
 205 
 206   void index_check(Register array, Register index, int index_shift, Register tmp, Register res);
 207   void index_check_without_pop(Register array, Register index, int index_shift, Register tmp, Register res);
 208 
 209   void get_constant_pool(Register Rdst);
 210   void get_constant_pool_cache(Register Rdst);
 211   void get_cpool_and_tags(Register Rcpool, Register Rtags);
 212   void is_a(Label& L);
 213 
 214   // Load compiled (i2c) or interpreter entry and call from interpreted
 215   void call_from_interpreter(Register target, Register scratch, Register Rret);


 287                              Register bumped_count, Register scratch2,
 288                              bool decrement = false);
 289   void set_mdp_flag_at(int flag_constant, Register scratch);
 290   void test_mdp_data_at(int offset, Register value, Label& not_equal_continue,
 291                         Register scratch);
 292 
 293   void record_klass_in_profile(Register receiver, Register scratch, bool is_virtual_call);
 294   void record_klass_in_profile_helper(Register receiver, Register scratch,
 295                                       int start_row, Label& done, bool is_virtual_call);
 296 
 297   void update_mdp_by_offset(int offset_of_disp, Register scratch);
 298   void update_mdp_by_offset(Register reg, int offset_of_disp,
 299                             Register scratch);
 300   void update_mdp_by_constant(int constant);
 301   void update_mdp_for_ret(TosState state, Register return_bci);
 302 
 303   void profile_taken_branch(Register scratch, Register bumped_count);
 304   void profile_not_taken_branch(Register scratch);
 305   void profile_call(Register scratch);
 306   void profile_final_call(Register scratch);
 307   void profile_virtual_call(Register receiver, Register scratch);
 308   void profile_ret(TosState state, Register return_bci, Register scratch);
 309   void profile_null_seen(Register scratch);
 310   void profile_typecheck(Register klass, Register scratch);
 311   void profile_typecheck_failed(Register scratch);
 312   void profile_switch_default(Register scratch);
 313   void profile_switch_case(Register index,
 314                            Register scratch1,
 315                            Register scratch2,
 316                            Register scratch3);
 317 
 318   // Debugging
 319   void interp_verify_oop(Register reg, TosState state, const char * file, int line);    // only if +VerifyOops && state == atos
 320   void verify_oop_or_return_address(Register reg, Register rtmp); // for astore
 321   void verify_FPU(int stack_depth, TosState state = ftos); // only if +VerifyFPU  && (state == ftos || state == dtos)
 322 
 323 #endif /* CC_INTERP */
 324   // support for JVMTI/Dtrace
 325   typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
 326   void notify_method_entry();
 327   void notify_method_exit(


 174 
 175  public:
 176   void if_cmp(Condition cc, bool ptr_compare);
 177 
 178   // Load values from bytecode stream:
 179 
 180   enum signedOrNot { Signed, Unsigned };
 181   enum setCCOrNot  { set_CC,  dont_set_CC };
 182 
 183   void get_2_byte_integer_at_bcp( int         bcp_offset,
 184                                   Register    Rtmp,
 185                                   Register    Rdst,
 186                                   signedOrNot is_signed,
 187                                   setCCOrNot  should_set_CC = dont_set_CC );
 188 
 189   void get_4_byte_integer_at_bcp( int        bcp_offset,
 190                                   Register   Rtmp,
 191                                   Register   Rdst,
 192                                   setCCOrNot should_set_CC = dont_set_CC );
 193 
 194   void get_cache_and_index_at_bcp(Register cache, Register tmp, int bcp_offset, bool giant_index = false);
 195   void get_cache_entry_pointer_at_bcp(Register cache, Register tmp, int bcp_offset, bool giant_index = false);
 196   void get_cache_index_at_bcp(Register cache, Register tmp, int bcp_offset, bool giant_index = false);
 197 
 198 
 199   // common code
 200 
 201   void field_offset_at(int n, Register tmp, Register dest, Register base);
 202   int  field_offset_at(Register object, address bcp, int offset);
 203   void fast_iaaccess(int n, address bcp);
 204   void fast_iagetfield(address bcp);
 205   void fast_iaputfield(address bcp, bool do_store_check );
 206 
 207   void index_check(Register array, Register index, int index_shift, Register tmp, Register res);
 208   void index_check_without_pop(Register array, Register index, int index_shift, Register tmp, Register res);
 209 
 210   void get_constant_pool(Register Rdst);
 211   void get_constant_pool_cache(Register Rdst);
 212   void get_cpool_and_tags(Register Rcpool, Register Rtags);
 213   void is_a(Label& L);
 214 
 215   // Load compiled (i2c) or interpreter entry and call from interpreted
 216   void call_from_interpreter(Register target, Register scratch, Register Rret);


 288                              Register bumped_count, Register scratch2,
 289                              bool decrement = false);
 290   void set_mdp_flag_at(int flag_constant, Register scratch);
 291   void test_mdp_data_at(int offset, Register value, Label& not_equal_continue,
 292                         Register scratch);
 293 
 294   void record_klass_in_profile(Register receiver, Register scratch, bool is_virtual_call);
 295   void record_klass_in_profile_helper(Register receiver, Register scratch,
 296                                       int start_row, Label& done, bool is_virtual_call);
 297 
 298   void update_mdp_by_offset(int offset_of_disp, Register scratch);
 299   void update_mdp_by_offset(Register reg, int offset_of_disp,
 300                             Register scratch);
 301   void update_mdp_by_constant(int constant);
 302   void update_mdp_for_ret(TosState state, Register return_bci);
 303 
 304   void profile_taken_branch(Register scratch, Register bumped_count);
 305   void profile_not_taken_branch(Register scratch);
 306   void profile_call(Register scratch);
 307   void profile_final_call(Register scratch);
 308   void profile_virtual_call(Register receiver, Register scratch, bool receiver_can_be_null = false);
 309   void profile_ret(TosState state, Register return_bci, Register scratch);
 310   void profile_null_seen(Register scratch);
 311   void profile_typecheck(Register klass, Register scratch);
 312   void profile_typecheck_failed(Register scratch);
 313   void profile_switch_default(Register scratch);
 314   void profile_switch_case(Register index,
 315                            Register scratch1,
 316                            Register scratch2,
 317                            Register scratch3);
 318 
 319   // Debugging
 320   void interp_verify_oop(Register reg, TosState state, const char * file, int line);    // only if +VerifyOops && state == atos
 321   void verify_oop_or_return_address(Register reg, Register rtmp); // for astore
 322   void verify_FPU(int stack_depth, TosState state = ftos); // only if +VerifyFPU  && (state == ftos || state == dtos)
 323 
 324 #endif /* CC_INTERP */
 325   // support for JVMTI/Dtrace
 326   typedef enum { NotifyJVMTI, SkipNotifyJVMTI } NotifyMethodExitMode;
 327   void notify_method_entry();
 328   void notify_method_exit(
src/cpu/sparc/vm/interp_masm_sparc.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File