299 300 public final int fieldInfoAccessFlagsOffset = getConstant("FieldInfo::access_flags_offset", Integer.class); 301 public final int fieldInfoNameIndexOffset = getConstant("FieldInfo::name_index_offset", Integer.class); 302 public final int fieldInfoSignatureIndexOffset = getConstant("FieldInfo::signature_index_offset", Integer.class); 303 public final int fieldInfoInitvalIndexOffset = getConstant("FieldInfo::initval_index_offset", Integer.class); 304 public final int fieldInfoLowPackedOffset = getConstant("FieldInfo::low_packed_offset", Integer.class); 305 public final int fieldInfoHighPackedOffset = getConstant("FieldInfo::high_packed_offset", Integer.class); 306 public final int fieldInfoFieldSlots = getConstant("FieldInfo::field_slots", Integer.class); 307 308 public final int fieldInfoTagSize = getConstant("FIELDINFO_TAG_SIZE", Integer.class); 309 310 public final int jvmAccMonitorMatch = getConstant("JVM_ACC_MONITOR_MATCH", Integer.class); 311 public final int jvmAccHasMonitorBytecodes = getConstant("JVM_ACC_HAS_MONITOR_BYTECODES", Integer.class); 312 public final int jvmAccHasFinalizer = getConstant("JVM_ACC_HAS_FINALIZER", Integer.class); 313 public final int jvmAccFieldInternal = getConstant("JVM_ACC_FIELD_INTERNAL", Integer.class); 314 public final int jvmAccFieldStable = getConstant("JVM_ACC_FIELD_STABLE", Integer.class); 315 public final int jvmAccFieldHasGenericSignature = getConstant("JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE", Integer.class); 316 public final int jvmAccWrittenFlags = getConstant("JVM_ACC_WRITTEN_FLAGS", Integer.class); 317 public final int jvmAccSynthetic = getConstant("JVM_ACC_SYNTHETIC", Integer.class); 318 319 public final int jvmciCompileStateCanPostOnExceptionsOffset = getJvmciCompileStateCanPostOnExceptionsOffset(); 320 321 // Integer.MIN_VALUE if not available 322 private int getJvmciCompileStateCanPostOnExceptionsOffset() { 323 int offset = getFieldOffset("JVMCICompileState::_jvmti_can_post_on_exceptions", Integer.class, "jbyte", Integer.MIN_VALUE); 324 if (offset == Integer.MIN_VALUE) { 325 // JDK 12 326 offset = getFieldOffset("JVMCIEnv::_jvmti_can_post_on_exceptions", Integer.class, "jbyte", Integer.MIN_VALUE); 327 } 328 return offset; 329 } 330 331 public final int threadTlabOffset = getFieldOffset("Thread::_tlab", Integer.class, "ThreadLocalAllocBuffer"); 332 public final int javaThreadAnchorOffset = getFieldOffset("JavaThread::_anchor", Integer.class, "JavaFrameAnchor"); 333 public final int javaThreadShouldPostOnExceptionsFlagOffset = getFieldOffset("JavaThread::_should_post_on_exceptions_flag", Integer.class, "int", Integer.MIN_VALUE); 334 public final int threadObjectOffset = getFieldOffset("JavaThread::_threadObj", Integer.class, "oop"); 335 public final int osThreadOffset = getFieldOffset("JavaThread::_osthread", Integer.class, "OSThread*"); 336 public final int threadIsMethodHandleReturnOffset = getFieldOffset("JavaThread::_is_method_handle_return", Integer.class, "int"); 337 public final int threadObjectResultOffset = getFieldOffset("JavaThread::_vm_result", Integer.class, "oop"); 338 public final int jvmciCountersThreadOffset = getFieldOffset("JavaThread::_jvmci_counters", Integer.class, "jlong*"); 339 public final int javaThreadReservedStackActivationOffset = versioned.javaThreadReservedStackActivationOffset; 340 341 public boolean requiresReservedStackCheck(List<ResolvedJavaMethod> methods) { 342 if (enableStackReservedZoneAddress != 0 && methods != null) { 343 for (ResolvedJavaMethod method : methods) { 344 if (((HotSpotResolvedJavaMethod) method).hasReservedStackAccess()) { 345 return true; 346 } | 299 300 public final int fieldInfoAccessFlagsOffset = getConstant("FieldInfo::access_flags_offset", Integer.class); 301 public final int fieldInfoNameIndexOffset = getConstant("FieldInfo::name_index_offset", Integer.class); 302 public final int fieldInfoSignatureIndexOffset = getConstant("FieldInfo::signature_index_offset", Integer.class); 303 public final int fieldInfoInitvalIndexOffset = getConstant("FieldInfo::initval_index_offset", Integer.class); 304 public final int fieldInfoLowPackedOffset = getConstant("FieldInfo::low_packed_offset", Integer.class); 305 public final int fieldInfoHighPackedOffset = getConstant("FieldInfo::high_packed_offset", Integer.class); 306 public final int fieldInfoFieldSlots = getConstant("FieldInfo::field_slots", Integer.class); 307 308 public final int fieldInfoTagSize = getConstant("FIELDINFO_TAG_SIZE", Integer.class); 309 310 public final int jvmAccMonitorMatch = getConstant("JVM_ACC_MONITOR_MATCH", Integer.class); 311 public final int jvmAccHasMonitorBytecodes = getConstant("JVM_ACC_HAS_MONITOR_BYTECODES", Integer.class); 312 public final int jvmAccHasFinalizer = getConstant("JVM_ACC_HAS_FINALIZER", Integer.class); 313 public final int jvmAccFieldInternal = getConstant("JVM_ACC_FIELD_INTERNAL", Integer.class); 314 public final int jvmAccFieldStable = getConstant("JVM_ACC_FIELD_STABLE", Integer.class); 315 public final int jvmAccFieldHasGenericSignature = getConstant("JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE", Integer.class); 316 public final int jvmAccWrittenFlags = getConstant("JVM_ACC_WRITTEN_FLAGS", Integer.class); 317 public final int jvmAccSynthetic = getConstant("JVM_ACC_SYNTHETIC", Integer.class); 318 319 public final int jvmciCompileStateCanPostOnExceptionsOffset = getJvmciJvmtiCapabilityOffset("_jvmti_can_post_on_exceptions"); 320 public final int jvmciCompileStateCanPopFrameOffset = getJvmciJvmtiCapabilityOffset("_jvmti_can_pop_frame"); 321 public final int jvmciCompileStateCanAccessLocalVariablesOffset = getJvmciJvmtiCapabilityOffset("_jvmti_can_access_local_variables"); 322 323 // Integer.MIN_VALUE if not available 324 private int getJvmciJvmtiCapabilityOffset(String name) { 325 int offset = getFieldOffset("JVMCICompileState::" + name, Integer.class, "jbyte", Integer.MIN_VALUE); 326 if (offset == Integer.MIN_VALUE) { 327 // JDK 12 328 offset = getFieldOffset("JVMCIEnv::" + name, Integer.class, "jbyte", Integer.MIN_VALUE); 329 } 330 return offset; 331 } 332 333 public final int threadTlabOffset = getFieldOffset("Thread::_tlab", Integer.class, "ThreadLocalAllocBuffer"); 334 public final int javaThreadAnchorOffset = getFieldOffset("JavaThread::_anchor", Integer.class, "JavaFrameAnchor"); 335 public final int javaThreadShouldPostOnExceptionsFlagOffset = getFieldOffset("JavaThread::_should_post_on_exceptions_flag", Integer.class, "int", Integer.MIN_VALUE); 336 public final int threadObjectOffset = getFieldOffset("JavaThread::_threadObj", Integer.class, "oop"); 337 public final int osThreadOffset = getFieldOffset("JavaThread::_osthread", Integer.class, "OSThread*"); 338 public final int threadIsMethodHandleReturnOffset = getFieldOffset("JavaThread::_is_method_handle_return", Integer.class, "int"); 339 public final int threadObjectResultOffset = getFieldOffset("JavaThread::_vm_result", Integer.class, "oop"); 340 public final int jvmciCountersThreadOffset = getFieldOffset("JavaThread::_jvmci_counters", Integer.class, "jlong*"); 341 public final int javaThreadReservedStackActivationOffset = versioned.javaThreadReservedStackActivationOffset; 342 343 public boolean requiresReservedStackCheck(List<ResolvedJavaMethod> methods) { 344 if (enableStackReservedZoneAddress != 0 && methods != null) { 345 for (ResolvedJavaMethod method : methods) { 346 if (((HotSpotResolvedJavaMethod) method).hasReservedStackAccess()) { 347 return true; 348 } |