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 |