equal
deleted
inserted
replaced
90 assert_different_registers(obj, klass, len, tmp); |
90 assert_different_registers(obj, klass, len, tmp); |
91 |
91 |
92 if(UseBiasedLocking && !len->is_valid()) { |
92 if(UseBiasedLocking && !len->is_valid()) { |
93 ldr(tmp, Address(klass, Klass::prototype_header_offset())); |
93 ldr(tmp, Address(klass, Klass::prototype_header_offset())); |
94 } else { |
94 } else { |
95 mov(tmp, (intptr_t)markOopDesc::prototype()); |
95 mov(tmp, (intptr_t)markWord::prototype().value()); |
96 } |
96 } |
97 |
97 |
98 str(tmp, Address(obj, oopDesc::mark_offset_in_bytes())); |
98 str(tmp, Address(obj, oopDesc::mark_offset_in_bytes())); |
99 str(klass, Address(obj, oopDesc::klass_offset_in_bytes())); |
99 str(klass, Address(obj, oopDesc::klass_offset_in_bytes())); |
100 |
100 |
217 |
217 |
218 // Must be the first instruction here, because implicit null check relies on it |
218 // Must be the first instruction here, because implicit null check relies on it |
219 ldr(hdr, Address(obj, oopDesc::mark_offset_in_bytes())); |
219 ldr(hdr, Address(obj, oopDesc::mark_offset_in_bytes())); |
220 |
220 |
221 str(obj, Address(disp_hdr, obj_offset)); |
221 str(obj, Address(disp_hdr, obj_offset)); |
222 tst(hdr, markOopDesc::unlocked_value); |
222 tst(hdr, markWord::unlocked_value); |
223 b(fast_lock, ne); |
223 b(fast_lock, ne); |
224 |
224 |
225 // Check for recursive locking |
225 // Check for recursive locking |
226 // See comments in InterpreterMacroAssembler::lock_object for |
226 // See comments in InterpreterMacroAssembler::lock_object for |
227 // explanations on the fast recursive locking check. |
227 // explanations on the fast recursive locking check. |