Request for review (XS): 8003878: compiler/7196199 test failed on OS X since 8b54, jdk7u12b01
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Jan 23 14:20:45 PST 2013
http://cr.openjdk.java.net/~kvn/8003878/webrev
Limit vectors size to 16 bytes on OS X until it fixes restoration of
upper 128bit of YMM registers on return from signal handler. I did it
for all BSD OSs since I don't have them and I can verify their behavior.
Note, in my last experiment I short-cut signal processing in
JVM_handle_bsd_signal. Instead of executing safepoint blob I set address
of next instruction after safepoint in compiled code and return from
signal handle there:
if ((sig == SIGSEGV || sig == SIGBUS) &&
os::is_poll_address((address)info->si_addr)) {
stub = SharedRuntime::get_poll_stub(pc);
+ if (stub != NULL & UseNewCode) {
+ uc->context_pc += 6;
+ return true;
+ }
But I still see that upper YMM bits are not restored. Also, I examined
saved ucontext data (passed to JVM_handle_bsd_signal) and I see saved
upper bits there. Something wrong with return from signal handler.
Thanks,
Vladimir
More information about the hotspot-compiler-dev
mailing list