< prev index next >

src/hotspot/share/interpreter/templateInterpreterGenerator.cpp

Print this page




  35 #ifndef CC_INTERP
  36 
  37 #define __ Disassembler::hook<InterpreterMacroAssembler>(__FILE__, __LINE__, _masm)->
  38 
  39 TemplateInterpreterGenerator::TemplateInterpreterGenerator(StubQueue* _code): AbstractInterpreterGenerator(_code) {
  40   _unimplemented_bytecode    = NULL;
  41   _illegal_bytecode_sequence = NULL;
  42   generate_all();
  43 }
  44 
  45 static const BasicType types[Interpreter::number_of_result_handlers] = {
  46   T_BOOLEAN,
  47   T_CHAR   ,
  48   T_BYTE   ,
  49   T_SHORT  ,
  50   T_INT    ,
  51   T_LONG   ,
  52   T_VOID   ,
  53   T_FLOAT  ,
  54   T_DOUBLE ,
  55   T_OBJECT

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




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


< prev index next >