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