[aarch64-port-dev ] Query regarding backport of memory order changes to JDK7

Andrew Dinn adinn at redhat.com
Fri Nov 14 16:40:41 UTC 2014


On 14/11/14 16:28, Andrew Haley wrote:
> Please show me the code you're describing.


The JDK8 code is here:

hg.openjdk.java.net/aarch64-port/jdk9/hotspot/file/691d58eae6e3/src/cpu/aarch64/vm/javaFrameAnchor_aarch64.hpp

The methods which set _last_Java_sp do so at lines:

  44 (in method clear)
    . . .
    _last_Java_sp = NULL;
    OrderAccess::release();
    . . .

  59 (in method copy)
    . . .
    if (_last_Java_sp != src->_last_Java_sp) {
      _last_Java_sp = NULL;
      OrderAccess::release();
    }
    . . .

  83 (in method set_last_Java_sp)
  . . .
  void set_last_Java_sp(intptr_t* sp) { _last_Java_sp = sp;
OrderAccess::release(); }
  . . .

Each assignment is followed by a call to OrderAccess::release(). So, why
is there a need to call OrderAccess::release() at line:

  87 (in method set_last_Java_fp)
  . . .
  void set_last_Java_fp(intptr_t* fp) { OrderAccess::release();
_last_Java_fp = fp; }
  . . .

Does some other code assign _last_Java_sp without calling
OrderAccess::release(); and then call set_last_Java_fp()? If not then
surely there is no need to do it in set_last_Java_fp()?

regards,


Andrew Dinn
-----------



More information about the aarch64-port-dev mailing list