27 |
27 |
28 #include "code/stubs.hpp" |
28 #include "code/stubs.hpp" |
29 #include "interpreter/cppInterpreter.hpp" |
29 #include "interpreter/cppInterpreter.hpp" |
30 #include "interpreter/templateInterpreter.hpp" |
30 #include "interpreter/templateInterpreter.hpp" |
31 #include "memory/resourceArea.hpp" |
31 #include "memory/resourceArea.hpp" |
32 #ifdef TARGET_ARCH_zero |
|
33 # include "entry_zero.hpp" |
|
34 #endif |
|
35 |
32 |
36 // This file contains the platform-independent parts |
33 // This file contains the platform-independent parts |
37 // of the interpreter and the interpreter generator. |
34 // of the interpreter and the interpreter generator. |
38 |
35 |
39 class InterpreterMacroAssembler; |
36 class InterpreterMacroAssembler; |
114 const char* description, |
111 const char* description, |
115 Bytecodes::Code bytecode = Bytecodes::_illegal); |
112 Bytecodes::Code bytecode = Bytecodes::_illegal); |
116 ~CodeletMark(); |
113 ~CodeletMark(); |
117 }; |
114 }; |
118 |
115 |
119 // Wrapper classes to produce Interpreter/InterpreterGenerator from either |
116 // Wrapper typedef to use the name Interpreter to mean either |
120 // the c++ interpreter or the template interpreter. |
117 // the c++ interpreter or the template interpreter. |
121 |
118 |
122 class Interpreter: public CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateInterpreter) { |
119 typedef CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateInterpreter) Interpreter; |
123 |
|
124 public: |
|
125 // Debugging/printing |
|
126 static InterpreterCodelet* codelet_containing(address pc) { return (InterpreterCodelet*)_code->stub_containing(pc); } |
|
127 |
|
128 #ifdef TARGET_ARCH_x86 |
|
129 # include "interpreter_x86.hpp" |
|
130 #endif |
|
131 #ifdef TARGET_ARCH_sparc |
|
132 # include "interpreter_sparc.hpp" |
|
133 #endif |
|
134 #ifdef TARGET_ARCH_zero |
|
135 # include "interpreter_zero.hpp" |
|
136 #endif |
|
137 #ifdef TARGET_ARCH_arm |
|
138 # include "interpreter_arm.hpp" |
|
139 #endif |
|
140 #ifdef TARGET_ARCH_ppc |
|
141 # include "interpreter_ppc.hpp" |
|
142 #endif |
|
143 #ifdef TARGET_ARCH_aarch64 |
|
144 # include "interpreter_aarch64.hpp" |
|
145 #endif |
|
146 |
|
147 }; |
|
148 |
120 |
149 #endif // SHARE_VM_INTERPRETER_INTERPRETER_HPP |
121 #endif // SHARE_VM_INTERPRETER_INTERPRETER_HPP |