src/cpu/x86/vm/sharedRuntime_x86_32.cpp

changeset 9669
32bc598624bd
parent 8997
f8a45a60bc6b
child 9703
2fdf635bcf28
equal deleted inserted replaced
9668:acb9351e3a29 9669:32bc598624bd
2251 2251
2252 // We can finally stop using that last_Java_frame we setup ages ago 2252 // We can finally stop using that last_Java_frame we setup ages ago
2253 2253
2254 __ reset_last_Java_frame(thread, false); 2254 __ reset_last_Java_frame(thread, false);
2255 2255
2256 // Unpack oop result 2256 // Unbox oop result, e.g. JNIHandles::resolve value.
2257 if (ret_type == T_OBJECT || ret_type == T_ARRAY) { 2257 if (ret_type == T_OBJECT || ret_type == T_ARRAY) {
2258 Label L; 2258 __ resolve_jobject(rax /* value */,
2259 __ cmpptr(rax, (int32_t)NULL_WORD); 2259 thread /* thread */,
2260 __ jcc(Assembler::equal, L); 2260 rcx /* tmp */);
2261 __ movptr(rax, Address(rax, 0));
2262 __ bind(L);
2263 __ verify_oop(rax);
2264 } 2261 }
2265 2262
2266 if (!is_critical_native) { 2263 if (!is_critical_native) {
2267 // reset handle block 2264 // reset handle block
2268 __ movptr(rcx, Address(thread, JavaThread::active_handles_offset())); 2265 __ movptr(rcx, Address(thread, JavaThread::active_handles_offset()));

mercurial