< 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 >