93 java_lang_Float_floatToFloat16, // implementation of java.lang.Float.floatToFloat16()
94 java_lang_Double_longBitsToDouble, // implementation of java.lang.Double.longBitsToDouble()
95 java_lang_Double_doubleToRawLongBits, // implementation of java.lang.Double.doubleToRawLongBits()
96 java_lang_Thread_currentThread, // implementation of java.lang.Thread.currentThread()
97 number_of_method_entries,
98 invalid = -1
99 };
100
101 // Conversion from the part of the above enum to vmIntrinsics::_invokeExact, etc.
102 static vmIntrinsics::ID method_handle_intrinsic(MethodKind kind) {
103 if (kind >= method_handle_invoke_FIRST && kind <= method_handle_invoke_LAST)
104 return vmIntrinsics::ID_from(static_cast<int>(vmIntrinsics::FIRST_MH_SIG_POLY) + (kind - method_handle_invoke_FIRST));
105 else
106 return vmIntrinsics::_none;
107 }
108
109 // Conversion from the above enum to vmIntrinsics::ID
110 static vmIntrinsics::ID method_intrinsic(MethodKind kind);
111
112 enum SomeConstants {
113 number_of_result_handlers = 10 // number of result handlers for native calls
114 };
115
116 protected:
117 static StubQueue* _code; // the interpreter code (codelets)
118
119 static bool _notice_safepoints; // true if safepoints are activated
120
121 // method entry points
122 static address _entry_table[number_of_method_entries]; // entry points for a given method
123 static address _native_abi_to_tosca[number_of_result_handlers]; // for native method result handlers
124 static address _slow_signature_handler; // the native method generic (slow) signature handler
125
126 static address _rethrow_exception_entry; // rethrows an activation in previous frame
127
128 friend class AbstractInterpreterGenerator;
129 friend class InterpreterMacroAssembler;
130
131 public:
132 // Initialization/debugging
133 static void initialize();
|
93 java_lang_Float_floatToFloat16, // implementation of java.lang.Float.floatToFloat16()
94 java_lang_Double_longBitsToDouble, // implementation of java.lang.Double.longBitsToDouble()
95 java_lang_Double_doubleToRawLongBits, // implementation of java.lang.Double.doubleToRawLongBits()
96 java_lang_Thread_currentThread, // implementation of java.lang.Thread.currentThread()
97 number_of_method_entries,
98 invalid = -1
99 };
100
101 // Conversion from the part of the above enum to vmIntrinsics::_invokeExact, etc.
102 static vmIntrinsics::ID method_handle_intrinsic(MethodKind kind) {
103 if (kind >= method_handle_invoke_FIRST && kind <= method_handle_invoke_LAST)
104 return vmIntrinsics::ID_from(static_cast<int>(vmIntrinsics::FIRST_MH_SIG_POLY) + (kind - method_handle_invoke_FIRST));
105 else
106 return vmIntrinsics::_none;
107 }
108
109 // Conversion from the above enum to vmIntrinsics::ID
110 static vmIntrinsics::ID method_intrinsic(MethodKind kind);
111
112 enum SomeConstants {
113 number_of_result_handlers = 11 // number of result handlers for native calls
114 };
115
116 protected:
117 static StubQueue* _code; // the interpreter code (codelets)
118
119 static bool _notice_safepoints; // true if safepoints are activated
120
121 // method entry points
122 static address _entry_table[number_of_method_entries]; // entry points for a given method
123 static address _native_abi_to_tosca[number_of_result_handlers]; // for native method result handlers
124 static address _slow_signature_handler; // the native method generic (slow) signature handler
125
126 static address _rethrow_exception_entry; // rethrows an activation in previous frame
127
128 friend class AbstractInterpreterGenerator;
129 friend class InterpreterMacroAssembler;
130
131 public:
132 // Initialization/debugging
133 static void initialize();
|