Lines Matching refs:obj

38 int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Register scratch, Label& slow_case) {
42 assert(hdr != obj && hdr != disp_hdr && obj != disp_hdr, "registers must be different");
46 verify_oop(obj);
49 movptr(Address(disp_hdr, BasicObjectLock::obj_offset_in_bytes()), obj);
53 null_check_offset = biased_locking_enter(disp_hdr, obj, hdr, scratch, false, done, &slow_case);
59 movptr(hdr, Address(obj, hdr_offset));
68 cmpxchgptr(disp_hdr, Address(obj, hdr_offset));
101 void C1_MacroAssembler::unlock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) {
105 assert(hdr != obj && hdr != disp_hdr && obj != disp_hdr, "registers must be different");
110 movptr(obj, Address(disp_hdr, BasicObjectLock::obj_offset_in_bytes()));
111 biased_locking_exit(obj, hdr, done);
122 movptr(obj, Address(disp_hdr, BasicObjectLock::obj_offset_in_bytes()));
124 verify_oop(obj);
129 cmpxchgptr(hdr, Address(obj, hdr_offset));
138 // Defines obj, preserves var_size_in_bytes
139 void C1_MacroAssembler::try_allocate(Register obj, Register var_size_in_bytes, int con_size_in_bytes, Register t1, Register t2, Label& slow_case) {
141 tlab_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, t2, slow_case);
143 eden_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, slow_case);
149 void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register len, Register t1, Register t2) {
150 assert_different_registers(obj, klass, len);
152 assert_different_registers(obj, klass, len, t1, t2);
154 movptr(Address(obj, oopDesc::mark_offset_in_bytes()), t1);
157 movptr(Address(obj, oopDesc::mark_offset_in_bytes ()), (int32_t)(intptr_t)markOopDesc::prototype());
163 movl(Address(obj, oopDesc::klass_offset_in_bytes()), t1);
167 movptr(Address(obj, oopDesc::klass_offset_in_bytes()), klass);
171 movl(Address(obj, arrayOopDesc::length_offset_in_bytes()), len);
176 store_klass_gap(obj, t1);
182 // preserves obj, destroys len_in_bytes
183 void C1_MacroAssembler::initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1) {
185 assert(obj != len_in_bytes && obj != t1 && t1 != len_in_bytes, "registers must be different");
216 movptr(Address(obj, index, Address::times_8, hdr_size_in_bytes - 0*BytesPerWord), t1);
225 movptr(Address(obj, index, Address::times_8, hdr_size_in_bytes - 1*BytesPerWord), t1);
226 NOT_LP64(movptr(Address(obj, index, Address::times_8, hdr_size_in_bytes - 2*BytesPerWord), t1);)
236 void C1_MacroAssembler::allocate_object(Register obj, Register t1, Register t2, int header_size, int object_size, Register klass, Label& slow_case) {
237 assert(obj == rax, "obj must be in rax, for cmpxchg");
238 assert_different_registers(obj, t1, t2); // XXX really?
241 try_allocate(obj, noreg, object_size * BytesPerWord, t1, t2, slow_case);
243 initialize_object(obj, klass, noreg, object_size * HeapWordSize, t1, t2);
246 void C1_MacroAssembler::initialize_object(Register obj, Register klass, Register var_size_in_bytes, int con_size_in_bytes, Register t1, Register t2) {
251 initialize_header(obj, klass, noreg, t1, t2);
259 initialize_body(obj, index, hdr_size_in_bytes, t1_zero);
265 movptr(Address(obj, i), t1_zero);
274 movptr(Address(obj, con_size_in_bytes - (1*BytesPerWord)), t1_zero);
278 movptr(Address(obj, index, Address::times_8, hdr_size_in_bytes - (1*BytesPerWord)),
280 NOT_LP64(movptr(Address(obj, index, Address::times_8, hdr_size_in_bytes - (2*BytesPerWord)),
288 assert(obj == rax, "must be");
292 verify_oop(obj);
295 void C1_MacroAssembler::allocate_array(Register obj, Register len, Register t1, Register t2, int header_size, Address::ScaleFactor f, Register klass, Label& slow_case) {
296 assert(obj == rax, "obj must be in rax, for cmpxchg");
297 assert_different_registers(obj, len, t1, t2, klass);
312 try_allocate(obj, arr_size, 0, t1, t2, slow_case);
314 initialize_header(obj, klass, len, t1, t2);
318 initialize_body(obj, arr_size, header_size * BytesPerWord, len_zero);
321 assert(obj == rax, "must be");
325 verify_oop(obj);