< prev index next >

src/hotspot/cpu/aarch64/c2_CodeStubs_aarch64.cpp

Print this page

 74 void C2HandleAnonOMOwnerStub::emit(C2_MacroAssembler& masm) {
 75   __ bind(entry());
 76   Register mon = monitor();
 77   Register t = tmp();
 78   assert(t != noreg, "need tmp register");
 79 
 80   // Fix owner to be the current thread.
 81   __ str(rthread, Address(mon, ObjectMonitor::owner_offset()));
 82 
 83   // Pop owner object from lock-stack.
 84   __ ldrw(t, Address(rthread, JavaThread::lock_stack_top_offset()));
 85   __ subw(t, t, oopSize);
 86 #ifdef ASSERT
 87   __ str(zr, Address(rthread, t));
 88 #endif
 89   __ strw(t, Address(rthread, JavaThread::lock_stack_top_offset()));
 90 
 91   __ b(continuation());
 92 }
 93 











 94 #undef __

 74 void C2HandleAnonOMOwnerStub::emit(C2_MacroAssembler& masm) {
 75   __ bind(entry());
 76   Register mon = monitor();
 77   Register t = tmp();
 78   assert(t != noreg, "need tmp register");
 79 
 80   // Fix owner to be the current thread.
 81   __ str(rthread, Address(mon, ObjectMonitor::owner_offset()));
 82 
 83   // Pop owner object from lock-stack.
 84   __ ldrw(t, Address(rthread, JavaThread::lock_stack_top_offset()));
 85   __ subw(t, t, oopSize);
 86 #ifdef ASSERT
 87   __ str(zr, Address(rthread, t));
 88 #endif
 89   __ strw(t, Address(rthread, JavaThread::lock_stack_top_offset()));
 90 
 91   __ b(continuation());
 92 }
 93 
 94 int C2LoadNKlassStub::max_size() const {
 95   return 8;
 96 }
 97 
 98 void C2LoadNKlassStub::emit(C2_MacroAssembler& masm) {
 99   __ bind(entry());
100   Register d = dst();
101   __ ldr(d, Address(d, OM_OFFSET_NO_MONITOR_VALUE_TAG(header)));
102   __ b(continuation());
103 }
104 
105 #undef __
< prev index next >