< prev index next >


Print this page


@@ -28,10 +28,12 @@
 #include "asm/macroAssembler.inline.hpp"
 #include "interpreter/invocationCounter.hpp"
 // This file specializes the assember with interpreter-specific macros
+typedef ByteSize (*OffsetFunction)(uint);
 REGISTER_DECLARATION(     Register, Otos_i , O0); // tos for ints, etc
 REGISTER_DECLARATION(     Register, Otos_l , O0); // for longs
 REGISTER_DECLARATION(     Register, Otos_l1, O0); // for 1st part of longs
 REGISTER_DECLARATION(     Register, Otos_l2, O1); // for 2nd part of longs
 REGISTER_DECLARATION(FloatRegister, Ftos_f , F0); // for floats

@@ -299,11 +301,15 @@
   void test_mdp_data_at(int offset, Register value, Label& not_equal_continue,
                         Register scratch);
   void record_klass_in_profile(Register receiver, Register scratch, bool is_virtual_call);
   void record_klass_in_profile_helper(Register receiver, Register scratch,
-                                      int start_row, Label& done, bool is_virtual_call);
+                                      Label& done, bool is_virtual_call);
+  void record_item_in_profile_helper(Register item,
+                                     Register scratch, int start_row, Label& done, int total_rows,
+                                     OffsetFunction item_offset_fn, OffsetFunction item_count_offset_fn,
+                                     int non_profiled_offset);
   void update_mdp_by_offset(int offset_of_disp, Register scratch);
   void update_mdp_by_offset(Register reg, int offset_of_disp,
                             Register scratch);
   void update_mdp_by_constant(int constant);

@@ -312,10 +318,11 @@
   void profile_taken_branch(Register scratch, Register bumped_count);
   void profile_not_taken_branch(Register scratch);
   void profile_call(Register scratch);
   void profile_final_call(Register scratch);
   void profile_virtual_call(Register receiver, Register scratch, bool receiver_can_be_null = false);
+  void profile_called_method(Register method, Register scratch) NOT_JVMCI_RETURN;
   void profile_ret(TosState state, Register return_bci, Register scratch);
   void profile_null_seen(Register scratch);
   void profile_typecheck(Register klass, Register scratch);
   void profile_typecheck_failed(Register scratch);
   void profile_switch_default(Register scratch);
< prev index next >