src/hotspot/cpu/arm/sharedRuntime_arm.cpp
changeset 51756 4bd35a5ec694
parent 51205 7cfc6c381cfa
child 51847 34e2180a6d51
equal deleted inserted replaced
51755:6c394ed56b07 51756:4bd35a5ec694
     1 /*
     1 /*
     2  * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
  1564   const Register sync_handle = AARCH64_ONLY(R20) NOT_AARCH64(R5);
  1564   const Register sync_handle = AARCH64_ONLY(R20) NOT_AARCH64(R5);
  1565   const Register sync_obj    = AARCH64_ONLY(R21) NOT_AARCH64(R6);
  1565   const Register sync_obj    = AARCH64_ONLY(R21) NOT_AARCH64(R6);
  1566   const Register disp_hdr    = AARCH64_ONLY(R22) NOT_AARCH64(altFP_7_11);
  1566   const Register disp_hdr    = AARCH64_ONLY(R22) NOT_AARCH64(altFP_7_11);
  1567   const Register tmp         = AARCH64_ONLY(R23) NOT_AARCH64(R8);
  1567   const Register tmp         = AARCH64_ONLY(R23) NOT_AARCH64(R8);
  1568 
  1568 
  1569   Label slow_lock, slow_lock_biased, lock_done, fast_lock, leave;
  1569   Label slow_lock, slow_lock_biased, lock_done, fast_lock;
  1570   if (method->is_synchronized()) {
  1570   if (method->is_synchronized()) {
  1571     // The first argument is a handle to sync object (a class or an instance)
  1571     // The first argument is a handle to sync object (a class or an instance)
  1572     __ ldr(sync_obj, Address(R1));
  1572     __ ldr(sync_obj, Address(R1));
  1573     // Remember the handle for the unlocking code
  1573     // Remember the handle for the unlocking code
  1574     __ mov(sync_handle, R1);
  1574     __ mov(sync_handle, R1);
  1684 
  1684 
  1685   __ cmp(R2, JavaThread::stack_guard_yellow_reserved_disabled);
  1685   __ cmp(R2, JavaThread::stack_guard_yellow_reserved_disabled);
  1686   __ b(reguard, eq);
  1686   __ b(reguard, eq);
  1687   __ bind(reguard_done);
  1687   __ bind(reguard_done);
  1688 
  1688 
  1689   Label slow_unlock, unlock_done, retry;
  1689   Label slow_unlock, unlock_done;
  1690   if (method->is_synchronized()) {
  1690   if (method->is_synchronized()) {
  1691     __ ldr(sync_obj, Address(sync_handle));
  1691     __ ldr(sync_obj, Address(sync_handle));
  1692 
  1692 
  1693     if(UseBiasedLocking) {
  1693     if(UseBiasedLocking) {
  1694       __ biased_locking_exit(sync_obj, Rtemp, unlock_done);
  1694       __ biased_locking_exit(sync_obj, Rtemp, unlock_done);