compiledIC_zero.cpp revision 9319:3b0fdfa8029c
10SN/A/* 21520SN/A * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 30SN/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 40SN/A * 50SN/A * This code is free software; you can redistribute it and/or modify it 60SN/A * under the terms of the GNU General Public License version 2 only, as 7553SN/A * published by the Free Software Foundation. 80SN/A * 9553SN/A * This code is distributed in the hope that it will be useful, but WITHOUT 100SN/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 110SN/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 120SN/A * version 2 for more details (a copy is included in the LICENSE file that 130SN/A * accompanied this code). 140SN/A * 150SN/A * You should have received a copy of the GNU General Public License version 160SN/A * 2 along with this work; if not, write to the Free Software Foundation, 170SN/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 180SN/A * 190SN/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 200SN/A * or visit www.oracle.com if you need additional information or have any 21553SN/A * questions. 22553SN/A * 23553SN/A */ 240SN/A 250SN/A#include "precompiled.hpp" 263386Sjjg#include "classfile/systemDictionary.hpp" 270SN/A#include "code/codeCache.hpp" 28196SN/A#include "code/compiledIC.hpp" 29196SN/A#include "code/icBuffer.hpp" 30196SN/A#include "code/nmethod.hpp" 310SN/A#include "code/vtableStubs.hpp" 320SN/A#include "interpreter/interpreter.hpp" 331442SN/A#include "interpreter/linkResolver.hpp" 34196SN/A#include "memory/metadataFactory.hpp" 35196SN/A#include "memory/oopFactory.hpp" 36196SN/A#include "oops/method.hpp" 370SN/A#include "oops/oop.inline.hpp" 380SN/A#include "oops/symbol.hpp" 390SN/A#include "runtime/icache.hpp" 400SN/A#include "runtime/sharedRuntime.hpp" 410SN/A#include "runtime/stubRoutines.hpp" 420SN/A#include "utilities/events.hpp" 431358SN/A 441358SN/A 451358SN/A// Release the CompiledICHolder* associated with this call site is there is one. 461358SN/Avoid CompiledIC::cleanup_call_site(virtual_call_Relocation* call_site) { 471358SN/A // This call site might have become stale so inspect it carefully. 480SN/A NativeCall* call = nativeCall_at(call_site->addr()); 490SN/A if (is_icholder_entry(call->destination())) { 500SN/A NativeMovConstReg* value = nativeMovConstReg_at(call_site->cached_value()); 510SN/A InlineCacheBuffer::queue_for_release((CompiledICHolder*)value->data()); 520SN/A } 530SN/A} 543445Sjjg 550SN/Abool CompiledIC::is_icholder_call_site(virtual_call_Relocation* call_site) { 560SN/A // This call site might have become stale so inspect it carefully. 570SN/A NativeCall* call = nativeCall_at(call_site->addr()); 580SN/A return is_icholder_entry(call->destination()); 590SN/A} 600SN/A 610SN/A// ---------------------------------------------------------------------------- 620SN/A 631442SN/Aaddress CompiledStaticCall::emit_to_interp_stub(CodeBuffer &cbuf, address mark) { 641442SN/A ShouldNotReachHere(); // Only needed for COMPILER2. 650SN/A return NULL; 660SN/A} 670SN/A 680SN/Aint CompiledStaticCall::to_interp_stub_size() { 690SN/A ShouldNotReachHere(); // Only needed for COMPILER2. 700SN/A return 0; 710SN/A} 721442SN/A 730SN/A// Relocation entries for call stub, compiled java to interpreter. 740SN/Aint CompiledStaticCall::reloc_to_interp_stub() { 750SN/A ShouldNotReachHere(); // Only needed for COMPILER2. 760SN/A return 0; 770SN/A} 780SN/A 790SN/Avoid CompiledStaticCall::set_to_interpreted(methodHandle callee, address entry) { 800SN/A ShouldNotReachHere(); // Only needed for COMPILER2. 810SN/A} 820SN/A 830SN/Avoid CompiledStaticCall::set_stub_to_clean(static_stub_Relocation* static_stub) { 840SN/A ShouldNotReachHere(); // Only needed for COMPILER2. 850SN/A} 860SN/A 870SN/A//----------------------------------------------------------------------------- 880SN/A// Non-product mode code. 890SN/A#ifndef PRODUCT 900SN/A 910SN/Avoid CompiledStaticCall::verify() { 920SN/A ShouldNotReachHere(); // Only needed for COMPILER2. 930SN/A} 940SN/A 950SN/A#endif // !PRODUCT 960SN/A