RFR(xs): 8211387: [Zero] atomic_copy64: Use ldrexd for atomic reads on ARMv7

David Holmes david.holmes at oracle.com
Thu Oct 4 21:28:30 UTC 2018


Hi Severin,

On 4/10/2018 11:03 PM, Severin Gehwolf wrote:
> Hi,
> 
> Please review this forward port for Zero coming from JDK 7 (where Zero
> is maintained in icedtea) to JDK 12. The update is to use ldrexd
> instructions on ARMv7 CPUs for atomic_copy64() in Zero:
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8211387
> webrev: http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8211387/webrev.01/

Not sure how zero normally operates but I would have expected to see 
something more dynamic (as used in the rest of the VM: 
VM_version::supports_ldrexd()) rather than hardwiring for a v7_A build.

Also I thought that if ldrex was not paired with a strex then you should 
at least issue clrex - as done in generate_atomic_load_long() in 
stubGenerator_arm.cpp

Cheers,
David

> Testing: Zero bootcycle-images build on armv7 where this was satisfied:
> 
> $ gcc -dM -E - < /dev/null | grep __ARM_ARCH_7A__
> #define __ARM_ARCH_7A__ 1
> 
> This change was contributed by Andrew Haley.
> 
> Thoughts?
> 
> Thanks,
> Severin
> 


More information about the hotspot-dev mailing list