13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP 26 #define SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP 27 28 #include "code/stubs.hpp" 29 #include "interpreter/bytecodes.hpp" 30 #include "runtime/thread.inline.hpp" 31 #include "runtime/vmThread.hpp" 32 #include "utilities/top.hpp" 33 #ifdef TARGET_ARCH_x86 34 # include "interp_masm_x86.hpp" 35 #endif 36 #ifdef TARGET_ARCH_MODEL_sparc 37 # include "interp_masm_sparc.hpp" 38 #endif 39 #ifdef TARGET_ARCH_MODEL_zero 40 # include "interp_masm_zero.hpp" 41 #endif 42 #ifdef TARGET_ARCH_MODEL_arm 43 # include "interp_masm_arm.hpp" 44 #endif 45 #ifdef TARGET_ARCH_MODEL_ppc_32 46 # include "interp_masm_ppc_32.hpp" 47 #endif 48 #ifdef TARGET_ARCH_MODEL_ppc_64 49 # include "interp_masm_ppc_64.hpp" 50 #endif 51 52 // This file contains the platform-independent parts 53 // of the abstract interpreter and the abstract interpreter generator. 54 55 // Organization of the interpreter(s). There exists two different interpreters in hotpot 56 // an assembly language version (aka template interpreter) and a high level language version 57 // (aka c++ interpreter). Th division of labor is as follows: 58 59 // Template Interpreter C++ Interpreter Functionality 60 // 61 // templateTable* bytecodeInterpreter* actual interpretation of bytecodes 62 // 63 // templateInterpreter* cppInterpreter* generation of assembly code that creates 64 // and manages interpreter runtime frames. 65 // Also code for populating interpreter 66 // frames created during deoptimization. 67 // 68 // For both template and c++ interpreter. There are common files for aspects of the interpreter | 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP 26 #define SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP 27 28 #include "code/stubs.hpp" 29 #include "interpreter/bytecodes.hpp" 30 #include "runtime/thread.inline.hpp" 31 #include "runtime/vmThread.hpp" 32 #include "utilities/top.hpp" 33 #if defined INTERP_MASM_MD_HPP 34 # include INTERP_MASM_MD_HPP 35 #elif defined TARGET_ARCH_x86 36 # include "interp_masm_x86.hpp" 37 #elif defined TARGET_ARCH_MODEL_sparc 38 # include "interp_masm_sparc.hpp" 39 #elif defined TARGET_ARCH_MODEL_zero 40 # include "interp_masm_zero.hpp" 41 #elif defined TARGET_ARCH_MODEL_ppc_64 42 # include "interp_masm_ppc_64.hpp" 43 #endif 44 45 // This file contains the platform-independent parts 46 // of the abstract interpreter and the abstract interpreter generator. 47 48 // Organization of the interpreter(s). There exists two different interpreters in hotpot 49 // an assembly language version (aka template interpreter) and a high level language version 50 // (aka c++ interpreter). Th division of labor is as follows: 51 52 // Template Interpreter C++ Interpreter Functionality 53 // 54 // templateTable* bytecodeInterpreter* actual interpretation of bytecodes 55 // 56 // templateInterpreter* cppInterpreter* generation of assembly code that creates 57 // and manages interpreter runtime frames. 58 // Also code for populating interpreter 59 // frames created during deoptimization. 60 // 61 // For both template and c++ interpreter. There are common files for aspects of the interpreter |