< prev index next >

src/hotspot/cpu/x86/interp_masm_x86.hpp

Print this page

        

*** 225,244 **** // 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 // 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); // Object locking void lock_object (Register lock_reg); void unlock_object(Register lock_reg); // Interpreter profiling operations --- 225,253 ---- // 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 "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 >