equal
deleted
inserted
replaced
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()))); |