RFR(M): 8213528: fp registers should not need to be saved around a CallLeafNoFP

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Nov 9 17:33:56 UTC 2018


Looking on all .ad files I see difference only for x86_32:

http://hg.openjdk.java.net/jdk/jdk/file/13266dac5fdb/src/hotspot/cpu/x86/x86_32.ad#l13326

And I surprise we don't have difference for SPARC.

Your change make code in x86_32 be unused. The only drawback to always use CallLeaf there is empty_FPU_stack() when cpu 
does not have SSE2 (such CPUs should disappear already) and reset FPU control word when it is in special 24BitFPMode 
mode. The 24bit mode most likely is not used any more (requires not presence SSE and other conditions):

http://hg.openjdk.java.net/jdk/jdk/file/13266dac5fdb/src/hotspot/share/opto/compile.cpp#l3678

Based on this I think we need purge all this vary outdated code as separate RFE.

Lets first push your changes.

Thanks,
Vladimir

On 11/9/18 8:50 AM, Roland Westrelin wrote:
> 
>> I think NO_FP code was added mostly for x86 FPU and SPARC float registers.
>> Now on x86 we use XMM registers almost in all intrinsics so the original assumption is not true anymore on *x86*.
>> It is still true on other platforms (SPARC?). May be we should factor out it somehow to be platform specific?
> 
> It sounds like something that could be build on top of this change
> rather than something that needs to be part of this change? Or do you
> have a specific idea in mind?
> 
> Roland.
> 


More information about the hotspot-compiler-dev mailing list