212
213 incr_allocated_bytes(masm, var_size_in_bytes, con_size_in_bytes, t1);
214 }
215 }
216
217 void BarrierSetAssembler::incr_allocated_bytes(MacroAssembler* masm,
218 Register var_size_in_bytes,
219 int con_size_in_bytes,
220 Register t1) {
221 assert(t1->is_valid(), "need temp reg");
222
223 __ ldr(t1, Address(rthread, in_bytes(JavaThread::allocated_bytes_offset())));
224 if (var_size_in_bytes->is_valid()) {
225 __ add(t1, t1, var_size_in_bytes);
226 } else {
227 __ add(t1, t1, con_size_in_bytes);
228 }
229 __ str(t1, Address(rthread, in_bytes(JavaThread::allocated_bytes_offset())));
230 }
231
|
212
213 incr_allocated_bytes(masm, var_size_in_bytes, con_size_in_bytes, t1);
214 }
215 }
216
217 void BarrierSetAssembler::incr_allocated_bytes(MacroAssembler* masm,
218 Register var_size_in_bytes,
219 int con_size_in_bytes,
220 Register t1) {
221 assert(t1->is_valid(), "need temp reg");
222
223 __ ldr(t1, Address(rthread, in_bytes(JavaThread::allocated_bytes_offset())));
224 if (var_size_in_bytes->is_valid()) {
225 __ add(t1, t1, var_size_in_bytes);
226 } else {
227 __ add(t1, t1, con_size_in_bytes);
228 }
229 __ str(t1, Address(rthread, in_bytes(JavaThread::allocated_bytes_offset())));
230 }
231
232 void BarrierSetAssembler::nmethod_entry_barrier(MacroAssembler* masm) {
233 // DMS CHECK: 8210498: nmethod entry barriers, should we implement it?
234 #if 0
235 BarrierSetNMethod* bs_nm = BarrierSet::barrier_set()->barrier_set_nmethod();
236 if (bs_nm == NULL) {
237 return;
238 }
239 Label continuation;
240 Address disarmed_addr(rthread, in_bytes(bs_nm->thread_disarmed_offset()));
241 __ align(8);
242 __ ldr(rscratch1, disarmed_addr);
243 __ cbz(rscratch1, continuation);
244 __ blr(RuntimeAddress(StubRoutines::aarch64::method_entry_barrier()));
245 __ bind(continuation);
246 #endif
247 }
248
|