< prev index next >

src/share/vm/interpreter/abstractInterpreter.hpp

Print this page




  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


< prev index next >