< prev index next >

src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp

Print this page
rev 54670 : Port of valuetypes to aarch64


 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 
< prev index next >