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),
|