131 132 133 // commit Codelet 134 AbstractInterpreter::code()->commit((*_masm)->code()->pure_insts_size(), (*_masm)->code()->strings()); 135 // make sure nobody can use _masm outside a CodeletMark lifespan 136 *_masm = NULL; 137 } 138 }; 139 140 // Wrapper classes to produce Interpreter/InterpreterGenerator from either 141 // the c++ interpreter or the template interpreter. 142 143 class Interpreter: public CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateInterpreter) { 144 145 public: 146 // Debugging/printing 147 static InterpreterCodelet* codelet_containing(address pc) { return (InterpreterCodelet*)_code->stub_containing(pc); } 148 #ifdef TARGET_ARCH_x86 149 # include "interpreter_x86.hpp" 150 #endif 151 #ifdef TARGET_ARCH_sparc 152 # include "interpreter_sparc.hpp" 153 #endif 154 #ifdef TARGET_ARCH_zero 155 # include "interpreter_zero.hpp" 156 #endif 157 #ifdef TARGET_ARCH_arm 158 # include "interpreter_arm.hpp" 159 #endif 160 #ifdef TARGET_ARCH_ppc 161 # include "interpreter_ppc.hpp" 162 #endif 163 164 }; 165 166 #endif // SHARE_VM_INTERPRETER_INTERPRETER_HPP | 131 132 133 // commit Codelet 134 AbstractInterpreter::code()->commit((*_masm)->code()->pure_insts_size(), (*_masm)->code()->strings()); 135 // make sure nobody can use _masm outside a CodeletMark lifespan 136 *_masm = NULL; 137 } 138 }; 139 140 // Wrapper classes to produce Interpreter/InterpreterGenerator from either 141 // the c++ interpreter or the template interpreter. 142 143 class Interpreter: public CC_INTERP_ONLY(CppInterpreter) NOT_CC_INTERP(TemplateInterpreter) { 144 145 public: 146 // Debugging/printing 147 static InterpreterCodelet* codelet_containing(address pc) { return (InterpreterCodelet*)_code->stub_containing(pc); } 148 #ifdef TARGET_ARCH_x86 149 # include "interpreter_x86.hpp" 150 #endif 151 #ifdef TARGET_ARCH_aarch64 152 # include "interpreter_aarch64.hpp" 153 #endif 154 #ifdef TARGET_ARCH_sparc 155 # include "interpreter_sparc.hpp" 156 #endif 157 #ifdef TARGET_ARCH_zero 158 # include "interpreter_zero.hpp" 159 #endif 160 #ifdef TARGET_ARCH_arm 161 # include "interpreter_arm.hpp" 162 #endif 163 #ifdef TARGET_ARCH_ppc 164 # include "interpreter_ppc.hpp" 165 #endif 166 167 }; 168 169 #endif // SHARE_VM_INTERPRETER_INTERPRETER_HPP |