< prev index next >

src/hotspot/share/interpreter/templateInterpreterGenerator.cpp

Print this page

 33 #include "oops/methodData.hpp"
 34 
 35 #define __ Disassembler::hook<InterpreterMacroAssembler>(__FILE__, __LINE__, _masm)->
 36 
 37 TemplateInterpreterGenerator::TemplateInterpreterGenerator(): AbstractInterpreterGenerator() {
 38   _unimplemented_bytecode    = nullptr;
 39   _illegal_bytecode_sequence = nullptr;
 40   generate_all();
 41 }
 42 
 43 static const BasicType types[Interpreter::number_of_result_handlers] = {
 44   T_BOOLEAN,
 45   T_CHAR   ,
 46   T_BYTE   ,
 47   T_SHORT  ,
 48   T_INT    ,
 49   T_LONG   ,
 50   T_VOID   ,
 51   T_FLOAT  ,
 52   T_DOUBLE ,
 53   T_OBJECT

 54 };
 55 
 56 void TemplateInterpreterGenerator::generate_all() {
 57   { CodeletMark cm(_masm, "slow signature handler");
 58     AbstractInterpreter::_slow_signature_handler = generate_slow_signature_handler();
 59   }
 60 
 61   { CodeletMark cm(_masm, "error exits");
 62     _unimplemented_bytecode    = generate_error_exit("unimplemented bytecode");
 63     _illegal_bytecode_sequence = generate_error_exit("illegal bytecode sequence - method not verified");
 64   }
 65 
 66 #ifndef PRODUCT
 67   if (TraceBytecodes) {
 68     CodeletMark cm(_masm, "bytecode tracing support");
 69     Interpreter::_trace_code =
 70       EntryPoint(
 71                  generate_trace_code(atos),
 72                  generate_trace_code(itos),
 73                  generate_trace_code(ltos),

 33 #include "oops/methodData.hpp"
 34 
 35 #define __ Disassembler::hook<InterpreterMacroAssembler>(__FILE__, __LINE__, _masm)->
 36 
 37 TemplateInterpreterGenerator::TemplateInterpreterGenerator(): AbstractInterpreterGenerator() {
 38   _unimplemented_bytecode    = nullptr;
 39   _illegal_bytecode_sequence = nullptr;
 40   generate_all();
 41 }
 42 
 43 static const BasicType types[Interpreter::number_of_result_handlers] = {
 44   T_BOOLEAN,
 45   T_CHAR   ,
 46   T_BYTE   ,
 47   T_SHORT  ,
 48   T_INT    ,
 49   T_LONG   ,
 50   T_VOID   ,
 51   T_FLOAT  ,
 52   T_DOUBLE ,
 53   T_OBJECT ,
 54   T_PRIMITIVE_OBJECT
 55 };
 56 
 57 void TemplateInterpreterGenerator::generate_all() {
 58   { CodeletMark cm(_masm, "slow signature handler");
 59     AbstractInterpreter::_slow_signature_handler = generate_slow_signature_handler();
 60   }
 61 
 62   { CodeletMark cm(_masm, "error exits");
 63     _unimplemented_bytecode    = generate_error_exit("unimplemented bytecode");
 64     _illegal_bytecode_sequence = generate_error_exit("illegal bytecode sequence - method not verified");
 65   }
 66 
 67 #ifndef PRODUCT
 68   if (TraceBytecodes) {
 69     CodeletMark cm(_masm, "bytecode tracing support");
 70     Interpreter::_trace_code =
 71       EntryPoint(
 72                  generate_trace_code(atos),
 73                  generate_trace_code(itos),
 74                  generate_trace_code(ltos),
< prev index next >