src/cpu/zero/vm/interpreter_zero.cpp

Thu, 16 Jun 2011 13:46:55 -0700

author
never
date
Thu, 16 Jun 2011 13:46:55 -0700
changeset 2978
d83ac25d0304
parent 2901
3d2ab563047a
child 3969
1d7922586cf6
permissions
-rw-r--r--

7055355: JSR 292: crash while throwing WrongMethodTypeException
Reviewed-by: jrose, twisti, bdelsart

never@1445 1 /*
stefank@2314 2 * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
twisti@2762 3 * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
never@1445 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
never@1445 5 *
never@1445 6 * This code is free software; you can redistribute it and/or modify it
never@1445 7 * under the terms of the GNU General Public License version 2 only, as
never@1445 8 * published by the Free Software Foundation.
never@1445 9 *
never@1445 10 * This code is distributed in the hope that it will be useful, but WITHOUT
never@1445 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
never@1445 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
never@1445 13 * version 2 for more details (a copy is included in the LICENSE file that
never@1445 14 * accompanied this code).
never@1445 15 *
never@1445 16 * You should have received a copy of the GNU General Public License version
never@1445 17 * 2 along with this work; if not, write to the Free Software Foundation,
never@1445 18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
never@1445 19 *
trims@1907 20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 21 * or visit www.oracle.com if you need additional information or have any
trims@1907 22 * questions.
never@1445 23 *
never@1445 24 */
never@1445 25
stefank@2314 26 #include "precompiled.hpp"
stefank@2314 27 #include "asm/assembler.hpp"
stefank@2314 28 #include "interpreter/bytecodeHistogram.hpp"
stefank@2314 29 #include "interpreter/interpreter.hpp"
stefank@2314 30 #include "interpreter/interpreterGenerator.hpp"
stefank@2314 31 #include "interpreter/interpreterRuntime.hpp"
stefank@2314 32 #include "interpreter/templateTable.hpp"
stefank@2314 33 #include "oops/arrayOop.hpp"
stefank@2314 34 #include "oops/methodDataOop.hpp"
stefank@2314 35 #include "oops/methodOop.hpp"
stefank@2314 36 #include "oops/oop.inline.hpp"
stefank@2314 37 #include "prims/jvmtiExport.hpp"
stefank@2314 38 #include "prims/jvmtiThreadState.hpp"
stefank@2314 39 #include "prims/methodHandles.hpp"
stefank@2314 40 #include "runtime/arguments.hpp"
stefank@2314 41 #include "runtime/deoptimization.hpp"
stefank@2314 42 #include "runtime/frame.inline.hpp"
stefank@2314 43 #include "runtime/sharedRuntime.hpp"
stefank@2314 44 #include "runtime/stubRoutines.hpp"
stefank@2314 45 #include "runtime/synchronizer.hpp"
stefank@2314 46 #include "runtime/timer.hpp"
stefank@2314 47 #include "runtime/vframeArray.hpp"
stefank@2314 48 #include "utilities/debug.hpp"
stefank@2314 49 #ifdef COMPILER1
stefank@2314 50 #include "c1/c1_Runtime1.hpp"
stefank@2314 51 #endif
twisti@2762 52 #ifdef CC_INTERP
twisti@2762 53 #include "interpreter/cppInterpreter.hpp"
twisti@2762 54 #endif
never@1445 55
never@1445 56 address AbstractInterpreterGenerator::generate_slow_signature_handler() {
never@1445 57 _masm->advance(1);
never@1445 58 return (address) InterpreterRuntime::slow_signature_handler;
never@1445 59 }
never@1445 60
never@1445 61 address InterpreterGenerator::generate_math_entry(
never@1445 62 AbstractInterpreter::MethodKind kind) {
never@1445 63 if (!InlineIntrinsics)
never@1445 64 return NULL;
never@1445 65
never@1445 66 Unimplemented();
never@1445 67 }
never@1445 68
never@1445 69 address InterpreterGenerator::generate_abstract_entry() {
twisti@2762 70 return generate_entry((address) ShouldNotCallThisEntry());
never@1445 71 }
never@1445 72
never@1445 73 address InterpreterGenerator::generate_method_handle_entry() {
twisti@2762 74 #ifdef CC_INTERP
twisti@2762 75 return generate_entry((address) CppInterpreter::method_handle_entry);
twisti@2762 76 #else
twisti@2762 77 return generate_entry((address) ShouldNotCallThisEntry());
twisti@2762 78 #endif // CC_INTERP
never@1445 79 }
never@1445 80
twisti@1632 81 bool AbstractInterpreter::can_be_compiled(methodHandle m) {
twisti@1632 82 return true;
twisti@1632 83 }
twisti@1632 84
never@1445 85 void Deoptimization::unwind_callee_save_values(frame* f,
never@1445 86 vframeArray* vframe_array) {
never@1445 87 }

mercurial