abstractInterpreter.hpp revision 2204
1472N/A * or visit www.oracle.com if you need additional information or have any
1879N/A#include "interpreter/bytecodes.hpp"
1879N/A#include "runtime/vmThread.hpp"
1879N/A# include "interp_masm_x86_32.hpp"
1879N/A# include "interp_masm_x86_64.hpp"
1879N/A# include "interp_masm_sparc.hpp"
1879N/A# include "interp_masm_zero.hpp"
2073N/A#ifdef TARGET_ARCH_MODEL_arm
2073N/A# include "interp_masm_arm.hpp"
2073N/A#ifdef TARGET_ARCH_MODEL_ppc
2073N/A# include "interp_masm_ppc.hpp"
1879N/A# include "thread_linux.inline.hpp"
1879N/A# include "thread_solaris.inline.hpp"
1879N/A# include "thread_windows.inline.hpp"
0N/A// abstractInterpreter.hpp: generic description of the interpreter.
0N/A//------------------------------------------------------------------------------------------------------------------------
0N/A friend class Interpreter;
0N/A friend class CppInterpreterGenerator;
0N/A enum MethodKind {
0N/A enum SomeConstants {
0N/A static address _native_abi_to_tosca[number_of_result_handlers]; // for native method result handlers
0N/A friend class AbstractInterpreterGenerator;
0N/A friend class InterpreterGenerator;
0N/A friend class InterpreterMacroAssembler;
0N/A static void initialize();
0N/A static address entry_for_kind(MethodKind k) { assert(0 <= k && k < number_of_method_entries, "illegal kind"); return _entry_table[k]; }
0N/A static address return_entry (TosState state, int length) { ShouldNotReachHere(); return NULL; }
900N/A int callee_parameters,
900N/A bool is_top_frame);
0N/A int popframe_args,
0N/A int callee_params,
0N/A int callee_locals,
0N/A bool is_top_frame);
0N/A int popframe_args,
0N/A int callee_params,
0N/A int callee_locals,
0N/A bool is_top_frame);
0N/A static void notice_safepoints() { ShouldNotReachHere(); } // stops the thread when reaching a safepoint
0N/A static address result_handler(BasicType type) { return _native_abi_to_tosca[BasicType_as_index(type)]; }
0N/A static int BasicType_as_index(BasicType type); // computes index into result_handler_by_index table
0N/A static bool in_native_entry(address pc) { return _native_entry_begin <= pc && pc < _native_entry_end; }
0N/A static int local_offset_in_bytes(int n) {
726N/A default: ShouldNotReachHere();
726N/A default: ShouldNotReachHere();
0N/A//------------------------------------------------------------------------------------------------------------------------
0N/A void generate_all();