hotspot/src/cpu/sparc/vm/assembler_sparc.hpp
changeset 13391 30245956af37
parent 12103 2ceb7aff05e3
child 13728 882756847a04
equal deleted inserted replaced
13309:50c604cb0d5f 13391:30245956af37
  2536                                RegisterOrConstant itable_index,
  2536                                RegisterOrConstant itable_index,
  2537                                Register method_result,
  2537                                Register method_result,
  2538                                Register temp_reg, Register temp2_reg,
  2538                                Register temp_reg, Register temp2_reg,
  2539                                Label& no_such_interface);
  2539                                Label& no_such_interface);
  2540 
  2540 
       
  2541   // virtual method calling
       
  2542   void lookup_virtual_method(Register recv_klass,
       
  2543                              RegisterOrConstant vtable_index,
       
  2544                              Register method_result);
       
  2545 
  2541   // Test sub_klass against super_klass, with fast and slow paths.
  2546   // Test sub_klass against super_klass, with fast and slow paths.
  2542 
  2547 
  2543   // The fast path produces a tri-state answer: yes / no / maybe-slow.
  2548   // The fast path produces a tri-state answer: yes / no / maybe-slow.
  2544   // One of the three labels can be NULL, meaning take the fall-through.
  2549   // One of the three labels can be NULL, meaning take the fall-through.
  2545   // If super_check_offset is -1, the value is loaded up from super_klass.
  2550   // If super_check_offset is -1, the value is loaded up from super_klass.
  2575                            Register temp_reg,
  2580                            Register temp_reg,
  2576                            Register temp2_reg,
  2581                            Register temp2_reg,
  2577                            Label& L_success);
  2582                            Label& L_success);
  2578 
  2583 
  2579   // method handles (JSR 292)
  2584   // method handles (JSR 292)
  2580   void check_method_handle_type(Register mtype_reg, Register mh_reg,
       
  2581                                 Register temp_reg,
       
  2582                                 Label& wrong_method_type);
       
  2583   void load_method_handle_vmslots(Register vmslots_reg, Register mh_reg,
       
  2584                                   Register temp_reg);
       
  2585   void jump_to_method_handle_entry(Register mh_reg, Register temp_reg, bool emit_delayed_nop = true);
       
  2586   // offset relative to Gargs of argument at tos[arg_slot].
  2585   // offset relative to Gargs of argument at tos[arg_slot].
  2587   // (arg_slot == 0 means the last argument, not the first).
  2586   // (arg_slot == 0 means the last argument, not the first).
  2588   RegisterOrConstant argument_offset(RegisterOrConstant arg_slot,
  2587   RegisterOrConstant argument_offset(RegisterOrConstant arg_slot,
  2589                                      Register temp_reg,
  2588                                      Register temp_reg,
  2590                                      int extra_slot_offset = 0);
  2589                                      int extra_slot_offset = 0);
  2591   // Address of Gargs and argument_offset.
  2590   // Address of Gargs and argument_offset.
  2592   Address            argument_address(RegisterOrConstant arg_slot,
  2591   Address            argument_address(RegisterOrConstant arg_slot,
  2593                                       Register temp_reg,
  2592                                       Register temp_reg = noreg,
  2594                                       int extra_slot_offset = 0);
  2593                                       int extra_slot_offset = 0);
  2595 
  2594 
  2596   // Stack overflow checking
  2595   // Stack overflow checking
  2597 
  2596 
  2598   // Note: this clobbers G3_scratch
  2597   // Note: this clobbers G3_scratch