[RFR]: 8186461: zero: Don't use PowerPC FPU instructions on targets without FPU

David Holmes david.holmes at oracle.com
Fri Aug 18 22:39:49 UTC 2017


Hi Adrian,

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.

David

> 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 [1] with an attached patch.
> 
> Adrian
> 
>> [1] https://bugs.openjdk.java.net/browse/JDK-8186461
> 


More information about the hotspot-dev mailing list