90 friend class VMStructs;
91 friend class Interpreter;
92 friend class CppInterpreterGenerator;
93 public:
94 enum MethodKind {
95 zerolocals, // method needs locals initialization
96 zerolocals_synchronized, // method needs locals initialization & is synchronized
97 native, // native method
98 native_synchronized, // native method & is synchronized
99 empty, // empty method (code: _return)
100 accessor, // accessor method (code: _aload_0, _getfield, _(a|i)return)
101 abstract, // abstract method (throws an AbstractMethodException)
102 method_handle, // java.lang.invoke.MethodHandles::invoke
103 java_lang_math_sin, // implementation of java.lang.Math.sin (x)
104 java_lang_math_cos, // implementation of java.lang.Math.cos (x)
105 java_lang_math_tan, // implementation of java.lang.Math.tan (x)
106 java_lang_math_abs, // implementation of java.lang.Math.abs (x)
107 java_lang_math_sqrt, // implementation of java.lang.Math.sqrt (x)
108 java_lang_math_log, // implementation of java.lang.Math.log (x)
109 java_lang_math_log10, // implementation of java.lang.Math.log10 (x)
110 java_lang_ref_reference_get, // implementation of java.lang.ref.Reference.get()
111 number_of_method_entries,
112 invalid = -1
113 };
114
115 enum SomeConstants {
116 number_of_result_handlers = 10 // number of result handlers for native calls
117 };
118
119 protected:
120 static StubQueue* _code; // the interpreter code (codelets)
121
122 static bool _notice_safepoints; // true if safepoints are activated
123
124 static address _native_entry_begin; // Region for native entry code
125 static address _native_entry_end;
126
127 // method entry points
128 static address _entry_table[number_of_method_entries]; // entry points for a given method
129 static address _native_abi_to_tosca[number_of_result_handlers]; // for native method result handlers
|
90 friend class VMStructs;
91 friend class Interpreter;
92 friend class CppInterpreterGenerator;
93 public:
94 enum MethodKind {
95 zerolocals, // method needs locals initialization
96 zerolocals_synchronized, // method needs locals initialization & is synchronized
97 native, // native method
98 native_synchronized, // native method & is synchronized
99 empty, // empty method (code: _return)
100 accessor, // accessor method (code: _aload_0, _getfield, _(a|i)return)
101 abstract, // abstract method (throws an AbstractMethodException)
102 method_handle, // java.lang.invoke.MethodHandles::invoke
103 java_lang_math_sin, // implementation of java.lang.Math.sin (x)
104 java_lang_math_cos, // implementation of java.lang.Math.cos (x)
105 java_lang_math_tan, // implementation of java.lang.Math.tan (x)
106 java_lang_math_abs, // implementation of java.lang.Math.abs (x)
107 java_lang_math_sqrt, // implementation of java.lang.Math.sqrt (x)
108 java_lang_math_log, // implementation of java.lang.Math.log (x)
109 java_lang_math_log10, // implementation of java.lang.Math.log10 (x)
110 java_lang_math_pow, // implementation of java.lang.Math.pow (x,y)
111 java_lang_math_exp, // implementation of java.lang.Math.exp (x)
112 java_lang_ref_reference_get, // implementation of java.lang.ref.Reference.get()
113 number_of_method_entries,
114 invalid = -1
115 };
116
117 enum SomeConstants {
118 number_of_result_handlers = 10 // number of result handlers for native calls
119 };
120
121 protected:
122 static StubQueue* _code; // the interpreter code (codelets)
123
124 static bool _notice_safepoints; // true if safepoints are activated
125
126 static address _native_entry_begin; // Region for native entry code
127 static address _native_entry_end;
128
129 // method entry points
130 static address _entry_table[number_of_method_entries]; // entry points for a given method
131 static address _native_abi_to_tosca[number_of_result_handlers]; // for native method result handlers
|