hotspot/src/cpu/aarch64/vm/templateInterpreterGenerator_aarch64.cpp
changeset 35232 76aed99c0ddd
parent 35214 d86005e0b4c2
parent 35148 5cfafc99d791
child 35553 fa41da206b95
child 35495 e27da438fa13
equal deleted inserted replaced
35231:e89989198037 35232:76aed99c0ddd
   221   __ restore_bcp();
   221   __ restore_bcp();
   222   __ restore_locals();
   222   __ restore_locals();
   223   __ restore_constant_pool_cache();
   223   __ restore_constant_pool_cache();
   224   __ get_method(rmethod);
   224   __ get_method(rmethod);
   225 
   225 
       
   226 #if INCLUDE_JVMCI
       
   227   // Check if we need to take lock at entry of synchronized method.
       
   228   if (UseJVMCICompiler) {
       
   229     Label L;
       
   230     __ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset()));
       
   231     __ cbz(rscratch1, L);
       
   232     // Clear flag.
       
   233     __ strb(zr, Address(rthread, JavaThread::pending_monitorenter_offset()));
       
   234     // Take lock.
       
   235     lock_method();
       
   236     __ bind(L);
       
   237   }
       
   238 #endif
   226   // handle exceptions
   239   // handle exceptions
   227   {
   240   {
   228     Label L;
   241     Label L;
   229     __ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset()));
   242     __ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset()));
   230     __ cbz(rscratch1, L);
   243     __ cbz(rscratch1, L);
   365       __ ldrw(rscratch2, Address(rscratch2, in_bytes(MethodCounters::interpreter_profile_limit_offset())));
   378       __ ldrw(rscratch2, Address(rscratch2, in_bytes(MethodCounters::interpreter_profile_limit_offset())));
   366       __ cmpw(r0, rscratch2);
   379       __ cmpw(r0, rscratch2);
   367       __ br(Assembler::LT, *profile_method_continue);
   380       __ br(Assembler::LT, *profile_method_continue);
   368 
   381 
   369       // if no method data exists, go to profile_method
   382       // if no method data exists, go to profile_method
   370       __ test_method_data_pointer(r0, *profile_method);
   383       __ test_method_data_pointer(rscratch2, *profile_method);
   371     }
   384     }
   372 
   385 
   373     {
   386     {
   374       __ ldr(rscratch2, Address(rmethod, Method::method_counters_offset()));
   387       __ ldr(rscratch2, Address(rmethod, Method::method_counters_offset()));
   375       __ ldrw(rscratch2, Address(rscratch2, in_bytes(MethodCounters::interpreter_invocation_limit_offset())));
   388       __ ldrw(rscratch2, Address(rscratch2, in_bytes(MethodCounters::interpreter_invocation_limit_offset())));