hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86.cpp
changeset 46294 345a46524a19
parent 46263 1d8d6ddcc626
child 46327 91576389a517
equal deleted inserted replaced
46293:9a88f7fe04b5 46294:345a46524a19
     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.
   218 
   218 
   219   const Register flags = cache;
   219   const Register flags = cache;
   220   __ movl(flags, Address(cache, index, Address::times_ptr, ConstantPoolCache::base_offset() + ConstantPoolCacheEntry::flags_offset()));
   220   __ movl(flags, Address(cache, index, Address::times_ptr, ConstantPoolCache::base_offset() + ConstantPoolCacheEntry::flags_offset()));
   221   __ andl(flags, ConstantPoolCacheEntry::parameter_size_mask);
   221   __ andl(flags, ConstantPoolCacheEntry::parameter_size_mask);
   222   __ lea(rsp, Address(rsp, flags, Interpreter::stackElementScale()));
   222   __ lea(rsp, Address(rsp, flags, Interpreter::stackElementScale()));
       
   223 
       
   224    const Register java_thread = NOT_LP64(rcx) LP64_ONLY(r15_thread);
       
   225    if (JvmtiExport::can_pop_frame()) {
       
   226      NOT_LP64(__ get_thread(java_thread));
       
   227      __ check_and_handle_popframe(java_thread);
       
   228    }
       
   229    if (JvmtiExport::can_force_early_return()) {
       
   230      NOT_LP64(__ get_thread(java_thread));
       
   231      __ check_and_handle_earlyret(java_thread);
       
   232    }
       
   233 
   223   __ dispatch_next(state, step);
   234   __ dispatch_next(state, step);
   224 
   235 
   225   return entry;
   236   return entry;
   226 }
   237 }
   227 
   238