< prev index next >

src/hotspot/cpu/x86/interp_masm_x86.hpp

Print this page

        

@@ -225,20 +225,29 @@
 
   // Kills t1 and t2, perserves klass, return allocation in new_obj
   void allocate_instance(Register klass, Register new_obj,
                          Register t1, Register t2,
                          bool clear_fields, Label& alloc_failed);
-  // Allocate value buffer in new_obj and read in flattened field
+  // Allocate value buffer in "obj" and read in flattened field
   // NOTES:
   //   - input holder object via "obj", which must be rax,
   //     will return new value buffer obj via the same reg
   //   - assumes holder_klass and valueKlass field klass have both been resolved
   //   - 32 bits: kills rdi and rsi
   void read_flattened_field(Register holder_klass,
                             Register field_index, Register field_offset,
                             Register obj = rax);
 
+  // Allocate value buffer in "obj" and read in flattened element at the given index
+  // NOTES:
+  //   - Return via "obj" must be rax
+  //   - kills all given regs
+  //   - 32 bits: kills rdi and rsi
+  void read_flattened_element(Register array, Register index,
+                              Register t1, Register t2,
+                              Register obj = rax);
+
   // Object locking
   void lock_object  (Register lock_reg);
   void unlock_object(Register lock_reg);
 
   // Interpreter profiling operations
< prev index next >