# HG changeset patch # User goetz # Date 1396521473 -7200 # Node ID 2100bf712e2ac4463eec92262325559832f5f2e9 # Parent 526acaf3626f5f81f7cc3f37447b4ad3b0ef56d8 8039146: Fix 64-bit store to int JNIHandleBlock::_top Reviewed-by: coleenp, kvn diff -r 526acaf3626f -r 2100bf712e2a src/cpu/sparc/vm/cppInterpreter_sparc.cpp --- a/src/cpu/sparc/vm/cppInterpreter_sparc.cpp Wed Apr 09 11:18:02 2014 -0700 +++ b/src/cpu/sparc/vm/cppInterpreter_sparc.cpp Thu Apr 03 12:37:53 2014 +0200 @@ -960,7 +960,7 @@ // reset handle block __ ld_ptr(G2_thread, in_bytes(JavaThread::active_handles_offset()), G3_scratch); - __ st_ptr(G0, G3_scratch, JNIHandleBlock::top_offset_in_bytes()); + __ st(G0, G3_scratch, JNIHandleBlock::top_offset_in_bytes()); // handle exceptions (exception handling will handle unlocking!) diff -r 526acaf3626f -r 2100bf712e2a src/cpu/sparc/vm/sharedRuntime_sparc.cpp --- a/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Wed Apr 09 11:18:02 2014 -0700 +++ b/src/cpu/sparc/vm/sharedRuntime_sparc.cpp Thu Apr 03 12:37:53 2014 +0200 @@ -2687,7 +2687,7 @@ if (!is_critical_native) { // reset handle block __ ld_ptr(G2_thread, in_bytes(JavaThread::active_handles_offset()), L5); - __ st_ptr(G0, L5, JNIHandleBlock::top_offset_in_bytes()); + __ st(G0, L5, JNIHandleBlock::top_offset_in_bytes()); __ ld_ptr(G2_thread, in_bytes(Thread::pending_exception_offset()), G3_scratch); check_forward_pending_exception(masm, G3_scratch); diff -r 526acaf3626f -r 2100bf712e2a src/cpu/sparc/vm/templateInterpreter_sparc.cpp --- a/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Wed Apr 09 11:18:02 2014 -0700 +++ b/src/cpu/sparc/vm/templateInterpreter_sparc.cpp Thu Apr 03 12:37:53 2014 +0200 @@ -1147,7 +1147,7 @@ // reset handle block __ ld_ptr(G2_thread, JavaThread::active_handles_offset(), G3_scratch); - __ st_ptr(G0, G3_scratch, JNIHandleBlock::top_offset_in_bytes()); + __ st(G0, G3_scratch, JNIHandleBlock::top_offset_in_bytes()); // If we have an oop result store it where it will be safe for any further gc // until we return now that we've released the handle it might be protected by diff -r 526acaf3626f -r 2100bf712e2a src/cpu/x86/vm/cppInterpreter_x86.cpp --- a/src/cpu/x86/vm/cppInterpreter_x86.cpp Wed Apr 09 11:18:02 2014 -0700 +++ b/src/cpu/x86/vm/cppInterpreter_x86.cpp Thu Apr 03 12:37:53 2014 +0200 @@ -1354,7 +1354,7 @@ // reset handle block __ movptr(t, Address(thread, JavaThread::active_handles_offset())); - __ movptr(Address(t, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD); + __ movl(Address(t, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD); // If result was an oop then unbox and save it in the frame { Label L; diff -r 526acaf3626f -r 2100bf712e2a src/cpu/x86/vm/sharedRuntime_x86_32.cpp --- a/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Wed Apr 09 11:18:02 2014 -0700 +++ b/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Thu Apr 03 12:37:53 2014 +0200 @@ -2266,7 +2266,7 @@ if (!is_critical_native) { // reset handle block __ movptr(rcx, Address(thread, JavaThread::active_handles_offset())); - __ movptr(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), NULL_WORD); + __ movl(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), NULL_WORD); // Any exception pending? __ cmpptr(Address(thread, in_bytes(Thread::pending_exception_offset())), (int32_t)NULL_WORD); diff -r 526acaf3626f -r 2100bf712e2a src/cpu/x86/vm/sharedRuntime_x86_64.cpp --- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Wed Apr 09 11:18:02 2014 -0700 +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Thu Apr 03 12:37:53 2014 +0200 @@ -2509,7 +2509,7 @@ if (!is_critical_native) { // reset handle block __ movptr(rcx, Address(r15_thread, JavaThread::active_handles_offset())); - __ movptr(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD); + __ movl(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD); } // pop our frame diff -r 526acaf3626f -r 2100bf712e2a src/cpu/x86/vm/templateInterpreter_x86_32.cpp --- a/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Wed Apr 09 11:18:02 2014 -0700 +++ b/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Thu Apr 03 12:37:53 2014 +0200 @@ -1287,7 +1287,7 @@ // reset handle block __ movptr(t, Address(thread, JavaThread::active_handles_offset())); - __ movptr(Address(t, JNIHandleBlock::top_offset_in_bytes()), NULL_WORD); + __ movl(Address(t, JNIHandleBlock::top_offset_in_bytes()), NULL_WORD); // If result was an oop then unbox and save it in the frame { Label L; diff -r 526acaf3626f -r 2100bf712e2a src/cpu/x86/vm/templateInterpreter_x86_64.cpp --- a/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Wed Apr 09 11:18:02 2014 -0700 +++ b/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Thu Apr 03 12:37:53 2014 +0200 @@ -1259,7 +1259,7 @@ // reset handle block __ movptr(t, Address(r15_thread, JavaThread::active_handles_offset())); - __ movptr(Address(t, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD); + __ movl(Address(t, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD); // If result is an oop unbox and store it in frame where gc will see it // and result handler will pick it up