Bug Summary

File:jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp
Warning:line 295, column 12
Value stored to 'current' during its initialization is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -triple x86_64-pc-linux-gnu -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name jvmciJavaClasses.cpp -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -mthread-model posix -fno-delete-null-pointer-checks -mframe-pointer=all -relaxed-aliasing -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -fno-split-dwarf-inlining -debugger-tuning=gdb -resource-dir /usr/lib/llvm-10/lib/clang/10.0.0 -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/libjvm/objs/precompiled -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -D _GNU_SOURCE -D _REENTRANT -D LIBC=gnu -D LINUX -D VM_LITTLE_ENDIAN -D _LP64=1 -D ASSERT -D CHECK_UNHANDLED_OOPS -D TARGET_ARCH_x86 -D INCLUDE_SUFFIX_OS=_linux -D INCLUDE_SUFFIX_CPU=_x86 -D INCLUDE_SUFFIX_COMPILER=_gcc -D TARGET_COMPILER_gcc -D AMD64 -D HOTSPOT_LIB_ARCH="amd64" -D COMPILER1 -D COMPILER2 -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/gensrc/adfiles -I /home/daniel/Projects/java/jdk/src/hotspot/share -I /home/daniel/Projects/java/jdk/src/hotspot/os/linux -I /home/daniel/Projects/java/jdk/src/hotspot/os/posix -I /home/daniel/Projects/java/jdk/src/hotspot/cpu/x86 -I /home/daniel/Projects/java/jdk/src/hotspot/os_cpu/linux_x86 -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/gensrc -I /home/daniel/Projects/java/jdk/src/hotspot/share/precompiled -I /home/daniel/Projects/java/jdk/src/hotspot/share/include -I /home/daniel/Projects/java/jdk/src/hotspot/os/posix/include -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/support/modules_include/java.base -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/support/modules_include/java.base/linux -I /home/daniel/Projects/java/jdk/src/java.base/share/native/libjimage -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/gensrc/adfiles -I /home/daniel/Projects/java/jdk/src/hotspot/share -I /home/daniel/Projects/java/jdk/src/hotspot/os/linux -I /home/daniel/Projects/java/jdk/src/hotspot/os/posix -I /home/daniel/Projects/java/jdk/src/hotspot/cpu/x86 -I /home/daniel/Projects/java/jdk/src/hotspot/os_cpu/linux_x86 -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/gensrc -D _FORTIFY_SOURCE=2 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/x86_64-linux-gnu/c++/7.5.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/x86_64-linux-gnu/c++/7.5.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/backward -internal-isystem /usr/local/include -internal-isystem /usr/lib/llvm-10/lib/clang/10.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Wno-format-zero-length -Wno-unused-parameter -Wno-unused -Wno-parentheses -Wno-comment -Wno-unknown-pragmas -Wno-address -Wno-delete-non-virtual-dtor -Wno-char-subscripts -Wno-array-bounds -Wno-int-in-bool-context -Wno-ignored-qualifiers -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-empty-body -Wno-strict-overflow -Wno-sequence-point -Wno-maybe-uninitialized -Wno-misleading-indentation -Wno-cast-function-type -Wno-shift-negative-value -std=c++14 -fdeprecated-macro -fdebug-compilation-dir /home/daniel/Projects/java/jdk/make/hotspot -ferror-limit 19 -fmessage-length 0 -fvisibility hidden -stack-protector 1 -fno-rtti -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fdiagnostics-show-option -vectorize-loops -vectorize-slp -analyzer-output=html -faddrsig -o /home/daniel/Projects/java/scan/2021-12-21-193737-8510-1 -x c++ /home/daniel/Projects/java/jdk/src/hotspot/share/jvmci/jvmciJavaClasses.cpp
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
40oop HotSpotJVMCI::resolve(JVMCIObject obj) {
41 return JNIHandles::resolve(obj.as_jobject());
42}
43
44arrayOop HotSpotJVMCI::resolve(JVMCIArray obj) {
45 return (arrayOop) JNIHandles::resolve(obj.as_jobject());
46}
47
48objArrayOop HotSpotJVMCI::resolve(JVMCIObjectArray obj) {
49 return (objArrayOop) JNIHandles::resolve(obj.as_jobject());
50}
51
52typeArrayOop HotSpotJVMCI::resolve(JVMCIPrimitiveArray obj) {
53 return (typeArrayOop) JNIHandles::resolve(obj.as_jobject());
54}
55
56JVMCIObject 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 */
66void 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
94static 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
112jclass JNIJVMCI::_box_classes[T_CONFLICT+1];
113jclass JNIJVMCI::_byte_array;
114jfieldID JNIJVMCI::_box_fields[T_CONFLICT+1];
115jmethodID JNIJVMCI::_box_constructors[T_CONFLICT+1];
116jmethodID JNIJVMCI::_Class_getName_method;
117
118jmethodID JNIJVMCI::_HotSpotResolvedJavaMethodImpl_fromMetaspace_method;
119jmethodID JNIJVMCI::_HotSpotConstantPool_fromMetaspace_method;
120jmethodID JNIJVMCI::_HotSpotResolvedObjectTypeImpl_fromMetaspace_method;
121jmethodID 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 */
155void 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 */
259JVMCI_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 */
286void 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
367extern "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().
375class 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 */
413void 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
511static 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
526void 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;
553JVMCI_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 */
662JVMCI_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