RFR (S): 8020433: Crash when using -XX:+RestoreMXCSROnJNICalls
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Jul 12 19:52:28 PDT 2013
http://cr.openjdk.java.net/~kvn/8020433/webrev/
My changes for 8011102 exposed a problem existed from time when we
partially merged x86_32 and amd64 code. We have two _mxcsr_std variables
and they initialized differrently:
StubRoutines::_mxcsr_std is initialized only in 32-bit VM
StubRoutines::x86::_mxcsr_std is initialized only in 64-bit VM
The fixed is to remove StubRoutines::x86::_mxcsr_std and use
StubRoutines::_mxcsr_std. We may later do cleanup to move all these
fpu/mxcsr flags from StubRoutines to StubRoutines::x86
(stubRoutines_x86.?pp files). But I made these changes simpler for easy
backport to 7u40 (which does not have stubRoutines_x86.?pp files).
Copied create_control_words() code from stubGenerator_x86_32.cpp to
stubGenerator_x86_64.cpp. Note, C1 uses _fpu_cntrl_wrd_* values
unconditionally, even in 64-bit VM as first Tier. So I decided to
initialized all those values in 64-bit VM also.
Added regression test.
Thanks,
Vladimir
More information about the hotspot-compiler-dev
mailing list