< prev index next >

src/hotspot/cpu/x86/c2_CodeStubs_x86.cpp

Print this page

 76 #ifdef _LP64
 77 int C2HandleAnonOMOwnerStub::max_size() const {
 78   // Max size of stub has been determined by testing with 0, in which case
 79   // C2CodeStubList::emit() will throw an assertion and report the actual size that
 80   // is needed.
 81   return DEBUG_ONLY(36) NOT_DEBUG(21);
 82 }
 83 
 84 void C2HandleAnonOMOwnerStub::emit(C2_MacroAssembler& masm) {
 85   __ bind(entry());
 86   Register mon = monitor();
 87   Register t = tmp();
 88   __ movptr(Address(mon, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)), r15_thread);
 89   __ subl(Address(r15_thread, JavaThread::lock_stack_top_offset()), oopSize);
 90 #ifdef ASSERT
 91   __ movl(t, Address(r15_thread, JavaThread::lock_stack_top_offset()));
 92   __ movptr(Address(r15_thread, t), 0);
 93 #endif
 94   __ jmp(continuation());
 95 }











 96 #endif
 97 
 98 #undef __

 76 #ifdef _LP64
 77 int C2HandleAnonOMOwnerStub::max_size() const {
 78   // Max size of stub has been determined by testing with 0, in which case
 79   // C2CodeStubList::emit() will throw an assertion and report the actual size that
 80   // is needed.
 81   return DEBUG_ONLY(36) NOT_DEBUG(21);
 82 }
 83 
 84 void C2HandleAnonOMOwnerStub::emit(C2_MacroAssembler& masm) {
 85   __ bind(entry());
 86   Register mon = monitor();
 87   Register t = tmp();
 88   __ movptr(Address(mon, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)), r15_thread);
 89   __ subl(Address(r15_thread, JavaThread::lock_stack_top_offset()), oopSize);
 90 #ifdef ASSERT
 91   __ movl(t, Address(r15_thread, JavaThread::lock_stack_top_offset()));
 92   __ movptr(Address(r15_thread, t), 0);
 93 #endif
 94   __ jmp(continuation());
 95 }
 96 
 97 int C2LoadNKlassStub::max_size() const {
 98   return 10;
 99 }
100 
101 void C2LoadNKlassStub::emit(C2_MacroAssembler& masm) {
102   __ bind(entry());
103   Register d = dst();
104   __ movq(d, Address(d, OM_OFFSET_NO_MONITOR_VALUE_TAG(header)));
105   __ jmp(continuation());
106 }
107 #endif
108 
109 #undef __
< prev index next >