2252 |
2252 |
2253 // We can finally stop using that last_Java_frame we setup ages ago |
2253 // We can finally stop using that last_Java_frame we setup ages ago |
2254 |
2254 |
2255 __ reset_last_Java_frame(false); |
2255 __ reset_last_Java_frame(false); |
2256 |
2256 |
2257 // Unpack oop result |
2257 // Unpack oop result, e.g. JNIHandles::resolve value. |
2258 if (ret_type == T_OBJECT || ret_type == T_ARRAY) { |
2258 if (ret_type == T_OBJECT || ret_type == T_ARRAY) { |
2259 Label L; |
2259 __ resolve_jobject(V0, thread, T9); |
2260 __ beq(V0, R0, L); |
|
2261 __ delayed()->nop(); |
|
2262 __ ld(V0, V0, 0); |
|
2263 __ bind(L); |
|
2264 __ verify_oop(V0); |
|
2265 } |
2260 } |
2266 |
2261 |
2267 if (!is_critical_native) { |
2262 if (!is_critical_native) { |
2268 // reset handle block |
2263 // reset handle block |
2269 __ ld(AT, thread, in_bytes(JavaThread::active_handles_offset())); |
2264 __ ld(AT, thread, in_bytes(JavaThread::active_handles_offset())); |