[RFR]: 8186461: zero: Don't use PowerPC FPU instructions on targets without FPU
david.holmes at oracle.com
Fri Aug 18 22:39:49 UTC 2017
On 19/08/2017 5:47 AM, John Paul Adrian Glaubitz wrote:
> For 32-Bit PowerPC, zero contains a platform-specific implementation of
> atomic_copy64() which uses inline-assembly with FPU instructions to
> perform a 64-bit atomic copy.
I have a recollection of someone else working on atomic_copy64 very
recently ... there may already be a bug for this ...
Will try to track it down by Monday.
> Unfortunately, the inline assembly with the FPU instructions is
> unconditionally enabled on all 32-Bit PowerPC machines which means that
> the code in question will fail to build on 32-Bit PowerPC machines without
> an FPU.
> On such systems are for example the PowerPC e500 CPU, gcc will define
> the macro __NO_FPRS__:
> root at atlantis:~> echo | gcc -E -dM - |grep -i FPR
> #define __NO_FPRS__ 1
> root at atlantis:~>
> Thus, in order to make sure zero builds on these systems without problems,
> we should not just test whether PPC32 is defined but also that __NO_FPRS__
> is not defined before enabling the inline assembly with FPU instructions.
> Bug is described in  with an attached patch.
>>  https://bugs.openjdk.java.net/browse/JDK-8186461
More information about the hotspot-dev