hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp
changeset 44088 fb5421685295
parent 43969 ae5c415036b0
child 44093 e22e0d071bf9
equal deleted inserted replaced
44087:deab1e2f0ebf 44088:fb5421685295
     1 /*
     1 /*
     2  * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
  2224 
  2224 
  2225   // We can finally stop using that last_Java_frame we setup ages ago
  2225   // We can finally stop using that last_Java_frame we setup ages ago
  2226 
  2226 
  2227   __ reset_last_Java_frame(thread, false);
  2227   __ reset_last_Java_frame(thread, false);
  2228 
  2228 
  2229   // Unpack oop result
  2229   // Unbox oop result, e.g. JNIHandles::resolve value.
  2230   if (ret_type == T_OBJECT || ret_type == T_ARRAY) {
  2230   if (ret_type == T_OBJECT || ret_type == T_ARRAY) {
  2231       Label L;
  2231     __ resolve_jobject(rax /* value */,
  2232       __ cmpptr(rax, (int32_t)NULL_WORD);
  2232                        thread /* thread */,
  2233       __ jcc(Assembler::equal, L);
  2233                        rcx /* tmp */);
  2234       __ movptr(rax, Address(rax, 0));
       
  2235       __ bind(L);
       
  2236       __ verify_oop(rax);
       
  2237   }
  2234   }
  2238 
  2235 
  2239   if (CheckJNICalls) {
  2236   if (CheckJNICalls) {
  2240     // clear_pending_jni_exception_check
  2237     // clear_pending_jni_exception_check
  2241     __ movptr(Address(thread, JavaThread::pending_jni_exception_check_fn_offset()), NULL_WORD);
  2238     __ movptr(Address(thread, JavaThread::pending_jni_exception_check_fn_offset()), NULL_WORD);