Blame SOURCES/rh1201393.patch

5582a8
diff -r 878d6bf3d038 src/cpu/ppc/vm/interpreter_ppc.cpp
5582a8
--- openjdk/hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp	Tue Feb 03 11:32:50 2015 +0100
5582a8
+++ openjdk/hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp	Wed Apr 22 11:36:38 2015 +0200
5582a8
@@ -475,7 +475,7 @@
5582a8
 
5582a8
   // This is not a leaf but we have a JavaFrameAnchor now and we will
5582a8
   // check (create) exceptions afterward so this is ok.
5582a8
-  __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError));
5582a8
+  __ call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_AbstractMethodError), R16_thread);
5582a8
 
5582a8
   // Pop the C frame and restore LR.
5582a8
   __ pop_frame();
5582a8
diff -r 878d6bf3d038 src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
5582a8
--- openjdk/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp	Tue Feb 03 11:32:50 2015 +0100
5582a8
+++ openjdk/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp	Wed Apr 22 11:36:38 2015 +0200
5582a8
@@ -302,6 +302,7 @@
5582a8
         goto report_and_die;
5582a8
       }
5582a8
 
5582a8
+      CodeBlob *cb = NULL;
5582a8
       // Handle signal from NativeJump::patch_verified_entry().
5582a8
       if (( TrapBasedNotEntrantChecks && sig == SIGTRAP && nativeInstruction_at(pc)->is_sigtrap_zombie_not_entrant()) ||
5582a8
           (!TrapBasedNotEntrantChecks && sig == SIGILL  && nativeInstruction_at(pc)->is_sigill_zombie_not_entrant())) {
5582a8
@@ -316,7 +317,10 @@
5582a8
                // especially when we try to read from the safepoint polling page. So the check
5582a8
                //   (address)info->si_addr == os::get_standard_polling_page()
5582a8
                // doesn't work for us. We use:
5582a8
-               ((NativeInstruction*)pc)->is_safepoint_poll()) {
5582a8
+               ((NativeInstruction*)pc)->is_safepoint_poll() &&               
5582a8
+               CodeCache::contains((void*) pc) && 
5582a8
+               ((cb = CodeCache::find_blob(pc)) != NULL) &&
5582a8
+               cb->is_nmethod()) {
5582a8
         if (TraceTraps)
5582a8
           tty->print_cr("trap: safepoint_poll at " INTPTR_FORMAT " (SIGSEGV)", pc);
5582a8
         stub = SharedRuntime::get_poll_stub(pc);