1135
1136 // An id of a speculation that JVMCI compiled code can use to further describe and
1137 // uniquely identify the speculative optimization guarded by the uncommon trap
1138 jlong _pending_failed_speculation;
1139
1140 // These fields are mutually exclusive in terms of live ranges.
1141 union {
1142 // Communicates the pc at which the most recent implicit exception occurred
1143 // from the signal handler to a deoptimization stub.
1144 address _implicit_exception_pc;
1145
1146 // Communicates an alternative call target to an i2c stub from a JavaCall .
1147 address _alternate_call_target;
1148 } _jvmci;
1149
1150 // Support for high precision, thread sensitive counters in JVMCI compiled code.
1151 jlong* _jvmci_counters;
1152
1153 public:
1154 static jlong* _jvmci_old_thread_counters;
1155 static void collect_counters(JVMCIEnv* JVMCIENV, JVMCIPrimitiveArray array);
1156 private:
1157 #endif // INCLUDE_JVMCI
1158
1159 StackGuardState _stack_guard_state;
1160
1161 // Precompute the limit of the stack as used in stack overflow checks.
1162 // We load it from here to simplify the stack overflow check in assembly.
1163 address _stack_overflow_limit;
1164 address _reserved_stack_activation;
1165
1166 // Compiler exception handling (NOTE: The _exception_oop is *NOT* the same as _pending_exception. It is
1167 // used to temp. parsing values into and out of the runtime system during exception handling for compiled
1168 // code)
1169 volatile oop _exception_oop; // Exception thrown in compiled code
1170 volatile address _exception_pc; // PC where exception happened
1171 volatile address _exception_handler_pc; // PC for handler of exception
1172 volatile int _is_method_handle_return; // true (== 1) if the current exception PC is a MethodHandle call site.
1173
1174 private:
1175 // support for JNI critical regions
|
1135
1136 // An id of a speculation that JVMCI compiled code can use to further describe and
1137 // uniquely identify the speculative optimization guarded by the uncommon trap
1138 jlong _pending_failed_speculation;
1139
1140 // These fields are mutually exclusive in terms of live ranges.
1141 union {
1142 // Communicates the pc at which the most recent implicit exception occurred
1143 // from the signal handler to a deoptimization stub.
1144 address _implicit_exception_pc;
1145
1146 // Communicates an alternative call target to an i2c stub from a JavaCall .
1147 address _alternate_call_target;
1148 } _jvmci;
1149
1150 // Support for high precision, thread sensitive counters in JVMCI compiled code.
1151 jlong* _jvmci_counters;
1152
1153 public:
1154 static jlong* _jvmci_old_thread_counters;
1155 static void collect_counters(jlong* array, int length);
1156 private:
1157 #endif // INCLUDE_JVMCI
1158
1159 StackGuardState _stack_guard_state;
1160
1161 // Precompute the limit of the stack as used in stack overflow checks.
1162 // We load it from here to simplify the stack overflow check in assembly.
1163 address _stack_overflow_limit;
1164 address _reserved_stack_activation;
1165
1166 // Compiler exception handling (NOTE: The _exception_oop is *NOT* the same as _pending_exception. It is
1167 // used to temp. parsing values into and out of the runtime system during exception handling for compiled
1168 // code)
1169 volatile oop _exception_oop; // Exception thrown in compiled code
1170 volatile address _exception_pc; // PC where exception happened
1171 volatile address _exception_handler_pc; // PC for handler of exception
1172 volatile int _is_method_handle_return; // true (== 1) if the current exception PC is a MethodHandle call site.
1173
1174 private:
1175 // support for JNI critical regions
|