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