RFR: 8139259: aarch64: jtreg test TestLogSum segvs after 8132207

Edward Nevill edward.nevill at gmail.com
Fri Oct 9 11:17:50 UTC 2015


Hi,

Please review the following webrev

http://cr.openjdk.java.net/~enevill/8139259/webrev/

Jira issue: https://bugs.openjdk.java.net/browse/JDK-8139259

This fixes a SEGV which was introduced to the aarch64 port after the following patch

http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/rev/324ea1a2419a

The problem is that the aarch64 port ends up calling StubRoutines::_dexp when it is initialised to NULL.

The reason is the following lines

--- src/share/vm/opto/library_call.cpp ---

1764   case vmIntrinsics::_dexp:
1765     return (UseSSE >= 2) ? runtime_math(OptoRuntime::Math_D_D_Type(), StubRoutines::dexp(),  "dexp") :
1766     runtime_math(OptoRuntime::Math_D_D_Type(), FN_PTR(SharedRuntime::dexp),  "EXP");

--- src/share/vm/runtime/globals.hpp

 702   product(intx, UseSSE, 99,                                                 \
 703           "Highest supported SSE instructions set on x86/x64")              \

--- src/share/vm/runtime/stubRoutines.cpp

151 address StubRoutines::_dexp = NULL;

I could fix this by forcing UseSSE to 0 in vm_version_aarch64 however there are about 20 other places in C1 and C2 shared code where UseSSE is used and I would be changing the behaviour of all of these.

So instead the patch above removes the usage of UseSSE in library_call above.

At some time all the usages of UseSSE in shared code should be reviewed.

This patch affects shared code so will need to be sponsored and pushed through JPRT

Thanks for your help,
Ed.




More information about the hotspot-compiler-dev mailing list