| File: | jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp | 
| Warning: | line 295, column 12 Value stored to 'current' during its initialization is never read | 
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
| 1 | /* | 
| 2 | * Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved. | 
| 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 
| 4 | * | 
| 5 | * This code is free software; you can redistribute it and/or modify it | 
| 6 | * under the terms of the GNU General Public License version 2 only, as | 
| 7 | * published by the Free Software Foundation. | 
| 8 | * | 
| 9 | * This code is distributed in the hope that it will be useful, but WITHOUT | 
| 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
| 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | 
| 12 | * version 2 for more details (a copy is included in the LICENSE file that | 
| 13 | * accompanied this code). | 
| 14 | * | 
| 15 | * You should have received a copy of the GNU General Public License version | 
| 16 | * 2 along with this work; if not, write to the Free Software Foundation, | 
| 17 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | 
| 18 | * | 
| 19 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | 
| 20 | * or visit www.oracle.com if you need additional information or have any | 
| 21 | * questions. | 
| 22 | */ | 
| 23 | |
| 24 | #include "precompiled.hpp" | 
| 25 | #include "classfile/symbolTable.hpp" | 
| 26 | #include "classfile/systemDictionary.hpp" | 
| 27 | #include "classfile/vmClasses.hpp" | 
| 28 | #include "interpreter/linkResolver.hpp" | 
| 29 | #include "jvmci/jniAccessMark.inline.hpp" | 
| 30 | #include "jvmci/jvmciJavaClasses.hpp" | 
| 31 | #include "jvmci/jvmciRuntime.hpp" | 
| 32 | #include "memory/resourceArea.hpp" | 
| 33 | #include "oops/instanceKlass.inline.hpp" | 
| 34 | #include "runtime/fieldDescriptor.inline.hpp" | 
| 35 | #include "runtime/jniHandles.inline.hpp" | 
| 36 | #include "runtime/java.hpp" | 
| 37 | |
| 38 | // ------------------------------------------------------------------ | 
| 39 | |
| 40 | oop HotSpotJVMCI::resolve(JVMCIObject obj) { | 
| 41 | return JNIHandles::resolve(obj.as_jobject()); | 
| 42 | } | 
| 43 | |
| 44 | arrayOop HotSpotJVMCI::resolve(JVMCIArray obj) { | 
| 45 | return (arrayOop) JNIHandles::resolve(obj.as_jobject()); | 
| 46 | } | 
| 47 | |
| 48 | objArrayOop HotSpotJVMCI::resolve(JVMCIObjectArray obj) { | 
| 49 | return (objArrayOop) JNIHandles::resolve(obj.as_jobject()); | 
| 50 | } | 
| 51 | |
| 52 | typeArrayOop HotSpotJVMCI::resolve(JVMCIPrimitiveArray obj) { | 
| 53 | return (typeArrayOop) JNIHandles::resolve(obj.as_jobject()); | 
| 54 | } | 
| 55 | |
| 56 | JVMCIObject HotSpotJVMCI::wrap(oop obj) { | 
| 57 | assert(Thread::current()->is_Java_thread(), "must be")do { if (!(Thread::current()->is_Java_thread())) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 57, "assert(" "Thread::current()->is_Java_thread()" ") failed" , "must be"); ::breakpoint(); } } while (0); | 
| 58 | return JVMCIObject(JNIHandles::make_local(obj), true); | 
| 59 | } | 
| 60 | |
| 61 | /** | 
| 62 | * Computes the field offset of a static or instance field. | 
| 63 | * It looks up the name and signature symbols without creating new ones; | 
| 64 | * all the symbols of these classes need to be already loaded. | 
| 65 | */ | 
| 66 | void HotSpotJVMCI::compute_offset(int &dest_offset, Klass* klass, const char* name, const char* signature, bool static_field, TRAPSJavaThread* __the_thread__) { | 
| 67 | InstanceKlass* ik = InstanceKlass::cast(klass); | 
| 68 | Symbol* name_symbol = SymbolTable::probe(name, (int)strlen(name)); | 
| 69 | Symbol* signature_symbol = SymbolTable::probe(signature, (int)strlen(signature)); | 
| 70 | if (name_symbol == NULL__null || signature_symbol == NULL__null) { | 
| 71 | #ifndef PRODUCT | 
| 72 | ik->print_on(tty); | 
| 73 | #endif | 
| 74 | fatal("symbol with name %s and signature %s was not found in symbol table (klass=%s)", name, signature, klass->name()->as_C_string())do { (*g_assert_poison) = 'X';; report_fatal(INTERNAL_ERROR, "/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 74, "symbol with name %s and signature %s was not found in symbol table (klass=%s)" , name, signature, klass->name()->as_C_string()); ::breakpoint (); } while (0); | 
| 75 | } | 
| 76 | |
| 77 | fieldDescriptor fd; | 
| 78 | if (!ik->find_field(name_symbol, signature_symbol, &fd)) { | 
| 79 | ResourceMark rm; | 
| 80 | fatal("Could not find field %s.%s with signature %s", ik->external_name(), name, signature)do { (*g_assert_poison) = 'X';; report_fatal(INTERNAL_ERROR, "/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 80, "Could not find field %s.%s with signature %s", ik-> external_name(), name, signature); ::breakpoint(); } while (0 ); | 
| 81 | } | 
| 82 | guarantee(fd.is_static() == static_field, "static/instance mismatch")do { if (!(fd.is_static() == static_field)) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 82, "guarantee(" "fd.is_static() == static_field" ") failed" , "static/instance mismatch"); ::breakpoint(); } } while (0); | 
| 83 | dest_offset = fd.offset(); | 
| 84 | assert(dest_offset != 0, "must be valid offset")do { if (!(dest_offset != 0)) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 84, "assert(" "dest_offset != 0" ") failed", "must be valid offset" ); ::breakpoint(); } } while (0); | 
| 85 | if (static_field) { | 
| 86 | // Must ensure classes for static fields are initialized as the | 
| 87 | // accessor itself does not include a class initialization check. | 
| 88 | ik->initialize(CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception ())) return ; (void)(0); | 
| 89 | } | 
| 90 | JVMCI_event_2if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" field offset for %s %s.%s = %d", signature, ik->external_name(), name, dest_offset); | 
| 91 | } | 
| 92 | |
| 93 | #ifndef PRODUCT | 
| 94 | static void check_resolve_method(const char* call_type, Klass* resolved_klass, Symbol* method_name, Symbol* method_signature, TRAPSJavaThread* __the_thread__) { | 
| 95 | Method* method = NULL__null; | 
| 96 | LinkInfo link_info(resolved_klass, method_name, method_signature, NULL__null, LinkInfo::AccessCheck::skip, LinkInfo::LoaderConstraintCheck::skip); | 
| 97 | if (strcmp(call_type, "call_static") == 0) { | 
| 98 | method = LinkResolver::resolve_static_call_or_null(link_info); | 
| 99 | } else if (strcmp(call_type, "call_virtual") == 0) { | 
| 100 | method = LinkResolver::resolve_virtual_call_or_null(resolved_klass, link_info); | 
| 101 | } else if (strcmp(call_type, "call_special") == 0) { | 
| 102 | method = LinkResolver::resolve_special_call_or_null(link_info); | 
| 103 | } else { | 
| 104 | fatal("Unknown or unsupported call type: %s", call_type)do { (*g_assert_poison) = 'X';; report_fatal(INTERNAL_ERROR, "/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 104, "Unknown or unsupported call type: %s", call_type); :: breakpoint(); } while (0); | 
| 105 | } | 
| 106 | if (method == NULL__null) { | 
| 107 | fatal("Could not resolve %s.%s%s", resolved_klass->external_name(), method_name->as_C_string(), method_signature->as_C_string())do { (*g_assert_poison) = 'X';; report_fatal(INTERNAL_ERROR, "/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 107, "Could not resolve %s.%s%s", resolved_klass->external_name (), method_name->as_C_string(), method_signature->as_C_string ()); ::breakpoint(); } while (0); | 
| 108 | } | 
| 109 | } | 
| 110 | #endif | 
| 111 | |
| 112 | jclass JNIJVMCI::_box_classes[T_CONFLICT+1]; | 
| 113 | jclass JNIJVMCI::_byte_array; | 
| 114 | jfieldID JNIJVMCI::_box_fields[T_CONFLICT+1]; | 
| 115 | jmethodID JNIJVMCI::_box_constructors[T_CONFLICT+1]; | 
| 116 | jmethodID JNIJVMCI::_Class_getName_method; | 
| 117 | |
| 118 | jmethodID JNIJVMCI::_HotSpotResolvedJavaMethodImpl_fromMetaspace_method; | 
| 119 | jmethodID JNIJVMCI::_HotSpotConstantPool_fromMetaspace_method; | 
| 120 | jmethodID JNIJVMCI::_HotSpotResolvedObjectTypeImpl_fromMetaspace_method; | 
| 121 | jmethodID JNIJVMCI::_HotSpotResolvedPrimitiveType_fromMetaspace_method; | 
| 122 | |
| 123 | #define START_CLASS(className, fullClassName) { \ | 
| 124 | Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::fullClassName(), true, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception ())) return ; (void)(0); \ | 
| 125 | className::_klass = InstanceKlass::cast(k); \ | 
| 126 | JVMCI_event_2if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" klass for %s = " PTR_FORMAT"0x%016" "l" "x", k->external_name(), p2i(k)); \ | 
| 127 | className::_klass->initialize(CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception ())) return ; (void)(0); | 
| 128 | |
| 129 | #define END_CLASS } | 
| 130 | |
| 131 | #define FIELD(className, name, signature, static_field) compute_offset(className::_##name##_offset, className::_klass, #name, signature, static_field, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception ())) return ; (void)(0); | 
| 132 | #define CHAR_FIELD(className, name) FIELD(className, name, "C", false) | 
| 133 | #define INT_FIELD(className, name) FIELD(className, name, "I", false) | 
| 134 | #define BOOLEAN_FIELD(className, name) FIELD(className, name, "Z", false) | 
| 135 | #define LONG_FIELD(className, name) FIELD(className, name, "J", false) | 
| 136 | #define FLOAT_FIELD(className, name) FIELD(className, name, "F", false) | 
| 137 | #define OBJECT_FIELD(className, name, signature) FIELD(className, name, signature, false) | 
| 138 | #define STATIC_OBJECT_FIELD(className, name, signature) FIELD(className, name, signature, true) | 
| 139 | #define STATIC_INT_FIELD(className, name) FIELD(className, name, "I", true) | 
| 140 | #define STATIC_BOOLEAN_FIELD(className, name) FIELD(className, name, "Z", true) | 
| 141 | #ifdef PRODUCT | 
| 142 | #define METHOD(jniCallType, jniGetMethod, hsCallType, returnType, className, methodName, signatureSymbolName, args) | 
| 143 | #define CONSTRUCTOR(className, signature) | 
| 144 | #else | 
| 145 | #define METHOD(jniCallType, jniGetMethod, hsCallType, returnType, className, methodName, signatureSymbolName, args) \ | 
| 146 | check_resolve_method(#hsCallType, k, vmSymbols::methodName##_name(), vmSymbols::signatureSymbolName(), CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception ())) return ; (void)(0); | 
| 147 | #define CONSTRUCTOR(className, signature) { \ | 
| 148 | TempNewSymbol sig = SymbolTable::new_symbol(signature); \ | 
| 149 | check_resolve_method("call_special", k, vmSymbols::object_initializer_name(), sig, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception ())) return ; (void)(0); \ | 
| 150 | } | 
| 151 | #endif | 
| 152 | /** | 
| 153 | * Computes and initializes the offsets used by HotSpotJVMCI. | 
| 154 | */ | 
| 155 | void HotSpotJVMCI::compute_offsets(TRAPSJavaThread* __the_thread__) { | 
| 156 | JVMCI_CLASSES_DO(START_CLASS, END_CLASS, CHAR_FIELD, INT_FIELD, BOOLEAN_FIELD, LONG_FIELD, FLOAT_FIELD, OBJECT_FIELD, OBJECT_FIELD, OBJECT_FIELD, STATIC_OBJECT_FIELD, STATIC_OBJECT_FIELD, STATIC_INT_FIELD, STATIC_BOOLEAN_FIELD, METHOD, CONSTRUCTOR)START_CLASS(Services, jdk_vm_ci_services_Services) METHOD(CallStaticVoidMethod , GetStaticMethodID, call_static, void, Services, initializeSavedProperties , byte_array_void_signature, (JVMCIObject serializedProperties )) END_CLASS START_CLASS(Architecture, jdk_vm_ci_code_Architecture ) OBJECT_FIELD(Architecture, wordKind, "Ljdk/vm/ci/meta/PlatformKind;" ) END_CLASS START_CLASS(TargetDescription, jdk_vm_ci_code_TargetDescription ) OBJECT_FIELD(TargetDescription, arch, "Ljdk/vm/ci/code/Architecture;" ) END_CLASS START_CLASS(HotSpotResolvedObjectTypeImpl, jdk_vm_ci_hotspot_HotSpotResolvedObjectTypeImpl ) LONG_FIELD(HotSpotResolvedObjectTypeImpl, metadataPointer) END_CLASS START_CLASS(HotSpotResolvedPrimitiveType, jdk_vm_ci_hotspot_HotSpotResolvedPrimitiveType ) OBJECT_FIELD(HotSpotResolvedPrimitiveType, mirror, "Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;" ) OBJECT_FIELD(HotSpotResolvedPrimitiveType, kind, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(HotSpotResolvedPrimitiveType, primitives , "[Ljdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType;") END_CLASS START_CLASS(HotSpotResolvedJavaFieldImpl, jdk_vm_ci_hotspot_HotSpotResolvedJavaFieldImpl ) OBJECT_FIELD(HotSpotResolvedJavaFieldImpl, type, "Ljdk/vm/ci/meta/JavaType;" ) OBJECT_FIELD(HotSpotResolvedJavaFieldImpl, holder, "Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;" ) INT_FIELD(HotSpotResolvedJavaFieldImpl, offset) INT_FIELD(HotSpotResolvedJavaFieldImpl , modifiers) END_CLASS START_CLASS(HotSpotResolvedJavaMethodImpl , jdk_vm_ci_hotspot_HotSpotResolvedJavaMethodImpl) LONG_FIELD (HotSpotResolvedJavaMethodImpl, metadataHandle) END_CLASS START_CLASS (InstalledCode, jdk_vm_ci_code_InstalledCode) LONG_FIELD(InstalledCode , address) LONG_FIELD(InstalledCode, entryPoint) LONG_FIELD(InstalledCode , version) OBJECT_FIELD(InstalledCode, name, "Ljava/lang/String;" ) END_CLASS START_CLASS(HotSpotInstalledCode, jdk_vm_ci_hotspot_HotSpotInstalledCode ) INT_FIELD(HotSpotInstalledCode, size) LONG_FIELD(HotSpotInstalledCode , codeStart) INT_FIELD(HotSpotInstalledCode, codeSize) END_CLASS START_CLASS(HotSpotNmethod, jdk_vm_ci_hotspot_HotSpotNmethod ) BOOLEAN_FIELD(HotSpotNmethod, isDefault) LONG_FIELD(HotSpotNmethod , compileIdSnapshot) OBJECT_FIELD(HotSpotNmethod, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;" ) CONSTRUCTOR(HotSpotNmethod, "(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;Ljava/lang/String;ZJ)V" ) END_CLASS START_CLASS(HotSpotCompiledCode, jdk_vm_ci_hotspot_HotSpotCompiledCode ) OBJECT_FIELD(HotSpotCompiledCode, name, "Ljava/lang/String;" ) OBJECT_FIELD(HotSpotCompiledCode, targetCode, "[B") INT_FIELD (HotSpotCompiledCode, targetCodeSize) OBJECT_FIELD(HotSpotCompiledCode , sites, "[Ljdk/vm/ci/code/site/Site;") OBJECT_FIELD(HotSpotCompiledCode , assumptions, "[Ljdk/vm/ci/meta/Assumptions$Assumption;") OBJECT_FIELD (HotSpotCompiledCode, methods, "[Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) OBJECT_FIELD(HotSpotCompiledCode, comments, "[Ljdk/vm/ci/hotspot/HotSpotCompiledCode$Comment;" ) OBJECT_FIELD(HotSpotCompiledCode, dataSection, "[B") INT_FIELD (HotSpotCompiledCode, dataSectionAlignment) OBJECT_FIELD(HotSpotCompiledCode , dataSectionPatches, "[Ljdk/vm/ci/code/site/DataPatch;") BOOLEAN_FIELD (HotSpotCompiledCode, isImmutablePIC) INT_FIELD(HotSpotCompiledCode , totalFrameSize) OBJECT_FIELD(HotSpotCompiledCode, deoptRescueSlot , "Ljdk/vm/ci/code/StackSlot;") END_CLASS START_CLASS(HotSpotCompiledCode_Comment , jdk_vm_ci_hotspot_HotSpotCompiledCode_Comment) OBJECT_FIELD (HotSpotCompiledCode_Comment, text, "Ljava/lang/String;") INT_FIELD (HotSpotCompiledCode_Comment, pcOffset) END_CLASS START_CLASS (HotSpotCompiledNmethod, jdk_vm_ci_hotspot_HotSpotCompiledNmethod ) OBJECT_FIELD(HotSpotCompiledNmethod, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;" ) OBJECT_FIELD(HotSpotCompiledNmethod, installationFailureMessage , "Ljava/lang/String;") INT_FIELD(HotSpotCompiledNmethod, entryBCI ) INT_FIELD(HotSpotCompiledNmethod, id) LONG_FIELD(HotSpotCompiledNmethod , compileState) BOOLEAN_FIELD(HotSpotCompiledNmethod, hasUnsafeAccess ) END_CLASS START_CLASS(HotSpotForeignCallTarget, jdk_vm_ci_hotspot_HotSpotForeignCallTarget ) LONG_FIELD(HotSpotForeignCallTarget, address) END_CLASS START_CLASS (VMField, jdk_vm_ci_hotspot_VMField) OBJECT_FIELD(VMField, name , "Ljava/lang/String;") OBJECT_FIELD(VMField, type, "Ljava/lang/String;" ) LONG_FIELD(VMField, offset) LONG_FIELD(VMField, address) OBJECT_FIELD (VMField, value, "Ljava/lang/Object;") CONSTRUCTOR(VMField, "(Ljava/lang/String;Ljava/lang/String;JJLjava/lang/Object;)V" ) END_CLASS START_CLASS(VMFlag, jdk_vm_ci_hotspot_VMFlag) OBJECT_FIELD (VMFlag, name, "Ljava/lang/String;") OBJECT_FIELD(VMFlag, type , "Ljava/lang/String;") OBJECT_FIELD(VMFlag, value, "Ljava/lang/Object;" ) CONSTRUCTOR(VMFlag, "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" ) END_CLASS START_CLASS(VMIntrinsicMethod, jdk_vm_ci_hotspot_VMIntrinsicMethod ) OBJECT_FIELD(VMIntrinsicMethod, declaringClass, "Ljava/lang/String;" ) OBJECT_FIELD(VMIntrinsicMethod, name, "Ljava/lang/String;") OBJECT_FIELD(VMIntrinsicMethod, descriptor, "Ljava/lang/String;" ) INT_FIELD(VMIntrinsicMethod, id) CONSTRUCTOR(VMIntrinsicMethod , "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) END_CLASS START_CLASS(Assumptions_NoFinalizableSubclass, jdk_vm_ci_meta_Assumptions_NoFinalizableSubclass ) OBJECT_FIELD(Assumptions_NoFinalizableSubclass, receiverType , "Ljdk/vm/ci/meta/ResolvedJavaType;") END_CLASS START_CLASS( Assumptions_ConcreteSubtype, jdk_vm_ci_meta_Assumptions_ConcreteSubtype ) OBJECT_FIELD(Assumptions_ConcreteSubtype, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) OBJECT_FIELD(Assumptions_ConcreteSubtype, subtype, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) END_CLASS START_CLASS(Assumptions_LeafType, jdk_vm_ci_meta_Assumptions_LeafType ) OBJECT_FIELD(Assumptions_LeafType, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) END_CLASS START_CLASS(Assumptions_ConcreteMethod, jdk_vm_ci_meta_Assumptions_ConcreteMethod ) OBJECT_FIELD(Assumptions_ConcreteMethod, method, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) OBJECT_FIELD(Assumptions_ConcreteMethod, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) OBJECT_FIELD(Assumptions_ConcreteMethod, impl, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) END_CLASS START_CLASS(Assumptions_CallSiteTargetValue, jdk_vm_ci_meta_Assumptions_CallSiteTargetValue ) OBJECT_FIELD(Assumptions_CallSiteTargetValue, callSite, "Ljdk/vm/ci/meta/JavaConstant;" ) OBJECT_FIELD(Assumptions_CallSiteTargetValue, methodHandle, "Ljdk/vm/ci/meta/JavaConstant;") END_CLASS START_CLASS(site_Site , jdk_vm_ci_code_site_Site) INT_FIELD(site_Site, pcOffset) END_CLASS START_CLASS(site_Call, jdk_vm_ci_code_site_Call) OBJECT_FIELD (site_Call, target, "Ljdk/vm/ci/meta/InvokeTarget;") BOOLEAN_FIELD (site_Call, direct) END_CLASS START_CLASS(site_ImplicitExceptionDispatch , jdk_vm_ci_code_site_ImplicitExceptionDispatch) INT_FIELD(site_ImplicitExceptionDispatch , dispatchOffset) END_CLASS START_CLASS(site_DataPatch, jdk_vm_ci_code_site_DataPatch ) OBJECT_FIELD(site_DataPatch, reference, "Ljdk/vm/ci/code/site/Reference;" ) END_CLASS START_CLASS(site_ConstantReference, jdk_vm_ci_code_site_ConstantReference ) OBJECT_FIELD(site_ConstantReference, constant, "Ljdk/vm/ci/meta/VMConstant;" ) END_CLASS START_CLASS(site_DataSectionReference, jdk_vm_ci_code_site_DataSectionReference ) INT_FIELD(site_DataSectionReference, offset) END_CLASS START_CLASS (site_InfopointReason, jdk_vm_ci_code_site_InfopointReason) STATIC_OBJECT_FIELD (site_InfopointReason, SAFEPOINT, "Ljdk/vm/ci/code/site/InfopointReason;" ) STATIC_OBJECT_FIELD(site_InfopointReason, CALL, "Ljdk/vm/ci/code/site/InfopointReason;" ) STATIC_OBJECT_FIELD(site_InfopointReason, IMPLICIT_EXCEPTION , "Ljdk/vm/ci/code/site/InfopointReason;") END_CLASS START_CLASS (site_Infopoint, jdk_vm_ci_code_site_Infopoint) OBJECT_FIELD( site_Infopoint, debugInfo, "Ljdk/vm/ci/code/DebugInfo;") OBJECT_FIELD (site_Infopoint, reason, "Ljdk/vm/ci/code/site/InfopointReason;" ) END_CLASS START_CLASS(site_ExceptionHandler, jdk_vm_ci_code_site_ExceptionHandler ) INT_FIELD(site_ExceptionHandler, handlerPos) END_CLASS START_CLASS (site_Mark, jdk_vm_ci_code_site_Mark) OBJECT_FIELD(site_Mark, id, "Ljava/lang/Object;") END_CLASS START_CLASS(HotSpotCompilationRequestResult , jdk_vm_ci_hotspot_HotSpotCompilationRequestResult) OBJECT_FIELD (HotSpotCompilationRequestResult, failureMessage, "Ljava/lang/String;" ) BOOLEAN_FIELD(HotSpotCompilationRequestResult, retry) INT_FIELD (HotSpotCompilationRequestResult, inlinedBytecodes) END_CLASS START_CLASS(DebugInfo, jdk_vm_ci_code_DebugInfo) OBJECT_FIELD (DebugInfo, bytecodePosition, "Ljdk/vm/ci/code/BytecodePosition;" ) OBJECT_FIELD(DebugInfo, referenceMap, "Ljdk/vm/ci/code/ReferenceMap;" ) OBJECT_FIELD(DebugInfo, calleeSaveInfo, "Ljdk/vm/ci/code/RegisterSaveLayout;" ) OBJECT_FIELD(DebugInfo, virtualObjectMapping, "[Ljdk/vm/ci/code/VirtualObject;" ) END_CLASS START_CLASS(HotSpotReferenceMap, jdk_vm_ci_hotspot_HotSpotReferenceMap ) OBJECT_FIELD(HotSpotReferenceMap, objects, "[Ljdk/vm/ci/code/Location;" ) OBJECT_FIELD(HotSpotReferenceMap, derivedBase, "[Ljdk/vm/ci/code/Location;" ) OBJECT_FIELD(HotSpotReferenceMap, sizeInBytes, "[I") INT_FIELD (HotSpotReferenceMap, maxRegisterSize) END_CLASS START_CLASS( RegisterSaveLayout, jdk_vm_ci_code_RegisterSaveLayout) OBJECT_FIELD (RegisterSaveLayout, registers, "[Ljdk/vm/ci/code/Register;") OBJECT_FIELD(RegisterSaveLayout, slots, "[I") END_CLASS START_CLASS (BytecodeFrame, jdk_vm_ci_code_BytecodeFrame) OBJECT_FIELD(BytecodeFrame , values, "[Ljdk/vm/ci/meta/JavaValue;") OBJECT_FIELD(BytecodeFrame , slotKinds, "[Ljdk/vm/ci/meta/JavaKind;") INT_FIELD(BytecodeFrame , numLocals) INT_FIELD(BytecodeFrame, numStack) INT_FIELD(BytecodeFrame , numLocks) BOOLEAN_FIELD(BytecodeFrame, rethrowException) BOOLEAN_FIELD (BytecodeFrame, duringCall) STATIC_INT_FIELD(BytecodeFrame, UNKNOWN_BCI ) STATIC_INT_FIELD(BytecodeFrame, UNWIND_BCI) STATIC_INT_FIELD (BytecodeFrame, BEFORE_BCI) STATIC_INT_FIELD(BytecodeFrame, AFTER_BCI ) STATIC_INT_FIELD(BytecodeFrame, AFTER_EXCEPTION_BCI) STATIC_INT_FIELD (BytecodeFrame, INVALID_FRAMESTATE_BCI) END_CLASS START_CLASS (BytecodePosition, jdk_vm_ci_code_BytecodePosition) OBJECT_FIELD (BytecodePosition, caller, "Ljdk/vm/ci/code/BytecodePosition;" ) OBJECT_FIELD(BytecodePosition, method, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) INT_FIELD(BytecodePosition, bci) END_CLASS START_CLASS(JavaConstant , jdk_vm_ci_meta_JavaConstant) STATIC_OBJECT_FIELD(JavaConstant , ILLEGAL, "Ljdk/vm/ci/meta/PrimitiveConstant;") STATIC_OBJECT_FIELD (JavaConstant, NULL_POINTER, "Ljdk/vm/ci/meta/JavaConstant;") METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, JavaConstant, forPrimitive, forPrimitive_signature , (JVMCIObject kind, jlong value, JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS(ResolvedJavaMethod, jdk_vm_ci_meta_ResolvedJavaMethod ) END_CLASS START_CLASS(PrimitiveConstant, jdk_vm_ci_meta_PrimitiveConstant ) OBJECT_FIELD(PrimitiveConstant, kind, "Ljdk/vm/ci/meta/JavaKind;" ) LONG_FIELD(PrimitiveConstant, primitive) END_CLASS START_CLASS (RawConstant, jdk_vm_ci_meta_RawConstant) END_CLASS START_CLASS (NullConstant, jdk_vm_ci_meta_NullConstant) END_CLASS START_CLASS (HotSpotCompressedNullConstant, jdk_vm_ci_hotspot_HotSpotCompressedNullConstant ) END_CLASS START_CLASS(HotSpotObjectConstantImpl, jdk_vm_ci_hotspot_HotSpotObjectConstantImpl ) BOOLEAN_FIELD(HotSpotObjectConstantImpl, compressed) END_CLASS START_CLASS(DirectHotSpotObjectConstantImpl, jdk_vm_ci_hotspot_DirectHotSpotObjectConstantImpl ) OBJECT_FIELD(DirectHotSpotObjectConstantImpl, object, "Ljava/lang/Object;" ) CONSTRUCTOR(DirectHotSpotObjectConstantImpl, "(Ljava/lang/Object;Z)V" ) END_CLASS START_CLASS(IndirectHotSpotObjectConstantImpl, jdk_vm_ci_hotspot_IndirectHotSpotObjectConstantImpl ) LONG_FIELD(IndirectHotSpotObjectConstantImpl, objectHandle) CONSTRUCTOR(IndirectHotSpotObjectConstantImpl, "(JZZ)V") END_CLASS START_CLASS(HotSpotMetaspaceConstantImpl, jdk_vm_ci_hotspot_HotSpotMetaspaceConstantImpl ) OBJECT_FIELD(HotSpotMetaspaceConstantImpl, metaspaceObject, "Ljdk/vm/ci/hotspot/MetaspaceObject;") BOOLEAN_FIELD(HotSpotMetaspaceConstantImpl , compressed) END_CLASS START_CLASS(HotSpotSentinelConstant, jdk_vm_ci_hotspot_HotSpotSentinelConstant ) END_CLASS START_CLASS(JavaKind, jdk_vm_ci_meta_JavaKind) CHAR_FIELD (JavaKind, typeChar) STATIC_OBJECT_FIELD(JavaKind, Boolean, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Byte, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Char, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Short, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Int, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Float, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Long, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Double, "Ljdk/vm/ci/meta/JavaKind;" ) END_CLASS START_CLASS(ValueKind, jdk_vm_ci_meta_ValueKind) OBJECT_FIELD (ValueKind, platformKind, "Ljdk/vm/ci/meta/PlatformKind;") END_CLASS START_CLASS(Value, jdk_vm_ci_meta_Value) OBJECT_FIELD(Value, valueKind, "Ljdk/vm/ci/meta/ValueKind;") STATIC_OBJECT_FIELD (Value, ILLEGAL, "Ljdk/vm/ci/meta/AllocatableValue;") END_CLASS START_CLASS(RegisterValue, jdk_vm_ci_code_RegisterValue) OBJECT_FIELD (RegisterValue, reg, "Ljdk/vm/ci/code/Register;") END_CLASS START_CLASS (code_Location, jdk_vm_ci_code_Location) OBJECT_FIELD(code_Location , reg, "Ljdk/vm/ci/code/Register;") INT_FIELD(code_Location, offset ) END_CLASS START_CLASS(code_Register, jdk_vm_ci_code_Register ) INT_FIELD(code_Register, number) INT_FIELD(code_Register, encoding ) END_CLASS START_CLASS(StackSlot, jdk_vm_ci_code_StackSlot) INT_FIELD (StackSlot, offset) BOOLEAN_FIELD(StackSlot, addFrameSize) END_CLASS START_CLASS(VirtualObject, jdk_vm_ci_code_VirtualObject) INT_FIELD (VirtualObject, id) BOOLEAN_FIELD(VirtualObject, isAutoBox) OBJECT_FIELD (VirtualObject, type, "Ljdk/vm/ci/meta/ResolvedJavaType;") OBJECT_FIELD (VirtualObject, values, "[Ljdk/vm/ci/meta/JavaValue;") OBJECT_FIELD (VirtualObject, slotKinds, "[Ljdk/vm/ci/meta/JavaKind;") END_CLASS START_CLASS(StackLockValue, jdk_vm_ci_code_StackLockValue) OBJECT_FIELD (StackLockValue, owner, "Ljdk/vm/ci/meta/JavaValue;") OBJECT_FIELD (StackLockValue, slot, "Ljdk/vm/ci/meta/AllocatableValue;") BOOLEAN_FIELD (StackLockValue, eliminated) END_CLASS START_CLASS(HotSpotStackFrameReference , jdk_vm_ci_hotspot_HotSpotStackFrameReference) OBJECT_FIELD( HotSpotStackFrameReference, compilerToVM, "Ljdk/vm/ci/hotspot/CompilerToVM;" ) BOOLEAN_FIELD(HotSpotStackFrameReference, objectsMaterialized ) LONG_FIELD(HotSpotStackFrameReference, stackPointer) INT_FIELD (HotSpotStackFrameReference, frameNumber) INT_FIELD(HotSpotStackFrameReference , bci) OBJECT_FIELD(HotSpotStackFrameReference, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;" ) OBJECT_FIELD(HotSpotStackFrameReference, locals, "[Ljava/lang/Object;" ) OBJECT_FIELD(HotSpotStackFrameReference, localIsVirtual, "[Z" ) END_CLASS START_CLASS(HotSpotMetaData, jdk_vm_ci_hotspot_HotSpotMetaData ) OBJECT_FIELD(HotSpotMetaData, pcDescBytes, "[B") OBJECT_FIELD (HotSpotMetaData, scopesDescBytes, "[B") OBJECT_FIELD(HotSpotMetaData , relocBytes, "[B") OBJECT_FIELD(HotSpotMetaData, exceptionBytes , "[B") OBJECT_FIELD(HotSpotMetaData, implicitExceptionBytes, "[B") OBJECT_FIELD(HotSpotMetaData, oopMaps, "[B") OBJECT_FIELD (HotSpotMetaData, metadata, "[Ljava/lang/Object;") END_CLASS START_CLASS (HotSpotConstantPool, jdk_vm_ci_hotspot_HotSpotConstantPool) LONG_FIELD (HotSpotConstantPool, metadataHandle) END_CLASS START_CLASS(HotSpotJVMCIRuntime , jdk_vm_ci_hotspot_HotSpotJVMCIRuntime) OBJECT_FIELD(HotSpotJVMCIRuntime , excludeFromJVMCICompilation, "[Ljava/lang/Module;") METHOD( CallNonvirtualObjectMethod, GetMethodID, call_special, JVMCIObject , HotSpotJVMCIRuntime, compileMethod, compileMethod_signature , (JVMCIObject runtime, JVMCIObject method, int entry_bci, jlong env, int id)) METHOD(CallNonvirtualObjectMethod, GetMethodID , call_special, JVMCIObject, HotSpotJVMCIRuntime, isGCSupported , int_bool_signature, (JVMCIObject runtime, int gcIdentifier) ) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, encodeThrowable, encodeThrowable_signature , (JVMCIObject throwable)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, decodeThrowable , decodeThrowable_signature, (JVMCIObject encodedThrowable)) METHOD (CallNonvirtualVoidMethod, GetMethodID, call_special, void, HotSpotJVMCIRuntime , bootstrapFinished, void_method_signature, (JVMCIObject runtime , JVMCIEnv* __jvmci_env__)) METHOD(CallNonvirtualVoidMethod, GetMethodID , call_special, void, HotSpotJVMCIRuntime, shutdown, void_method_signature , (JVMCIObject runtime)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, runtime, runtime_signature , (JVMCIEnv* __jvmci_env__)) METHOD(CallObjectMethod, GetMethodID , call_virtual, JVMCIObject, HotSpotJVMCIRuntime, getCompiler , getCompiler_signature, (JVMCIObject runtime, JVMCIEnv* __jvmci_env__ )) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, callToString, callToString_signature , (JVMCIObject object, JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS (JVMCIError, jdk_vm_ci_common_JVMCIError) CONSTRUCTOR(JVMCIError , "(Ljava/lang/String;)V") END_CLASS START_CLASS(InspectedFrameVisitor , jdk_vm_ci_code_stack_InspectedFrameVisitor) END_CLASS START_CLASS (JVMCI, jdk_vm_ci_runtime_JVMCI) METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, getRuntime , getRuntime_signature, (JVMCIEnv* __jvmci_env__)) METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, initializeRuntime , initializeRuntime_signature, (JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS(Object, java_lang_Object) END_CLASS START_CLASS( String, java_lang_String) END_CLASS START_CLASS(Class, java_lang_Class ) METHOD(CallObjectMethod, GetMethodID, call_virtual, JVMCIObject , Class, getName, void_string_signature, (JVMCIEnv* __jvmci_env__ )) END_CLASS START_CLASS(ArrayIndexOutOfBoundsException, java_lang_ArrayIndexOutOfBoundsException ) CONSTRUCTOR(ArrayIndexOutOfBoundsException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(IllegalStateException, java_lang_IllegalStateException ) CONSTRUCTOR(IllegalStateException, "(Ljava/lang/String;)V") END_CLASS START_CLASS(NullPointerException, java_lang_NullPointerException ) CONSTRUCTOR(NullPointerException, "(Ljava/lang/String;)V") END_CLASS START_CLASS(IllegalArgumentException, java_lang_IllegalArgumentException ) CONSTRUCTOR(IllegalArgumentException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(InternalError, java_lang_InternalError ) CONSTRUCTOR(InternalError, "(Ljava/lang/String;)V") END_CLASS START_CLASS(ClassNotFoundException, java_lang_ClassNotFoundException ) CONSTRUCTOR(ClassNotFoundException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(InvalidInstalledCodeException, jdk_vm_ci_code_InvalidInstalledCodeException ) CONSTRUCTOR(InvalidInstalledCodeException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(UnsatisfiedLinkError, java_lang_UnsatisfiedLinkError ) CONSTRUCTOR(UnsatisfiedLinkError, "(Ljava/lang/String;)V") END_CLASS START_CLASS(UnsupportedOperationException, java_lang_UnsupportedOperationException ) CONSTRUCTOR(UnsupportedOperationException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(StackTraceElement, java_lang_StackTraceElement ) OBJECT_FIELD(StackTraceElement, declaringClass, "Ljava/lang/String;" ) OBJECT_FIELD(StackTraceElement, methodName, "Ljava/lang/String;" ) OBJECT_FIELD(StackTraceElement, fileName, "Ljava/lang/String;" ) INT_FIELD(StackTraceElement, lineNumber) CONSTRUCTOR(StackTraceElement , "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) END_CLASS START_CLASS(Throwable, java_lang_Throwable) OBJECT_FIELD (Throwable, detailMessage, "Ljava/lang/String;") END_CLASS | 
| 157 | } | 
| 158 | |
| 159 | #undef START_CLASS | 
| 160 | #undef END_CLASS | 
| 161 | #undef METHOD | 
| 162 | #undef CONSTRUCTOR | 
| 163 | #undef FIELD | 
| 164 | #undef CHAR_FIELD | 
| 165 | #undef INT_FIELD | 
| 166 | #undef BOOLEAN_FIELD | 
| 167 | #undef LONG_FIELD | 
| 168 | #undef FLOAT_FIELD | 
| 169 | #undef OBJECT_FIELD | 
| 170 | #undef PRIMARRAY_FIELD | 
| 171 | #undef OBJECTARRAY_FIELD | 
| 172 | #undef STATIC_FIELD | 
| 173 | #undef STATIC_OBJECT_FIELD | 
| 174 | #undef STATIC_OBJECTARRAY_FIELD | 
| 175 | #undef STATIC_INT_FIELD | 
| 176 | #undef STATIC_BOOLEAN_FIELD | 
| 177 | #undef EMPTY_CAST | 
| 178 | |
| 179 | // ------------------------------------------------------------------ | 
| 180 | |
| 181 | #define START_CLASS(className, fullClassName) \ | 
| 182 | void HotSpotJVMCI::className::initialize(JVMCI_TRAPSJVMCIEnv* __jvmci_env__) { \ | 
| 183 | JavaThread* THREAD__the_thread__ = JavaThread::current(); /* For exception macros. */ \ | 
| 184 | className::klass()->initialize(CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception ())) return ; (void)(0); \ | 
| 185 | } \ | 
| 186 | bool HotSpotJVMCI::className::is_instance(JVMCIEnv* env, JVMCIObject object) { \ | 
| 187 | return resolve(object)->is_a(className::klass()); \ | 
| 188 | } \ | 
| 189 | void HotSpotJVMCI::className::check(oop obj, const char* field_name, int offset) { \ | 
| 190 | assert(obj != NULL, "NULL field access of %s.%s", #className, field_name)do { if (!(obj != __null)) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 190, "assert(" "obj != __null" ") failed", "NULL field access of %s.%s" , #className, field_name); ::breakpoint(); } } while (0); \ | 
| 191 | assert(obj->is_a(className::klass()), "wrong class, " #className " expected, found %s", obj->klass()->external_name())do { if (!(obj->is_a(className::klass()))) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 191, "assert(" "obj->is_a(className::klass())" ") failed" , "wrong class, " #className " expected, found %s", obj->klass ()->external_name()); ::breakpoint(); } } while (0); \ | 
| 192 | assert(offset != 0, "must be valid offset")do { if (!(offset != 0)) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 192, "assert(" "offset != 0" ") failed", "must be valid offset" ); ::breakpoint(); } } while (0); \ | 
| 193 | } \ | 
| 194 | InstanceKlass* HotSpotJVMCI::className::_klass = NULL__null; | 
| 195 | |
| 196 | #define END_CLASS | 
| 197 | |
| 198 | #define FIELD(className, name, type, accessor, cast) \ | 
| 199 | type HotSpotJVMCI::className::name(JVMCIEnv* env, oop obj) { className::check(obj, #name, className::_##name##_offset); return cast obj->accessor(className::_##name##_offset); } \ | 
| 200 | void HotSpotJVMCI::className::set_##name(JVMCIEnv* env, oop obj, type x) { className::check(obj, #name, className::_##name##_offset); obj->accessor##_put(className::_##name##_offset, x); } | 
| 201 | |
| 202 | #define EMPTY_CAST | 
| 203 | #define CHAR_FIELD(className, name) FIELD(className, name, jchar, char_field, EMPTY_CAST) | 
| 204 | #define INT_FIELD(className, name) FIELD(className, name, jint, int_field, EMPTY_CAST) | 
| 205 | #define BOOLEAN_FIELD(className, name) FIELD(className, name, jboolean, bool_field, EMPTY_CAST) | 
| 206 | #define LONG_FIELD(className, name) FIELD(className, name, jlong, long_field, EMPTY_CAST) | 
| 207 | #define FLOAT_FIELD(className, name) FIELD(className, name, jfloat, float_field, EMPTY_CAST) | 
| 208 | |
| 209 | #define OBJECT_FIELD(className, name, signature) FIELD(className, name, oop, obj_field, EMPTY_CAST) | 
| 210 | #define OBJECTARRAY_FIELD(className, name, signature) FIELD(className, name, objArrayOop, obj_field, (objArrayOop)) | 
| 211 | #define PRIMARRAY_FIELD(className, name, signature) FIELD(className, name, typeArrayOop, obj_field, (typeArrayOop)) | 
| 212 | #define STATIC_OBJECT_FIELD(className, name, signature) STATIC_OOPISH_FIELD(className, name, oop) | 
| 213 | #define STATIC_OBJECTARRAY_FIELD(className, name, signature) STATIC_OOPISH_FIELD(className, name, objArrayOop) | 
| 214 | #define STATIC_OOPISH_FIELD(className, name, type) \ | 
| 215 | type HotSpotJVMCI::className::name(JVMCIEnv* env) { \ | 
| 216 | assert(className::klass() != NULL && className::klass()->is_linked(), "Class not yet linked: " #className)do { if (!(className::klass() != __null && className:: klass()->is_linked())) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 216, "assert(" "className::klass() != __null && className::klass()->is_linked()" ") failed", "Class not yet linked: " #className); ::breakpoint (); } } while (0); \ | 
| 217 | InstanceKlass* ik = className::klass(); \ | 
| 218 | oop base = ik->static_field_base_raw(); \ | 
| 219 | oop result = HeapAccess<>::oop_load_at(base, className::_##name##_offset); \ | 
| 220 | return type(result); \ | 
| 221 | } \ | 
| 222 | void HotSpotJVMCI::className::set_##name(JVMCIEnv* env, type x) { \ | 
| 223 | assert(className::klass() != NULL && className::klass()->is_linked(), "Class not yet linked: " #className)do { if (!(className::klass() != __null && className:: klass()->is_linked())) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 223, "assert(" "className::klass() != __null && className::klass()->is_linked()" ") failed", "Class not yet linked: " #className); ::breakpoint (); } } while (0); \ | 
| 224 | assert(className::klass() != NULL, "Class not yet loaded: " #className)do { if (!(className::klass() != __null)) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 224, "assert(" "className::klass() != __null" ") failed", "Class not yet loaded: " #className); ::breakpoint(); } } while (0); \ | 
| 225 | InstanceKlass* ik = className::klass(); \ | 
| 226 | oop base = ik->static_field_base_raw(); \ | 
| 227 | HeapAccess<>::oop_store_at(base, className::_##name##_offset, x); \ | 
| 228 | } | 
| 229 | #define STATIC_PRIMITIVE_FIELD(className, name, jtypename) \ | 
| 230 | jtypename HotSpotJVMCI::className::get_##name(JVMCIEnv* env) { \ | 
| 231 | assert(className::klass() != NULL && className::klass()->is_linked(), "Class not yet linked: " #className)do { if (!(className::klass() != __null && className:: klass()->is_linked())) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 231, "assert(" "className::klass() != __null && className::klass()->is_linked()" ") failed", "Class not yet linked: " #className); ::breakpoint (); } } while (0); \ | 
| 232 | InstanceKlass* ik = className::klass(); \ | 
| 233 | oop base = ik->static_field_base_raw(); \ | 
| 234 | return *base->field_addr<jtypename>(className::_##name##_offset); \ | 
| 235 | } \ | 
| 236 | void HotSpotJVMCI::className::set_##name(JVMCIEnv* env, jtypename x) { \ | 
| 237 | assert(className::klass() != NULL && className::klass()->is_linked(), "Class not yet linked: " #className)do { if (!(className::klass() != __null && className:: klass()->is_linked())) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 237, "assert(" "className::klass() != __null && className::klass()->is_linked()" ") failed", "Class not yet linked: " #className); ::breakpoint (); } } while (0); \ | 
| 238 | InstanceKlass* ik = className::klass(); \ | 
| 239 | oop base = ik->static_field_base_raw(); \ | 
| 240 | *base->field_addr<jtypename>(className::_##name##_offset) = x; \ | 
| 241 | } | 
| 242 | |
| 243 | #define STATIC_INT_FIELD(className, name) STATIC_PRIMITIVE_FIELD(className, name, jint) | 
| 244 | #define STATIC_BOOLEAN_FIELD(className, name) STATIC_PRIMITIVE_FIELD(className, name, jboolean) | 
| 245 | #define METHOD(jniCallType, jniGetMethod, hsCallType, returnType, className, methodName, signatureSymbolName, args) | 
| 246 | #define CONSTRUCTOR(className, signature) | 
| 247 | |
| 248 | /** | 
| 249 | * Generates the method and field definitions for the classes in HotSpotJVMCI. For example: | 
| 250 | * | 
| 251 | * void HotSpotJVMCI::Architecture::initialize(JVMCIEnv* env) { ... } | 
| 252 | * bool HotSpotJVMCI::Architecture::is_instance(JVMCIEnv* env, JVMCIObject object) { ... } | 
| 253 | * void HotSpotJVMCI::Architecture::check(oop obj, const char* field_name, int offset) { ... } | 
| 254 | * oop HotSpotJVMCI::Architecture::wordKind(JVMCIEnv* env, oop obj) { ... } | 
| 255 | * void HotSpotJVMCI::Architecture::set_wordKind(JVMCIEnv* env, oop obj, oop x) { ... } | 
| 256 | * | 
| 257 | * InstanceKlass *HotSpotJVMCI::Architecture::_klass = NULL; | 
| 258 | */ | 
| 259 | JVMCI_CLASSES_DO(START_CLASS, END_CLASS, CHAR_FIELD, INT_FIELD, BOOLEAN_FIELD, LONG_FIELD, FLOAT_FIELD, OBJECT_FIELD, PRIMARRAY_FIELD, OBJECTARRAY_FIELD, STATIC_OBJECT_FIELD, STATIC_OBJECTARRAY_FIELD, STATIC_INT_FIELD, STATIC_BOOLEAN_FIELD, METHOD, CONSTRUCTOR)START_CLASS(Services, jdk_vm_ci_services_Services) METHOD(CallStaticVoidMethod , GetStaticMethodID, call_static, void, Services, initializeSavedProperties , byte_array_void_signature, (JVMCIObject serializedProperties )) END_CLASS START_CLASS(Architecture, jdk_vm_ci_code_Architecture ) OBJECT_FIELD(Architecture, wordKind, "Ljdk/vm/ci/meta/PlatformKind;" ) END_CLASS START_CLASS(TargetDescription, jdk_vm_ci_code_TargetDescription ) OBJECT_FIELD(TargetDescription, arch, "Ljdk/vm/ci/code/Architecture;" ) END_CLASS START_CLASS(HotSpotResolvedObjectTypeImpl, jdk_vm_ci_hotspot_HotSpotResolvedObjectTypeImpl ) LONG_FIELD(HotSpotResolvedObjectTypeImpl, metadataPointer) END_CLASS START_CLASS(HotSpotResolvedPrimitiveType, jdk_vm_ci_hotspot_HotSpotResolvedPrimitiveType ) OBJECT_FIELD(HotSpotResolvedPrimitiveType, mirror, "Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;" ) OBJECT_FIELD(HotSpotResolvedPrimitiveType, kind, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECTARRAY_FIELD(HotSpotResolvedPrimitiveType, primitives , "[Ljdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType;") END_CLASS START_CLASS(HotSpotResolvedJavaFieldImpl, jdk_vm_ci_hotspot_HotSpotResolvedJavaFieldImpl ) OBJECT_FIELD(HotSpotResolvedJavaFieldImpl, type, "Ljdk/vm/ci/meta/JavaType;" ) OBJECT_FIELD(HotSpotResolvedJavaFieldImpl, holder, "Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;" ) INT_FIELD(HotSpotResolvedJavaFieldImpl, offset) INT_FIELD(HotSpotResolvedJavaFieldImpl , modifiers) END_CLASS START_CLASS(HotSpotResolvedJavaMethodImpl , jdk_vm_ci_hotspot_HotSpotResolvedJavaMethodImpl) LONG_FIELD (HotSpotResolvedJavaMethodImpl, metadataHandle) END_CLASS START_CLASS (InstalledCode, jdk_vm_ci_code_InstalledCode) LONG_FIELD(InstalledCode , address) LONG_FIELD(InstalledCode, entryPoint) LONG_FIELD(InstalledCode , version) OBJECT_FIELD(InstalledCode, name, "Ljava/lang/String;" ) END_CLASS START_CLASS(HotSpotInstalledCode, jdk_vm_ci_hotspot_HotSpotInstalledCode ) INT_FIELD(HotSpotInstalledCode, size) LONG_FIELD(HotSpotInstalledCode , codeStart) INT_FIELD(HotSpotInstalledCode, codeSize) END_CLASS START_CLASS(HotSpotNmethod, jdk_vm_ci_hotspot_HotSpotNmethod ) BOOLEAN_FIELD(HotSpotNmethod, isDefault) LONG_FIELD(HotSpotNmethod , compileIdSnapshot) OBJECT_FIELD(HotSpotNmethod, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;" ) CONSTRUCTOR(HotSpotNmethod, "(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;Ljava/lang/String;ZJ)V" ) END_CLASS START_CLASS(HotSpotCompiledCode, jdk_vm_ci_hotspot_HotSpotCompiledCode ) OBJECT_FIELD(HotSpotCompiledCode, name, "Ljava/lang/String;" ) PRIMARRAY_FIELD(HotSpotCompiledCode, targetCode, "[B") INT_FIELD (HotSpotCompiledCode, targetCodeSize) OBJECTARRAY_FIELD(HotSpotCompiledCode , sites, "[Ljdk/vm/ci/code/site/Site;") OBJECTARRAY_FIELD(HotSpotCompiledCode , assumptions, "[Ljdk/vm/ci/meta/Assumptions$Assumption;") OBJECTARRAY_FIELD (HotSpotCompiledCode, methods, "[Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) OBJECTARRAY_FIELD(HotSpotCompiledCode, comments, "[Ljdk/vm/ci/hotspot/HotSpotCompiledCode$Comment;" ) PRIMARRAY_FIELD(HotSpotCompiledCode, dataSection, "[B") INT_FIELD (HotSpotCompiledCode, dataSectionAlignment) OBJECTARRAY_FIELD (HotSpotCompiledCode, dataSectionPatches, "[Ljdk/vm/ci/code/site/DataPatch;" ) BOOLEAN_FIELD(HotSpotCompiledCode, isImmutablePIC) INT_FIELD (HotSpotCompiledCode, totalFrameSize) OBJECT_FIELD(HotSpotCompiledCode , deoptRescueSlot, "Ljdk/vm/ci/code/StackSlot;") END_CLASS START_CLASS (HotSpotCompiledCode_Comment, jdk_vm_ci_hotspot_HotSpotCompiledCode_Comment ) OBJECT_FIELD(HotSpotCompiledCode_Comment, text, "Ljava/lang/String;" ) INT_FIELD(HotSpotCompiledCode_Comment, pcOffset) END_CLASS START_CLASS (HotSpotCompiledNmethod, jdk_vm_ci_hotspot_HotSpotCompiledNmethod ) OBJECT_FIELD(HotSpotCompiledNmethod, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;" ) OBJECT_FIELD(HotSpotCompiledNmethod, installationFailureMessage , "Ljava/lang/String;") INT_FIELD(HotSpotCompiledNmethod, entryBCI ) INT_FIELD(HotSpotCompiledNmethod, id) LONG_FIELD(HotSpotCompiledNmethod , compileState) BOOLEAN_FIELD(HotSpotCompiledNmethod, hasUnsafeAccess ) END_CLASS START_CLASS(HotSpotForeignCallTarget, jdk_vm_ci_hotspot_HotSpotForeignCallTarget ) LONG_FIELD(HotSpotForeignCallTarget, address) END_CLASS START_CLASS (VMField, jdk_vm_ci_hotspot_VMField) OBJECT_FIELD(VMField, name , "Ljava/lang/String;") OBJECT_FIELD(VMField, type, "Ljava/lang/String;" ) LONG_FIELD(VMField, offset) LONG_FIELD(VMField, address) OBJECT_FIELD (VMField, value, "Ljava/lang/Object;") CONSTRUCTOR(VMField, "(Ljava/lang/String;Ljava/lang/String;JJLjava/lang/Object;)V" ) END_CLASS START_CLASS(VMFlag, jdk_vm_ci_hotspot_VMFlag) OBJECT_FIELD (VMFlag, name, "Ljava/lang/String;") OBJECT_FIELD(VMFlag, type , "Ljava/lang/String;") OBJECT_FIELD(VMFlag, value, "Ljava/lang/Object;" ) CONSTRUCTOR(VMFlag, "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" ) END_CLASS START_CLASS(VMIntrinsicMethod, jdk_vm_ci_hotspot_VMIntrinsicMethod ) OBJECT_FIELD(VMIntrinsicMethod, declaringClass, "Ljava/lang/String;" ) OBJECT_FIELD(VMIntrinsicMethod, name, "Ljava/lang/String;") OBJECT_FIELD(VMIntrinsicMethod, descriptor, "Ljava/lang/String;" ) INT_FIELD(VMIntrinsicMethod, id) CONSTRUCTOR(VMIntrinsicMethod , "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) END_CLASS START_CLASS(Assumptions_NoFinalizableSubclass, jdk_vm_ci_meta_Assumptions_NoFinalizableSubclass ) OBJECT_FIELD(Assumptions_NoFinalizableSubclass, receiverType , "Ljdk/vm/ci/meta/ResolvedJavaType;") END_CLASS START_CLASS( Assumptions_ConcreteSubtype, jdk_vm_ci_meta_Assumptions_ConcreteSubtype ) OBJECT_FIELD(Assumptions_ConcreteSubtype, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) OBJECT_FIELD(Assumptions_ConcreteSubtype, subtype, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) END_CLASS START_CLASS(Assumptions_LeafType, jdk_vm_ci_meta_Assumptions_LeafType ) OBJECT_FIELD(Assumptions_LeafType, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) END_CLASS START_CLASS(Assumptions_ConcreteMethod, jdk_vm_ci_meta_Assumptions_ConcreteMethod ) OBJECT_FIELD(Assumptions_ConcreteMethod, method, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) OBJECT_FIELD(Assumptions_ConcreteMethod, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) OBJECT_FIELD(Assumptions_ConcreteMethod, impl, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) END_CLASS START_CLASS(Assumptions_CallSiteTargetValue, jdk_vm_ci_meta_Assumptions_CallSiteTargetValue ) OBJECT_FIELD(Assumptions_CallSiteTargetValue, callSite, "Ljdk/vm/ci/meta/JavaConstant;" ) OBJECT_FIELD(Assumptions_CallSiteTargetValue, methodHandle, "Ljdk/vm/ci/meta/JavaConstant;") END_CLASS START_CLASS(site_Site , jdk_vm_ci_code_site_Site) INT_FIELD(site_Site, pcOffset) END_CLASS START_CLASS(site_Call, jdk_vm_ci_code_site_Call) OBJECT_FIELD (site_Call, target, "Ljdk/vm/ci/meta/InvokeTarget;") BOOLEAN_FIELD (site_Call, direct) END_CLASS START_CLASS(site_ImplicitExceptionDispatch , jdk_vm_ci_code_site_ImplicitExceptionDispatch) INT_FIELD(site_ImplicitExceptionDispatch , dispatchOffset) END_CLASS START_CLASS(site_DataPatch, jdk_vm_ci_code_site_DataPatch ) OBJECT_FIELD(site_DataPatch, reference, "Ljdk/vm/ci/code/site/Reference;" ) END_CLASS START_CLASS(site_ConstantReference, jdk_vm_ci_code_site_ConstantReference ) OBJECT_FIELD(site_ConstantReference, constant, "Ljdk/vm/ci/meta/VMConstant;" ) END_CLASS START_CLASS(site_DataSectionReference, jdk_vm_ci_code_site_DataSectionReference ) INT_FIELD(site_DataSectionReference, offset) END_CLASS START_CLASS (site_InfopointReason, jdk_vm_ci_code_site_InfopointReason) STATIC_OBJECT_FIELD (site_InfopointReason, SAFEPOINT, "Ljdk/vm/ci/code/site/InfopointReason;" ) STATIC_OBJECT_FIELD(site_InfopointReason, CALL, "Ljdk/vm/ci/code/site/InfopointReason;" ) STATIC_OBJECT_FIELD(site_InfopointReason, IMPLICIT_EXCEPTION , "Ljdk/vm/ci/code/site/InfopointReason;") END_CLASS START_CLASS (site_Infopoint, jdk_vm_ci_code_site_Infopoint) OBJECT_FIELD( site_Infopoint, debugInfo, "Ljdk/vm/ci/code/DebugInfo;") OBJECT_FIELD (site_Infopoint, reason, "Ljdk/vm/ci/code/site/InfopointReason;" ) END_CLASS START_CLASS(site_ExceptionHandler, jdk_vm_ci_code_site_ExceptionHandler ) INT_FIELD(site_ExceptionHandler, handlerPos) END_CLASS START_CLASS (site_Mark, jdk_vm_ci_code_site_Mark) OBJECT_FIELD(site_Mark, id, "Ljava/lang/Object;") END_CLASS START_CLASS(HotSpotCompilationRequestResult , jdk_vm_ci_hotspot_HotSpotCompilationRequestResult) OBJECT_FIELD (HotSpotCompilationRequestResult, failureMessage, "Ljava/lang/String;" ) BOOLEAN_FIELD(HotSpotCompilationRequestResult, retry) INT_FIELD (HotSpotCompilationRequestResult, inlinedBytecodes) END_CLASS START_CLASS(DebugInfo, jdk_vm_ci_code_DebugInfo) OBJECT_FIELD (DebugInfo, bytecodePosition, "Ljdk/vm/ci/code/BytecodePosition;" ) OBJECT_FIELD(DebugInfo, referenceMap, "Ljdk/vm/ci/code/ReferenceMap;" ) OBJECT_FIELD(DebugInfo, calleeSaveInfo, "Ljdk/vm/ci/code/RegisterSaveLayout;" ) OBJECTARRAY_FIELD(DebugInfo, virtualObjectMapping, "[Ljdk/vm/ci/code/VirtualObject;" ) END_CLASS START_CLASS(HotSpotReferenceMap, jdk_vm_ci_hotspot_HotSpotReferenceMap ) OBJECTARRAY_FIELD(HotSpotReferenceMap, objects, "[Ljdk/vm/ci/code/Location;" ) OBJECTARRAY_FIELD(HotSpotReferenceMap, derivedBase, "[Ljdk/vm/ci/code/Location;" ) PRIMARRAY_FIELD(HotSpotReferenceMap, sizeInBytes, "[I") INT_FIELD (HotSpotReferenceMap, maxRegisterSize) END_CLASS START_CLASS( RegisterSaveLayout, jdk_vm_ci_code_RegisterSaveLayout) OBJECTARRAY_FIELD (RegisterSaveLayout, registers, "[Ljdk/vm/ci/code/Register;") PRIMARRAY_FIELD(RegisterSaveLayout, slots, "[I") END_CLASS START_CLASS (BytecodeFrame, jdk_vm_ci_code_BytecodeFrame) OBJECTARRAY_FIELD (BytecodeFrame, values, "[Ljdk/vm/ci/meta/JavaValue;") OBJECTARRAY_FIELD (BytecodeFrame, slotKinds, "[Ljdk/vm/ci/meta/JavaKind;") INT_FIELD (BytecodeFrame, numLocals) INT_FIELD(BytecodeFrame, numStack) INT_FIELD(BytecodeFrame, numLocks) BOOLEAN_FIELD(BytecodeFrame , rethrowException) BOOLEAN_FIELD(BytecodeFrame, duringCall) STATIC_INT_FIELD (BytecodeFrame, UNKNOWN_BCI) STATIC_INT_FIELD(BytecodeFrame, UNWIND_BCI ) STATIC_INT_FIELD(BytecodeFrame, BEFORE_BCI) STATIC_INT_FIELD (BytecodeFrame, AFTER_BCI) STATIC_INT_FIELD(BytecodeFrame, AFTER_EXCEPTION_BCI ) STATIC_INT_FIELD(BytecodeFrame, INVALID_FRAMESTATE_BCI) END_CLASS START_CLASS(BytecodePosition, jdk_vm_ci_code_BytecodePosition ) OBJECT_FIELD(BytecodePosition, caller, "Ljdk/vm/ci/code/BytecodePosition;" ) OBJECT_FIELD(BytecodePosition, method, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) INT_FIELD(BytecodePosition, bci) END_CLASS START_CLASS(JavaConstant , jdk_vm_ci_meta_JavaConstant) STATIC_OBJECT_FIELD(JavaConstant , ILLEGAL, "Ljdk/vm/ci/meta/PrimitiveConstant;") STATIC_OBJECT_FIELD (JavaConstant, NULL_POINTER, "Ljdk/vm/ci/meta/JavaConstant;") METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, JavaConstant, forPrimitive, forPrimitive_signature , (JVMCIObject kind, jlong value, JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS(ResolvedJavaMethod, jdk_vm_ci_meta_ResolvedJavaMethod ) END_CLASS START_CLASS(PrimitiveConstant, jdk_vm_ci_meta_PrimitiveConstant ) OBJECT_FIELD(PrimitiveConstant, kind, "Ljdk/vm/ci/meta/JavaKind;" ) LONG_FIELD(PrimitiveConstant, primitive) END_CLASS START_CLASS (RawConstant, jdk_vm_ci_meta_RawConstant) END_CLASS START_CLASS (NullConstant, jdk_vm_ci_meta_NullConstant) END_CLASS START_CLASS (HotSpotCompressedNullConstant, jdk_vm_ci_hotspot_HotSpotCompressedNullConstant ) END_CLASS START_CLASS(HotSpotObjectConstantImpl, jdk_vm_ci_hotspot_HotSpotObjectConstantImpl ) BOOLEAN_FIELD(HotSpotObjectConstantImpl, compressed) END_CLASS START_CLASS(DirectHotSpotObjectConstantImpl, jdk_vm_ci_hotspot_DirectHotSpotObjectConstantImpl ) OBJECT_FIELD(DirectHotSpotObjectConstantImpl, object, "Ljava/lang/Object;" ) CONSTRUCTOR(DirectHotSpotObjectConstantImpl, "(Ljava/lang/Object;Z)V" ) END_CLASS START_CLASS(IndirectHotSpotObjectConstantImpl, jdk_vm_ci_hotspot_IndirectHotSpotObjectConstantImpl ) LONG_FIELD(IndirectHotSpotObjectConstantImpl, objectHandle) CONSTRUCTOR(IndirectHotSpotObjectConstantImpl, "(JZZ)V") END_CLASS START_CLASS(HotSpotMetaspaceConstantImpl, jdk_vm_ci_hotspot_HotSpotMetaspaceConstantImpl ) OBJECT_FIELD(HotSpotMetaspaceConstantImpl, metaspaceObject, "Ljdk/vm/ci/hotspot/MetaspaceObject;") BOOLEAN_FIELD(HotSpotMetaspaceConstantImpl , compressed) END_CLASS START_CLASS(HotSpotSentinelConstant, jdk_vm_ci_hotspot_HotSpotSentinelConstant ) END_CLASS START_CLASS(JavaKind, jdk_vm_ci_meta_JavaKind) CHAR_FIELD (JavaKind, typeChar) STATIC_OBJECT_FIELD(JavaKind, Boolean, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Byte, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Char, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Short, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Int, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Float, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Long, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Double, "Ljdk/vm/ci/meta/JavaKind;" ) END_CLASS START_CLASS(ValueKind, jdk_vm_ci_meta_ValueKind) OBJECT_FIELD (ValueKind, platformKind, "Ljdk/vm/ci/meta/PlatformKind;") END_CLASS START_CLASS(Value, jdk_vm_ci_meta_Value) OBJECT_FIELD(Value, valueKind, "Ljdk/vm/ci/meta/ValueKind;") STATIC_OBJECT_FIELD (Value, ILLEGAL, "Ljdk/vm/ci/meta/AllocatableValue;") END_CLASS START_CLASS(RegisterValue, jdk_vm_ci_code_RegisterValue) OBJECT_FIELD (RegisterValue, reg, "Ljdk/vm/ci/code/Register;") END_CLASS START_CLASS (code_Location, jdk_vm_ci_code_Location) OBJECT_FIELD(code_Location , reg, "Ljdk/vm/ci/code/Register;") INT_FIELD(code_Location, offset ) END_CLASS START_CLASS(code_Register, jdk_vm_ci_code_Register ) INT_FIELD(code_Register, number) INT_FIELD(code_Register, encoding ) END_CLASS START_CLASS(StackSlot, jdk_vm_ci_code_StackSlot) INT_FIELD (StackSlot, offset) BOOLEAN_FIELD(StackSlot, addFrameSize) END_CLASS START_CLASS(VirtualObject, jdk_vm_ci_code_VirtualObject) INT_FIELD (VirtualObject, id) BOOLEAN_FIELD(VirtualObject, isAutoBox) OBJECT_FIELD (VirtualObject, type, "Ljdk/vm/ci/meta/ResolvedJavaType;") OBJECTARRAY_FIELD (VirtualObject, values, "[Ljdk/vm/ci/meta/JavaValue;") OBJECTARRAY_FIELD (VirtualObject, slotKinds, "[Ljdk/vm/ci/meta/JavaKind;") END_CLASS START_CLASS(StackLockValue, jdk_vm_ci_code_StackLockValue) OBJECT_FIELD (StackLockValue, owner, "Ljdk/vm/ci/meta/JavaValue;") OBJECT_FIELD (StackLockValue, slot, "Ljdk/vm/ci/meta/AllocatableValue;") BOOLEAN_FIELD (StackLockValue, eliminated) END_CLASS START_CLASS(HotSpotStackFrameReference , jdk_vm_ci_hotspot_HotSpotStackFrameReference) OBJECT_FIELD( HotSpotStackFrameReference, compilerToVM, "Ljdk/vm/ci/hotspot/CompilerToVM;" ) BOOLEAN_FIELD(HotSpotStackFrameReference, objectsMaterialized ) LONG_FIELD(HotSpotStackFrameReference, stackPointer) INT_FIELD (HotSpotStackFrameReference, frameNumber) INT_FIELD(HotSpotStackFrameReference , bci) OBJECT_FIELD(HotSpotStackFrameReference, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;" ) OBJECTARRAY_FIELD(HotSpotStackFrameReference, locals, "[Ljava/lang/Object;" ) PRIMARRAY_FIELD(HotSpotStackFrameReference, localIsVirtual, "[Z") END_CLASS START_CLASS(HotSpotMetaData, jdk_vm_ci_hotspot_HotSpotMetaData ) PRIMARRAY_FIELD(HotSpotMetaData, pcDescBytes, "[B") PRIMARRAY_FIELD (HotSpotMetaData, scopesDescBytes, "[B") PRIMARRAY_FIELD(HotSpotMetaData , relocBytes, "[B") PRIMARRAY_FIELD(HotSpotMetaData, exceptionBytes , "[B") PRIMARRAY_FIELD(HotSpotMetaData, implicitExceptionBytes , "[B") PRIMARRAY_FIELD(HotSpotMetaData, oopMaps, "[B") OBJECT_FIELD (HotSpotMetaData, metadata, "[Ljava/lang/Object;") END_CLASS START_CLASS (HotSpotConstantPool, jdk_vm_ci_hotspot_HotSpotConstantPool) LONG_FIELD (HotSpotConstantPool, metadataHandle) END_CLASS START_CLASS(HotSpotJVMCIRuntime , jdk_vm_ci_hotspot_HotSpotJVMCIRuntime) OBJECTARRAY_FIELD(HotSpotJVMCIRuntime , excludeFromJVMCICompilation, "[Ljava/lang/Module;") METHOD( CallNonvirtualObjectMethod, GetMethodID, call_special, JVMCIObject , HotSpotJVMCIRuntime, compileMethod, compileMethod_signature , (JVMCIObject runtime, JVMCIObject method, int entry_bci, jlong env, int id)) METHOD(CallNonvirtualObjectMethod, GetMethodID , call_special, JVMCIObject, HotSpotJVMCIRuntime, isGCSupported , int_bool_signature, (JVMCIObject runtime, int gcIdentifier) ) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, encodeThrowable, encodeThrowable_signature , (JVMCIObject throwable)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, decodeThrowable , decodeThrowable_signature, (JVMCIObject encodedThrowable)) METHOD (CallNonvirtualVoidMethod, GetMethodID, call_special, void, HotSpotJVMCIRuntime , bootstrapFinished, void_method_signature, (JVMCIObject runtime , JVMCIEnv* __jvmci_env__)) METHOD(CallNonvirtualVoidMethod, GetMethodID , call_special, void, HotSpotJVMCIRuntime, shutdown, void_method_signature , (JVMCIObject runtime)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, runtime, runtime_signature , (JVMCIEnv* __jvmci_env__)) METHOD(CallObjectMethod, GetMethodID , call_virtual, JVMCIObject, HotSpotJVMCIRuntime, getCompiler , getCompiler_signature, (JVMCIObject runtime, JVMCIEnv* __jvmci_env__ )) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, callToString, callToString_signature , (JVMCIObject object, JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS (JVMCIError, jdk_vm_ci_common_JVMCIError) CONSTRUCTOR(JVMCIError , "(Ljava/lang/String;)V") END_CLASS START_CLASS(InspectedFrameVisitor , jdk_vm_ci_code_stack_InspectedFrameVisitor) END_CLASS START_CLASS (JVMCI, jdk_vm_ci_runtime_JVMCI) METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, getRuntime , getRuntime_signature, (JVMCIEnv* __jvmci_env__)) METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, initializeRuntime , initializeRuntime_signature, (JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS(Object, java_lang_Object) END_CLASS START_CLASS( String, java_lang_String) END_CLASS START_CLASS(Class, java_lang_Class ) METHOD(CallObjectMethod, GetMethodID, call_virtual, JVMCIObject , Class, getName, void_string_signature, (JVMCIEnv* __jvmci_env__ )) END_CLASS START_CLASS(ArrayIndexOutOfBoundsException, java_lang_ArrayIndexOutOfBoundsException ) CONSTRUCTOR(ArrayIndexOutOfBoundsException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(IllegalStateException, java_lang_IllegalStateException ) CONSTRUCTOR(IllegalStateException, "(Ljava/lang/String;)V") END_CLASS START_CLASS(NullPointerException, java_lang_NullPointerException ) CONSTRUCTOR(NullPointerException, "(Ljava/lang/String;)V") END_CLASS START_CLASS(IllegalArgumentException, java_lang_IllegalArgumentException ) CONSTRUCTOR(IllegalArgumentException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(InternalError, java_lang_InternalError ) CONSTRUCTOR(InternalError, "(Ljava/lang/String;)V") END_CLASS START_CLASS(ClassNotFoundException, java_lang_ClassNotFoundException ) CONSTRUCTOR(ClassNotFoundException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(InvalidInstalledCodeException, jdk_vm_ci_code_InvalidInstalledCodeException ) CONSTRUCTOR(InvalidInstalledCodeException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(UnsatisfiedLinkError, java_lang_UnsatisfiedLinkError ) CONSTRUCTOR(UnsatisfiedLinkError, "(Ljava/lang/String;)V") END_CLASS START_CLASS(UnsupportedOperationException, java_lang_UnsupportedOperationException ) CONSTRUCTOR(UnsupportedOperationException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(StackTraceElement, java_lang_StackTraceElement ) OBJECT_FIELD(StackTraceElement, declaringClass, "Ljava/lang/String;" ) OBJECT_FIELD(StackTraceElement, methodName, "Ljava/lang/String;" ) OBJECT_FIELD(StackTraceElement, fileName, "Ljava/lang/String;" ) INT_FIELD(StackTraceElement, lineNumber) CONSTRUCTOR(StackTraceElement , "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) END_CLASS START_CLASS(Throwable, java_lang_Throwable) OBJECT_FIELD (Throwable, detailMessage, "Ljava/lang/String;") END_CLASS | 
| 260 | |
| 261 | #undef START_CLASS | 
| 262 | #undef END_CLASS | 
| 263 | #undef METHOD | 
| 264 | #undef CONSTRUCTOR | 
| 265 | #undef FIELD | 
| 266 | #undef CHAR_FIELD | 
| 267 | #undef INT_FIELD | 
| 268 | #undef BOOLEAN_FIELD | 
| 269 | #undef LONG_FIELD | 
| 270 | #undef FLOAT_FIELD | 
| 271 | #undef OBJECT_FIELD | 
| 272 | #undef PRIMARRAY_FIELD | 
| 273 | #undef OBJECTARRAY_FIELD | 
| 274 | #undef STATIC_OOPISH_FIELD | 
| 275 | #undef STATIC_OBJECT_FIELD | 
| 276 | #undef STATIC_OBJECTARRAY_FIELD | 
| 277 | #undef STATIC_INT_FIELD | 
| 278 | #undef STATIC_BOOLEAN_FIELD | 
| 279 | #undef STATIC_PRIMITIVE_FIELD | 
| 280 | #undef EMPTY_CAST | 
| 281 | |
| 282 | /** | 
| 283 | * Initializes the JNI id of a field. As per the JNI specification, | 
| 284 | * this ensures the declaring class is initialized. | 
| 285 | */ | 
| 286 | void JNIJVMCI::initialize_field_id(JNIEnv* env, jfieldID &fieldid, jclass clazz, const char* class_name, const char* name, const char* signature, bool static_field) { | 
| 287 | if (JVMCILibDumpJNIConfig != NULL__null) { | 
| 288 | fileStream* st = JVMCIGlobals::get_jni_config_file(); | 
| 289 | st->print_cr("field %s %s %s", class_name, name, signature); | 
| 290 | return; | 
| 291 | } | 
| 292 | if (env->ExceptionCheck()) { | 
| 293 | return; | 
| 294 | } | 
| 295 | jfieldID current = fieldid; | 
| Value stored to 'current' during its initialization is never read | |
| 296 | if (static_field) { | 
| 297 | // Class initialization barrier | 
| 298 | fieldid = env->GetStaticFieldID(clazz, name, signature); | 
| 299 | } else { | 
| 300 | // Class initialization barrier | 
| 301 | fieldid = env->GetFieldID(clazz, name, signature); | 
| 302 | } | 
| 303 | JVMCI_event_2if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jfieldID for %s %s.%s = " PTR_FORMAT"0x%016" "l" "x", signature, class_name, name, p2i(fieldid)); | 
| 304 | |
| 305 | if (env->ExceptionCheck()) { | 
| 306 | env->ExceptionDescribe(); | 
| 307 | env->ExceptionClear(); | 
| 308 | ResourceMark rm; | 
| 309 | fatal("Could not find field %s.%s with signature %s", class_name, name, signature)do { (*g_assert_poison) = 'X';; report_fatal(INTERNAL_ERROR, "/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 309, "Could not find field %s.%s with signature %s", class_name , name, signature); ::breakpoint(); } while (0); | 
| 310 | } | 
| 311 | } | 
| 312 | |
| 313 | #define START_CLASS(className, fullClassName) { \ | 
| 314 | current_class_name = vmSymbols::fullClassName()->as_C_string(); \ | 
| 315 | if (JVMCILibDumpJNIConfig != NULL__null) { \ | 
| 316 | fileStream* st = JVMCIGlobals::get_jni_config_file(); \ | 
| 317 | st->print_cr("class %s", current_class_name); \ | 
| 318 | } else { \ | 
| 319 | jclass k = env->FindClass(current_class_name); \ | 
| 320 | JVMCI_EXCEPTION_CHECK(env, "FindClass(%s)", current_class_name)do { if (env->ExceptionCheck()) { if (env != JavaThread::current ()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr("FindClass(%s)", current_class_name ); return; } } while(0); \ | 
| 321 | assert(k != NULL, #fullClassName " not initialized")do { if (!(k != __null)) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 321, "assert(" "k != __null" ") failed", #fullClassName " not initialized" ); ::breakpoint(); } } while (0); \ | 
| 322 | k = (jclass) env->NewGlobalRef(k); \ | 
| 323 | JVMCI_event_2if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jclass for %s = " PTR_FORMAT"0x%016" "l" "x", current_class_name, p2i(k)); \ | 
| 324 | className::_class = k; \ | 
| 325 | } | 
| 326 | |
| 327 | #define END_CLASS current_class_name = NULL__null; } | 
| 328 | |
| 329 | #define FIELD(className, name, signature, static_field) initialize_field_id(env, className::_##name##_field_id, className::_class, current_class_name, #name, signature, static_field); | 
| 330 | #define CHAR_FIELD(className, name) FIELD(className, name, "C", false) | 
| 331 | #define INT_FIELD(className, name) FIELD(className, name, "I", false) | 
| 332 | #define BOOLEAN_FIELD(className, name) FIELD(className, name, "Z", false) | 
| 333 | #define LONG_FIELD(className, name) FIELD(className, name, "J", false) | 
| 334 | #define FLOAT_FIELD(className, name) FIELD(className, name, "F", false) | 
| 335 | #define OBJECT_FIELD(className, name, signature) FIELD(className, name, signature, false) | 
| 336 | #define STATIC_OBJECT_FIELD(className, name, signature) FIELD(className, name, signature, true) | 
| 337 | #define STATIC_INT_FIELD(className, name) FIELD(className, name, "I", true) | 
| 338 | #define STATIC_BOOLEAN_FIELD(className, name) FIELD(className, name, "Z", true) | 
| 339 | |
| 340 | #define GET_JNI_METHOD(jniGetMethod, dst, clazz, methodName, signature)if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , methodName, signature); } else { jmethodID current = dst; dst = env->jniGetMethod(clazz, methodName, signature); do { if (env->ExceptionCheck()) { if (env != JavaThread::current( )->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr("jniGetMethod" "(%s.%s%s)", current_class_name , methodName, signature); return; } } while(0); do { if (!(dst != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 340, "assert(" "dst != __null" ") failed", "uninitialized") ; ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, methodName, signature, p2i(dst)); } \ | 
| 341 | if (JVMCILibDumpJNIConfig != NULL__null) { \ | 
| 342 | fileStream* st = JVMCIGlobals::get_jni_config_file(); \ | 
| 343 | st->print_cr("method %s %s %s", current_class_name, methodName, signature); \ | 
| 344 | } else { \ | 
| 345 | jmethodID current = dst; \ | 
| 346 | dst = env->jniGetMethod(clazz, methodName, signature); \ | 
| 347 | JVMCI_EXCEPTION_CHECK(env, #jniGetMethod "(%s.%s%s)",                                    \do { if (env->ExceptionCheck()) { if (env != JavaThread::current ()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr(#jniGetMethod "(%s.%s%s)", current_class_name , methodName, signature); return; } } while(0) | 
| 348 | current_class_name, methodName, signature)do { if (env->ExceptionCheck()) { if (env != JavaThread::current ()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr(#jniGetMethod "(%s.%s%s)", current_class_name , methodName, signature); return; } } while(0); \ | 
| 349 | assert(dst != NULL, "uninitialized")do { if (!(dst != __null)) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 349, "assert(" "dst != __null" ") failed", "uninitialized") ; ::breakpoint(); } } while (0); \ | 
| 350 | JVMCI_event_2if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " PTR_FORMAT"0x%016" "l" "x", \ | 
| 351 | current_class_name, methodName, signature, p2i(dst)); \ | 
| 352 | } | 
| 353 | |
| 354 | #define GET_JNI_CONSTRUCTOR(clazz, signature)if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , "<init>", signature); } else { jmethodID current = JNIJVMCI ::clazz::_constructor; JNIJVMCI::clazz::_constructor = env-> GetMethodID(clazz::_class, "<init>", signature); do { if (env->ExceptionCheck()) { if (env != JavaThread::current( )->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr("GetMethodID" "(%s.%s%s)", current_class_name , "<init>", signature); return; } } while(0); do { if ( !(JNIJVMCI::clazz::_constructor != __null)) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 354, "assert(" "JNIJVMCI::clazz::_constructor != __null" ") failed" , "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI:: event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name , "<init>", signature, p2i(JNIJVMCI::clazz::_constructor )); } \ | 
| 355 | GET_JNI_METHOD(GetMethodID, JNIJVMCI::clazz::_constructor, clazz::_class, "<init>", signature)if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , "<init>", signature); } else { jmethodID current = JNIJVMCI ::clazz::_constructor; JNIJVMCI::clazz::_constructor = env-> GetMethodID(clazz::_class, "<init>", signature); do { if (env->ExceptionCheck()) { if (env != JavaThread::current( )->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr("GetMethodID" "(%s.%s%s)", current_class_name , "<init>", signature); return; } } while(0); do { if ( !(JNIJVMCI::clazz::_constructor != __null)) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 355, "assert(" "JNIJVMCI::clazz::_constructor != __null" ") failed" , "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI:: event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name , "<init>", signature, p2i(JNIJVMCI::clazz::_constructor )); } \ | 
| 356 | |
| 357 | #define METHOD(jniCallType, jniGetMethod, hsCallType, returnType, className, methodName, signatureSymbolName, args) \ | 
| 358 | GET_JNI_METHOD(jniGetMethod,                                        \if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); } else { jmethodID current = className::_##methodName##_method; className::_##methodName ##_method = env->jniGetMethod(className::clazz(), vmSymbols ::methodName##_name()->as_C_string(), vmSymbols::signatureSymbolName ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("jniGetMethod" "(%s.%s%s)", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); return; } } while (0); do { if (!(className::_##methodName##_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 362, "assert(" "className::_##methodName##_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::methodName##_name()-> as_C_string(), vmSymbols::signatureSymbolName()->as_C_string (), p2i(className::_##methodName##_method)); } | 
| 359 | className::_##methodName##_method,                   \if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); } else { jmethodID current = className::_##methodName##_method; className::_##methodName ##_method = env->jniGetMethod(className::clazz(), vmSymbols ::methodName##_name()->as_C_string(), vmSymbols::signatureSymbolName ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("jniGetMethod" "(%s.%s%s)", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); return; } } while (0); do { if (!(className::_##methodName##_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 362, "assert(" "className::_##methodName##_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::methodName##_name()-> as_C_string(), vmSymbols::signatureSymbolName()->as_C_string (), p2i(className::_##methodName##_method)); } | 
| 360 | className::clazz(),                                  \if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); } else { jmethodID current = className::_##methodName##_method; className::_##methodName ##_method = env->jniGetMethod(className::clazz(), vmSymbols ::methodName##_name()->as_C_string(), vmSymbols::signatureSymbolName ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("jniGetMethod" "(%s.%s%s)", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); return; } } while (0); do { if (!(className::_##methodName##_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 362, "assert(" "className::_##methodName##_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::methodName##_name()-> as_C_string(), vmSymbols::signatureSymbolName()->as_C_string (), p2i(className::_##methodName##_method)); } | 
| 361 | vmSymbols::methodName##_name()->as_C_string(),       \if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); } else { jmethodID current = className::_##methodName##_method; className::_##methodName ##_method = env->jniGetMethod(className::clazz(), vmSymbols ::methodName##_name()->as_C_string(), vmSymbols::signatureSymbolName ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("jniGetMethod" "(%s.%s%s)", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); return; } } while (0); do { if (!(className::_##methodName##_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 362, "assert(" "className::_##methodName##_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::methodName##_name()-> as_C_string(), vmSymbols::signatureSymbolName()->as_C_string (), p2i(className::_##methodName##_method)); } | 
| 362 | vmSymbols::signatureSymbolName()->as_C_string())if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); } else { jmethodID current = className::_##methodName##_method; className::_##methodName ##_method = env->jniGetMethod(className::clazz(), vmSymbols ::methodName##_name()->as_C_string(), vmSymbols::signatureSymbolName ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("jniGetMethod" "(%s.%s%s)", current_class_name , vmSymbols::methodName##_name()->as_C_string(), vmSymbols ::signatureSymbolName()->as_C_string()); return; } } while (0); do { if (!(className::_##methodName##_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 362, "assert(" "className::_##methodName##_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::methodName##_name()-> as_C_string(), vmSymbols::signatureSymbolName()->as_C_string (), p2i(className::_##methodName##_method)); } | 
| 363 | |
| 364 | #define CONSTRUCTOR(className, signature) \ | 
| 365 | GET_JNI_CONSTRUCTOR(className, signature)if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , "<init>", signature); } else { jmethodID current = JNIJVMCI ::className::_constructor; JNIJVMCI::className::_constructor = env->GetMethodID(className::_class, "<init>", signature ); do { if (env->ExceptionCheck()) { if (env != JavaThread ::current()->jni_environment()) { char* sl_path; if (::JVMCI ::get_shared_library(sl_path, false) != __null) { tty->print_cr ("In JVMCI shared library (%s):", sl_path); } } tty->print_cr ("GetMethodID" "(%s.%s%s)", current_class_name, "<init>" , signature); return; } } while(0); do { if (!(JNIJVMCI::className ::_constructor != __null)) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 365, "assert(" "JNIJVMCI::className::_constructor != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, "<init>", signature, p2i( JNIJVMCI::className::_constructor)); } | 
| 366 | |
| 367 | extern "C" { | 
| 368 | void JNICALL JVM_RegisterJVMCINatives(JNIEnv *env, jclass compilerToVMClass); | 
| 369 | jobject JNICALL JVM_GetJVMCIRuntime(JNIEnv *env, jclass c); | 
| 370 | } | 
| 371 | |
| 372 | // Dumps symbols for public <init>() and <init>(String) methods of | 
| 373 | // non-abstract Throwable subtypes known by the VM. This is to | 
| 374 | // support the use of reflection in jdk.vm.ci.hotspot.TranslatedException.create(). | 
| 375 | class ThrowableInitDumper : public SymbolClosure { | 
| 376 | private: | 
| 377 | fileStream* _st; | 
| 378 | public: | 
| 379 | ThrowableInitDumper(fileStream* st) { _st = st; } | 
| 380 | void do_symbol(Symbol** p) { | 
| 381 | JavaThread* THREAD__the_thread__ = JavaThread::current(); // For exception macros. | 
| 382 | Symbol* name = *p; | 
| 383 | if (name == NULL__null) { | 
| 384 | return; | 
| 385 | } | 
| 386 | Klass* k = SystemDictionary::resolve_or_null(name, CHECK_EXIT__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception ())) { char buf[256]; jio_snprintf(buf, 256, "Uncaught exception at %s:%d" , "/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 386); JVMCIRuntime::fatal_exception(__null, buf); return; } (void)(0); | 
| 387 | if (k != NULL__null && k->is_instance_klass()) { | 
| 388 | InstanceKlass* iklass = InstanceKlass::cast(k); | 
| 389 | if (iklass->is_subclass_of(vmClasses::Throwable_klass()) && iklass->is_public() && !iklass->is_abstract()) { | 
| 390 | const char* class_name = NULL__null; | 
| 391 | Array<Method*>* methods = iklass->methods(); | 
| 392 | for (int i = 0; i < methods->length(); i++) { | 
| 393 | Method* m = methods->at(i); | 
| 394 | if (m->name() == vmSymbols::object_initializer_name() && | 
| 395 | m->is_public() && | 
| 396 | (m->signature() == vmSymbols::void_method_signature() || m->signature() == vmSymbols::string_void_signature())) { | 
| 397 | if (class_name == NULL__null) { | 
| 398 | class_name = name->as_C_string(); | 
| 399 | _st->print_cr("class %s", class_name); | 
| 400 | } | 
| 401 | _st->print_cr("method %s %s %s", class_name, m->name()->as_C_string(), m->signature()->as_C_string()); | 
| 402 | } | 
| 403 | } | 
| 404 | } | 
| 405 | } | 
| 406 | } | 
| 407 | }; | 
| 408 | |
| 409 | #define IN_CLASS(fullClassName) current_class_name = vmSymbols::fullClassName()->as_C_string() | 
| 410 | /** | 
| 411 | * Initializes the JNI method and field ids used in JNIJVMCI. | 
| 412 | */ | 
| 413 | void JNIJVMCI::initialize_ids(JNIEnv* env) { | 
| 414 | ResourceMark rm; | 
| 415 | const char* current_class_name = NULL__null; | 
| 416 | JVMCI_CLASSES_DO(START_CLASS, END_CLASS, CHAR_FIELD, INT_FIELD, BOOLEAN_FIELD, LONG_FIELD, FLOAT_FIELD, OBJECT_FIELD, OBJECT_FIELD, OBJECT_FIELD, STATIC_OBJECT_FIELD, STATIC_OBJECT_FIELD, STATIC_INT_FIELD, STATIC_BOOLEAN_FIELD, METHOD, CONSTRUCTOR)START_CLASS(Services, jdk_vm_ci_services_Services) METHOD(CallStaticVoidMethod , GetStaticMethodID, call_static, void, Services, initializeSavedProperties , byte_array_void_signature, (JVMCIObject serializedProperties )) END_CLASS START_CLASS(Architecture, jdk_vm_ci_code_Architecture ) OBJECT_FIELD(Architecture, wordKind, "Ljdk/vm/ci/meta/PlatformKind;" ) END_CLASS START_CLASS(TargetDescription, jdk_vm_ci_code_TargetDescription ) OBJECT_FIELD(TargetDescription, arch, "Ljdk/vm/ci/code/Architecture;" ) END_CLASS START_CLASS(HotSpotResolvedObjectTypeImpl, jdk_vm_ci_hotspot_HotSpotResolvedObjectTypeImpl ) LONG_FIELD(HotSpotResolvedObjectTypeImpl, metadataPointer) END_CLASS START_CLASS(HotSpotResolvedPrimitiveType, jdk_vm_ci_hotspot_HotSpotResolvedPrimitiveType ) OBJECT_FIELD(HotSpotResolvedPrimitiveType, mirror, "Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;" ) OBJECT_FIELD(HotSpotResolvedPrimitiveType, kind, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(HotSpotResolvedPrimitiveType, primitives , "[Ljdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType;") END_CLASS START_CLASS(HotSpotResolvedJavaFieldImpl, jdk_vm_ci_hotspot_HotSpotResolvedJavaFieldImpl ) OBJECT_FIELD(HotSpotResolvedJavaFieldImpl, type, "Ljdk/vm/ci/meta/JavaType;" ) OBJECT_FIELD(HotSpotResolvedJavaFieldImpl, holder, "Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;" ) INT_FIELD(HotSpotResolvedJavaFieldImpl, offset) INT_FIELD(HotSpotResolvedJavaFieldImpl , modifiers) END_CLASS START_CLASS(HotSpotResolvedJavaMethodImpl , jdk_vm_ci_hotspot_HotSpotResolvedJavaMethodImpl) LONG_FIELD (HotSpotResolvedJavaMethodImpl, metadataHandle) END_CLASS START_CLASS (InstalledCode, jdk_vm_ci_code_InstalledCode) LONG_FIELD(InstalledCode , address) LONG_FIELD(InstalledCode, entryPoint) LONG_FIELD(InstalledCode , version) OBJECT_FIELD(InstalledCode, name, "Ljava/lang/String;" ) END_CLASS START_CLASS(HotSpotInstalledCode, jdk_vm_ci_hotspot_HotSpotInstalledCode ) INT_FIELD(HotSpotInstalledCode, size) LONG_FIELD(HotSpotInstalledCode , codeStart) INT_FIELD(HotSpotInstalledCode, codeSize) END_CLASS START_CLASS(HotSpotNmethod, jdk_vm_ci_hotspot_HotSpotNmethod ) BOOLEAN_FIELD(HotSpotNmethod, isDefault) LONG_FIELD(HotSpotNmethod , compileIdSnapshot) OBJECT_FIELD(HotSpotNmethod, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;" ) CONSTRUCTOR(HotSpotNmethod, "(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;Ljava/lang/String;ZJ)V" ) END_CLASS START_CLASS(HotSpotCompiledCode, jdk_vm_ci_hotspot_HotSpotCompiledCode ) OBJECT_FIELD(HotSpotCompiledCode, name, "Ljava/lang/String;" ) OBJECT_FIELD(HotSpotCompiledCode, targetCode, "[B") INT_FIELD (HotSpotCompiledCode, targetCodeSize) OBJECT_FIELD(HotSpotCompiledCode , sites, "[Ljdk/vm/ci/code/site/Site;") OBJECT_FIELD(HotSpotCompiledCode , assumptions, "[Ljdk/vm/ci/meta/Assumptions$Assumption;") OBJECT_FIELD (HotSpotCompiledCode, methods, "[Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) OBJECT_FIELD(HotSpotCompiledCode, comments, "[Ljdk/vm/ci/hotspot/HotSpotCompiledCode$Comment;" ) OBJECT_FIELD(HotSpotCompiledCode, dataSection, "[B") INT_FIELD (HotSpotCompiledCode, dataSectionAlignment) OBJECT_FIELD(HotSpotCompiledCode , dataSectionPatches, "[Ljdk/vm/ci/code/site/DataPatch;") BOOLEAN_FIELD (HotSpotCompiledCode, isImmutablePIC) INT_FIELD(HotSpotCompiledCode , totalFrameSize) OBJECT_FIELD(HotSpotCompiledCode, deoptRescueSlot , "Ljdk/vm/ci/code/StackSlot;") END_CLASS START_CLASS(HotSpotCompiledCode_Comment , jdk_vm_ci_hotspot_HotSpotCompiledCode_Comment) OBJECT_FIELD (HotSpotCompiledCode_Comment, text, "Ljava/lang/String;") INT_FIELD (HotSpotCompiledCode_Comment, pcOffset) END_CLASS START_CLASS (HotSpotCompiledNmethod, jdk_vm_ci_hotspot_HotSpotCompiledNmethod ) OBJECT_FIELD(HotSpotCompiledNmethod, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;" ) OBJECT_FIELD(HotSpotCompiledNmethod, installationFailureMessage , "Ljava/lang/String;") INT_FIELD(HotSpotCompiledNmethod, entryBCI ) INT_FIELD(HotSpotCompiledNmethod, id) LONG_FIELD(HotSpotCompiledNmethod , compileState) BOOLEAN_FIELD(HotSpotCompiledNmethod, hasUnsafeAccess ) END_CLASS START_CLASS(HotSpotForeignCallTarget, jdk_vm_ci_hotspot_HotSpotForeignCallTarget ) LONG_FIELD(HotSpotForeignCallTarget, address) END_CLASS START_CLASS (VMField, jdk_vm_ci_hotspot_VMField) OBJECT_FIELD(VMField, name , "Ljava/lang/String;") OBJECT_FIELD(VMField, type, "Ljava/lang/String;" ) LONG_FIELD(VMField, offset) LONG_FIELD(VMField, address) OBJECT_FIELD (VMField, value, "Ljava/lang/Object;") CONSTRUCTOR(VMField, "(Ljava/lang/String;Ljava/lang/String;JJLjava/lang/Object;)V" ) END_CLASS START_CLASS(VMFlag, jdk_vm_ci_hotspot_VMFlag) OBJECT_FIELD (VMFlag, name, "Ljava/lang/String;") OBJECT_FIELD(VMFlag, type , "Ljava/lang/String;") OBJECT_FIELD(VMFlag, value, "Ljava/lang/Object;" ) CONSTRUCTOR(VMFlag, "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" ) END_CLASS START_CLASS(VMIntrinsicMethod, jdk_vm_ci_hotspot_VMIntrinsicMethod ) OBJECT_FIELD(VMIntrinsicMethod, declaringClass, "Ljava/lang/String;" ) OBJECT_FIELD(VMIntrinsicMethod, name, "Ljava/lang/String;") OBJECT_FIELD(VMIntrinsicMethod, descriptor, "Ljava/lang/String;" ) INT_FIELD(VMIntrinsicMethod, id) CONSTRUCTOR(VMIntrinsicMethod , "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) END_CLASS START_CLASS(Assumptions_NoFinalizableSubclass, jdk_vm_ci_meta_Assumptions_NoFinalizableSubclass ) OBJECT_FIELD(Assumptions_NoFinalizableSubclass, receiverType , "Ljdk/vm/ci/meta/ResolvedJavaType;") END_CLASS START_CLASS( Assumptions_ConcreteSubtype, jdk_vm_ci_meta_Assumptions_ConcreteSubtype ) OBJECT_FIELD(Assumptions_ConcreteSubtype, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) OBJECT_FIELD(Assumptions_ConcreteSubtype, subtype, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) END_CLASS START_CLASS(Assumptions_LeafType, jdk_vm_ci_meta_Assumptions_LeafType ) OBJECT_FIELD(Assumptions_LeafType, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) END_CLASS START_CLASS(Assumptions_ConcreteMethod, jdk_vm_ci_meta_Assumptions_ConcreteMethod ) OBJECT_FIELD(Assumptions_ConcreteMethod, method, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) OBJECT_FIELD(Assumptions_ConcreteMethod, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) OBJECT_FIELD(Assumptions_ConcreteMethod, impl, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) END_CLASS START_CLASS(Assumptions_CallSiteTargetValue, jdk_vm_ci_meta_Assumptions_CallSiteTargetValue ) OBJECT_FIELD(Assumptions_CallSiteTargetValue, callSite, "Ljdk/vm/ci/meta/JavaConstant;" ) OBJECT_FIELD(Assumptions_CallSiteTargetValue, methodHandle, "Ljdk/vm/ci/meta/JavaConstant;") END_CLASS START_CLASS(site_Site , jdk_vm_ci_code_site_Site) INT_FIELD(site_Site, pcOffset) END_CLASS START_CLASS(site_Call, jdk_vm_ci_code_site_Call) OBJECT_FIELD (site_Call, target, "Ljdk/vm/ci/meta/InvokeTarget;") BOOLEAN_FIELD (site_Call, direct) END_CLASS START_CLASS(site_ImplicitExceptionDispatch , jdk_vm_ci_code_site_ImplicitExceptionDispatch) INT_FIELD(site_ImplicitExceptionDispatch , dispatchOffset) END_CLASS START_CLASS(site_DataPatch, jdk_vm_ci_code_site_DataPatch ) OBJECT_FIELD(site_DataPatch, reference, "Ljdk/vm/ci/code/site/Reference;" ) END_CLASS START_CLASS(site_ConstantReference, jdk_vm_ci_code_site_ConstantReference ) OBJECT_FIELD(site_ConstantReference, constant, "Ljdk/vm/ci/meta/VMConstant;" ) END_CLASS START_CLASS(site_DataSectionReference, jdk_vm_ci_code_site_DataSectionReference ) INT_FIELD(site_DataSectionReference, offset) END_CLASS START_CLASS (site_InfopointReason, jdk_vm_ci_code_site_InfopointReason) STATIC_OBJECT_FIELD (site_InfopointReason, SAFEPOINT, "Ljdk/vm/ci/code/site/InfopointReason;" ) STATIC_OBJECT_FIELD(site_InfopointReason, CALL, "Ljdk/vm/ci/code/site/InfopointReason;" ) STATIC_OBJECT_FIELD(site_InfopointReason, IMPLICIT_EXCEPTION , "Ljdk/vm/ci/code/site/InfopointReason;") END_CLASS START_CLASS (site_Infopoint, jdk_vm_ci_code_site_Infopoint) OBJECT_FIELD( site_Infopoint, debugInfo, "Ljdk/vm/ci/code/DebugInfo;") OBJECT_FIELD (site_Infopoint, reason, "Ljdk/vm/ci/code/site/InfopointReason;" ) END_CLASS START_CLASS(site_ExceptionHandler, jdk_vm_ci_code_site_ExceptionHandler ) INT_FIELD(site_ExceptionHandler, handlerPos) END_CLASS START_CLASS (site_Mark, jdk_vm_ci_code_site_Mark) OBJECT_FIELD(site_Mark, id, "Ljava/lang/Object;") END_CLASS START_CLASS(HotSpotCompilationRequestResult , jdk_vm_ci_hotspot_HotSpotCompilationRequestResult) OBJECT_FIELD (HotSpotCompilationRequestResult, failureMessage, "Ljava/lang/String;" ) BOOLEAN_FIELD(HotSpotCompilationRequestResult, retry) INT_FIELD (HotSpotCompilationRequestResult, inlinedBytecodes) END_CLASS START_CLASS(DebugInfo, jdk_vm_ci_code_DebugInfo) OBJECT_FIELD (DebugInfo, bytecodePosition, "Ljdk/vm/ci/code/BytecodePosition;" ) OBJECT_FIELD(DebugInfo, referenceMap, "Ljdk/vm/ci/code/ReferenceMap;" ) OBJECT_FIELD(DebugInfo, calleeSaveInfo, "Ljdk/vm/ci/code/RegisterSaveLayout;" ) OBJECT_FIELD(DebugInfo, virtualObjectMapping, "[Ljdk/vm/ci/code/VirtualObject;" ) END_CLASS START_CLASS(HotSpotReferenceMap, jdk_vm_ci_hotspot_HotSpotReferenceMap ) OBJECT_FIELD(HotSpotReferenceMap, objects, "[Ljdk/vm/ci/code/Location;" ) OBJECT_FIELD(HotSpotReferenceMap, derivedBase, "[Ljdk/vm/ci/code/Location;" ) OBJECT_FIELD(HotSpotReferenceMap, sizeInBytes, "[I") INT_FIELD (HotSpotReferenceMap, maxRegisterSize) END_CLASS START_CLASS( RegisterSaveLayout, jdk_vm_ci_code_RegisterSaveLayout) OBJECT_FIELD (RegisterSaveLayout, registers, "[Ljdk/vm/ci/code/Register;") OBJECT_FIELD(RegisterSaveLayout, slots, "[I") END_CLASS START_CLASS (BytecodeFrame, jdk_vm_ci_code_BytecodeFrame) OBJECT_FIELD(BytecodeFrame , values, "[Ljdk/vm/ci/meta/JavaValue;") OBJECT_FIELD(BytecodeFrame , slotKinds, "[Ljdk/vm/ci/meta/JavaKind;") INT_FIELD(BytecodeFrame , numLocals) INT_FIELD(BytecodeFrame, numStack) INT_FIELD(BytecodeFrame , numLocks) BOOLEAN_FIELD(BytecodeFrame, rethrowException) BOOLEAN_FIELD (BytecodeFrame, duringCall) STATIC_INT_FIELD(BytecodeFrame, UNKNOWN_BCI ) STATIC_INT_FIELD(BytecodeFrame, UNWIND_BCI) STATIC_INT_FIELD (BytecodeFrame, BEFORE_BCI) STATIC_INT_FIELD(BytecodeFrame, AFTER_BCI ) STATIC_INT_FIELD(BytecodeFrame, AFTER_EXCEPTION_BCI) STATIC_INT_FIELD (BytecodeFrame, INVALID_FRAMESTATE_BCI) END_CLASS START_CLASS (BytecodePosition, jdk_vm_ci_code_BytecodePosition) OBJECT_FIELD (BytecodePosition, caller, "Ljdk/vm/ci/code/BytecodePosition;" ) OBJECT_FIELD(BytecodePosition, method, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) INT_FIELD(BytecodePosition, bci) END_CLASS START_CLASS(JavaConstant , jdk_vm_ci_meta_JavaConstant) STATIC_OBJECT_FIELD(JavaConstant , ILLEGAL, "Ljdk/vm/ci/meta/PrimitiveConstant;") STATIC_OBJECT_FIELD (JavaConstant, NULL_POINTER, "Ljdk/vm/ci/meta/JavaConstant;") METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, JavaConstant, forPrimitive, forPrimitive_signature , (JVMCIObject kind, jlong value, JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS(ResolvedJavaMethod, jdk_vm_ci_meta_ResolvedJavaMethod ) END_CLASS START_CLASS(PrimitiveConstant, jdk_vm_ci_meta_PrimitiveConstant ) OBJECT_FIELD(PrimitiveConstant, kind, "Ljdk/vm/ci/meta/JavaKind;" ) LONG_FIELD(PrimitiveConstant, primitive) END_CLASS START_CLASS (RawConstant, jdk_vm_ci_meta_RawConstant) END_CLASS START_CLASS (NullConstant, jdk_vm_ci_meta_NullConstant) END_CLASS START_CLASS (HotSpotCompressedNullConstant, jdk_vm_ci_hotspot_HotSpotCompressedNullConstant ) END_CLASS START_CLASS(HotSpotObjectConstantImpl, jdk_vm_ci_hotspot_HotSpotObjectConstantImpl ) BOOLEAN_FIELD(HotSpotObjectConstantImpl, compressed) END_CLASS START_CLASS(DirectHotSpotObjectConstantImpl, jdk_vm_ci_hotspot_DirectHotSpotObjectConstantImpl ) OBJECT_FIELD(DirectHotSpotObjectConstantImpl, object, "Ljava/lang/Object;" ) CONSTRUCTOR(DirectHotSpotObjectConstantImpl, "(Ljava/lang/Object;Z)V" ) END_CLASS START_CLASS(IndirectHotSpotObjectConstantImpl, jdk_vm_ci_hotspot_IndirectHotSpotObjectConstantImpl ) LONG_FIELD(IndirectHotSpotObjectConstantImpl, objectHandle) CONSTRUCTOR(IndirectHotSpotObjectConstantImpl, "(JZZ)V") END_CLASS START_CLASS(HotSpotMetaspaceConstantImpl, jdk_vm_ci_hotspot_HotSpotMetaspaceConstantImpl ) OBJECT_FIELD(HotSpotMetaspaceConstantImpl, metaspaceObject, "Ljdk/vm/ci/hotspot/MetaspaceObject;") BOOLEAN_FIELD(HotSpotMetaspaceConstantImpl , compressed) END_CLASS START_CLASS(HotSpotSentinelConstant, jdk_vm_ci_hotspot_HotSpotSentinelConstant ) END_CLASS START_CLASS(JavaKind, jdk_vm_ci_meta_JavaKind) CHAR_FIELD (JavaKind, typeChar) STATIC_OBJECT_FIELD(JavaKind, Boolean, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Byte, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Char, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Short, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Int, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Float, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Long, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Double, "Ljdk/vm/ci/meta/JavaKind;" ) END_CLASS START_CLASS(ValueKind, jdk_vm_ci_meta_ValueKind) OBJECT_FIELD (ValueKind, platformKind, "Ljdk/vm/ci/meta/PlatformKind;") END_CLASS START_CLASS(Value, jdk_vm_ci_meta_Value) OBJECT_FIELD(Value, valueKind, "Ljdk/vm/ci/meta/ValueKind;") STATIC_OBJECT_FIELD (Value, ILLEGAL, "Ljdk/vm/ci/meta/AllocatableValue;") END_CLASS START_CLASS(RegisterValue, jdk_vm_ci_code_RegisterValue) OBJECT_FIELD (RegisterValue, reg, "Ljdk/vm/ci/code/Register;") END_CLASS START_CLASS (code_Location, jdk_vm_ci_code_Location) OBJECT_FIELD(code_Location , reg, "Ljdk/vm/ci/code/Register;") INT_FIELD(code_Location, offset ) END_CLASS START_CLASS(code_Register, jdk_vm_ci_code_Register ) INT_FIELD(code_Register, number) INT_FIELD(code_Register, encoding ) END_CLASS START_CLASS(StackSlot, jdk_vm_ci_code_StackSlot) INT_FIELD (StackSlot, offset) BOOLEAN_FIELD(StackSlot, addFrameSize) END_CLASS START_CLASS(VirtualObject, jdk_vm_ci_code_VirtualObject) INT_FIELD (VirtualObject, id) BOOLEAN_FIELD(VirtualObject, isAutoBox) OBJECT_FIELD (VirtualObject, type, "Ljdk/vm/ci/meta/ResolvedJavaType;") OBJECT_FIELD (VirtualObject, values, "[Ljdk/vm/ci/meta/JavaValue;") OBJECT_FIELD (VirtualObject, slotKinds, "[Ljdk/vm/ci/meta/JavaKind;") END_CLASS START_CLASS(StackLockValue, jdk_vm_ci_code_StackLockValue) OBJECT_FIELD (StackLockValue, owner, "Ljdk/vm/ci/meta/JavaValue;") OBJECT_FIELD (StackLockValue, slot, "Ljdk/vm/ci/meta/AllocatableValue;") BOOLEAN_FIELD (StackLockValue, eliminated) END_CLASS START_CLASS(HotSpotStackFrameReference , jdk_vm_ci_hotspot_HotSpotStackFrameReference) OBJECT_FIELD( HotSpotStackFrameReference, compilerToVM, "Ljdk/vm/ci/hotspot/CompilerToVM;" ) BOOLEAN_FIELD(HotSpotStackFrameReference, objectsMaterialized ) LONG_FIELD(HotSpotStackFrameReference, stackPointer) INT_FIELD (HotSpotStackFrameReference, frameNumber) INT_FIELD(HotSpotStackFrameReference , bci) OBJECT_FIELD(HotSpotStackFrameReference, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;" ) OBJECT_FIELD(HotSpotStackFrameReference, locals, "[Ljava/lang/Object;" ) OBJECT_FIELD(HotSpotStackFrameReference, localIsVirtual, "[Z" ) END_CLASS START_CLASS(HotSpotMetaData, jdk_vm_ci_hotspot_HotSpotMetaData ) OBJECT_FIELD(HotSpotMetaData, pcDescBytes, "[B") OBJECT_FIELD (HotSpotMetaData, scopesDescBytes, "[B") OBJECT_FIELD(HotSpotMetaData , relocBytes, "[B") OBJECT_FIELD(HotSpotMetaData, exceptionBytes , "[B") OBJECT_FIELD(HotSpotMetaData, implicitExceptionBytes, "[B") OBJECT_FIELD(HotSpotMetaData, oopMaps, "[B") OBJECT_FIELD (HotSpotMetaData, metadata, "[Ljava/lang/Object;") END_CLASS START_CLASS (HotSpotConstantPool, jdk_vm_ci_hotspot_HotSpotConstantPool) LONG_FIELD (HotSpotConstantPool, metadataHandle) END_CLASS START_CLASS(HotSpotJVMCIRuntime , jdk_vm_ci_hotspot_HotSpotJVMCIRuntime) OBJECT_FIELD(HotSpotJVMCIRuntime , excludeFromJVMCICompilation, "[Ljava/lang/Module;") METHOD( CallNonvirtualObjectMethod, GetMethodID, call_special, JVMCIObject , HotSpotJVMCIRuntime, compileMethod, compileMethod_signature , (JVMCIObject runtime, JVMCIObject method, int entry_bci, jlong env, int id)) METHOD(CallNonvirtualObjectMethod, GetMethodID , call_special, JVMCIObject, HotSpotJVMCIRuntime, isGCSupported , int_bool_signature, (JVMCIObject runtime, int gcIdentifier) ) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, encodeThrowable, encodeThrowable_signature , (JVMCIObject throwable)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, decodeThrowable , decodeThrowable_signature, (JVMCIObject encodedThrowable)) METHOD (CallNonvirtualVoidMethod, GetMethodID, call_special, void, HotSpotJVMCIRuntime , bootstrapFinished, void_method_signature, (JVMCIObject runtime , JVMCIEnv* __jvmci_env__)) METHOD(CallNonvirtualVoidMethod, GetMethodID , call_special, void, HotSpotJVMCIRuntime, shutdown, void_method_signature , (JVMCIObject runtime)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, runtime, runtime_signature , (JVMCIEnv* __jvmci_env__)) METHOD(CallObjectMethod, GetMethodID , call_virtual, JVMCIObject, HotSpotJVMCIRuntime, getCompiler , getCompiler_signature, (JVMCIObject runtime, JVMCIEnv* __jvmci_env__ )) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, callToString, callToString_signature , (JVMCIObject object, JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS (JVMCIError, jdk_vm_ci_common_JVMCIError) CONSTRUCTOR(JVMCIError , "(Ljava/lang/String;)V") END_CLASS START_CLASS(InspectedFrameVisitor , jdk_vm_ci_code_stack_InspectedFrameVisitor) END_CLASS START_CLASS (JVMCI, jdk_vm_ci_runtime_JVMCI) METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, getRuntime , getRuntime_signature, (JVMCIEnv* __jvmci_env__)) METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, initializeRuntime , initializeRuntime_signature, (JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS(Object, java_lang_Object) END_CLASS START_CLASS( String, java_lang_String) END_CLASS START_CLASS(Class, java_lang_Class ) METHOD(CallObjectMethod, GetMethodID, call_virtual, JVMCIObject , Class, getName, void_string_signature, (JVMCIEnv* __jvmci_env__ )) END_CLASS START_CLASS(ArrayIndexOutOfBoundsException, java_lang_ArrayIndexOutOfBoundsException ) CONSTRUCTOR(ArrayIndexOutOfBoundsException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(IllegalStateException, java_lang_IllegalStateException ) CONSTRUCTOR(IllegalStateException, "(Ljava/lang/String;)V") END_CLASS START_CLASS(NullPointerException, java_lang_NullPointerException ) CONSTRUCTOR(NullPointerException, "(Ljava/lang/String;)V") END_CLASS START_CLASS(IllegalArgumentException, java_lang_IllegalArgumentException ) CONSTRUCTOR(IllegalArgumentException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(InternalError, java_lang_InternalError ) CONSTRUCTOR(InternalError, "(Ljava/lang/String;)V") END_CLASS START_CLASS(ClassNotFoundException, java_lang_ClassNotFoundException ) CONSTRUCTOR(ClassNotFoundException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(InvalidInstalledCodeException, jdk_vm_ci_code_InvalidInstalledCodeException ) CONSTRUCTOR(InvalidInstalledCodeException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(UnsatisfiedLinkError, java_lang_UnsatisfiedLinkError ) CONSTRUCTOR(UnsatisfiedLinkError, "(Ljava/lang/String;)V") END_CLASS START_CLASS(UnsupportedOperationException, java_lang_UnsupportedOperationException ) CONSTRUCTOR(UnsupportedOperationException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(StackTraceElement, java_lang_StackTraceElement ) OBJECT_FIELD(StackTraceElement, declaringClass, "Ljava/lang/String;" ) OBJECT_FIELD(StackTraceElement, methodName, "Ljava/lang/String;" ) OBJECT_FIELD(StackTraceElement, fileName, "Ljava/lang/String;" ) INT_FIELD(StackTraceElement, lineNumber) CONSTRUCTOR(StackTraceElement , "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) END_CLASS START_CLASS(Throwable, java_lang_Throwable) OBJECT_FIELD (Throwable, detailMessage, "Ljava/lang/String;") END_CLASS | 
| 417 | |
| 418 | IN_CLASS(java_lang_Class); | 
| 419 | GET_JNI_METHOD(GetMethodID, _Class_getName_method, Class::_class, "getName", "()Ljava/lang/String;")if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , "getName", "()Ljava/lang/String;"); } else { jmethodID current = _Class_getName_method; _Class_getName_method = env->GetMethodID (Class::_class, "getName", "()Ljava/lang/String;"); do { if ( env->ExceptionCheck()) { if (env != JavaThread::current()-> jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr("GetMethodID" "(%s.%s%s)", current_class_name , "getName", "()Ljava/lang/String;"); return; } } while(0); do { if (!(_Class_getName_method != __null)) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 419, "assert(" "_Class_getName_method != __null" ") failed" , "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI:: event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name , "getName", "()Ljava/lang/String;", p2i(_Class_getName_method )); }; | 
| 420 | |
| 421 | IN_CLASS(jdk_vm_ci_hotspot_HotSpotResolvedPrimitiveType); | 
| 422 | GET_JNI_METHOD(GetStaticMethodID, _HotSpotResolvedPrimitiveType_fromMetaspace_method, HotSpotResolvedPrimitiveType::_class,if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::primitive_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotResolvedPrimitiveType_fromMetaspace_method ; _HotSpotResolvedPrimitiveType_fromMetaspace_method = env-> GetStaticMethodID(HotSpotResolvedPrimitiveType::_class, vmSymbols ::fromMetaspace_name()->as_C_string(), vmSymbols::primitive_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::primitive_fromMetaspace_signature()->as_C_string()); return ; } } while(0); do { if (!(_HotSpotResolvedPrimitiveType_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 424, "assert(" "_HotSpotResolvedPrimitiveType_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::primitive_fromMetaspace_signature ()->as_C_string(), p2i(_HotSpotResolvedPrimitiveType_fromMetaspace_method )); } | 
| 423 | vmSymbols::fromMetaspace_name()->as_C_string(),if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::primitive_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotResolvedPrimitiveType_fromMetaspace_method ; _HotSpotResolvedPrimitiveType_fromMetaspace_method = env-> GetStaticMethodID(HotSpotResolvedPrimitiveType::_class, vmSymbols ::fromMetaspace_name()->as_C_string(), vmSymbols::primitive_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::primitive_fromMetaspace_signature()->as_C_string()); return ; } } while(0); do { if (!(_HotSpotResolvedPrimitiveType_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 424, "assert(" "_HotSpotResolvedPrimitiveType_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::primitive_fromMetaspace_signature ()->as_C_string(), p2i(_HotSpotResolvedPrimitiveType_fromMetaspace_method )); } | 
| 424 | vmSymbols::primitive_fromMetaspace_signature()->as_C_string())if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::primitive_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotResolvedPrimitiveType_fromMetaspace_method ; _HotSpotResolvedPrimitiveType_fromMetaspace_method = env-> GetStaticMethodID(HotSpotResolvedPrimitiveType::_class, vmSymbols ::fromMetaspace_name()->as_C_string(), vmSymbols::primitive_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::primitive_fromMetaspace_signature()->as_C_string()); return ; } } while(0); do { if (!(_HotSpotResolvedPrimitiveType_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 424, "assert(" "_HotSpotResolvedPrimitiveType_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::primitive_fromMetaspace_signature ()->as_C_string(), p2i(_HotSpotResolvedPrimitiveType_fromMetaspace_method )); }; | 
| 425 | IN_CLASS(jdk_vm_ci_hotspot_HotSpotResolvedObjectTypeImpl); | 
| 426 | GET_JNI_METHOD(GetStaticMethodID, _HotSpotResolvedObjectTypeImpl_fromMetaspace_method, HotSpotResolvedObjectTypeImpl::_class,if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::klass_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotResolvedObjectTypeImpl_fromMetaspace_method ; _HotSpotResolvedObjectTypeImpl_fromMetaspace_method = env-> GetStaticMethodID(HotSpotResolvedObjectTypeImpl::_class, vmSymbols ::fromMetaspace_name()->as_C_string(), vmSymbols::klass_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::klass_fromMetaspace_signature()->as_C_string()); return; } } while(0); do { if (!(_HotSpotResolvedObjectTypeImpl_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 428, "assert(" "_HotSpotResolvedObjectTypeImpl_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::klass_fromMetaspace_signature( )->as_C_string(), p2i(_HotSpotResolvedObjectTypeImpl_fromMetaspace_method )); } | 
| 427 | vmSymbols::fromMetaspace_name()->as_C_string(),if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::klass_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotResolvedObjectTypeImpl_fromMetaspace_method ; _HotSpotResolvedObjectTypeImpl_fromMetaspace_method = env-> GetStaticMethodID(HotSpotResolvedObjectTypeImpl::_class, vmSymbols ::fromMetaspace_name()->as_C_string(), vmSymbols::klass_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::klass_fromMetaspace_signature()->as_C_string()); return; } } while(0); do { if (!(_HotSpotResolvedObjectTypeImpl_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 428, "assert(" "_HotSpotResolvedObjectTypeImpl_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::klass_fromMetaspace_signature( )->as_C_string(), p2i(_HotSpotResolvedObjectTypeImpl_fromMetaspace_method )); } | 
| 428 | vmSymbols::klass_fromMetaspace_signature()->as_C_string())if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::klass_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotResolvedObjectTypeImpl_fromMetaspace_method ; _HotSpotResolvedObjectTypeImpl_fromMetaspace_method = env-> GetStaticMethodID(HotSpotResolvedObjectTypeImpl::_class, vmSymbols ::fromMetaspace_name()->as_C_string(), vmSymbols::klass_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::klass_fromMetaspace_signature()->as_C_string()); return; } } while(0); do { if (!(_HotSpotResolvedObjectTypeImpl_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 428, "assert(" "_HotSpotResolvedObjectTypeImpl_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::klass_fromMetaspace_signature( )->as_C_string(), p2i(_HotSpotResolvedObjectTypeImpl_fromMetaspace_method )); }; | 
| 429 | IN_CLASS(jdk_vm_ci_hotspot_HotSpotConstantPool); | 
| 430 | GET_JNI_METHOD(GetStaticMethodID, _HotSpotConstantPool_fromMetaspace_method, HotSpotConstantPool::_class,if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::constantPool_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotConstantPool_fromMetaspace_method ; _HotSpotConstantPool_fromMetaspace_method = env->GetStaticMethodID (HotSpotConstantPool::_class, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::constantPool_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::constantPool_fromMetaspace_signature()->as_C_string()); return ; } } while(0); do { if (!(_HotSpotConstantPool_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 432, "assert(" "_HotSpotConstantPool_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::constantPool_fromMetaspace_signature ()->as_C_string(), p2i(_HotSpotConstantPool_fromMetaspace_method )); } | 
| 431 | vmSymbols::fromMetaspace_name()->as_C_string(),if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::constantPool_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotConstantPool_fromMetaspace_method ; _HotSpotConstantPool_fromMetaspace_method = env->GetStaticMethodID (HotSpotConstantPool::_class, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::constantPool_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::constantPool_fromMetaspace_signature()->as_C_string()); return ; } } while(0); do { if (!(_HotSpotConstantPool_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 432, "assert(" "_HotSpotConstantPool_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::constantPool_fromMetaspace_signature ()->as_C_string(), p2i(_HotSpotConstantPool_fromMetaspace_method )); } | 
| 432 | vmSymbols::constantPool_fromMetaspace_signature()->as_C_string())if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::constantPool_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotConstantPool_fromMetaspace_method ; _HotSpotConstantPool_fromMetaspace_method = env->GetStaticMethodID (HotSpotConstantPool::_class, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::constantPool_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::constantPool_fromMetaspace_signature()->as_C_string()); return ; } } while(0); do { if (!(_HotSpotConstantPool_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 432, "assert(" "_HotSpotConstantPool_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::constantPool_fromMetaspace_signature ()->as_C_string(), p2i(_HotSpotConstantPool_fromMetaspace_method )); }; | 
| 433 | IN_CLASS(jdk_vm_ci_hotspot_HotSpotResolvedJavaMethodImpl); | 
| 434 | GET_JNI_METHOD(GetStaticMethodID, _HotSpotResolvedJavaMethodImpl_fromMetaspace_method, HotSpotResolvedJavaMethodImpl::_class,if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::method_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotResolvedJavaMethodImpl_fromMetaspace_method ; _HotSpotResolvedJavaMethodImpl_fromMetaspace_method = env-> GetStaticMethodID(HotSpotResolvedJavaMethodImpl::_class, vmSymbols ::fromMetaspace_name()->as_C_string(), vmSymbols::method_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::method_fromMetaspace_signature()->as_C_string()); return ; } } while(0); do { if (!(_HotSpotResolvedJavaMethodImpl_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 436, "assert(" "_HotSpotResolvedJavaMethodImpl_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::method_fromMetaspace_signature ()->as_C_string(), p2i(_HotSpotResolvedJavaMethodImpl_fromMetaspace_method )); } | 
| 435 | vmSymbols::fromMetaspace_name()->as_C_string(),if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::method_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotResolvedJavaMethodImpl_fromMetaspace_method ; _HotSpotResolvedJavaMethodImpl_fromMetaspace_method = env-> GetStaticMethodID(HotSpotResolvedJavaMethodImpl::_class, vmSymbols ::fromMetaspace_name()->as_C_string(), vmSymbols::method_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::method_fromMetaspace_signature()->as_C_string()); return ; } } while(0); do { if (!(_HotSpotResolvedJavaMethodImpl_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 436, "assert(" "_HotSpotResolvedJavaMethodImpl_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::method_fromMetaspace_signature ()->as_C_string(), p2i(_HotSpotResolvedJavaMethodImpl_fromMetaspace_method )); } | 
| 436 | vmSymbols::method_fromMetaspace_signature()->as_C_string())if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::method_fromMetaspace_signature()->as_C_string()); } else { jmethodID current = _HotSpotResolvedJavaMethodImpl_fromMetaspace_method ; _HotSpotResolvedJavaMethodImpl_fromMetaspace_method = env-> GetStaticMethodID(HotSpotResolvedJavaMethodImpl::_class, vmSymbols ::fromMetaspace_name()->as_C_string(), vmSymbols::method_fromMetaspace_signature ()->as_C_string()); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library(sl_path, false) != __null ) { tty->print_cr("In JVMCI shared library (%s):", sl_path ); } } tty->print_cr("GetStaticMethodID" "(%s.%s%s)", current_class_name , vmSymbols::fromMetaspace_name()->as_C_string(), vmSymbols ::method_fromMetaspace_signature()->as_C_string()); return ; } } while(0); do { if (!(_HotSpotResolvedJavaMethodImpl_fromMetaspace_method != __null)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 436, "assert(" "_HotSpotResolvedJavaMethodImpl_fromMetaspace_method != __null" ") failed", "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI::event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name, vmSymbols::fromMetaspace_name() ->as_C_string(), vmSymbols::method_fromMetaspace_signature ()->as_C_string(), p2i(_HotSpotResolvedJavaMethodImpl_fromMetaspace_method )); }; | 
| 437 | |
| 438 | #define BOX_CLASSES(generate) \ | 
| 439 | generate(Boolean, T_BOOLEAN, Z) \ | 
| 440 | generate(Byte, T_BYTE, B) \ | 
| 441 | generate(Character, T_CHAR, C) \ | 
| 442 | generate(Short, T_SHORT, S) \ | 
| 443 | generate(Integer, T_INT, I) \ | 
| 444 | generate(Long, T_LONG, J) \ | 
| 445 | generate(Float, T_FLOAT, F) \ | 
| 446 | generate(Double, T_DOUBLE, D) \ | 
| 447 | |
| 448 | #define DO_BOX_CLASS(klass, basicType, type) \ | 
| 449 | current_class_name = "java/lang/" #klass; \ | 
| 450 | if (JVMCILibDumpJNIConfig == NULL__null) { \ | 
| 451 | _box_classes[basicType] = env->FindClass("java/lang/" #klass); \ | 
| 452 | JVMCI_EXCEPTION_CHECK(env, "FindClass(%s)", #klass)do { if (env->ExceptionCheck()) { if (env != JavaThread::current ()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr("FindClass(%s)", #klass); return ; } } while(0); \ | 
| 453 | _box_classes[basicType] = (jclass) env->NewGlobalRef(_box_classes[basicType]); \ | 
| 454 | assert(_box_classes[basicType] != NULL, "uninitialized")do { if (!(_box_classes[basicType] != __null)) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 454, "assert(" "_box_classes[basicType] != __null" ") failed" , "uninitialized"); ::breakpoint(); } } while (0); \ | 
| 455 | _box_fields[basicType] = env->GetFieldID(_box_classes[basicType], "value", #type); \ | 
| 456 | JVMCI_EXCEPTION_CHECK(env, "GetFieldID(%s, value, %s)", #klass, #type)do { if (env->ExceptionCheck()) { if (env != JavaThread::current ()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr("GetFieldID(%s, value, %s)", #klass, #type); return; } } while(0); \ | 
| 457 | GET_JNI_METHOD(GetMethodID, _box_constructors[basicType], _box_classes[basicType], "<init>", "(" #type ")V")if (JVMCILibDumpJNIConfig != __null) { fileStream* st = JVMCIGlobals ::get_jni_config_file(); st->print_cr("method %s %s %s", current_class_name , "<init>", "(" #type ")V"); } else { jmethodID current = _box_constructors[basicType]; _box_constructors[basicType] = env->GetMethodID(_box_classes[basicType], "<init>" , "(" #type ")V"); do { if (env->ExceptionCheck()) { if (env != JavaThread::current()->jni_environment()) { char* sl_path ; if (::JVMCI::get_shared_library(sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):", sl_path); } } tty->print_cr("GetMethodID" "(%s.%s%s)", current_class_name , "<init>", "(" #type ")V"); return; } } while(0); do { if (!(_box_constructors[basicType] != __null)) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 457, "assert(" "_box_constructors[basicType] != __null" ") failed" , "uninitialized"); ::breakpoint(); } } while (0); if (JVMCITraceLevel < 2 && JVMCIEventLogLevel < 2) ; else ::JVMCI:: event2(" jmethodID for %s.%s%s = " "0x%016" "l" "x", current_class_name , "<init>", "(" #type ")V", p2i(_box_constructors[basicType ])); }; \ | 
| 458 | } else { \ | 
| 459 | fileStream* st = JVMCIGlobals::get_jni_config_file(); \ | 
| 460 | st->print_cr("field %s value %s", current_class_name, #type); \ | 
| 461 | st->print_cr("method %s <init> (%s)V", current_class_name, #type); \ | 
| 462 | } | 
| 463 | |
| 464 | BOX_CLASSES(DO_BOX_CLASS); | 
| 465 | |
| 466 | if (JVMCILibDumpJNIConfig == NULL__null) { | 
| 467 | _byte_array = env->FindClass("[B"); | 
| 468 | JVMCI_EXCEPTION_CHECK(env, "FindClass([B)")do { if (env->ExceptionCheck()) { if (env != JavaThread::current ()->jni_environment()) { char* sl_path; if (::JVMCI::get_shared_library (sl_path, false) != __null) { tty->print_cr("In JVMCI shared library (%s):" , sl_path); } } tty->print_cr("FindClass([B)"); return; } } while(0); | 
| 469 | _byte_array = (jclass) env->NewGlobalRef(_byte_array); | 
| 470 | assert(_byte_array != NULL, "uninitialized")do { if (!(_byte_array != __null)) { (*g_assert_poison) = 'X' ;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 470, "assert(" "_byte_array != __null" ") failed", "uninitialized" ); ::breakpoint(); } } while (0); | 
| 471 | } else { | 
| 472 | fileStream* st = JVMCIGlobals::get_jni_config_file(); | 
| 473 | st->print_cr("class [B"); | 
| 474 | } | 
| 475 | |
| 476 | #define DUMP_ALL_NATIVE_METHODS(class_symbol) do { \ | 
| 477 | current_class_name = class_symbol->as_C_string(); \ | 
| 478 | Klass* k = SystemDictionary::resolve_or_fail(class_symbol, true, CHECK_EXIT__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception ())) { char buf[256]; jio_snprintf(buf, 256, "Uncaught exception at %s:%d" , "/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 478); JVMCIRuntime::fatal_exception(__null, buf); return; } (void)(0); \ | 
| 479 | InstanceKlass* iklass = InstanceKlass::cast(k); \ | 
| 480 | Array<Method*>* methods = iklass->methods(); \ | 
| 481 | for (int i = 0; i < methods->length(); i++) { \ | 
| 482 | Method* m = methods->at(i); \ | 
| 483 | if (m->is_native()) { \ | 
| 484 | st->print_cr("method %s %s %s", current_class_name, m->name()->as_C_string(), m->signature()->as_C_string()); \ | 
| 485 | } \ | 
| 486 | } \ | 
| 487 | } while(0) | 
| 488 | |
| 489 | if (JVMCILibDumpJNIConfig != NULL__null) { | 
| 490 | JavaThread* THREAD__the_thread__ = JavaThread::current(); // For exception macros. | 
| 491 | fileStream* st = JVMCIGlobals::get_jni_config_file(); | 
| 492 | |
| 493 | DUMP_ALL_NATIVE_METHODS(vmSymbols::jdk_vm_ci_hotspot_CompilerToVM()); | 
| 494 | ThrowableInitDumper dumper(st); | 
| 495 | vmSymbols::symbols_do(&dumper); | 
| 496 | |
| 497 | st->flush(); | 
| 498 | tty->print_cr("Dumped JVMCI shared library JNI configuration to %s", JVMCILibDumpJNIConfig); | 
| 499 | vm_exit(0); | 
| 500 | } | 
| 501 | |
| 502 | #undef DUMP_ALL_NATIVE_METHODS | 
| 503 | #undef DO_BOX_CLASS | 
| 504 | #undef BOX_CLASSES | 
| 505 | #undef IN_CLASS | 
| 506 | |
| 507 | #define CC(char*) (char*) /*cast a literal from (const char*)*/ | 
| 508 | #define FN_PTR(f)((void*)((address_word)(&(f)))) CAST_FROM_FN_PTR(void*, &(f))((void*)((address_word)(&(f)))) | 
| 509 | } | 
| 510 | |
| 511 | static void register_natives_for_class(JNIEnv* env, jclass clazz, const char* name, const JNINativeMethod *methods, jint nMethods) { | 
| 512 | if (clazz == NULL__null) { | 
| 513 | clazz = env->FindClass(name); | 
| 514 | if (env->ExceptionCheck()) { | 
| 515 | env->ExceptionDescribe(); | 
| 516 | fatal("Could not find class %s", name)do { (*g_assert_poison) = 'X';; report_fatal(INTERNAL_ERROR, "/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 516, "Could not find class %s", name); ::breakpoint(); } while (0); | 
| 517 | } | 
| 518 | } | 
| 519 | env->RegisterNatives(clazz, methods, nMethods); | 
| 520 | if (env->ExceptionCheck()) { | 
| 521 | env->ExceptionDescribe(); | 
| 522 | fatal("Failure registering natives for %s", name)do { (*g_assert_poison) = 'X';; report_fatal(INTERNAL_ERROR, "/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 522, "Failure registering natives for %s", name); ::breakpoint (); } while (0); | 
| 523 | } | 
| 524 | } | 
| 525 | |
| 526 | void JNIJVMCI::register_natives(JNIEnv* env) { | 
| 527 | if (env != JavaThread::current()->jni_environment()) { | 
| 528 | JNINativeMethod CompilerToVM_nmethods[] = {{ CC(char*)"registerNatives", CC(char*)"()V", FN_PTR(JVM_RegisterJVMCINatives)((void*)((address_word)(&(JVM_RegisterJVMCINatives)))) }}; | 
| 529 | JNINativeMethod JVMCI_nmethods[] = {{ CC(char*)"initializeRuntime", CC(char*)"()Ljdk/vm/ci/runtime/JVMCIRuntime;", FN_PTR(JVM_GetJVMCIRuntime)((void*)((address_word)(&(JVM_GetJVMCIRuntime)))) }}; | 
| 530 | |
| 531 | register_natives_for_class(env, NULL__null, "jdk/vm/ci/hotspot/CompilerToVM", CompilerToVM_nmethods, 1); | 
| 532 | register_natives_for_class(env, JVMCI::clazz(), "jdk/vm/ci/runtime/JVMCI", JVMCI_nmethods, 1); | 
| 533 | } | 
| 534 | } | 
| 535 | |
| 536 | #undef METHOD | 
| 537 | #undef CONSTRUCTOR | 
| 538 | #undef FIELD2 | 
| 539 | |
| 540 | #define EMPTY0 | 
| 541 | #define EMPTY1(x) | 
| 542 | #define EMPTY2(x,y) | 
| 543 | #define FIELD3(className, name, sig)jfieldID JNIJVMCI::className::_name_field_id = 0; int HotSpotJVMCI ::className::_name_offset = 0; FIELD2(className, name)jfieldID JNIJVMCI::className::_name_field_id = 0; int HotSpotJVMCI ::className::_name_offset = 0; | 
| 544 | #define FIELD2(className, name)jfieldID JNIJVMCI::className::_name_field_id = 0; int HotSpotJVMCI ::className::_name_offset = 0; \ | 
| 545 | jfieldID JNIJVMCI::className::_##name##_field_id = 0; \ | 
| 546 | int HotSpotJVMCI::className::_##name##_offset = 0; | 
| 547 | #define METHOD(jniCallType, jniGetMethod, hsCallType, returnType, className, methodName, signatureSymbolName, args) | 
| 548 | #define CONSTRUCTOR(className, signature) | 
| 549 | |
| 550 | // Generates the definitions of static fields used by the accessors. For example: | 
| 551 | // jfieldID JNIJVMCI::Architecture::_wordKind_field_id = 0; | 
| 552 | // jfieldID HotSpotJVMCI::Architecture::_wordKind_offset = 0; | 
| 553 | JVMCI_CLASSES_DO(EMPTY2, EMPTY0, FIELD2, FIELD2, FIELD2, FIELD2, FIELD2, FIELD3, FIELD3, FIELD3, FIELD3, FIELD3, FIELD2, FIELD2, METHOD, CONSTRUCTOR)METHOD(CallStaticVoidMethod, GetStaticMethodID, call_static, void , Services, initializeSavedProperties, byte_array_void_signature , (JVMCIObject serializedProperties)) jfieldID JNIJVMCI::Architecture ::_wordKind_field_id = 0; int HotSpotJVMCI::Architecture::_wordKind_offset = 0; jfieldID JNIJVMCI::TargetDescription::_arch_field_id = 0 ; int HotSpotJVMCI::TargetDescription::_arch_offset = 0; jfieldID JNIJVMCI::HotSpotResolvedObjectTypeImpl::_metadataPointer_field_id = 0; int HotSpotJVMCI::HotSpotResolvedObjectTypeImpl::_metadataPointer_offset = 0; jfieldID JNIJVMCI::HotSpotResolvedPrimitiveType::_mirror_field_id = 0; int HotSpotJVMCI::HotSpotResolvedPrimitiveType::_mirror_offset = 0; jfieldID JNIJVMCI::HotSpotResolvedPrimitiveType::_kind_field_id = 0; int HotSpotJVMCI::HotSpotResolvedPrimitiveType::_kind_offset = 0; jfieldID JNIJVMCI::HotSpotResolvedPrimitiveType::_primitives_field_id = 0; int HotSpotJVMCI::HotSpotResolvedPrimitiveType::_primitives_offset = 0; jfieldID JNIJVMCI::HotSpotResolvedJavaFieldImpl::_type_field_id = 0; int HotSpotJVMCI::HotSpotResolvedJavaFieldImpl::_type_offset = 0; jfieldID JNIJVMCI::HotSpotResolvedJavaFieldImpl::_holder_field_id = 0; int HotSpotJVMCI::HotSpotResolvedJavaFieldImpl::_holder_offset = 0; jfieldID JNIJVMCI::HotSpotResolvedJavaFieldImpl::_offset_field_id = 0; int HotSpotJVMCI::HotSpotResolvedJavaFieldImpl::_offset_offset = 0; jfieldID JNIJVMCI::HotSpotResolvedJavaFieldImpl::_modifiers_field_id = 0; int HotSpotJVMCI::HotSpotResolvedJavaFieldImpl::_modifiers_offset = 0; jfieldID JNIJVMCI::HotSpotResolvedJavaMethodImpl::_metadataHandle_field_id = 0; int HotSpotJVMCI::HotSpotResolvedJavaMethodImpl::_metadataHandle_offset = 0; jfieldID JNIJVMCI::InstalledCode::_address_field_id = 0 ; int HotSpotJVMCI::InstalledCode::_address_offset = 0; jfieldID JNIJVMCI::InstalledCode::_entryPoint_field_id = 0; int HotSpotJVMCI ::InstalledCode::_entryPoint_offset = 0; jfieldID JNIJVMCI::InstalledCode ::_version_field_id = 0; int HotSpotJVMCI::InstalledCode::_version_offset = 0; jfieldID JNIJVMCI::InstalledCode::_name_field_id = 0; int HotSpotJVMCI::InstalledCode::_name_offset = 0; jfieldID JNIJVMCI ::HotSpotInstalledCode::_size_field_id = 0; int HotSpotJVMCI:: HotSpotInstalledCode::_size_offset = 0; jfieldID JNIJVMCI::HotSpotInstalledCode ::_codeStart_field_id = 0; int HotSpotJVMCI::HotSpotInstalledCode ::_codeStart_offset = 0; jfieldID JNIJVMCI::HotSpotInstalledCode ::_codeSize_field_id = 0; int HotSpotJVMCI::HotSpotInstalledCode ::_codeSize_offset = 0; jfieldID JNIJVMCI::HotSpotNmethod::_isDefault_field_id = 0; int HotSpotJVMCI::HotSpotNmethod::_isDefault_offset = 0 ; jfieldID JNIJVMCI::HotSpotNmethod::_compileIdSnapshot_field_id = 0; int HotSpotJVMCI::HotSpotNmethod::_compileIdSnapshot_offset = 0; jfieldID JNIJVMCI::HotSpotNmethod::_method_field_id = 0 ; int HotSpotJVMCI::HotSpotNmethod::_method_offset = 0; CONSTRUCTOR (HotSpotNmethod, "(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;Ljava/lang/String;ZJ)V" ) jfieldID JNIJVMCI::HotSpotCompiledCode::_name_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_name_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_targetCode_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_targetCode_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_targetCodeSize_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_targetCodeSize_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_sites_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_sites_offset = 0 ; jfieldID JNIJVMCI::HotSpotCompiledCode::_assumptions_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_assumptions_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_methods_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_methods_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_comments_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_comments_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_dataSection_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_dataSection_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_dataSectionAlignment_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_dataSectionAlignment_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_dataSectionPatches_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_dataSectionPatches_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_isImmutablePIC_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_isImmutablePIC_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_totalFrameSize_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_totalFrameSize_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode::_deoptRescueSlot_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode::_deoptRescueSlot_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode_Comment::_text_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode_Comment::_text_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledCode_Comment::_pcOffset_field_id = 0; int HotSpotJVMCI::HotSpotCompiledCode_Comment::_pcOffset_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledNmethod::_method_field_id = 0; int HotSpotJVMCI::HotSpotCompiledNmethod::_method_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledNmethod::_installationFailureMessage_field_id = 0; int HotSpotJVMCI::HotSpotCompiledNmethod::_installationFailureMessage_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledNmethod::_entryBCI_field_id = 0; int HotSpotJVMCI::HotSpotCompiledNmethod::_entryBCI_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledNmethod::_id_field_id = 0; int HotSpotJVMCI::HotSpotCompiledNmethod::_id_offset = 0 ; jfieldID JNIJVMCI::HotSpotCompiledNmethod::_compileState_field_id = 0; int HotSpotJVMCI::HotSpotCompiledNmethod::_compileState_offset = 0; jfieldID JNIJVMCI::HotSpotCompiledNmethod::_hasUnsafeAccess_field_id = 0; int HotSpotJVMCI::HotSpotCompiledNmethod::_hasUnsafeAccess_offset = 0; jfieldID JNIJVMCI::HotSpotForeignCallTarget::_address_field_id = 0; int HotSpotJVMCI::HotSpotForeignCallTarget::_address_offset = 0; jfieldID JNIJVMCI::VMField::_name_field_id = 0; int HotSpotJVMCI ::VMField::_name_offset = 0; jfieldID JNIJVMCI::VMField::_type_field_id = 0; int HotSpotJVMCI::VMField::_type_offset = 0; jfieldID JNIJVMCI ::VMField::_offset_field_id = 0; int HotSpotJVMCI::VMField::_offset_offset = 0; jfieldID JNIJVMCI::VMField::_address_field_id = 0; int HotSpotJVMCI ::VMField::_address_offset = 0; jfieldID JNIJVMCI::VMField::_value_field_id = 0; int HotSpotJVMCI::VMField::_value_offset = 0; CONSTRUCTOR (VMField, "(Ljava/lang/String;Ljava/lang/String;JJLjava/lang/Object;)V" ) jfieldID JNIJVMCI::VMFlag::_name_field_id = 0; int HotSpotJVMCI ::VMFlag::_name_offset = 0; jfieldID JNIJVMCI::VMFlag::_type_field_id = 0; int HotSpotJVMCI::VMFlag::_type_offset = 0; jfieldID JNIJVMCI ::VMFlag::_value_field_id = 0; int HotSpotJVMCI::VMFlag::_value_offset = 0; CONSTRUCTOR(VMFlag, "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" ) jfieldID JNIJVMCI::VMIntrinsicMethod::_declaringClass_field_id = 0; int HotSpotJVMCI::VMIntrinsicMethod::_declaringClass_offset = 0; jfieldID JNIJVMCI::VMIntrinsicMethod::_name_field_id = 0 ; int HotSpotJVMCI::VMIntrinsicMethod::_name_offset = 0; jfieldID JNIJVMCI::VMIntrinsicMethod::_descriptor_field_id = 0; int HotSpotJVMCI ::VMIntrinsicMethod::_descriptor_offset = 0; jfieldID JNIJVMCI ::VMIntrinsicMethod::_id_field_id = 0; int HotSpotJVMCI::VMIntrinsicMethod ::_id_offset = 0; CONSTRUCTOR(VMIntrinsicMethod, "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) jfieldID JNIJVMCI::Assumptions_NoFinalizableSubclass::_receiverType_field_id = 0; int HotSpotJVMCI::Assumptions_NoFinalizableSubclass::_receiverType_offset = 0; jfieldID JNIJVMCI::Assumptions_ConcreteSubtype::_context_field_id = 0; int HotSpotJVMCI::Assumptions_ConcreteSubtype::_context_offset = 0; jfieldID JNIJVMCI::Assumptions_ConcreteSubtype::_subtype_field_id = 0; int HotSpotJVMCI::Assumptions_ConcreteSubtype::_subtype_offset = 0; jfieldID JNIJVMCI::Assumptions_LeafType::_context_field_id = 0; int HotSpotJVMCI::Assumptions_LeafType::_context_offset = 0; jfieldID JNIJVMCI::Assumptions_ConcreteMethod::_method_field_id = 0; int HotSpotJVMCI::Assumptions_ConcreteMethod::_method_offset = 0; jfieldID JNIJVMCI::Assumptions_ConcreteMethod::_context_field_id = 0; int HotSpotJVMCI::Assumptions_ConcreteMethod::_context_offset = 0; jfieldID JNIJVMCI::Assumptions_ConcreteMethod::_impl_field_id = 0; int HotSpotJVMCI::Assumptions_ConcreteMethod::_impl_offset = 0; jfieldID JNIJVMCI::Assumptions_CallSiteTargetValue::_callSite_field_id = 0; int HotSpotJVMCI::Assumptions_CallSiteTargetValue::_callSite_offset = 0; jfieldID JNIJVMCI::Assumptions_CallSiteTargetValue::_methodHandle_field_id = 0; int HotSpotJVMCI::Assumptions_CallSiteTargetValue::_methodHandle_offset = 0; jfieldID JNIJVMCI::site_Site::_pcOffset_field_id = 0; int HotSpotJVMCI::site_Site::_pcOffset_offset = 0; jfieldID JNIJVMCI ::site_Call::_target_field_id = 0; int HotSpotJVMCI::site_Call ::_target_offset = 0; jfieldID JNIJVMCI::site_Call::_direct_field_id = 0; int HotSpotJVMCI::site_Call::_direct_offset = 0; jfieldID JNIJVMCI::site_ImplicitExceptionDispatch::_dispatchOffset_field_id = 0; int HotSpotJVMCI::site_ImplicitExceptionDispatch::_dispatchOffset_offset = 0; jfieldID JNIJVMCI::site_DataPatch::_reference_field_id = 0; int HotSpotJVMCI::site_DataPatch::_reference_offset = 0; jfieldID JNIJVMCI::site_ConstantReference::_constant_field_id = 0; int HotSpotJVMCI::site_ConstantReference::_constant_offset = 0; jfieldID JNIJVMCI::site_DataSectionReference::_offset_field_id = 0; int HotSpotJVMCI::site_DataSectionReference::_offset_offset = 0; jfieldID JNIJVMCI::site_InfopointReason::_SAFEPOINT_field_id = 0; int HotSpotJVMCI::site_InfopointReason::_SAFEPOINT_offset = 0; jfieldID JNIJVMCI::site_InfopointReason::_CALL_field_id = 0; int HotSpotJVMCI::site_InfopointReason::_CALL_offset = 0 ; jfieldID JNIJVMCI::site_InfopointReason::_IMPLICIT_EXCEPTION_field_id = 0; int HotSpotJVMCI::site_InfopointReason::_IMPLICIT_EXCEPTION_offset = 0; jfieldID JNIJVMCI::site_Infopoint::_debugInfo_field_id = 0; int HotSpotJVMCI::site_Infopoint::_debugInfo_offset = 0; jfieldID JNIJVMCI::site_Infopoint::_reason_field_id = 0; int HotSpotJVMCI ::site_Infopoint::_reason_offset = 0; jfieldID JNIJVMCI::site_ExceptionHandler ::_handlerPos_field_id = 0; int HotSpotJVMCI::site_ExceptionHandler ::_handlerPos_offset = 0; jfieldID JNIJVMCI::site_Mark::_id_field_id = 0; int HotSpotJVMCI::site_Mark::_id_offset = 0; jfieldID JNIJVMCI ::HotSpotCompilationRequestResult::_failureMessage_field_id = 0; int HotSpotJVMCI::HotSpotCompilationRequestResult::_failureMessage_offset = 0; jfieldID JNIJVMCI::HotSpotCompilationRequestResult::_retry_field_id = 0; int HotSpotJVMCI::HotSpotCompilationRequestResult::_retry_offset = 0; jfieldID JNIJVMCI::HotSpotCompilationRequestResult::_inlinedBytecodes_field_id = 0; int HotSpotJVMCI::HotSpotCompilationRequestResult::_inlinedBytecodes_offset = 0; jfieldID JNIJVMCI::DebugInfo::_bytecodePosition_field_id = 0; int HotSpotJVMCI::DebugInfo::_bytecodePosition_offset = 0; jfieldID JNIJVMCI::DebugInfo::_referenceMap_field_id = 0; int HotSpotJVMCI::DebugInfo::_referenceMap_offset = 0; jfieldID JNIJVMCI::DebugInfo::_calleeSaveInfo_field_id = 0; int HotSpotJVMCI ::DebugInfo::_calleeSaveInfo_offset = 0; jfieldID JNIJVMCI::DebugInfo ::_virtualObjectMapping_field_id = 0; int HotSpotJVMCI::DebugInfo ::_virtualObjectMapping_offset = 0; jfieldID JNIJVMCI::HotSpotReferenceMap ::_objects_field_id = 0; int HotSpotJVMCI::HotSpotReferenceMap ::_objects_offset = 0; jfieldID JNIJVMCI::HotSpotReferenceMap ::_derivedBase_field_id = 0; int HotSpotJVMCI::HotSpotReferenceMap ::_derivedBase_offset = 0; jfieldID JNIJVMCI::HotSpotReferenceMap ::_sizeInBytes_field_id = 0; int HotSpotJVMCI::HotSpotReferenceMap ::_sizeInBytes_offset = 0; jfieldID JNIJVMCI::HotSpotReferenceMap ::_maxRegisterSize_field_id = 0; int HotSpotJVMCI::HotSpotReferenceMap ::_maxRegisterSize_offset = 0; jfieldID JNIJVMCI::RegisterSaveLayout ::_registers_field_id = 0; int HotSpotJVMCI::RegisterSaveLayout ::_registers_offset = 0; jfieldID JNIJVMCI::RegisterSaveLayout ::_slots_field_id = 0; int HotSpotJVMCI::RegisterSaveLayout:: _slots_offset = 0; jfieldID JNIJVMCI::BytecodeFrame::_values_field_id = 0; int HotSpotJVMCI::BytecodeFrame::_values_offset = 0; jfieldID JNIJVMCI::BytecodeFrame::_slotKinds_field_id = 0; int HotSpotJVMCI ::BytecodeFrame::_slotKinds_offset = 0; jfieldID JNIJVMCI::BytecodeFrame ::_numLocals_field_id = 0; int HotSpotJVMCI::BytecodeFrame::_numLocals_offset = 0; jfieldID JNIJVMCI::BytecodeFrame::_numStack_field_id = 0 ; int HotSpotJVMCI::BytecodeFrame::_numStack_offset = 0; jfieldID JNIJVMCI::BytecodeFrame::_numLocks_field_id = 0; int HotSpotJVMCI ::BytecodeFrame::_numLocks_offset = 0; jfieldID JNIJVMCI::BytecodeFrame ::_rethrowException_field_id = 0; int HotSpotJVMCI::BytecodeFrame ::_rethrowException_offset = 0; jfieldID JNIJVMCI::BytecodeFrame ::_duringCall_field_id = 0; int HotSpotJVMCI::BytecodeFrame:: _duringCall_offset = 0; jfieldID JNIJVMCI::BytecodeFrame::_UNKNOWN_BCI_field_id = 0; int HotSpotJVMCI::BytecodeFrame::_UNKNOWN_BCI_offset = 0 ; jfieldID JNIJVMCI::BytecodeFrame::_UNWIND_BCI_field_id = 0; int HotSpotJVMCI::BytecodeFrame::_UNWIND_BCI_offset = 0; jfieldID JNIJVMCI::BytecodeFrame::_BEFORE_BCI_field_id = 0; int HotSpotJVMCI ::BytecodeFrame::_BEFORE_BCI_offset = 0; jfieldID JNIJVMCI::BytecodeFrame ::_AFTER_BCI_field_id = 0; int HotSpotJVMCI::BytecodeFrame::_AFTER_BCI_offset = 0; jfieldID JNIJVMCI::BytecodeFrame::_AFTER_EXCEPTION_BCI_field_id = 0; int HotSpotJVMCI::BytecodeFrame::_AFTER_EXCEPTION_BCI_offset = 0; jfieldID JNIJVMCI::BytecodeFrame::_INVALID_FRAMESTATE_BCI_field_id = 0; int HotSpotJVMCI::BytecodeFrame::_INVALID_FRAMESTATE_BCI_offset = 0; jfieldID JNIJVMCI::BytecodePosition::_caller_field_id = 0; int HotSpotJVMCI::BytecodePosition::_caller_offset = 0; jfieldID JNIJVMCI::BytecodePosition::_method_field_id = 0; int HotSpotJVMCI ::BytecodePosition::_method_offset = 0; jfieldID JNIJVMCI::BytecodePosition ::_bci_field_id = 0; int HotSpotJVMCI::BytecodePosition::_bci_offset = 0; jfieldID JNIJVMCI::JavaConstant::_ILLEGAL_field_id = 0; int HotSpotJVMCI::JavaConstant::_ILLEGAL_offset = 0; jfieldID JNIJVMCI::JavaConstant::_NULL_POINTER_field_id = 0; int HotSpotJVMCI ::JavaConstant::_NULL_POINTER_offset = 0; METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JavaConstant, forPrimitive , forPrimitive_signature, (JVMCIObject kind, jlong value, JVMCIEnv * __jvmci_env__)) jfieldID JNIJVMCI::PrimitiveConstant::_kind_field_id = 0; int HotSpotJVMCI::PrimitiveConstant::_kind_offset = 0; jfieldID JNIJVMCI::PrimitiveConstant::_primitive_field_id = 0; int HotSpotJVMCI ::PrimitiveConstant::_primitive_offset = 0; jfieldID JNIJVMCI ::HotSpotObjectConstantImpl::_compressed_field_id = 0; int HotSpotJVMCI ::HotSpotObjectConstantImpl::_compressed_offset = 0; jfieldID JNIJVMCI::DirectHotSpotObjectConstantImpl::_object_field_id = 0; int HotSpotJVMCI::DirectHotSpotObjectConstantImpl::_object_offset = 0; CONSTRUCTOR(DirectHotSpotObjectConstantImpl, "(Ljava/lang/Object;Z)V" ) jfieldID JNIJVMCI::IndirectHotSpotObjectConstantImpl::_objectHandle_field_id = 0; int HotSpotJVMCI::IndirectHotSpotObjectConstantImpl::_objectHandle_offset = 0; CONSTRUCTOR(IndirectHotSpotObjectConstantImpl, "(JZZ)V" ) jfieldID JNIJVMCI::HotSpotMetaspaceConstantImpl::_metaspaceObject_field_id = 0; int HotSpotJVMCI::HotSpotMetaspaceConstantImpl::_metaspaceObject_offset = 0; jfieldID JNIJVMCI::HotSpotMetaspaceConstantImpl::_compressed_field_id = 0; int HotSpotJVMCI::HotSpotMetaspaceConstantImpl::_compressed_offset = 0; jfieldID JNIJVMCI::JavaKind::_typeChar_field_id = 0; int HotSpotJVMCI::JavaKind::_typeChar_offset = 0; jfieldID JNIJVMCI ::JavaKind::_Boolean_field_id = 0; int HotSpotJVMCI::JavaKind ::_Boolean_offset = 0; jfieldID JNIJVMCI::JavaKind::_Byte_field_id = 0; int HotSpotJVMCI::JavaKind::_Byte_offset = 0; jfieldID JNIJVMCI ::JavaKind::_Char_field_id = 0; int HotSpotJVMCI::JavaKind::_Char_offset = 0; jfieldID JNIJVMCI::JavaKind::_Short_field_id = 0; int HotSpotJVMCI ::JavaKind::_Short_offset = 0; jfieldID JNIJVMCI::JavaKind::_Int_field_id = 0; int HotSpotJVMCI::JavaKind::_Int_offset = 0; jfieldID JNIJVMCI ::JavaKind::_Float_field_id = 0; int HotSpotJVMCI::JavaKind:: _Float_offset = 0; jfieldID JNIJVMCI::JavaKind::_Long_field_id = 0; int HotSpotJVMCI::JavaKind::_Long_offset = 0; jfieldID JNIJVMCI ::JavaKind::_Double_field_id = 0; int HotSpotJVMCI::JavaKind:: _Double_offset = 0; jfieldID JNIJVMCI::ValueKind::_platformKind_field_id = 0; int HotSpotJVMCI::ValueKind::_platformKind_offset = 0; jfieldID JNIJVMCI::Value::_valueKind_field_id = 0; int HotSpotJVMCI:: Value::_valueKind_offset = 0; jfieldID JNIJVMCI::Value::_ILLEGAL_field_id = 0; int HotSpotJVMCI::Value::_ILLEGAL_offset = 0; jfieldID JNIJVMCI ::RegisterValue::_reg_field_id = 0; int HotSpotJVMCI::RegisterValue ::_reg_offset = 0; jfieldID JNIJVMCI::code_Location::_reg_field_id = 0; int HotSpotJVMCI::code_Location::_reg_offset = 0; jfieldID JNIJVMCI::code_Location::_offset_field_id = 0; int HotSpotJVMCI ::code_Location::_offset_offset = 0; jfieldID JNIJVMCI::code_Register ::_number_field_id = 0; int HotSpotJVMCI::code_Register::_number_offset = 0; jfieldID JNIJVMCI::code_Register::_encoding_field_id = 0 ; int HotSpotJVMCI::code_Register::_encoding_offset = 0; jfieldID JNIJVMCI::StackSlot::_offset_field_id = 0; int HotSpotJVMCI:: StackSlot::_offset_offset = 0; jfieldID JNIJVMCI::StackSlot:: _addFrameSize_field_id = 0; int HotSpotJVMCI::StackSlot::_addFrameSize_offset = 0; jfieldID JNIJVMCI::VirtualObject::_id_field_id = 0; int HotSpotJVMCI::VirtualObject::_id_offset = 0; jfieldID JNIJVMCI ::VirtualObject::_isAutoBox_field_id = 0; int HotSpotJVMCI::VirtualObject ::_isAutoBox_offset = 0; jfieldID JNIJVMCI::VirtualObject::_type_field_id = 0; int HotSpotJVMCI::VirtualObject::_type_offset = 0; jfieldID JNIJVMCI::VirtualObject::_values_field_id = 0; int HotSpotJVMCI ::VirtualObject::_values_offset = 0; jfieldID JNIJVMCI::VirtualObject ::_slotKinds_field_id = 0; int HotSpotJVMCI::VirtualObject::_slotKinds_offset = 0; jfieldID JNIJVMCI::StackLockValue::_owner_field_id = 0; int HotSpotJVMCI::StackLockValue::_owner_offset = 0; jfieldID JNIJVMCI::StackLockValue::_slot_field_id = 0; int HotSpotJVMCI ::StackLockValue::_slot_offset = 0; jfieldID JNIJVMCI::StackLockValue ::_eliminated_field_id = 0; int HotSpotJVMCI::StackLockValue:: _eliminated_offset = 0; jfieldID JNIJVMCI::HotSpotStackFrameReference ::_compilerToVM_field_id = 0; int HotSpotJVMCI::HotSpotStackFrameReference ::_compilerToVM_offset = 0; jfieldID JNIJVMCI::HotSpotStackFrameReference ::_objectsMaterialized_field_id = 0; int HotSpotJVMCI::HotSpotStackFrameReference ::_objectsMaterialized_offset = 0; jfieldID JNIJVMCI::HotSpotStackFrameReference ::_stackPointer_field_id = 0; int HotSpotJVMCI::HotSpotStackFrameReference ::_stackPointer_offset = 0; jfieldID JNIJVMCI::HotSpotStackFrameReference ::_frameNumber_field_id = 0; int HotSpotJVMCI::HotSpotStackFrameReference ::_frameNumber_offset = 0; jfieldID JNIJVMCI::HotSpotStackFrameReference ::_bci_field_id = 0; int HotSpotJVMCI::HotSpotStackFrameReference ::_bci_offset = 0; jfieldID JNIJVMCI::HotSpotStackFrameReference ::_method_field_id = 0; int HotSpotJVMCI::HotSpotStackFrameReference ::_method_offset = 0; jfieldID JNIJVMCI::HotSpotStackFrameReference ::_locals_field_id = 0; int HotSpotJVMCI::HotSpotStackFrameReference ::_locals_offset = 0; jfieldID JNIJVMCI::HotSpotStackFrameReference ::_localIsVirtual_field_id = 0; int HotSpotJVMCI::HotSpotStackFrameReference ::_localIsVirtual_offset = 0; jfieldID JNIJVMCI::HotSpotMetaData ::_pcDescBytes_field_id = 0; int HotSpotJVMCI::HotSpotMetaData ::_pcDescBytes_offset = 0; jfieldID JNIJVMCI::HotSpotMetaData ::_scopesDescBytes_field_id = 0; int HotSpotJVMCI::HotSpotMetaData ::_scopesDescBytes_offset = 0; jfieldID JNIJVMCI::HotSpotMetaData ::_relocBytes_field_id = 0; int HotSpotJVMCI::HotSpotMetaData ::_relocBytes_offset = 0; jfieldID JNIJVMCI::HotSpotMetaData:: _exceptionBytes_field_id = 0; int HotSpotJVMCI::HotSpotMetaData ::_exceptionBytes_offset = 0; jfieldID JNIJVMCI::HotSpotMetaData ::_implicitExceptionBytes_field_id = 0; int HotSpotJVMCI::HotSpotMetaData ::_implicitExceptionBytes_offset = 0; jfieldID JNIJVMCI::HotSpotMetaData ::_oopMaps_field_id = 0; int HotSpotJVMCI::HotSpotMetaData::_oopMaps_offset = 0; jfieldID JNIJVMCI::HotSpotMetaData::_metadata_field_id = 0; int HotSpotJVMCI::HotSpotMetaData::_metadata_offset = 0; jfieldID JNIJVMCI::HotSpotConstantPool::_metadataHandle_field_id = 0; int HotSpotJVMCI::HotSpotConstantPool::_metadataHandle_offset = 0; jfieldID JNIJVMCI::HotSpotJVMCIRuntime::_excludeFromJVMCICompilation_field_id = 0; int HotSpotJVMCI::HotSpotJVMCIRuntime::_excludeFromJVMCICompilation_offset = 0; METHOD(CallNonvirtualObjectMethod, GetMethodID, call_special , JVMCIObject, HotSpotJVMCIRuntime, compileMethod, compileMethod_signature , (JVMCIObject runtime, JVMCIObject method, int entry_bci, jlong env, int id)) METHOD(CallNonvirtualObjectMethod, GetMethodID , call_special, JVMCIObject, HotSpotJVMCIRuntime, isGCSupported , int_bool_signature, (JVMCIObject runtime, int gcIdentifier) ) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, encodeThrowable, encodeThrowable_signature , (JVMCIObject throwable)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, decodeThrowable , decodeThrowable_signature, (JVMCIObject encodedThrowable)) METHOD (CallNonvirtualVoidMethod, GetMethodID, call_special, void, HotSpotJVMCIRuntime , bootstrapFinished, void_method_signature, (JVMCIObject runtime , JVMCIEnv* __jvmci_env__)) METHOD(CallNonvirtualVoidMethod, GetMethodID , call_special, void, HotSpotJVMCIRuntime, shutdown, void_method_signature , (JVMCIObject runtime)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, runtime, runtime_signature , (JVMCIEnv* __jvmci_env__)) METHOD(CallObjectMethod, GetMethodID , call_virtual, JVMCIObject, HotSpotJVMCIRuntime, getCompiler , getCompiler_signature, (JVMCIObject runtime, JVMCIEnv* __jvmci_env__ )) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, callToString, callToString_signature , (JVMCIObject object, JVMCIEnv* __jvmci_env__)) CONSTRUCTOR( JVMCIError, "(Ljava/lang/String;)V") METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, getRuntime , getRuntime_signature, (JVMCIEnv* __jvmci_env__)) METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, initializeRuntime , initializeRuntime_signature, (JVMCIEnv* __jvmci_env__)) METHOD (CallObjectMethod, GetMethodID, call_virtual, JVMCIObject, Class , getName, void_string_signature, (JVMCIEnv* __jvmci_env__)) CONSTRUCTOR (ArrayIndexOutOfBoundsException, "(Ljava/lang/String;)V") CONSTRUCTOR (IllegalStateException, "(Ljava/lang/String;)V") CONSTRUCTOR( NullPointerException, "(Ljava/lang/String;)V") CONSTRUCTOR(IllegalArgumentException , "(Ljava/lang/String;)V") CONSTRUCTOR(InternalError, "(Ljava/lang/String;)V" ) CONSTRUCTOR(ClassNotFoundException, "(Ljava/lang/String;)V" ) CONSTRUCTOR(InvalidInstalledCodeException, "(Ljava/lang/String;)V" ) CONSTRUCTOR(UnsatisfiedLinkError, "(Ljava/lang/String;)V") CONSTRUCTOR (UnsupportedOperationException, "(Ljava/lang/String;)V") jfieldID JNIJVMCI::StackTraceElement::_declaringClass_field_id = 0; int HotSpotJVMCI::StackTraceElement::_declaringClass_offset = 0; jfieldID JNIJVMCI::StackTraceElement::_methodName_field_id = 0; int HotSpotJVMCI::StackTraceElement::_methodName_offset = 0; jfieldID JNIJVMCI::StackTraceElement::_fileName_field_id = 0; int HotSpotJVMCI::StackTraceElement::_fileName_offset = 0 ; jfieldID JNIJVMCI::StackTraceElement::_lineNumber_field_id = 0; int HotSpotJVMCI::StackTraceElement::_lineNumber_offset = 0; CONSTRUCTOR(StackTraceElement, "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) jfieldID JNIJVMCI::Throwable::_detailMessage_field_id = 0; int HotSpotJVMCI::Throwable::_detailMessage_offset = 0; | 
| 554 | |
| 555 | #undef START_CLASS | 
| 556 | #undef END_CLASS | 
| 557 | #undef METHOD | 
| 558 | #undef CONSTRUCTOR | 
| 559 | #undef FIELD | 
| 560 | #undef CHAR_FIELD | 
| 561 | #undef INT_FIELD | 
| 562 | #undef BOOLEAN_FIELD | 
| 563 | #undef LONG_FIELD | 
| 564 | #undef FLOAT_FIELD | 
| 565 | #undef OBJECT_FIELD | 
| 566 | #undef PRIMARRAY_FIELD | 
| 567 | #undef OBJECTARRAY_FIELD | 
| 568 | #undef STATIC_FIELD | 
| 569 | #undef STATIC_OBJECT_FIELD | 
| 570 | #undef STATIC_OBJECTARRAY_FIELD | 
| 571 | #undef STATIC_INT_FIELD | 
| 572 | #undef STATIC_BOOLEAN_FIELD | 
| 573 | #undef EMPTY_CAST | 
| 574 | |
| 575 | |
| 576 | #define START_CLASS(className, fullClassName) \ | 
| 577 | void JNIJVMCI::className::initialize(JVMCI_TRAPSJVMCIEnv* __jvmci_env__) { \ | 
| 578 | /* should already be initialized */ \ | 
| 579 | } \ | 
| 580 | bool JNIJVMCI::className::is_instance(JVMCIEnv* jvmciEnv, JVMCIObject object) { \ | 
| 581 | JNIAccessMark jni(jvmciEnv); \ | 
| 582 | return jni()->IsInstanceOf(object.as_jobject(), className::clazz()) != 0; \ | 
| 583 | } \ | 
| 584 | void JNIJVMCI::className::check(JVMCIEnv* jvmciEnv, JVMCIObject obj, const char* field_name, jfieldID offset) { \ | 
| 585 | assert(obj.is_non_null(), "NULL field access of %s.%s", #className, field_name)do { if (!(obj.is_non_null())) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 585, "assert(" "obj.is_non_null()" ") failed", "NULL field access of %s.%s" , #className, field_name); ::breakpoint(); } } while (0); \ | 
| 586 | assert(jvmciEnv->isa_##className(obj), "wrong class, " #className " expected, found %s", jvmciEnv->klass_name(obj))do { if (!(jvmciEnv->isa_##className(obj))) { (*g_assert_poison ) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 586, "assert(" "jvmciEnv->isa_##className(obj)" ") failed" , "wrong class, " #className " expected, found %s", jvmciEnv-> klass_name(obj)); ::breakpoint(); } } while (0); \ | 
| 587 | assert(offset != 0, "must be valid offset")do { if (!(offset != 0)) { (*g_assert_poison) = 'X';; report_vm_error ("/home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp" , 587, "assert(" "offset != 0" ") failed", "must be valid offset" ); ::breakpoint(); } } while (0); \ | 
| 588 | } \ | 
| 589 | jclass JNIJVMCI::className::_class = NULL__null; | 
| 590 | |
| 591 | #define END_CLASS | 
| 592 | |
| 593 | #define FIELD(className, name, type, accessor, cast) \ | 
| 594 | type JNIJVMCI::className::get_##name(JVMCIEnv* jvmciEnv, JVMCIObject obj) { \ | 
| 595 | className::check(jvmciEnv, obj, #name, className::_##name##_field_id); \ | 
| 596 | JNIAccessMark jni(jvmciEnv); \ | 
| 597 | return cast jni()->Get##accessor##Field(resolve_handle(obj), className::_##name##_field_id); \ | 
| 598 | } \ | 
| 599 | void JNIJVMCI::className::set_##name(JVMCIEnv* jvmciEnv, JVMCIObject obj, type x) { \ | 
| 600 | className::check(jvmciEnv, obj, #name, className::_##name##_field_id); \ | 
| 601 | JNIAccessMark jni(jvmciEnv); \ | 
| 602 | jni()->Set##accessor##Field(resolve_handle(obj), className::_##name##_field_id, x); \ | 
| 603 | } \ | 
| 604 | |
| 605 | #define EMPTY_CAST | 
| 606 | #define CHAR_FIELD(className, name) FIELD(className, name, jchar, Char, EMPTY_CAST) | 
| 607 | #define INT_FIELD(className, name) FIELD(className, name, jint, Int, EMPTY_CAST) | 
| 608 | #define BOOLEAN_FIELD(className, name) FIELD(className, name, jboolean, Boolean, EMPTY_CAST) | 
| 609 | #define LONG_FIELD(className, name) FIELD(className, name, jlong, Long, EMPTY_CAST) | 
| 610 | #define FLOAT_FIELD(className, name) FIELD(className, name, jfloat, Float, EMPTY_CAST) | 
| 611 | |
| 612 | #define OBJECT_FIELD(className, name, signature) OOPISH_FIELD(className, name, JVMCIObject, Object, EMPTY_CAST) | 
| 613 | #define OBJECTARRAY_FIELD(className, name, signature) OOPISH_FIELD(className, name, JVMCIObjectArray, Object, (JVMCIObjectArray)) | 
| 614 | #define PRIMARRAY_FIELD(className, name, signature) OOPISH_FIELD(className, name, JVMCIPrimitiveArray, Object, (JVMCIPrimitiveArray)) | 
| 615 | |
| 616 | #define STATIC_OBJECT_FIELD(className, name, signature) STATIC_OOPISH_FIELD(className, name, JVMCIObject, Object, (JVMCIObject)) | 
| 617 | #define STATIC_OBJECTARRAY_FIELD(className, name, signature) STATIC_OOPISH_FIELD(className, name, JVMCIObjectArray, Object, (JVMCIObjectArray)) | 
| 618 | |
| 619 | #define OOPISH_FIELD(className, name, type, accessor, cast) \ | 
| 620 | type JNIJVMCI::className::get_##name(JVMCIEnv* jvmciEnv, JVMCIObject obj) { \ | 
| 621 | className::check(jvmciEnv, obj, #name, className::_##name##_field_id); \ | 
| 622 | JNIAccessMark jni(jvmciEnv); \ | 
| 623 | return cast wrap(jni()->Get##accessor##Field(resolve_handle(obj), className::_##name##_field_id)); \ | 
| 624 | } \ | 
| 625 | void JNIJVMCI::className::set_##name(JVMCIEnv* jvmciEnv, JVMCIObject obj, type x) { \ | 
| 626 | className::check(jvmciEnv, obj, #name, className::_##name##_field_id); \ | 
| 627 | JNIAccessMark jni(jvmciEnv); \ | 
| 628 | jni()->Set##accessor##Field(resolve_handle(obj), className::_##name##_field_id, resolve_handle(x)); \ | 
| 629 | } | 
| 630 | |
| 631 | #define STATIC_OOPISH_FIELD(className, name, type, accessor, cast) \ | 
| 632 | type JNIJVMCI::className::get_##name(JVMCIEnv* jvmciEnv) { \ | 
| 633 | JNIAccessMark jni(jvmciEnv); \ | 
| 634 | return cast wrap(jni()->GetStatic##accessor##Field(className::clazz(), className::_##name##_field_id)); \ | 
| 635 | } \ | 
| 636 | void JNIJVMCI::className::set_##name(JVMCIEnv* jvmciEnv, type x) { \ | 
| 637 | JNIAccessMark jni(jvmciEnv); \ | 
| 638 | jni()->SetStatic##accessor##Field(className::clazz(), className::_##name##_field_id, resolve_handle(x)); \ | 
| 639 | } | 
| 640 | |
| 641 | #define STATIC_PRIMITIVE_FIELD(className, name, type, accessor, cast) \ | 
| 642 | type JNIJVMCI::className::get_##name(JVMCIEnv* jvmciEnv) { \ | 
| 643 | JNIAccessMark jni(jvmciEnv); \ | 
| 644 | return cast jni()->GetStatic##accessor##Field(className::clazz(), className::_##name##_field_id); \ | 
| 645 | } \ | 
| 646 | void JNIJVMCI::className::set_##name(JVMCIEnv* jvmciEnv, type x) { \ | 
| 647 | JNIAccessMark jni(jvmciEnv); \ | 
| 648 | jni()->SetStatic##accessor##Field(className::clazz(), className::_##name##_field_id, x); \ | 
| 649 | } | 
| 650 | |
| 651 | #define STATIC_INT_FIELD(className, name) STATIC_PRIMITIVE_FIELD(className, name, jint, Int, EMPTY_CAST) | 
| 652 | #define STATIC_BOOLEAN_FIELD(className, name) STATIC_PRIMITIVE_FIELD(className, name, jboolean, Boolean, EMPTY_CAST) | 
| 653 | #define METHOD(jniCallType, jniGetMethod, hsCallType, returnType, className, methodName, signatureSymbolName, args) \ | 
| 654 | jmethodID JNIJVMCI::className::_##methodName##_method; | 
| 655 | |
| 656 | #define CONSTRUCTOR(className, signature) \ | 
| 657 | jmethodID JNIJVMCI::className::_constructor; | 
| 658 | |
| 659 | /** | 
| 660 | * Generates the method definitions for the classes in HotSpotJVMCI. | 
| 661 | */ | 
| 662 | JVMCI_CLASSES_DO(START_CLASS, END_CLASS, CHAR_FIELD, INT_FIELD, BOOLEAN_FIELD, LONG_FIELD, FLOAT_FIELD, OBJECT_FIELD, PRIMARRAY_FIELD, OBJECTARRAY_FIELD, STATIC_OBJECT_FIELD, STATIC_OBJECTARRAY_FIELD, STATIC_INT_FIELD, STATIC_BOOLEAN_FIELD, METHOD, CONSTRUCTOR)START_CLASS(Services, jdk_vm_ci_services_Services) METHOD(CallStaticVoidMethod , GetStaticMethodID, call_static, void, Services, initializeSavedProperties , byte_array_void_signature, (JVMCIObject serializedProperties )) END_CLASS START_CLASS(Architecture, jdk_vm_ci_code_Architecture ) OBJECT_FIELD(Architecture, wordKind, "Ljdk/vm/ci/meta/PlatformKind;" ) END_CLASS START_CLASS(TargetDescription, jdk_vm_ci_code_TargetDescription ) OBJECT_FIELD(TargetDescription, arch, "Ljdk/vm/ci/code/Architecture;" ) END_CLASS START_CLASS(HotSpotResolvedObjectTypeImpl, jdk_vm_ci_hotspot_HotSpotResolvedObjectTypeImpl ) LONG_FIELD(HotSpotResolvedObjectTypeImpl, metadataPointer) END_CLASS START_CLASS(HotSpotResolvedPrimitiveType, jdk_vm_ci_hotspot_HotSpotResolvedPrimitiveType ) OBJECT_FIELD(HotSpotResolvedPrimitiveType, mirror, "Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;" ) OBJECT_FIELD(HotSpotResolvedPrimitiveType, kind, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECTARRAY_FIELD(HotSpotResolvedPrimitiveType, primitives , "[Ljdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType;") END_CLASS START_CLASS(HotSpotResolvedJavaFieldImpl, jdk_vm_ci_hotspot_HotSpotResolvedJavaFieldImpl ) OBJECT_FIELD(HotSpotResolvedJavaFieldImpl, type, "Ljdk/vm/ci/meta/JavaType;" ) OBJECT_FIELD(HotSpotResolvedJavaFieldImpl, holder, "Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;" ) INT_FIELD(HotSpotResolvedJavaFieldImpl, offset) INT_FIELD(HotSpotResolvedJavaFieldImpl , modifiers) END_CLASS START_CLASS(HotSpotResolvedJavaMethodImpl , jdk_vm_ci_hotspot_HotSpotResolvedJavaMethodImpl) LONG_FIELD (HotSpotResolvedJavaMethodImpl, metadataHandle) END_CLASS START_CLASS (InstalledCode, jdk_vm_ci_code_InstalledCode) LONG_FIELD(InstalledCode , address) LONG_FIELD(InstalledCode, entryPoint) LONG_FIELD(InstalledCode , version) OBJECT_FIELD(InstalledCode, name, "Ljava/lang/String;" ) END_CLASS START_CLASS(HotSpotInstalledCode, jdk_vm_ci_hotspot_HotSpotInstalledCode ) INT_FIELD(HotSpotInstalledCode, size) LONG_FIELD(HotSpotInstalledCode , codeStart) INT_FIELD(HotSpotInstalledCode, codeSize) END_CLASS START_CLASS(HotSpotNmethod, jdk_vm_ci_hotspot_HotSpotNmethod ) BOOLEAN_FIELD(HotSpotNmethod, isDefault) LONG_FIELD(HotSpotNmethod , compileIdSnapshot) OBJECT_FIELD(HotSpotNmethod, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;" ) CONSTRUCTOR(HotSpotNmethod, "(Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;Ljava/lang/String;ZJ)V" ) END_CLASS START_CLASS(HotSpotCompiledCode, jdk_vm_ci_hotspot_HotSpotCompiledCode ) OBJECT_FIELD(HotSpotCompiledCode, name, "Ljava/lang/String;" ) PRIMARRAY_FIELD(HotSpotCompiledCode, targetCode, "[B") INT_FIELD (HotSpotCompiledCode, targetCodeSize) OBJECTARRAY_FIELD(HotSpotCompiledCode , sites, "[Ljdk/vm/ci/code/site/Site;") OBJECTARRAY_FIELD(HotSpotCompiledCode , assumptions, "[Ljdk/vm/ci/meta/Assumptions$Assumption;") OBJECTARRAY_FIELD (HotSpotCompiledCode, methods, "[Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) OBJECTARRAY_FIELD(HotSpotCompiledCode, comments, "[Ljdk/vm/ci/hotspot/HotSpotCompiledCode$Comment;" ) PRIMARRAY_FIELD(HotSpotCompiledCode, dataSection, "[B") INT_FIELD (HotSpotCompiledCode, dataSectionAlignment) OBJECTARRAY_FIELD (HotSpotCompiledCode, dataSectionPatches, "[Ljdk/vm/ci/code/site/DataPatch;" ) BOOLEAN_FIELD(HotSpotCompiledCode, isImmutablePIC) INT_FIELD (HotSpotCompiledCode, totalFrameSize) OBJECT_FIELD(HotSpotCompiledCode , deoptRescueSlot, "Ljdk/vm/ci/code/StackSlot;") END_CLASS START_CLASS (HotSpotCompiledCode_Comment, jdk_vm_ci_hotspot_HotSpotCompiledCode_Comment ) OBJECT_FIELD(HotSpotCompiledCode_Comment, text, "Ljava/lang/String;" ) INT_FIELD(HotSpotCompiledCode_Comment, pcOffset) END_CLASS START_CLASS (HotSpotCompiledNmethod, jdk_vm_ci_hotspot_HotSpotCompiledNmethod ) OBJECT_FIELD(HotSpotCompiledNmethod, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;" ) OBJECT_FIELD(HotSpotCompiledNmethod, installationFailureMessage , "Ljava/lang/String;") INT_FIELD(HotSpotCompiledNmethod, entryBCI ) INT_FIELD(HotSpotCompiledNmethod, id) LONG_FIELD(HotSpotCompiledNmethod , compileState) BOOLEAN_FIELD(HotSpotCompiledNmethod, hasUnsafeAccess ) END_CLASS START_CLASS(HotSpotForeignCallTarget, jdk_vm_ci_hotspot_HotSpotForeignCallTarget ) LONG_FIELD(HotSpotForeignCallTarget, address) END_CLASS START_CLASS (VMField, jdk_vm_ci_hotspot_VMField) OBJECT_FIELD(VMField, name , "Ljava/lang/String;") OBJECT_FIELD(VMField, type, "Ljava/lang/String;" ) LONG_FIELD(VMField, offset) LONG_FIELD(VMField, address) OBJECT_FIELD (VMField, value, "Ljava/lang/Object;") CONSTRUCTOR(VMField, "(Ljava/lang/String;Ljava/lang/String;JJLjava/lang/Object;)V" ) END_CLASS START_CLASS(VMFlag, jdk_vm_ci_hotspot_VMFlag) OBJECT_FIELD (VMFlag, name, "Ljava/lang/String;") OBJECT_FIELD(VMFlag, type , "Ljava/lang/String;") OBJECT_FIELD(VMFlag, value, "Ljava/lang/Object;" ) CONSTRUCTOR(VMFlag, "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" ) END_CLASS START_CLASS(VMIntrinsicMethod, jdk_vm_ci_hotspot_VMIntrinsicMethod ) OBJECT_FIELD(VMIntrinsicMethod, declaringClass, "Ljava/lang/String;" ) OBJECT_FIELD(VMIntrinsicMethod, name, "Ljava/lang/String;") OBJECT_FIELD(VMIntrinsicMethod, descriptor, "Ljava/lang/String;" ) INT_FIELD(VMIntrinsicMethod, id) CONSTRUCTOR(VMIntrinsicMethod , "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) END_CLASS START_CLASS(Assumptions_NoFinalizableSubclass, jdk_vm_ci_meta_Assumptions_NoFinalizableSubclass ) OBJECT_FIELD(Assumptions_NoFinalizableSubclass, receiverType , "Ljdk/vm/ci/meta/ResolvedJavaType;") END_CLASS START_CLASS( Assumptions_ConcreteSubtype, jdk_vm_ci_meta_Assumptions_ConcreteSubtype ) OBJECT_FIELD(Assumptions_ConcreteSubtype, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) OBJECT_FIELD(Assumptions_ConcreteSubtype, subtype, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) END_CLASS START_CLASS(Assumptions_LeafType, jdk_vm_ci_meta_Assumptions_LeafType ) OBJECT_FIELD(Assumptions_LeafType, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) END_CLASS START_CLASS(Assumptions_ConcreteMethod, jdk_vm_ci_meta_Assumptions_ConcreteMethod ) OBJECT_FIELD(Assumptions_ConcreteMethod, method, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) OBJECT_FIELD(Assumptions_ConcreteMethod, context, "Ljdk/vm/ci/meta/ResolvedJavaType;" ) OBJECT_FIELD(Assumptions_ConcreteMethod, impl, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) END_CLASS START_CLASS(Assumptions_CallSiteTargetValue, jdk_vm_ci_meta_Assumptions_CallSiteTargetValue ) OBJECT_FIELD(Assumptions_CallSiteTargetValue, callSite, "Ljdk/vm/ci/meta/JavaConstant;" ) OBJECT_FIELD(Assumptions_CallSiteTargetValue, methodHandle, "Ljdk/vm/ci/meta/JavaConstant;") END_CLASS START_CLASS(site_Site , jdk_vm_ci_code_site_Site) INT_FIELD(site_Site, pcOffset) END_CLASS START_CLASS(site_Call, jdk_vm_ci_code_site_Call) OBJECT_FIELD (site_Call, target, "Ljdk/vm/ci/meta/InvokeTarget;") BOOLEAN_FIELD (site_Call, direct) END_CLASS START_CLASS(site_ImplicitExceptionDispatch , jdk_vm_ci_code_site_ImplicitExceptionDispatch) INT_FIELD(site_ImplicitExceptionDispatch , dispatchOffset) END_CLASS START_CLASS(site_DataPatch, jdk_vm_ci_code_site_DataPatch ) OBJECT_FIELD(site_DataPatch, reference, "Ljdk/vm/ci/code/site/Reference;" ) END_CLASS START_CLASS(site_ConstantReference, jdk_vm_ci_code_site_ConstantReference ) OBJECT_FIELD(site_ConstantReference, constant, "Ljdk/vm/ci/meta/VMConstant;" ) END_CLASS START_CLASS(site_DataSectionReference, jdk_vm_ci_code_site_DataSectionReference ) INT_FIELD(site_DataSectionReference, offset) END_CLASS START_CLASS (site_InfopointReason, jdk_vm_ci_code_site_InfopointReason) STATIC_OBJECT_FIELD (site_InfopointReason, SAFEPOINT, "Ljdk/vm/ci/code/site/InfopointReason;" ) STATIC_OBJECT_FIELD(site_InfopointReason, CALL, "Ljdk/vm/ci/code/site/InfopointReason;" ) STATIC_OBJECT_FIELD(site_InfopointReason, IMPLICIT_EXCEPTION , "Ljdk/vm/ci/code/site/InfopointReason;") END_CLASS START_CLASS (site_Infopoint, jdk_vm_ci_code_site_Infopoint) OBJECT_FIELD( site_Infopoint, debugInfo, "Ljdk/vm/ci/code/DebugInfo;") OBJECT_FIELD (site_Infopoint, reason, "Ljdk/vm/ci/code/site/InfopointReason;" ) END_CLASS START_CLASS(site_ExceptionHandler, jdk_vm_ci_code_site_ExceptionHandler ) INT_FIELD(site_ExceptionHandler, handlerPos) END_CLASS START_CLASS (site_Mark, jdk_vm_ci_code_site_Mark) OBJECT_FIELD(site_Mark, id, "Ljava/lang/Object;") END_CLASS START_CLASS(HotSpotCompilationRequestResult , jdk_vm_ci_hotspot_HotSpotCompilationRequestResult) OBJECT_FIELD (HotSpotCompilationRequestResult, failureMessage, "Ljava/lang/String;" ) BOOLEAN_FIELD(HotSpotCompilationRequestResult, retry) INT_FIELD (HotSpotCompilationRequestResult, inlinedBytecodes) END_CLASS START_CLASS(DebugInfo, jdk_vm_ci_code_DebugInfo) OBJECT_FIELD (DebugInfo, bytecodePosition, "Ljdk/vm/ci/code/BytecodePosition;" ) OBJECT_FIELD(DebugInfo, referenceMap, "Ljdk/vm/ci/code/ReferenceMap;" ) OBJECT_FIELD(DebugInfo, calleeSaveInfo, "Ljdk/vm/ci/code/RegisterSaveLayout;" ) OBJECTARRAY_FIELD(DebugInfo, virtualObjectMapping, "[Ljdk/vm/ci/code/VirtualObject;" ) END_CLASS START_CLASS(HotSpotReferenceMap, jdk_vm_ci_hotspot_HotSpotReferenceMap ) OBJECTARRAY_FIELD(HotSpotReferenceMap, objects, "[Ljdk/vm/ci/code/Location;" ) OBJECTARRAY_FIELD(HotSpotReferenceMap, derivedBase, "[Ljdk/vm/ci/code/Location;" ) PRIMARRAY_FIELD(HotSpotReferenceMap, sizeInBytes, "[I") INT_FIELD (HotSpotReferenceMap, maxRegisterSize) END_CLASS START_CLASS( RegisterSaveLayout, jdk_vm_ci_code_RegisterSaveLayout) OBJECTARRAY_FIELD (RegisterSaveLayout, registers, "[Ljdk/vm/ci/code/Register;") PRIMARRAY_FIELD(RegisterSaveLayout, slots, "[I") END_CLASS START_CLASS (BytecodeFrame, jdk_vm_ci_code_BytecodeFrame) OBJECTARRAY_FIELD (BytecodeFrame, values, "[Ljdk/vm/ci/meta/JavaValue;") OBJECTARRAY_FIELD (BytecodeFrame, slotKinds, "[Ljdk/vm/ci/meta/JavaKind;") INT_FIELD (BytecodeFrame, numLocals) INT_FIELD(BytecodeFrame, numStack) INT_FIELD(BytecodeFrame, numLocks) BOOLEAN_FIELD(BytecodeFrame , rethrowException) BOOLEAN_FIELD(BytecodeFrame, duringCall) STATIC_INT_FIELD (BytecodeFrame, UNKNOWN_BCI) STATIC_INT_FIELD(BytecodeFrame, UNWIND_BCI ) STATIC_INT_FIELD(BytecodeFrame, BEFORE_BCI) STATIC_INT_FIELD (BytecodeFrame, AFTER_BCI) STATIC_INT_FIELD(BytecodeFrame, AFTER_EXCEPTION_BCI ) STATIC_INT_FIELD(BytecodeFrame, INVALID_FRAMESTATE_BCI) END_CLASS START_CLASS(BytecodePosition, jdk_vm_ci_code_BytecodePosition ) OBJECT_FIELD(BytecodePosition, caller, "Ljdk/vm/ci/code/BytecodePosition;" ) OBJECT_FIELD(BytecodePosition, method, "Ljdk/vm/ci/meta/ResolvedJavaMethod;" ) INT_FIELD(BytecodePosition, bci) END_CLASS START_CLASS(JavaConstant , jdk_vm_ci_meta_JavaConstant) STATIC_OBJECT_FIELD(JavaConstant , ILLEGAL, "Ljdk/vm/ci/meta/PrimitiveConstant;") STATIC_OBJECT_FIELD (JavaConstant, NULL_POINTER, "Ljdk/vm/ci/meta/JavaConstant;") METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, JavaConstant, forPrimitive, forPrimitive_signature , (JVMCIObject kind, jlong value, JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS(ResolvedJavaMethod, jdk_vm_ci_meta_ResolvedJavaMethod ) END_CLASS START_CLASS(PrimitiveConstant, jdk_vm_ci_meta_PrimitiveConstant ) OBJECT_FIELD(PrimitiveConstant, kind, "Ljdk/vm/ci/meta/JavaKind;" ) LONG_FIELD(PrimitiveConstant, primitive) END_CLASS START_CLASS (RawConstant, jdk_vm_ci_meta_RawConstant) END_CLASS START_CLASS (NullConstant, jdk_vm_ci_meta_NullConstant) END_CLASS START_CLASS (HotSpotCompressedNullConstant, jdk_vm_ci_hotspot_HotSpotCompressedNullConstant ) END_CLASS START_CLASS(HotSpotObjectConstantImpl, jdk_vm_ci_hotspot_HotSpotObjectConstantImpl ) BOOLEAN_FIELD(HotSpotObjectConstantImpl, compressed) END_CLASS START_CLASS(DirectHotSpotObjectConstantImpl, jdk_vm_ci_hotspot_DirectHotSpotObjectConstantImpl ) OBJECT_FIELD(DirectHotSpotObjectConstantImpl, object, "Ljava/lang/Object;" ) CONSTRUCTOR(DirectHotSpotObjectConstantImpl, "(Ljava/lang/Object;Z)V" ) END_CLASS START_CLASS(IndirectHotSpotObjectConstantImpl, jdk_vm_ci_hotspot_IndirectHotSpotObjectConstantImpl ) LONG_FIELD(IndirectHotSpotObjectConstantImpl, objectHandle) CONSTRUCTOR(IndirectHotSpotObjectConstantImpl, "(JZZ)V") END_CLASS START_CLASS(HotSpotMetaspaceConstantImpl, jdk_vm_ci_hotspot_HotSpotMetaspaceConstantImpl ) OBJECT_FIELD(HotSpotMetaspaceConstantImpl, metaspaceObject, "Ljdk/vm/ci/hotspot/MetaspaceObject;") BOOLEAN_FIELD(HotSpotMetaspaceConstantImpl , compressed) END_CLASS START_CLASS(HotSpotSentinelConstant, jdk_vm_ci_hotspot_HotSpotSentinelConstant ) END_CLASS START_CLASS(JavaKind, jdk_vm_ci_meta_JavaKind) CHAR_FIELD (JavaKind, typeChar) STATIC_OBJECT_FIELD(JavaKind, Boolean, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Byte, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Char, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Short, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Int, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Float, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Long, "Ljdk/vm/ci/meta/JavaKind;" ) STATIC_OBJECT_FIELD(JavaKind, Double, "Ljdk/vm/ci/meta/JavaKind;" ) END_CLASS START_CLASS(ValueKind, jdk_vm_ci_meta_ValueKind) OBJECT_FIELD (ValueKind, platformKind, "Ljdk/vm/ci/meta/PlatformKind;") END_CLASS START_CLASS(Value, jdk_vm_ci_meta_Value) OBJECT_FIELD(Value, valueKind, "Ljdk/vm/ci/meta/ValueKind;") STATIC_OBJECT_FIELD (Value, ILLEGAL, "Ljdk/vm/ci/meta/AllocatableValue;") END_CLASS START_CLASS(RegisterValue, jdk_vm_ci_code_RegisterValue) OBJECT_FIELD (RegisterValue, reg, "Ljdk/vm/ci/code/Register;") END_CLASS START_CLASS (code_Location, jdk_vm_ci_code_Location) OBJECT_FIELD(code_Location , reg, "Ljdk/vm/ci/code/Register;") INT_FIELD(code_Location, offset ) END_CLASS START_CLASS(code_Register, jdk_vm_ci_code_Register ) INT_FIELD(code_Register, number) INT_FIELD(code_Register, encoding ) END_CLASS START_CLASS(StackSlot, jdk_vm_ci_code_StackSlot) INT_FIELD (StackSlot, offset) BOOLEAN_FIELD(StackSlot, addFrameSize) END_CLASS START_CLASS(VirtualObject, jdk_vm_ci_code_VirtualObject) INT_FIELD (VirtualObject, id) BOOLEAN_FIELD(VirtualObject, isAutoBox) OBJECT_FIELD (VirtualObject, type, "Ljdk/vm/ci/meta/ResolvedJavaType;") OBJECTARRAY_FIELD (VirtualObject, values, "[Ljdk/vm/ci/meta/JavaValue;") OBJECTARRAY_FIELD (VirtualObject, slotKinds, "[Ljdk/vm/ci/meta/JavaKind;") END_CLASS START_CLASS(StackLockValue, jdk_vm_ci_code_StackLockValue) OBJECT_FIELD (StackLockValue, owner, "Ljdk/vm/ci/meta/JavaValue;") OBJECT_FIELD (StackLockValue, slot, "Ljdk/vm/ci/meta/AllocatableValue;") BOOLEAN_FIELD (StackLockValue, eliminated) END_CLASS START_CLASS(HotSpotStackFrameReference , jdk_vm_ci_hotspot_HotSpotStackFrameReference) OBJECT_FIELD( HotSpotStackFrameReference, compilerToVM, "Ljdk/vm/ci/hotspot/CompilerToVM;" ) BOOLEAN_FIELD(HotSpotStackFrameReference, objectsMaterialized ) LONG_FIELD(HotSpotStackFrameReference, stackPointer) INT_FIELD (HotSpotStackFrameReference, frameNumber) INT_FIELD(HotSpotStackFrameReference , bci) OBJECT_FIELD(HotSpotStackFrameReference, method, "Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethod;" ) OBJECTARRAY_FIELD(HotSpotStackFrameReference, locals, "[Ljava/lang/Object;" ) PRIMARRAY_FIELD(HotSpotStackFrameReference, localIsVirtual, "[Z") END_CLASS START_CLASS(HotSpotMetaData, jdk_vm_ci_hotspot_HotSpotMetaData ) PRIMARRAY_FIELD(HotSpotMetaData, pcDescBytes, "[B") PRIMARRAY_FIELD (HotSpotMetaData, scopesDescBytes, "[B") PRIMARRAY_FIELD(HotSpotMetaData , relocBytes, "[B") PRIMARRAY_FIELD(HotSpotMetaData, exceptionBytes , "[B") PRIMARRAY_FIELD(HotSpotMetaData, implicitExceptionBytes , "[B") PRIMARRAY_FIELD(HotSpotMetaData, oopMaps, "[B") OBJECT_FIELD (HotSpotMetaData, metadata, "[Ljava/lang/Object;") END_CLASS START_CLASS (HotSpotConstantPool, jdk_vm_ci_hotspot_HotSpotConstantPool) LONG_FIELD (HotSpotConstantPool, metadataHandle) END_CLASS START_CLASS(HotSpotJVMCIRuntime , jdk_vm_ci_hotspot_HotSpotJVMCIRuntime) OBJECTARRAY_FIELD(HotSpotJVMCIRuntime , excludeFromJVMCICompilation, "[Ljava/lang/Module;") METHOD( CallNonvirtualObjectMethod, GetMethodID, call_special, JVMCIObject , HotSpotJVMCIRuntime, compileMethod, compileMethod_signature , (JVMCIObject runtime, JVMCIObject method, int entry_bci, jlong env, int id)) METHOD(CallNonvirtualObjectMethod, GetMethodID , call_special, JVMCIObject, HotSpotJVMCIRuntime, isGCSupported , int_bool_signature, (JVMCIObject runtime, int gcIdentifier) ) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, encodeThrowable, encodeThrowable_signature , (JVMCIObject throwable)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, decodeThrowable , decodeThrowable_signature, (JVMCIObject encodedThrowable)) METHOD (CallNonvirtualVoidMethod, GetMethodID, call_special, void, HotSpotJVMCIRuntime , bootstrapFinished, void_method_signature, (JVMCIObject runtime , JVMCIEnv* __jvmci_env__)) METHOD(CallNonvirtualVoidMethod, GetMethodID , call_special, void, HotSpotJVMCIRuntime, shutdown, void_method_signature , (JVMCIObject runtime)) METHOD(CallStaticObjectMethod, GetStaticMethodID , call_static, JVMCIObject, HotSpotJVMCIRuntime, runtime, runtime_signature , (JVMCIEnv* __jvmci_env__)) METHOD(CallObjectMethod, GetMethodID , call_virtual, JVMCIObject, HotSpotJVMCIRuntime, getCompiler , getCompiler_signature, (JVMCIObject runtime, JVMCIEnv* __jvmci_env__ )) METHOD(CallStaticObjectMethod, GetStaticMethodID, call_static , JVMCIObject, HotSpotJVMCIRuntime, callToString, callToString_signature , (JVMCIObject object, JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS (JVMCIError, jdk_vm_ci_common_JVMCIError) CONSTRUCTOR(JVMCIError , "(Ljava/lang/String;)V") END_CLASS START_CLASS(InspectedFrameVisitor , jdk_vm_ci_code_stack_InspectedFrameVisitor) END_CLASS START_CLASS (JVMCI, jdk_vm_ci_runtime_JVMCI) METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, getRuntime , getRuntime_signature, (JVMCIEnv* __jvmci_env__)) METHOD(CallStaticObjectMethod , GetStaticMethodID, call_static, JVMCIObject, JVMCI, initializeRuntime , initializeRuntime_signature, (JVMCIEnv* __jvmci_env__)) END_CLASS START_CLASS(Object, java_lang_Object) END_CLASS START_CLASS( String, java_lang_String) END_CLASS START_CLASS(Class, java_lang_Class ) METHOD(CallObjectMethod, GetMethodID, call_virtual, JVMCIObject , Class, getName, void_string_signature, (JVMCIEnv* __jvmci_env__ )) END_CLASS START_CLASS(ArrayIndexOutOfBoundsException, java_lang_ArrayIndexOutOfBoundsException ) CONSTRUCTOR(ArrayIndexOutOfBoundsException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(IllegalStateException, java_lang_IllegalStateException ) CONSTRUCTOR(IllegalStateException, "(Ljava/lang/String;)V") END_CLASS START_CLASS(NullPointerException, java_lang_NullPointerException ) CONSTRUCTOR(NullPointerException, "(Ljava/lang/String;)V") END_CLASS START_CLASS(IllegalArgumentException, java_lang_IllegalArgumentException ) CONSTRUCTOR(IllegalArgumentException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(InternalError, java_lang_InternalError ) CONSTRUCTOR(InternalError, "(Ljava/lang/String;)V") END_CLASS START_CLASS(ClassNotFoundException, java_lang_ClassNotFoundException ) CONSTRUCTOR(ClassNotFoundException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(InvalidInstalledCodeException, jdk_vm_ci_code_InvalidInstalledCodeException ) CONSTRUCTOR(InvalidInstalledCodeException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(UnsatisfiedLinkError, java_lang_UnsatisfiedLinkError ) CONSTRUCTOR(UnsatisfiedLinkError, "(Ljava/lang/String;)V") END_CLASS START_CLASS(UnsupportedOperationException, java_lang_UnsupportedOperationException ) CONSTRUCTOR(UnsupportedOperationException, "(Ljava/lang/String;)V" ) END_CLASS START_CLASS(StackTraceElement, java_lang_StackTraceElement ) OBJECT_FIELD(StackTraceElement, declaringClass, "Ljava/lang/String;" ) OBJECT_FIELD(StackTraceElement, methodName, "Ljava/lang/String;" ) OBJECT_FIELD(StackTraceElement, fileName, "Ljava/lang/String;" ) INT_FIELD(StackTraceElement, lineNumber) CONSTRUCTOR(StackTraceElement , "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" ) END_CLASS START_CLASS(Throwable, java_lang_Throwable) OBJECT_FIELD (Throwable, detailMessage, "Ljava/lang/String;") END_CLASS | 
| 663 | |
| 664 | #undef METHOD | 
| 665 | #undef CONSTRUCTOR | 
| 666 | #undef START_CLASS | 
| 667 | #undef END_CLASS | 
| 668 | #undef FIELD | 
| 669 | #undef CHAR_FIELD | 
| 670 | #undef INT_FIELD | 
| 671 | #undef BOOLEAN_FIELD | 
| 672 | #undef LONG_FIELD | 
| 673 | #undef FLOAT_FIELD | 
| 674 | #undef OBJECT_FIELD | 
| 675 | #undef PRIMARRAY_FIELD | 
| 676 | #undef OBJECTARRAY_FIELD | 
| 677 | #undef STATIC_OOPISH_FIELD | 
| 678 | #undef STATIC_OBJECT_FIELD | 
| 679 | #undef STATIC_OBJECTARRAY_FIELD | 
| 680 | #undef STATIC_INT_FIELD | 
| 681 | #undef STATIC_BOOLEAN_FIELD | 
| 682 | #undef STATIC_PRIMITIVE_FIELD | 
| 683 | #undef OOPISH_FIELD | 
| 684 | #undef EMPTY_CAST |