annotate jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java @ 22679:4688478ecb7b

Make space in frame for native callee to spill outgoing parameters
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Tue, 13 Oct 2015 17:07:59 +0200
parents 3088a32d27af
children 2935e7fbd941
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1 /*
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
2 * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
4 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
8 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
13 * accompanied this code).
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
14 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
18 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
21 * questions.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
22 */
22672
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
23 package jdk.vm.ci.hotspot;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
24
22672
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
25 import static jdk.vm.ci.common.UnsafeUtil.readCString;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
26 import static jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
27 import static jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
28
22569
ec96f33a101d updated imports to be explicit and added checkstyle rule to forbid * imports
Doug Simon <doug.simon@oracle.com>
parents: 22563
diff changeset
29 import java.lang.reflect.Field;
ec96f33a101d updated imports to be explicit and added checkstyle rule to forbid * imports
Doug Simon <doug.simon@oracle.com>
parents: 22563
diff changeset
30 import java.lang.reflect.Modifier;
ec96f33a101d updated imports to be explicit and added checkstyle rule to forbid * imports
Doug Simon <doug.simon@oracle.com>
parents: 22563
diff changeset
31 import java.util.HashMap;
ec96f33a101d updated imports to be explicit and added checkstyle rule to forbid * imports
Doug Simon <doug.simon@oracle.com>
parents: 22563
diff changeset
32 import java.util.Iterator;
11430
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
33
22672
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
34 import jdk.vm.ci.common.JVMCIError;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
35 import jdk.vm.ci.hotspotvmconfig.HotSpotVMConstant;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
36 import jdk.vm.ci.hotspotvmconfig.HotSpotVMField;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
37 import jdk.vm.ci.hotspotvmconfig.HotSpotVMFlag;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
38 import jdk.vm.ci.hotspotvmconfig.HotSpotVMType;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22582
diff changeset
39 import jdk.vm.ci.hotspotvmconfig.HotSpotVMValue;
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
40
18308
7c7930eb4def hotspotvmcfg: adding jacoco exclude marker
Bernhard Urban <bernhard.urban@jku.at>
parents: 18232
diff changeset
41 //JaCoCo Exclude
7c7930eb4def hotspotvmcfg: adding jacoco exclude marker
Bernhard Urban <bernhard.urban@jku.at>
parents: 18232
diff changeset
42
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
43 /**
11430
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
44 * Used to access native configuration details.
14943
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
45 *
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
46 * All non-static, public fields in this class are so that they can be compiled as constants.
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
47 */
21411
082417ac43e4 removed com.oracle.graal.hotspot.server and uses of Serializable it depended upon (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 20846
diff changeset
48 public class HotSpotVMConfig {
4142
bc8527f3071c Adjust code base to new level of warnings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 3733
diff changeset
49
13776
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
50 /**
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
51 * Determines if the current architecture is included in a given architecture set specification.
14943
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
52 *
13776
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
53 * @param currentArch
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
54 * @param archsSpecification specifies a set of architectures. A zero length value implies all
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
55 * architectures.
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
56 */
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
57 private static boolean isRequired(String currentArch, String[] archsSpecification) {
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
58 if (archsSpecification.length == 0) {
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
59 return true;
13517
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
60 }
13776
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
61 for (String arch : archsSpecification) {
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
62 if (arch.equals(currentArch)) {
13517
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
63 return true;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
64 }
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
65 }
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
66 return false;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
67 }
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
68
22581
3884a98ebcde consistently use HotSpotVMConfig.config() for static access to the HotSpotVMConfig instance
Doug Simon <doug.simon@oracle.com>
parents: 22572
diff changeset
69 /**
22582
232c53e17ea0 added CompilerToVM.compilerToVM() for static access to the CompilerToVM instance
Doug Simon <doug.simon@oracle.com>
parents: 22581
diff changeset
70 * Gets the configuration associated with the singleton {@link HotSpotJVMCIRuntime}.
22581
3884a98ebcde consistently use HotSpotVMConfig.config() for static access to the HotSpotVMConfig instance
Doug Simon <doug.simon@oracle.com>
parents: 22572
diff changeset
71 */
22563
c345ad3a1cbb added static accessor for HotSpotVMConfig object in singleton HotSpotJVMCIRuntime instance
Doug Simon <doug.simon@oracle.com>
parents: 22542
diff changeset
72 public static HotSpotVMConfig config() {
22581
3884a98ebcde consistently use HotSpotVMConfig.config() for static access to the HotSpotVMConfig instance
Doug Simon <doug.simon@oracle.com>
parents: 22572
diff changeset
73 return runtime().getConfig();
22563
c345ad3a1cbb added static accessor for HotSpotVMConfig object in singleton HotSpotJVMCIRuntime instance
Doug Simon <doug.simon@oracle.com>
parents: 22542
diff changeset
74 }
c345ad3a1cbb added static accessor for HotSpotVMConfig object in singleton HotSpotJVMCIRuntime instance
Doug Simon <doug.simon@oracle.com>
parents: 22542
diff changeset
75
14989
a0dbb3628f2a Allow limiting maximum frame size in register configuration and bailout if it exceeds the specified limit.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 14980
diff changeset
76 /**
a0dbb3628f2a Allow limiting maximum frame size in register configuration and bailout if it exceeds the specified limit.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 14980
diff changeset
77 * Maximum allowed size of allocated area for a frame.
a0dbb3628f2a Allow limiting maximum frame size in register configuration and bailout if it exceeds the specified limit.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 14980
diff changeset
78 */
a0dbb3628f2a Allow limiting maximum frame size in register configuration and bailout if it exceeds the specified limit.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 14980
diff changeset
79 public final int maxFrameSize = 16 * 1024;
a0dbb3628f2a Allow limiting maximum frame size in register configuration and bailout if it exceeds the specified limit.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 14980
diff changeset
80
18671
449583258a15 provided runtime independent toString() for HotSpotVMConfig
Doug Simon <doug.simon@oracle.com>
parents: 18661
diff changeset
81 @Override
449583258a15 provided runtime independent toString() for HotSpotVMConfig
Doug Simon <doug.simon@oracle.com>
parents: 18661
diff changeset
82 public String toString() {
449583258a15 provided runtime independent toString() for HotSpotVMConfig
Doug Simon <doug.simon@oracle.com>
parents: 18661
diff changeset
83 return getClass().getSimpleName();
449583258a15 provided runtime independent toString() for HotSpotVMConfig
Doug Simon <doug.simon@oracle.com>
parents: 18661
diff changeset
84 }
449583258a15 provided runtime independent toString() for HotSpotVMConfig
Doug Simon <doug.simon@oracle.com>
parents: 18661
diff changeset
85
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
86 public HotSpotVMConfig(CompilerToVM compilerToVm) {
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
87 compilerToVm.initializeConfiguration(this);
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
88 assert verifyInitialization();
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
89
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
90 oopEncoding = new CompressEncoding(narrowOopBase, narrowOopShift, logMinObjAlignment());
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
91 klassEncoding = new CompressEncoding(narrowKlassBase, narrowKlassShift, logKlassAlignment);
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
92
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
93 codeCacheLowBound = UNSAFE.getAddress(codeCacheHeap + codeHeapMemoryOffset + virtualSpaceLowBoundaryOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
94 codeCacheHighBound = UNSAFE.getAddress(codeCacheHeap + codeHeapMemoryOffset + virtualSpaceHighBoundaryOffset);
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
95
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
96 final long barrierSetAddress = UNSAFE.getAddress(universeCollectedHeap + collectedHeapBarrierSetOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
97 final int kind = UNSAFE.getInt(barrierSetAddress + barrierSetKindOffset);
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
98 if ((kind == barrierSetCardTableModRef) || (kind == barrierSetCardTableExtension) || (kind == barrierSetG1SATBCT) || (kind == barrierSetG1SATBCTLogging)) {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
99 final long base = UNSAFE.getAddress(barrierSetAddress + cardTableModRefBSByteMapBaseOffset);
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
100 assert base != 0 : "unexpected byte_map_base: " + base;
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
101 cardtableStartAddress = base;
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
102 cardtableShift = cardTableModRefBSCardShift;
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
103 } else if ((kind == barrierSetModRef) || (kind == barrierSetOther)) {
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
104 // No post barriers
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
105 cardtableStartAddress = 0;
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
106 cardtableShift = 0;
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
107 } else {
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
108 cardtableStartAddress = -1;
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
109 cardtableShift = -1;
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
110 }
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
111
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
112 inlineCacheMissStub = inlineCacheMissBlob + UNSAFE.getInt(inlineCacheMissBlob + codeBlobCodeOffsetOffset);
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
113
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
114 assert check();
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
115 assert HotSpotVMConfigVerifier.check();
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
116 }
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
117
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
118 /**
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
119 * Check that the initialization produces the same result as the values captured through
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
120 * vmStructs.
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
121 */
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
122 private boolean verifyInitialization() {
14157
8c4a3d9308a7 fixed FindBugs bugs
twisti
parents: 14107
diff changeset
123 /** These fields are set in {@link CompilerToVM#initializeConfiguration}. */
8c4a3d9308a7 fixed FindBugs bugs
twisti
parents: 14107
diff changeset
124 assert gHotSpotVMStructs != 0;
8c4a3d9308a7 fixed FindBugs bugs
twisti
parents: 14107
diff changeset
125 assert gHotSpotVMTypes != 0;
8c4a3d9308a7 fixed FindBugs bugs
twisti
parents: 14107
diff changeset
126 assert gHotSpotVMIntConstants != 0;
8c4a3d9308a7 fixed FindBugs bugs
twisti
parents: 14107
diff changeset
127 assert gHotSpotVMLongConstants != 0;
8c4a3d9308a7 fixed FindBugs bugs
twisti
parents: 14107
diff changeset
128
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
129 // Fill the VM fields hash map.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
130 HashMap<String, VMFields.Field> vmFields = new HashMap<>();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
131 for (VMFields.Field e : new VMFields(gHotSpotVMStructs)) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
132 vmFields.put(e.getName(), e);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
133 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
134
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
135 // Fill the VM types hash map.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
136 HashMap<String, VMTypes.Type> vmTypes = new HashMap<>();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
137 for (VMTypes.Type e : new VMTypes(gHotSpotVMTypes)) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
138 vmTypes.put(e.getTypeName(), e);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
139 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
140
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
141 // Fill the VM constants hash map.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
142 HashMap<String, AbstractConstant> vmConstants = new HashMap<>();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
143 for (AbstractConstant e : new VMIntConstants(gHotSpotVMIntConstants)) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
144 vmConstants.put(e.getName(), e);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
145 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
146 for (AbstractConstant e : new VMLongConstants(gHotSpotVMLongConstants)) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
147 vmConstants.put(e.getName(), e);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
148 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
149
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
150 // Fill the flags hash map.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
151 HashMap<String, Flags.Flag> flags = new HashMap<>();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
152 for (Flags.Flag e : new Flags(vmFields, vmTypes)) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
153 flags.put(e.getName(), e);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
154 }
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
155
13517
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
156 String currentArch = getHostArchitectureName();
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
157
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
158 for (Field f : HotSpotVMConfig.class.getDeclaredFields()) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
159 if (f.isAnnotationPresent(HotSpotVMField.class)) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
160 HotSpotVMField annotation = f.getAnnotation(HotSpotVMField.class);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
161 String name = annotation.name();
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
162 String type = annotation.type();
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
163 VMFields.Field entry = vmFields.get(name);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
164 if (entry == null) {
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
165 if (!isRequired(currentArch, annotation.archs())) {
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
166 continue;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
167 }
13517
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
168 throw new IllegalArgumentException("field not found: " + name);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
169 }
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
170
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
171 // Make sure the native type is still the type we expect.
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
172 if (!type.equals("")) {
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
173 if (!type.equals(entry.getTypeString())) {
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
174 throw new IllegalArgumentException("compiler expects type " + type + " but field " + name + " is of type " + entry.getTypeString());
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
175 }
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
176 }
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
177
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
178 switch (annotation.get()) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
179 case OFFSET:
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
180 checkField(f, entry.getOffset());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
181 break;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
182 case ADDRESS:
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
183 checkField(f, entry.getAddress());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
184 break;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
185 case VALUE:
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
186 checkField(f, entry.getValue());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
187 break;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
188 default:
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
189 throw new JVMCIError("unknown kind %s", annotation.get());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
190 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
191 } else if (f.isAnnotationPresent(HotSpotVMType.class)) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
192 HotSpotVMType annotation = f.getAnnotation(HotSpotVMType.class);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
193 String name = annotation.name();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
194 VMTypes.Type entry = vmTypes.get(name);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
195 if (entry == null) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
196 throw new IllegalArgumentException("type not found: " + name);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
197 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
198 switch (annotation.get()) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
199 case SIZE:
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
200 checkField(f, entry.getSize());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
201 break;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
202 default:
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
203 throw new JVMCIError("unknown kind %s", annotation.get());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
204 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
205 } else if (f.isAnnotationPresent(HotSpotVMConstant.class)) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
206 HotSpotVMConstant annotation = f.getAnnotation(HotSpotVMConstant.class);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
207 String name = annotation.name();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
208 AbstractConstant entry = vmConstants.get(name);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
209 if (entry == null) {
13776
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
210 if (!isRequired(currentArch, annotation.archs())) {
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
211 continue;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
212 }
13776
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
213 throw new IllegalArgumentException("constant not found: " + name);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
214 }
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
215 checkField(f, entry.getValue());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
216 } else if (f.isAnnotationPresent(HotSpotVMFlag.class)) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
217 HotSpotVMFlag annotation = f.getAnnotation(HotSpotVMFlag.class);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
218 String name = annotation.name();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
219 Flags.Flag entry = flags.get(name);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
220 if (entry == null) {
15463
a20be10ad437 made Graal work with the HotSpot compiler queue and compiler threads, enabled by -XX:-UseGraalCompilationQueue
Doug Simon <doug.simon@oracle.com>
parents: 15456
diff changeset
221 if (annotation.optional() || !isRequired(currentArch, annotation.archs())) {
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
222 continue;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
223 }
13776
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
224 throw new IllegalArgumentException("flag not found: " + name);
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
225
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
226 }
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
227 checkField(f, entry.getValue());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
228 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
229 }
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
230 return true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
231 }
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
232
13520
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
233 private final CompressEncoding oopEncoding;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
234 private final CompressEncoding klassEncoding;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
235
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
236 public CompressEncoding getOopEncoding() {
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
237 return oopEncoding;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
238 }
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
239
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
240 public CompressEncoding getKlassEncoding() {
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
241 return klassEncoding;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
242 }
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
243
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
244 private void checkField(Field field, Object value) {
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
245 try {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
246 Class<?> fieldType = field.getType();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
247 if (fieldType == boolean.class) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
248 if (value instanceof String) {
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
249 assert field.getBoolean(this) == Boolean.valueOf((String) value) : field + " " + value + " " + field.getBoolean(this);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
250 } else if (value instanceof Boolean) {
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
251 assert field.getBoolean(this) == (boolean) value : field + " " + value + " " + field.getBoolean(this);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
252 } else if (value instanceof Long) {
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
253 assert field.getBoolean(this) == (((long) value) != 0) : field + " " + value + " " + field.getBoolean(this);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
254 } else {
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
255 throw new JVMCIError(value.getClass().getSimpleName());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
256 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
257 } else if (fieldType == int.class) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
258 if (value instanceof Integer) {
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
259 assert field.getInt(this) == (int) value : field + " " + value + " " + field.getInt(this);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
260 } else if (value instanceof Long) {
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
261 assert field.getInt(this) == (int) (long) value : field + " " + value + " " + field.getInt(this);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
262 } else {
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
263 throw new JVMCIError(value.getClass().getSimpleName());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
264 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
265 } else if (fieldType == long.class) {
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
266 assert field.getLong(this) == (long) value : field + " " + value + " " + field.getLong(this);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
267 } else {
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
268 throw new JVMCIError(field.toString());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
269 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
270 } catch (IllegalAccessException e) {
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
271 throw new JVMCIError("%s: %s", field, e);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
272 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
273 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
274
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
275 /**
13517
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
276 * Gets the host architecture name for the purpose of finding the corresponding
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
277 * {@linkplain HotSpotJVMCIBackendFactory backend}.
13517
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
278 */
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
279 public String getHostArchitectureName() {
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
280 String arch = System.getProperty("os.arch");
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
281 switch (arch) {
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
282 case "x86_64":
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
283 arch = "amd64";
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
284 break;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
285 case "sparcv9":
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
286 arch = "sparc";
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
287 break;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
288 }
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
289 return arch;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
290 }
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
291
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
292 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
293 * VMStructEntry (see vmStructs.hpp).
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
294 */
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
295 @HotSpotVMValue(expression = "gHotSpotVMStructs", get = HotSpotVMValue.Type.ADDRESS) @Stable private long gHotSpotVMStructs;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
296 @HotSpotVMValue(expression = "gHotSpotVMStructEntryTypeNameOffset") @Stable private long gHotSpotVMStructEntryTypeNameOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
297 @HotSpotVMValue(expression = "gHotSpotVMStructEntryFieldNameOffset") @Stable private long gHotSpotVMStructEntryFieldNameOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
298 @HotSpotVMValue(expression = "gHotSpotVMStructEntryTypeStringOffset") @Stable private long gHotSpotVMStructEntryTypeStringOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
299 @HotSpotVMValue(expression = "gHotSpotVMStructEntryIsStaticOffset") @Stable private long gHotSpotVMStructEntryIsStaticOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
300 @HotSpotVMValue(expression = "gHotSpotVMStructEntryOffsetOffset") @Stable private long gHotSpotVMStructEntryOffsetOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
301 @HotSpotVMValue(expression = "gHotSpotVMStructEntryAddressOffset") @Stable private long gHotSpotVMStructEntryAddressOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
302 @HotSpotVMValue(expression = "gHotSpotVMStructEntryArrayStride") @Stable private long gHotSpotVMStructEntryArrayStride;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
303
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
304 class VMFields implements Iterable<VMFields.Field> {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
305
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
306 private long address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
307
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
308 public VMFields(long address) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
309 this.address = address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
310 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
311
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
312 public Iterator<VMFields.Field> iterator() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
313 return new Iterator<VMFields.Field>() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
314
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
315 private int index = 0;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
316
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
317 private Field current() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
318 return new Field(address + gHotSpotVMStructEntryArrayStride * index);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
319 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
320
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
321 /**
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
322 * The last entry is identified by a NULL fieldName.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
323 */
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
324 public boolean hasNext() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
325 Field entry = current();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
326 return entry.getFieldName() != null;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
327 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
328
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
329 public Field next() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
330 Field entry = current();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
331 index++;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
332 return entry;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
333 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
334 };
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
335 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
336
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
337 class Field {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
338
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
339 private long entryAddress;
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
340
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
341 Field(long address) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
342 this.entryAddress = address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
343 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
344
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
345 public String getTypeName() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
346 long typeNameAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMStructEntryTypeNameOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
347 return readCString(UNSAFE, typeNameAddress);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
348 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
349
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
350 public String getFieldName() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
351 long fieldNameAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMStructEntryFieldNameOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
352 return readCString(UNSAFE, fieldNameAddress);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
353 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
354
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
355 public String getTypeString() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
356 long typeStringAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMStructEntryTypeStringOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
357 return readCString(UNSAFE, typeStringAddress);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
358 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
359
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
360 public boolean isStatic() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
361 return UNSAFE.getInt(entryAddress + gHotSpotVMStructEntryIsStaticOffset) != 0;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
362 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
363
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
364 public long getOffset() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
365 return UNSAFE.getLong(entryAddress + gHotSpotVMStructEntryOffsetOffset);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
366 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
367
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
368 public long getAddress() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
369 return UNSAFE.getAddress(entryAddress + gHotSpotVMStructEntryAddressOffset);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
370 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
371
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
372 public String getName() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
373 String typeName = getTypeName();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
374 String fieldName = getFieldName();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
375 return typeName + "::" + fieldName;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
376 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
377
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
378 public long getValue() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
379 String type = getTypeString();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
380 switch (type) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
381 case "int":
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
382 return UNSAFE.getInt(getAddress());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
383 case "address":
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
384 case "intptr_t":
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
385 return UNSAFE.getAddress(getAddress());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
386 default:
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
387 // All foo* types are addresses.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
388 if (type.endsWith("*")) {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
389 return UNSAFE.getAddress(getAddress());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
390 }
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
391 throw new JVMCIError(type);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
392 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
393 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
394
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
395 @Override
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
396 public String toString() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
397 return String.format("Field[typeName=%s, fieldName=%s, typeString=%s, isStatic=%b, offset=%d, address=0x%x]", getTypeName(), getFieldName(), getTypeString(), isStatic(), getOffset(),
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
398 getAddress());
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
399 }
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
400 }
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
401 }
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
402
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
403 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
404 * VMTypeEntry (see vmStructs.hpp).
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
405 */
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
406 @HotSpotVMValue(expression = "gHotSpotVMTypes", get = HotSpotVMValue.Type.ADDRESS) @Stable private long gHotSpotVMTypes;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
407 @HotSpotVMValue(expression = "gHotSpotVMTypeEntryTypeNameOffset") @Stable private long gHotSpotVMTypeEntryTypeNameOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
408 @HotSpotVMValue(expression = "gHotSpotVMTypeEntrySuperclassNameOffset") @Stable private long gHotSpotVMTypeEntrySuperclassNameOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
409 @HotSpotVMValue(expression = "gHotSpotVMTypeEntryIsOopTypeOffset") @Stable private long gHotSpotVMTypeEntryIsOopTypeOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
410 @HotSpotVMValue(expression = "gHotSpotVMTypeEntryIsIntegerTypeOffset") @Stable private long gHotSpotVMTypeEntryIsIntegerTypeOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
411 @HotSpotVMValue(expression = "gHotSpotVMTypeEntryIsUnsignedOffset") @Stable private long gHotSpotVMTypeEntryIsUnsignedOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
412 @HotSpotVMValue(expression = "gHotSpotVMTypeEntrySizeOffset") @Stable private long gHotSpotVMTypeEntrySizeOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
413 @HotSpotVMValue(expression = "gHotSpotVMTypeEntryArrayStride") @Stable private long gHotSpotVMTypeEntryArrayStride;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
414
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
415 class VMTypes implements Iterable<VMTypes.Type> {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
416
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
417 private long address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
418
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
419 public VMTypes(long address) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
420 this.address = address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
421 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
422
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
423 public Iterator<VMTypes.Type> iterator() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
424 return new Iterator<VMTypes.Type>() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
425
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
426 private int index = 0;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
427
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
428 private Type current() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
429 return new Type(address + gHotSpotVMTypeEntryArrayStride * index);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
430 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
431
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
432 /**
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
433 * The last entry is identified by a NULL type name.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
434 */
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
435 public boolean hasNext() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
436 Type entry = current();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
437 return entry.getTypeName() != null;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
438 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
439
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
440 public Type next() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
441 Type entry = current();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
442 index++;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
443 return entry;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
444 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
445 };
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
446 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
447
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
448 class Type {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
449
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
450 private long entryAddress;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
451
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
452 Type(long address) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
453 this.entryAddress = address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
454 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
455
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
456 public String getTypeName() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
457 long typeNameAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMTypeEntryTypeNameOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
458 return readCString(UNSAFE, typeNameAddress);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
459 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
460
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
461 public String getSuperclassName() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
462 long superclassNameAddress = UNSAFE.getAddress(entryAddress + gHotSpotVMTypeEntrySuperclassNameOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
463 return readCString(UNSAFE, superclassNameAddress);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
464 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
465
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
466 public boolean isOopType() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
467 return UNSAFE.getInt(entryAddress + gHotSpotVMTypeEntryIsOopTypeOffset) != 0;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
468 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
469
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
470 public boolean isIntegerType() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
471 return UNSAFE.getInt(entryAddress + gHotSpotVMTypeEntryIsIntegerTypeOffset) != 0;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
472 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
473
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
474 public boolean isUnsigned() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
475 return UNSAFE.getInt(entryAddress + gHotSpotVMTypeEntryIsUnsignedOffset) != 0;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
476 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
477
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
478 public long getSize() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
479 return UNSAFE.getLong(entryAddress + gHotSpotVMTypeEntrySizeOffset);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
480 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
481
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
482 @Override
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
483 public String toString() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
484 return String.format("Type[typeName=%s, superclassName=%s, isOopType=%b, isIntegerType=%b, isUnsigned=%b, size=%d]", getTypeName(), getSuperclassName(), isOopType(), isIntegerType(),
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
485 isUnsigned(), getSize());
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
486 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
487 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
488 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
489
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
490 public abstract class AbstractConstant {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
491
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
492 protected long address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
493 protected long nameOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
494 protected long valueOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
495
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
496 AbstractConstant(long address, long nameOffset, long valueOffset) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
497 this.address = address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
498 this.nameOffset = nameOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
499 this.valueOffset = valueOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
500 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
501
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
502 public String getName() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
503 long nameAddress = UNSAFE.getAddress(address + nameOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
504 return readCString(UNSAFE, nameAddress);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
505 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
506
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
507 public abstract long getValue();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
508 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
509
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
510 /**
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
511 * VMIntConstantEntry (see vmStructs.hpp).
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
512 */
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
513 @HotSpotVMValue(expression = "gHotSpotVMIntConstants", get = HotSpotVMValue.Type.ADDRESS) @Stable private long gHotSpotVMIntConstants;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
514 @HotSpotVMValue(expression = "gHotSpotVMIntConstantEntryNameOffset") @Stable private long gHotSpotVMIntConstantEntryNameOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
515 @HotSpotVMValue(expression = "gHotSpotVMIntConstantEntryValueOffset") @Stable private long gHotSpotVMIntConstantEntryValueOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
516 @HotSpotVMValue(expression = "gHotSpotVMIntConstantEntryArrayStride") @Stable private long gHotSpotVMIntConstantEntryArrayStride;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
517
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
518 class VMIntConstants implements Iterable<VMIntConstants.Constant> {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
519
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
520 private long address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
521
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
522 public VMIntConstants(long address) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
523 this.address = address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
524 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
525
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
526 public Iterator<VMIntConstants.Constant> iterator() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
527 return new Iterator<VMIntConstants.Constant>() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
528
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
529 private int index = 0;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
530
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
531 private Constant current() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
532 return new Constant(address + gHotSpotVMIntConstantEntryArrayStride * index);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
533 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
534
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
535 /**
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
536 * The last entry is identified by a NULL name.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
537 */
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
538 public boolean hasNext() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
539 Constant entry = current();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
540 return entry.getName() != null;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
541 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
542
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
543 public Constant next() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
544 Constant entry = current();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
545 index++;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
546 return entry;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
547 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
548 };
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
549 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
550
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
551 class Constant extends AbstractConstant {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
552
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
553 Constant(long address) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
554 super(address, gHotSpotVMIntConstantEntryNameOffset, gHotSpotVMIntConstantEntryValueOffset);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
555 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
556
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
557 @Override
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
558 public long getValue() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
559 return UNSAFE.getInt(address + valueOffset);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
560 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
561
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
562 @Override
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
563 public String toString() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
564 return String.format("IntConstant[name=%s, value=%d (0x%x)]", getName(), getValue(), getValue());
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
565 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
566 }
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
567 }
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
568
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
569 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
570 * VMLongConstantEntry (see vmStructs.hpp).
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
571 */
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
572 @HotSpotVMValue(expression = "gHotSpotVMLongConstants", get = HotSpotVMValue.Type.ADDRESS) @Stable private long gHotSpotVMLongConstants;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
573 @HotSpotVMValue(expression = "gHotSpotVMLongConstantEntryNameOffset") @Stable private long gHotSpotVMLongConstantEntryNameOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
574 @HotSpotVMValue(expression = "gHotSpotVMLongConstantEntryValueOffset") @Stable private long gHotSpotVMLongConstantEntryValueOffset;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
575 @HotSpotVMValue(expression = "gHotSpotVMLongConstantEntryArrayStride") @Stable private long gHotSpotVMLongConstantEntryArrayStride;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
576
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
577 class VMLongConstants implements Iterable<VMLongConstants.Constant> {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
578
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
579 private long address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
580
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
581 public VMLongConstants(long address) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
582 this.address = address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
583 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
584
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
585 public Iterator<VMLongConstants.Constant> iterator() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
586 return new Iterator<VMLongConstants.Constant>() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
587
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
588 private int index = 0;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
589
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
590 private Constant currentEntry() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
591 return new Constant(address + gHotSpotVMLongConstantEntryArrayStride * index);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
592 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
593
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
594 /**
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
595 * The last entry is identified by a NULL name.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
596 */
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
597 public boolean hasNext() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
598 Constant entry = currentEntry();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
599 return entry.getName() != null;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
600 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
601
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
602 public Constant next() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
603 Constant entry = currentEntry();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
604 index++;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
605 return entry;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
606 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
607 };
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
608 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
609
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
610 class Constant extends AbstractConstant {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
611
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
612 Constant(long address) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
613 super(address, gHotSpotVMLongConstantEntryNameOffset, gHotSpotVMLongConstantEntryValueOffset);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
614 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
615
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
616 @Override
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
617 public long getValue() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
618 return UNSAFE.getLong(address + valueOffset);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
619 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
620
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
621 @Override
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
622 public String toString() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
623 return String.format("LongConstant[name=%s, value=%d (0x%x)]", getName(), getValue(), getValue());
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
624 }
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
625 }
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
626 }
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
627
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
628 class Flags implements Iterable<Flags.Flag> {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
629
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
630 private long address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
631 private long entrySize;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
632 private long typeOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
633 private long nameOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
634 private long addrOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
635
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
636 public Flags(HashMap<String, VMFields.Field> vmStructs, HashMap<String, VMTypes.Type> vmTypes) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
637 address = vmStructs.get("Flag::flags").getValue();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
638 entrySize = vmTypes.get("Flag").getSize();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
639 typeOffset = vmStructs.get("Flag::_type").getOffset();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
640 nameOffset = vmStructs.get("Flag::_name").getOffset();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
641 addrOffset = vmStructs.get("Flag::_addr").getOffset();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
642
14980
a00b26a70011 use JDK 8 features for some TODOs
twisti
parents: 14979
diff changeset
643 assert vmTypes.get("bool").getSize() == Byte.BYTES;
a00b26a70011 use JDK 8 features for some TODOs
twisti
parents: 14979
diff changeset
644 assert vmTypes.get("intx").getSize() == Long.BYTES;
a00b26a70011 use JDK 8 features for some TODOs
twisti
parents: 14979
diff changeset
645 assert vmTypes.get("uintx").getSize() == Long.BYTES;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
646 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
647
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
648 public Iterator<Flags.Flag> iterator() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
649 return new Iterator<Flags.Flag>() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
650
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
651 private int index = 0;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
652
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
653 private Flag current() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
654 return new Flag(address + entrySize * index);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
655 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
656
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
657 /**
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
658 * The last entry is identified by a NULL name.
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
659 */
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
660 public boolean hasNext() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
661 Flag entry = current();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
662 return entry.getName() != null;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
663 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
664
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
665 public Flag next() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
666 Flag entry = current();
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
667 index++;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
668 return entry;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
669 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
670 };
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
671 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
672
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
673 class Flag {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
674
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
675 private long entryAddress;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
676
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
677 Flag(long address) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
678 this.entryAddress = address;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
679 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
680
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
681 public String getType() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
682 long typeAddress = UNSAFE.getAddress(entryAddress + typeOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
683 return readCString(UNSAFE, typeAddress);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
684 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
685
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
686 public String getName() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
687 long nameAddress = UNSAFE.getAddress(entryAddress + nameOffset);
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
688 return readCString(UNSAFE, nameAddress);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
689 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
690
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
691 public long getAddr() {
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
692 return UNSAFE.getAddress(entryAddress + addrOffset);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
693 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
694
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
695 public Object getValue() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
696 switch (getType()) {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
697 case "bool":
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
698 return Boolean.valueOf(UNSAFE.getByte(getAddr()) != 0);
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
699 case "intx":
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
700 case "uintx":
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
701 case "uint64_t":
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
702 return Long.valueOf(UNSAFE.getLong(getAddr()));
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
703 case "double":
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
704 return Double.valueOf(UNSAFE.getDouble(getAddr()));
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
705 case "ccstr":
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
706 case "ccstrlist":
22542
15579668ec3a renamed constant field to UNSAFE
Doug Simon <doug.simon@oracle.com>
parents: 22541
diff changeset
707 return readCString(UNSAFE, getAddr());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
708 default:
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
709 throw new JVMCIError(getType());
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
710 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
711 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
712
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
713 @Override
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
714 public String toString() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
715 return String.format("Flag[type=%s, name=%s, value=%s]", getType(), getName(), getValue());
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
716 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
717 }
11430
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
718 }
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
719
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
720 // os information, register layout, code generation, ...
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
721 @HotSpotVMValue(expression = "DEBUG_ONLY(1) NOT_DEBUG(0)") @Stable public boolean cAssertions;
9585
404eb9b2c511 use os.name property to identify Windows OS
twisti
parents: 9581
diff changeset
722 public final boolean windowsOs = System.getProperty("os.name", "").startsWith("Windows");
22679
4688478ecb7b Make space in frame for native callee to spill outgoing parameters
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22678
diff changeset
723 public final boolean linuxOs = System.getProperty("os.name", "").startsWith("Linux");
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
724
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
725 @HotSpotVMFlag(name = "CodeEntryAlignment") @Stable public int codeEntryAlignment;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
726 @HotSpotVMFlag(name = "VerifyOops") @Stable public boolean verifyOops;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
727 @HotSpotVMFlag(name = "CITime") @Stable public boolean ciTime;
14013
4347ad3df3d7 make SPARC compile code again
twisti
parents: 14012
diff changeset
728 @HotSpotVMFlag(name = "CITimeEach") @Stable public boolean ciTimeEach;
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
729 @HotSpotVMFlag(name = "CompileTheWorldStartAt", optional = true) @Stable public int compileTheWorldStartAt;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
730 @HotSpotVMFlag(name = "CompileTheWorldStopAt", optional = true) @Stable public int compileTheWorldStopAt;
13371
4db09b7304da read DontCompileHugeMethods and HugeMethodLimit from VM
Doug Simon <doug.simon@oracle.com>
parents: 13350
diff changeset
731 @HotSpotVMFlag(name = "DontCompileHugeMethods") @Stable public boolean dontCompileHugeMethods;
4db09b7304da read DontCompileHugeMethods and HugeMethodLimit from VM
Doug Simon <doug.simon@oracle.com>
parents: 13350
diff changeset
732 @HotSpotVMFlag(name = "HugeMethodLimit") @Stable public int hugeMethodLimit;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
733 @HotSpotVMFlag(name = "PrintInlining") @Stable public boolean printInlining;
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
734 @HotSpotVMFlag(name = "JVMCIUseFastLocking") @Stable public boolean useFastLocking;
13476
e6309fde98c8 exposed ForceUnreachable to Graal and used it when emitting safepoint polling code
Doug Simon <doug.simon@oracle.com>
parents: 13371
diff changeset
735 @HotSpotVMFlag(name = "ForceUnreachable") @Stable public boolean forceUnreachable;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
736
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
737 @HotSpotVMFlag(name = "UseTLAB") @Stable public boolean useTLAB;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
738 @HotSpotVMFlag(name = "UseBiasedLocking") @Stable public boolean useBiasedLocking;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
739 @HotSpotVMFlag(name = "UsePopCountInstruction") @Stable public boolean usePopCountInstruction;
14013
4347ad3df3d7 make SPARC compile code again
twisti
parents: 14012
diff changeset
740 @HotSpotVMFlag(name = "UseCountLeadingZerosInstruction", archs = {"amd64"}) @Stable public boolean useCountLeadingZerosInstruction;
18415
6dc4f0be9a70 Add support of lzcnt and tzcnt
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 18403
diff changeset
741 @HotSpotVMFlag(name = "UseCountTrailingZerosInstruction", archs = {"amd64"}) @Stable public boolean useCountTrailingZerosInstruction;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
742 @HotSpotVMFlag(name = "UseAESIntrinsics") @Stable public boolean useAESIntrinsics;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
743 @HotSpotVMFlag(name = "UseCRC32Intrinsics") @Stable public boolean useCRC32Intrinsics;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
744 @HotSpotVMFlag(name = "UseG1GC") @Stable public boolean useG1GC;
13640
bfe7a8c8c3c6 Add UseConcMarcSweepGC flag to HotSpotVMConfig.
Roland Schatz <roland.schatz@oracle.com>
parents: 13593
diff changeset
745 @HotSpotVMFlag(name = "UseConcMarkSweepGC") @Stable public boolean useCMSGC;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
746
13255
785bbb619238 Basic allocation prefetching support
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13254
diff changeset
747 @HotSpotVMFlag(name = "AllocatePrefetchStyle") @Stable public int allocatePrefetchStyle;
785bbb619238 Basic allocation prefetching support
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13254
diff changeset
748 @HotSpotVMFlag(name = "AllocatePrefetchInstr") @Stable public int allocatePrefetchInstr;
785bbb619238 Basic allocation prefetching support
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13254
diff changeset
749 @HotSpotVMFlag(name = "AllocatePrefetchLines") @Stable public int allocatePrefetchLines;
785bbb619238 Basic allocation prefetching support
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13254
diff changeset
750 @HotSpotVMFlag(name = "AllocateInstancePrefetchLines") @Stable public int allocateInstancePrefetchLines;
785bbb619238 Basic allocation prefetching support
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13254
diff changeset
751 @HotSpotVMFlag(name = "AllocatePrefetchStepSize") @Stable public int allocatePrefetchStepSize;
785bbb619238 Basic allocation prefetching support
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13254
diff changeset
752 @HotSpotVMFlag(name = "AllocatePrefetchDistance") @Stable public int allocatePrefetchDistance;
785bbb619238 Basic allocation prefetching support
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13254
diff changeset
753
15663
7340fe377764 added Java Flight Recorder (JFR) event support
twisti
parents: 15629
diff changeset
754 @HotSpotVMFlag(name = "FlightRecorder", optional = true) @Stable public boolean flightRecorder;
7340fe377764 added Java Flight Recorder (JFR) event support
twisti
parents: 15629
diff changeset
755
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
756 @HotSpotVMField(name = "Universe::_collectedHeap", type = "CollectedHeap*", get = HotSpotVMField.Type.VALUE) @Stable private long universeCollectedHeap;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
757 @HotSpotVMField(name = "CollectedHeap::_total_collections", type = "unsigned int", get = HotSpotVMField.Type.OFFSET) @Stable private int collectedHeapTotalCollectionsOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
758
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
759 public long gcTotalCollectionsAddress() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
760 return universeCollectedHeap + collectedHeapTotalCollectionsOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
761 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
762
22447
ecbf949a9dcd replace JVMCIDeferredInitBarriers with ReduceInitialCardMarks
Doug Simon <doug.simon@oracle.com>
parents: 22424
diff changeset
763 @HotSpotVMFlag(name = "ReduceInitialCardMarks") @Stable public boolean useDeferredInitBarriers;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
764
9883
477fb9a9a06d Delegate compressed oop arguments from HotSpot to Graal
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9820
diff changeset
765 // Compressed Oops related values.
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
766 @HotSpotVMFlag(name = "UseCompressedOops") @Stable public boolean useCompressedOops;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
767 @HotSpotVMFlag(name = "UseCompressedClassPointers") @Stable public boolean useCompressedClassPointers;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
768
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
769 @HotSpotVMField(name = "Universe::_narrow_oop._base", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long narrowOopBase;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
770 @HotSpotVMField(name = "Universe::_narrow_oop._shift", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int narrowOopShift;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
771 @HotSpotVMFlag(name = "ObjectAlignmentInBytes") @Stable public int objectAlignment;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
772
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
773 public int logMinObjAlignment() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
774 return (int) (Math.log(objectAlignment) / Math.log(2));
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
775 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
776
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
777 @HotSpotVMField(name = "Universe::_narrow_klass._base", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long narrowKlassBase;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
778 @HotSpotVMField(name = "Universe::_narrow_klass._shift", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int narrowKlassShift;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
779 @HotSpotVMConstant(name = "LogKlassAlignmentInBytes") @Stable public int logKlassAlignment;
9883
477fb9a9a06d Delegate compressed oop arguments from HotSpot to Graal
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9820
diff changeset
780
9189
0331f7512be2 CPU capability detection.
Roland Schatz <roland.schatz@oracle.com>
parents: 9108
diff changeset
781 // CPU capabilities
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
782 @HotSpotVMFlag(name = "UseSSE") @Stable public int useSSE;
13517
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
783 @HotSpotVMFlag(name = "UseAVX", archs = {"amd64"}) @Stable public int useAVX;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
784
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
785 // X86 specific values
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
786 @HotSpotVMField(name = "VM_Version::_cpuFeatures", type = "int", get = HotSpotVMField.Type.VALUE, archs = {"amd64"}) @Stable public int x86CPUFeatures;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
787 @HotSpotVMConstant(name = "VM_Version::CPU_CX8", archs = {"amd64"}) @Stable public int cpuCX8;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
788 @HotSpotVMConstant(name = "VM_Version::CPU_CMOV", archs = {"amd64"}) @Stable public int cpuCMOV;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
789 @HotSpotVMConstant(name = "VM_Version::CPU_FXSR", archs = {"amd64"}) @Stable public int cpuFXSR;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
790 @HotSpotVMConstant(name = "VM_Version::CPU_HT", archs = {"amd64"}) @Stable public int cpuHT;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
791 @HotSpotVMConstant(name = "VM_Version::CPU_MMX", archs = {"amd64"}) @Stable public int cpuMMX;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
792 @HotSpotVMConstant(name = "VM_Version::CPU_3DNOW_PREFETCH", archs = {"amd64"}) @Stable public int cpu3DNOWPREFETCH;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
793 @HotSpotVMConstant(name = "VM_Version::CPU_SSE", archs = {"amd64"}) @Stable public int cpuSSE;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
794 @HotSpotVMConstant(name = "VM_Version::CPU_SSE2", archs = {"amd64"}) @Stable public int cpuSSE2;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
795 @HotSpotVMConstant(name = "VM_Version::CPU_SSE3", archs = {"amd64"}) @Stable public int cpuSSE3;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
796 @HotSpotVMConstant(name = "VM_Version::CPU_SSSE3", archs = {"amd64"}) @Stable public int cpuSSSE3;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
797 @HotSpotVMConstant(name = "VM_Version::CPU_SSE4A", archs = {"amd64"}) @Stable public int cpuSSE4A;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
798 @HotSpotVMConstant(name = "VM_Version::CPU_SSE4_1", archs = {"amd64"}) @Stable public int cpuSSE41;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
799 @HotSpotVMConstant(name = "VM_Version::CPU_SSE4_2", archs = {"amd64"}) @Stable public int cpuSSE42;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
800 @HotSpotVMConstant(name = "VM_Version::CPU_POPCNT", archs = {"amd64"}) @Stable public int cpuPOPCNT;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
801 @HotSpotVMConstant(name = "VM_Version::CPU_LZCNT", archs = {"amd64"}) @Stable public int cpuLZCNT;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
802 @HotSpotVMConstant(name = "VM_Version::CPU_TSC", archs = {"amd64"}) @Stable public int cpuTSC;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
803 @HotSpotVMConstant(name = "VM_Version::CPU_TSCINV", archs = {"amd64"}) @Stable public int cpuTSCINV;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
804 @HotSpotVMConstant(name = "VM_Version::CPU_AVX", archs = {"amd64"}) @Stable public int cpuAVX;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
805 @HotSpotVMConstant(name = "VM_Version::CPU_AVX2", archs = {"amd64"}) @Stable public int cpuAVX2;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
806 @HotSpotVMConstant(name = "VM_Version::CPU_AES", archs = {"amd64"}) @Stable public int cpuAES;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
807 @HotSpotVMConstant(name = "VM_Version::CPU_ERMS", archs = {"amd64"}) @Stable public int cpuERMS;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
808 @HotSpotVMConstant(name = "VM_Version::CPU_CLMUL", archs = {"amd64"}) @Stable public int cpuCLMUL;
18415
6dc4f0be9a70 Add support of lzcnt and tzcnt
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 18403
diff changeset
809 @HotSpotVMConstant(name = "VM_Version::CPU_BMI1", archs = {"amd64"}) @Stable public int cpuBMI1;
9189
0331f7512be2 CPU capability detection.
Roland Schatz <roland.schatz@oracle.com>
parents: 9108
diff changeset
810
17082
f8586d059f9d [SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 17000
diff changeset
811 // SPARC specific values
f8586d059f9d [SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 17000
diff changeset
812 @HotSpotVMField(name = "VM_Version::_features", type = "int", get = HotSpotVMField.Type.VALUE, archs = {"sparc"}) @Stable public int sparcFeatures;
f8586d059f9d [SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 17000
diff changeset
813 @HotSpotVMConstant(name = "VM_Version::vis3_instructions_m", archs = {"sparc"}) @Stable public int vis3Instructions;
f8586d059f9d [SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 17000
diff changeset
814 @HotSpotVMConstant(name = "VM_Version::vis2_instructions_m", archs = {"sparc"}) @Stable public int vis2Instructions;
f8586d059f9d [SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 17000
diff changeset
815 @HotSpotVMConstant(name = "VM_Version::vis1_instructions_m", archs = {"sparc"}) @Stable public int vis1Instructions;
17144
44a96c7413a7 [SPARC] Gearing up with CBcond instruction
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 17082
diff changeset
816 @HotSpotVMConstant(name = "VM_Version::cbcond_instructions_m", archs = {"sparc"}) @Stable public int cbcondInstructions;
22424
cefff7d980bc [SPARC] Add vmflags for BlockZeroing
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22234
diff changeset
817 @HotSpotVMFlag(name = "UseBlockZeroing", archs = {"sparc"}) @Stable public boolean useBlockZeroing;
cefff7d980bc [SPARC] Add vmflags for BlockZeroing
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 22234
diff changeset
818 @HotSpotVMFlag(name = "BlockZeroingLowLimit", archs = {"sparc"}) @Stable public int blockZeroingLowLimit;
17082
f8586d059f9d [SPARC] make compatible for CPU without VIS3 and do some cleanup
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 17000
diff changeset
819
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
820 // offsets, ...
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
821 @HotSpotVMFlag(name = "StackShadowPages") @Stable public int stackShadowPages;
13252
5d2bc83e9d22 force long encoding of frame push instruction in a method without a stack bang; removed -G:StackShadowPages option
Doug Simon <doug.simon@oracle.com>
parents: 13242
diff changeset
822 @HotSpotVMFlag(name = "UseStackBanging") @Stable public boolean useStackBanging;
15345
109d6c7c40b5 implement SPARC uncommon trap stub
twisti
parents: 15291
diff changeset
823 @HotSpotVMConstant(name = "STACK_BIAS") @Stable public int stackBias;
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
824
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
825 @HotSpotVMField(name = "oopDesc::_mark", type = "markOop", get = HotSpotVMField.Type.OFFSET) @Stable public int markOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
826 @HotSpotVMField(name = "oopDesc::_metadata._klass", type = "Klass*", get = HotSpotVMField.Type.OFFSET) @Stable public int hubOffset;
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
827
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
828 @HotSpotVMField(name = "Klass::_prototype_header", type = "markOop", get = HotSpotVMField.Type.OFFSET) @Stable public int prototypeMarkWordOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
829 @HotSpotVMField(name = "Klass::_subklass", type = "Klass*", get = HotSpotVMField.Type.OFFSET) @Stable public int subklassOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
830 @HotSpotVMField(name = "Klass::_next_sibling", type = "Klass*", get = HotSpotVMField.Type.OFFSET) @Stable public int nextSiblingOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
831 @HotSpotVMField(name = "Klass::_super_check_offset", type = "juint", get = HotSpotVMField.Type.OFFSET) @Stable public int superCheckOffsetOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
832 @HotSpotVMField(name = "Klass::_secondary_super_cache", type = "Klass*", get = HotSpotVMField.Type.OFFSET) @Stable public int secondarySuperCacheOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
833 @HotSpotVMField(name = "Klass::_secondary_supers", type = "Array<Klass*>*", get = HotSpotVMField.Type.OFFSET) @Stable public int secondarySupersOffset;
6367
cc402f4396f4 deleted caching of initial mark word in HotSpotResolvedJavaType. This value is modified by the biased locking mechanism and so it not constant for a Klass
Doug Simon <doug.simon@oracle.com>
parents: 6364
diff changeset
834
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
835 /**
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
836 * The offset of the _java_mirror field (of type {@link Class}) in a Klass.
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
837 */
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
838 @HotSpotVMField(name = "Klass::_java_mirror", type = "oop", get = HotSpotVMField.Type.OFFSET) @Stable public int classMirrorOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
839
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
840 @HotSpotVMField(name = "Klass::_super", type = "Klass*", get = HotSpotVMField.Type.OFFSET) @Stable public int klassSuperKlassOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
841 @HotSpotVMField(name = "Klass::_modifier_flags", type = "jint", get = HotSpotVMField.Type.OFFSET) @Stable public int klassModifierFlagsOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
842 @HotSpotVMField(name = "Klass::_access_flags", type = "AccessFlags", get = HotSpotVMField.Type.OFFSET) @Stable public int klassAccessFlagsOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
843 @HotSpotVMField(name = "Klass::_layout_helper", type = "jint", get = HotSpotVMField.Type.OFFSET) @Stable public int klassLayoutHelperOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
844
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
845 @HotSpotVMConstant(name = "Klass::_lh_neutral_value") @Stable public int klassLayoutHelperNeutralValue;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
846 @HotSpotVMConstant(name = "Klass::_lh_instance_slow_path_bit") @Stable public int klassLayoutHelperInstanceSlowPathBit;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
847 @HotSpotVMConstant(name = "Klass::_lh_log2_element_size_shift") @Stable public int layoutHelperLog2ElementSizeShift;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
848 @HotSpotVMConstant(name = "Klass::_lh_log2_element_size_mask") @Stable public int layoutHelperLog2ElementSizeMask;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
849 @HotSpotVMConstant(name = "Klass::_lh_element_type_shift") @Stable public int layoutHelperElementTypeShift;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
850 @HotSpotVMConstant(name = "Klass::_lh_element_type_mask") @Stable public int layoutHelperElementTypeMask;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
851 @HotSpotVMConstant(name = "Klass::_lh_header_size_shift") @Stable public int layoutHelperHeaderSizeShift;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
852 @HotSpotVMConstant(name = "Klass::_lh_header_size_mask") @Stable public int layoutHelperHeaderSizeMask;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
853 @HotSpotVMConstant(name = "Klass::_lh_array_tag_shift") @Stable public int layoutHelperArrayTagShift;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
854 @HotSpotVMConstant(name = "Klass::_lh_array_tag_type_value") @Stable public int layoutHelperArrayTagTypeValue;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
855 @HotSpotVMConstant(name = "Klass::_lh_array_tag_obj_value") @Stable public int layoutHelperArrayTagObjectValue;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
856
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
857 /**
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
858 * This filters out the bit that differentiates a type array from an object array.
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
859 */
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
860 public int layoutHelperElementTypePrimitiveInPlace() {
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
861 return (layoutHelperArrayTagTypeValue & ~layoutHelperArrayTagObjectValue) << layoutHelperArrayTagShift;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
862 }
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
863
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
864 /**
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
865 * Bit pattern in the klass layout helper that can be used to identify arrays.
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
866 */
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
867 public final int arrayKlassLayoutHelperIdentifier = 0x80000000;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
868
22678
3088a32d27af made HotSpotVMConfig.arrayKlassComponentMirrorOffset package-private to account for the removal of ArrayKlass::_component_mirror in jdk9; removed unused jvmAccMonitorMatch and jvmAccHasMonitorBytecodes
Doug Simon <doug.simon@oracle.com>
parents: 22672
diff changeset
869 @HotSpotVMField(name = "ArrayKlass::_component_mirror", type = "oop", get = HotSpotVMField.Type.OFFSET) @Stable int arrayKlassComponentMirrorOffset;
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
870
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
871 @HotSpotVMType(name = "vtableEntry", get = HotSpotVMType.Type.SIZE) @Stable public int vtableEntrySize;
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
872 @HotSpotVMField(name = "vtableEntry::_method", type = "Method*", get = HotSpotVMField.Type.OFFSET) @Stable public int vtableEntryMethodOffset;
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
873 @HotSpotVMValue(expression = "InstanceKlass::vtable_start_offset() * HeapWordSize") @Stable public int instanceKlassVtableStartOffset;
16615
3812931f9350 Don't read beyond end of known vtable
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16535
diff changeset
874 @HotSpotVMValue(expression = "InstanceKlass::vtable_length_offset() * HeapWordSize") @Stable public int instanceKlassVtableLengthOffset;
3812931f9350 Don't read beyond end of known vtable
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16535
diff changeset
875 @HotSpotVMValue(expression = "Universe::base_vtable_size() / vtableEntry::size()") @Stable public int baseVtableLength;
7037
dd81042f4eb1 added unit tests for ResolvedJavaType
Doug Simon <doug.simon@oracle.com>
parents: 6950
diff changeset
876
dd81042f4eb1 added unit tests for ResolvedJavaType
Doug Simon <doug.simon@oracle.com>
parents: 6950
diff changeset
877 /**
6950
41938af2b3d8 modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 6674
diff changeset
878 * The offset of the array length word in an array object's header.
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
879 */
22540
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
880 @HotSpotVMValue(expression = "arrayOopDesc::length_offset_in_bytes()") @Stable private int arrayLengthOffset;
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
881
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
882 /**
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
883 * The offset of the array length word in an array object's header.
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
884 *
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
885 * See {@code arrayOopDesc::length_offset_in_bytes()}.
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
886 */
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
887 public final int arrayOopDescLengthOffset() {
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
888 return arrayLengthOffset;
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
889 }
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
890
13254
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
891 @HotSpotVMField(name = "Array<int>::_length", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int arrayU1LengthOffset;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
892 @HotSpotVMField(name = "Array<u1>::_data", type = "", get = HotSpotVMField.Type.OFFSET) @Stable public int arrayU1DataOffset;
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
893 @HotSpotVMField(name = "Array<u2>::_data", type = "", get = HotSpotVMField.Type.OFFSET) @Stable public int arrayU2DataOffset;
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
894 @HotSpotVMField(name = "Array<Klass*>::_length", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int metaspaceArrayLengthOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
895 @HotSpotVMField(name = "Array<Klass*>::_data[0]", type = "Klass*", get = HotSpotVMField.Type.OFFSET) @Stable public int metaspaceArrayBaseOffset;
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
896
16386
9ce3b1efc4e7 InstanceKlass::_init_state only exists for InstanceKlasses
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16182
diff changeset
897 @HotSpotVMField(name = "InstanceKlass::_source_file_name_index", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int instanceKlassSourceFileNameIndexOffset;
9ce3b1efc4e7 InstanceKlass::_init_state only exists for InstanceKlasses
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16182
diff changeset
898 @HotSpotVMField(name = "InstanceKlass::_init_state", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int instanceKlassInitStateOffset;
13305
a63d65b682a8 moved most HotSpotResolvedJavaMethod.getExceptionHandlers logic to Java
twisti
parents: 13261
diff changeset
899 @HotSpotVMField(name = "InstanceKlass::_constants", type = "ConstantPool*", get = HotSpotVMField.Type.OFFSET) @Stable public int instanceKlassConstantsOffset;
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
900 @HotSpotVMField(name = "InstanceKlass::_fields", type = "Array<u2>*", get = HotSpotVMField.Type.OFFSET) @Stable public int instanceKlassFieldsOffset;
13305
a63d65b682a8 moved most HotSpotResolvedJavaMethod.getExceptionHandlers logic to Java
twisti
parents: 13261
diff changeset
901
16386
9ce3b1efc4e7 InstanceKlass::_init_state only exists for InstanceKlasses
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16182
diff changeset
902 @HotSpotVMConstant(name = "InstanceKlass::linked") @Stable public int instanceKlassStateLinked;
9ce3b1efc4e7 InstanceKlass::_init_state only exists for InstanceKlasses
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16182
diff changeset
903 @HotSpotVMConstant(name = "InstanceKlass::fully_initialized") @Stable public int instanceKlassStateFullyInitialized;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
904
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
905 @HotSpotVMField(name = "ObjArrayKlass::_element_klass", type = "Klass*", get = HotSpotVMField.Type.OFFSET) @Stable public int arrayClassElementOffset;
6950
41938af2b3d8 modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 6674
diff changeset
906
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
907 @HotSpotVMConstant(name = "FieldInfo::access_flags_offset") @Stable public int fieldInfoAccessFlagsOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
908 @HotSpotVMConstant(name = "FieldInfo::name_index_offset") @Stable public int fieldInfoNameIndexOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
909 @HotSpotVMConstant(name = "FieldInfo::signature_index_offset") @Stable public int fieldInfoSignatureIndexOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
910 @HotSpotVMConstant(name = "FieldInfo::initval_index_offset") @Stable public int fieldInfoInitvalIndexOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
911 @HotSpotVMConstant(name = "FieldInfo::low_packed_offset") @Stable public int fieldInfoLowPackedOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
912 @HotSpotVMConstant(name = "FieldInfo::high_packed_offset") @Stable public int fieldInfoHighPackedOffset;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
913 @HotSpotVMConstant(name = "FieldInfo::field_slots") @Stable public int fieldInfoFieldSlots;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
914
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
915 @HotSpotVMConstant(name = "FIELDINFO_TAG_SIZE") @Stable public int fieldInfoTagSize;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
916
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
917 @HotSpotVMConstant(name = "JVM_ACC_FIELD_INTERNAL") @Stable public int jvmAccFieldInternal;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
918 @HotSpotVMConstant(name = "JVM_ACC_FIELD_STABLE") @Stable public int jvmAccFieldStable;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
919 @HotSpotVMConstant(name = "JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE") @Stable public int jvmAccFieldHasGenericSignature;
18589
c640f804dbad Intrinsify Reflection.getClassAccessFlags
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 18415
diff changeset
920 @HotSpotVMConstant(name = "JVM_ACC_WRITTEN_FLAGS") @Stable public int jvmAccWrittenFlags;
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
921
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
922 @HotSpotVMField(name = "Thread::_tlab", type = "ThreadLocalAllocBuffer", get = HotSpotVMField.Type.OFFSET) @Stable public int threadTlabOffset;
6950
41938af2b3d8 modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 6674
diff changeset
923
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
924 @HotSpotVMField(name = "JavaThread::_anchor", type = "JavaFrameAnchor", get = HotSpotVMField.Type.OFFSET) @Stable public int javaThreadAnchorOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
925 @HotSpotVMField(name = "JavaThread::_threadObj", type = "oop", get = HotSpotVMField.Type.OFFSET) @Stable public int threadObjectOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
926 @HotSpotVMField(name = "JavaThread::_osthread", type = "OSThread*", get = HotSpotVMField.Type.OFFSET) @Stable public int osThreadOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
927 @HotSpotVMField(name = "JavaThread::_dirty_card_queue", type = "DirtyCardQueue", get = HotSpotVMField.Type.OFFSET) @Stable public int javaThreadDirtyCardQueueOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
928 @HotSpotVMField(name = "JavaThread::_is_method_handle_return", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int threadIsMethodHandleReturnOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
929 @HotSpotVMField(name = "JavaThread::_satb_mark_queue", type = "ObjPtrQueue", get = HotSpotVMField.Type.OFFSET) @Stable public int javaThreadSatbMarkQueueOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
930 @HotSpotVMField(name = "JavaThread::_vm_result", type = "oop", get = HotSpotVMField.Type.OFFSET) @Stable public int threadObjectResultOffset;
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
931 @HotSpotVMValue(expression = "in_bytes(JavaThread::jvmci_counters_offset())") @Stable public int jvmciCountersThreadOffset;
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
932
13895
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
933 /**
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
934 * An invalid value for {@link #rtldDefault}.
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
935 */
13871
0d91d64b88f8 GNFI: set invalid rtld_default in HotSpotVMConfig
Matthias Grimmer <grimmer@ssw.jku.at>
parents: 13840
diff changeset
936 public static final long INVALID_RTLD_DEFAULT_HANDLE = 0xDEADFACE;
0d91d64b88f8 GNFI: set invalid rtld_default in HotSpotVMConfig
Matthias Grimmer <grimmer@ssw.jku.at>
parents: 13840
diff changeset
937
13895
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
938 /**
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
939 * Address of the library lookup routine. The C signature of this routine is:
14943
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
940 *
13895
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
941 * <pre>
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
942 * void* (const char *filename, char *ebuf, int ebuflen)
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
943 * </pre>
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
944 */
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
945 @HotSpotVMValue(expression = "os::dll_load", get = HotSpotVMValue.Type.ADDRESS) @Stable public long dllLoad;
13895
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
946
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
947 /**
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
948 * Address of the library lookup routine. The C signature of this routine is:
14943
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
949 *
13895
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
950 * <pre>
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
951 * void* (void* handle, const char* name)
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
952 * </pre>
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
953 */
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
954 @HotSpotVMValue(expression = "os::dll_lookup", get = HotSpotVMValue.Type.ADDRESS) @Stable public long dllLookup;
13895
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
955
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
956 /**
13897
29d38dc96f59 fixed code format warning
Doug Simon <doug.simon@oracle.com>
parents: 13895
diff changeset
957 * A pseudo-handle which when used as the first argument to {@link #dllLookup} means lookup will
29d38dc96f59 fixed code format warning
Doug Simon <doug.simon@oracle.com>
parents: 13895
diff changeset
958 * return the first occurrence of the desired symbol using the default library search order. If
29d38dc96f59 fixed code format warning
Doug Simon <doug.simon@oracle.com>
parents: 13895
diff changeset
959 * this field is {@value #INVALID_RTLD_DEFAULT_HANDLE}, then this capability is not supported on
29d38dc96f59 fixed code format warning
Doug Simon <doug.simon@oracle.com>
parents: 13895
diff changeset
960 * the current platform.
13895
4731c1a0b1f3 consolidated GNFI code into graal.hotspot project and cleaned up the documentation and code
Doug Simon <doug.simon@oracle.com>
parents: 13871
diff changeset
961 */
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
962 @HotSpotVMValue(expression = "RTLD_DEFAULT", defines = {"TARGET_OS_FAMILY_bsd", "TARGET_OS_FAMILY_linux"}, get = HotSpotVMValue.Type.ADDRESS) @Stable public long rtldDefault = INVALID_RTLD_DEFAULT_HANDLE;
13837
ed3a1471e133 Add the Graal Native Function Interface
Matthias Grimmer <grimmer@ssw.jku.at>
parents: 13818
diff changeset
963
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
964 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
965 * This field is used to pass exception objects into and out of the runtime system during
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
966 * exception handling for compiled code.
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
967 */
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
968 @HotSpotVMField(name = "JavaThread::_exception_oop", type = "oop", get = HotSpotVMField.Type.OFFSET) @Stable public int threadExceptionOopOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
969 @HotSpotVMField(name = "JavaThread::_exception_pc", type = "address", get = HotSpotVMField.Type.OFFSET) @Stable public int threadExceptionPcOffset;
22460
f27c163d7dc2 moved JVMCI fields from ThreadShadow to Thread
Doug Simon <doug.simon@oracle.com>
parents: 22447
diff changeset
970 @HotSpotVMField(name = "ThreadShadow::_pending_exception", type = "oop", get = HotSpotVMField.Type.OFFSET) @Stable public int pendingExceptionOffset;
f27c163d7dc2 moved JVMCI fields from ThreadShadow to Thread
Doug Simon <doug.simon@oracle.com>
parents: 22447
diff changeset
971
f27c163d7dc2 moved JVMCI fields from ThreadShadow to Thread
Doug Simon <doug.simon@oracle.com>
parents: 22447
diff changeset
972 @HotSpotVMField(name = "JavaThread::_pending_deoptimization", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int pendingDeoptimizationOffset;
f27c163d7dc2 moved JVMCI fields from ThreadShadow to Thread
Doug Simon <doug.simon@oracle.com>
parents: 22447
diff changeset
973 @HotSpotVMField(name = "JavaThread::_pending_failed_speculation", type = "oop", get = HotSpotVMField.Type.OFFSET) @Stable public int pendingFailedSpeculationOffset;
f27c163d7dc2 moved JVMCI fields from ThreadShadow to Thread
Doug Simon <doug.simon@oracle.com>
parents: 22447
diff changeset
974 @HotSpotVMField(name = "JavaThread::_pending_transfer_to_interpreter", type = "bool", get = HotSpotVMField.Type.OFFSET) @Stable public int pendingTransferToInterpreterOffset;
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
975
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
976 @HotSpotVMField(name = "JavaFrameAnchor::_last_Java_sp", type = "intptr_t*", get = HotSpotVMField.Type.OFFSET) @Stable private int javaFrameAnchorLastJavaSpOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
977 @HotSpotVMField(name = "JavaFrameAnchor::_last_Java_pc", type = "address", get = HotSpotVMField.Type.OFFSET) @Stable private int javaFrameAnchorLastJavaPcOffset;
13517
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
978 @HotSpotVMField(name = "JavaFrameAnchor::_last_Java_fp", type = "intptr_t*", get = HotSpotVMField.Type.OFFSET, archs = {"amd64"}) @Stable private int javaFrameAnchorLastJavaFpOffset;
eefb0224149d derive CPUFeatures from VM_Version::_cpuFeatures
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13479
diff changeset
979 @HotSpotVMField(name = "JavaFrameAnchor::_flags", type = "int", get = HotSpotVMField.Type.OFFSET, archs = {"sparc"}) @Stable private int javaFrameAnchorFlagsOffset;
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
980
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
981 public int threadLastJavaSpOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
982 return javaThreadAnchorOffset + javaFrameAnchorLastJavaSpOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
983 }
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
984
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
985 public int threadLastJavaPcOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
986 return javaThreadAnchorOffset + javaFrameAnchorLastJavaPcOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
987 }
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5747
diff changeset
988
9562
99ef9bcb3f32 replaced unwind_exception_call assembler stub with a compiled stub (GRAAL-81)
Doug Simon <doug.simon@oracle.com>
parents: 9519
diff changeset
989 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
990 * This value is only valid on AMD64.
11852
d7964e96b0b0 move benchmark counters into separate class and make them correct for multithreaded applications
Lukas Stadler <lukas.stadler@jku.at>
parents: 11559
diff changeset
991 */
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
992 public int threadLastJavaFpOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
993 // TODO add an assert for AMD64
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
994 return javaThreadAnchorOffset + javaFrameAnchorLastJavaFpOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
995 }
7220
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7125
diff changeset
996
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7125
diff changeset
997 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
998 * This value is only valid on SPARC.
6386
abeeb57b655d added MonitorSnippets which passes MonitorTest but is not yet enabled for general lowering
Doug Simon <doug.simon@oracle.com>
parents: 6375
diff changeset
999 */
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1000 public int threadJavaFrameAnchorFlagsOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1001 // TODO add an assert for SPARC
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1002 return javaThreadAnchorOffset + javaFrameAnchorFlagsOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1003 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1004
15104
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1005 // These are only valid on AMD64.
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
1006 @HotSpotVMConstant(name = "frame::arg_reg_save_area_bytes", archs = {"amd64"}) @Stable public int runtimeCallStackSize;
15104
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1007 @HotSpotVMConstant(name = "frame::interpreter_frame_sender_sp_offset", archs = {"amd64"}) @Stable public int frameInterpreterFrameSenderSpOffset;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1008 @HotSpotVMConstant(name = "frame::interpreter_frame_last_sp_offset", archs = {"amd64"}) @Stable public int frameInterpreterFrameLastSpOffset;
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
1009
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1010 @HotSpotVMField(name = "PtrQueue::_active", type = "bool", get = HotSpotVMField.Type.OFFSET) @Stable public int ptrQueueActiveOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1011 @HotSpotVMField(name = "PtrQueue::_buf", type = "void**", get = HotSpotVMField.Type.OFFSET) @Stable public int ptrQueueBufferOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1012 @HotSpotVMField(name = "PtrQueue::_index", type = "size_t", get = HotSpotVMField.Type.OFFSET) @Stable public int ptrQueueIndexOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1013
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1014 @HotSpotVMField(name = "OSThread::_interrupted", type = "jint", get = HotSpotVMField.Type.OFFSET) @Stable public int osThreadInterruptedOffset;
6386
abeeb57b655d added MonitorSnippets which passes MonitorTest but is not yet enabled for general lowering
Doug Simon <doug.simon@oracle.com>
parents: 6375
diff changeset
1015
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1016 @HotSpotVMConstant(name = "markOopDesc::unlocked_value") @Stable public int unlockedMask;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1017 @HotSpotVMConstant(name = "markOopDesc::biased_lock_mask_in_place") @Stable public int biasedLockMaskInPlace;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1018 @HotSpotVMConstant(name = "markOopDesc::age_mask_in_place") @Stable public int ageMaskInPlace;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1019 @HotSpotVMConstant(name = "markOopDesc::epoch_mask_in_place") @Stable public int epochMaskInPlace;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1020
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1021 @HotSpotVMConstant(name = "markOopDesc::hash_shift") @Stable public long markOopDescHashShift;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1022 @HotSpotVMConstant(name = "markOopDesc::hash_mask") @Stable public long markOopDescHashMask;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1023 @HotSpotVMConstant(name = "markOopDesc::hash_mask_in_place") @Stable public long markOopDescHashMaskInPlace;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1024
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1025 @HotSpotVMConstant(name = "markOopDesc::biased_lock_pattern") @Stable public int biasedLockPattern;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1026 @HotSpotVMConstant(name = "markOopDesc::no_hash_in_place") @Stable public int markWordNoHashInPlace;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1027 @HotSpotVMConstant(name = "markOopDesc::no_lock_in_place") @Stable public int markWordNoLockInPlace;
6386
abeeb57b655d added MonitorSnippets which passes MonitorTest but is not yet enabled for general lowering
Doug Simon <doug.simon@oracle.com>
parents: 6375
diff changeset
1028
abeeb57b655d added MonitorSnippets which passes MonitorTest but is not yet enabled for general lowering
Doug Simon <doug.simon@oracle.com>
parents: 6375
diff changeset
1029 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1030 * See markOopDesc::prototype().
6386
abeeb57b655d added MonitorSnippets which passes MonitorTest but is not yet enabled for general lowering
Doug Simon <doug.simon@oracle.com>
parents: 6375
diff changeset
1031 */
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1032 public long arrayPrototypeMarkWord() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1033 return markWordNoHashInPlace | markWordNoLockInPlace;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1034 }
6386
abeeb57b655d added MonitorSnippets which passes MonitorTest but is not yet enabled for general lowering
Doug Simon <doug.simon@oracle.com>
parents: 6375
diff changeset
1035
abeeb57b655d added MonitorSnippets which passes MonitorTest but is not yet enabled for general lowering
Doug Simon <doug.simon@oracle.com>
parents: 6375
diff changeset
1036 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1037 * See markOopDesc::copy_set_hash().
6386
abeeb57b655d added MonitorSnippets which passes MonitorTest but is not yet enabled for general lowering
Doug Simon <doug.simon@oracle.com>
parents: 6375
diff changeset
1038 */
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1039 public long tlabIntArrayMarkWord() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1040 long tmp = arrayPrototypeMarkWord() & (~markOopDescHashMaskInPlace);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1041 tmp |= ((0x2 & markOopDescHashMask) << markOopDescHashShift);
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1042 return tmp;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1043 }
7220
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7125
diff changeset
1044
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7125
diff changeset
1045 /**
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7125
diff changeset
1046 * Mark word right shift to get identity hash code.
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7125
diff changeset
1047 */
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1048 @HotSpotVMConstant(name = "markOopDesc::hash_shift") @Stable public int identityHashCodeShift;
10056
a323a9e20f9d Fixed a few race conditions in the compilation queue.
Christian Haeubl <haeubl@ssw.jku.at>
parents: 10026
diff changeset
1049
a323a9e20f9d Fixed a few race conditions in the compilation queue.
Christian Haeubl <haeubl@ssw.jku.at>
parents: 10026
diff changeset
1050 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1051 * Identity hash code value when uninitialized.
6950
41938af2b3d8 modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 6674
diff changeset
1052 */
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1053 @HotSpotVMConstant(name = "markOopDesc::no_hash") @Stable public int uninitializedIdentityHashCodeValue;
7212
291ffc492eb6 Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
Doug Simon <doug.simon@oracle.com>
parents: 7154
diff changeset
1054
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1055 @HotSpotVMField(name = "Method::_access_flags", type = "AccessFlags", get = HotSpotVMField.Type.OFFSET) @Stable public int methodAccessFlagsOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1056 @HotSpotVMField(name = "Method::_constMethod", type = "ConstMethod*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodConstMethodOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1057 @HotSpotVMField(name = "Method::_intrinsic_id", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int methodIntrinsicIdOffset;
14717
aa1a43bfdf4e make HotSpotResolvedJavaMethod leaner
twisti
parents: 14706
diff changeset
1058 @HotSpotVMField(name = "Method::_flags", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int methodFlagsOffset;
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1059 @HotSpotVMField(name = "Method::_vtable_index", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodVtableIndexOffset;
9760
c76b43ed5089 Added infrastructure for recording invoked methods in the profiling information.
Christian Haeubl <haeubl@ssw.jku.at>
parents: 9693
diff changeset
1060
14717
aa1a43bfdf4e make HotSpotResolvedJavaMethod leaner
twisti
parents: 14706
diff changeset
1061 @HotSpotVMConstant(name = "Method::_jfr_towrite") @Stable public int methodFlagsJfrTowrite;
aa1a43bfdf4e make HotSpotResolvedJavaMethod leaner
twisti
parents: 14706
diff changeset
1062 @HotSpotVMConstant(name = "Method::_caller_sensitive") @Stable public int methodFlagsCallerSensitive;
aa1a43bfdf4e make HotSpotResolvedJavaMethod leaner
twisti
parents: 14706
diff changeset
1063 @HotSpotVMConstant(name = "Method::_force_inline") @Stable public int methodFlagsForceInline;
aa1a43bfdf4e make HotSpotResolvedJavaMethod leaner
twisti
parents: 14706
diff changeset
1064 @HotSpotVMConstant(name = "Method::_dont_inline") @Stable public int methodFlagsDontInline;
aa1a43bfdf4e make HotSpotResolvedJavaMethod leaner
twisti
parents: 14706
diff changeset
1065 @HotSpotVMConstant(name = "Method::_hidden") @Stable public int methodFlagsHidden;
15102
175111728365 improve canBeStaticallyBound
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15066
diff changeset
1066 @HotSpotVMConstant(name = "Method::nonvirtual_vtable_index") @Stable public int nonvirtualVtableIndex;
15725
ef6b8d1898e6 Add resolved receiver type to ResolvedJavaMethod.isInVirtualMethodTable in order to be able to do vtable-calls for miranda and default methods
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 15663
diff changeset
1067 @HotSpotVMConstant(name = "Method::invalid_vtable_index") @Stable public int invalidVtableIndex;
14717
aa1a43bfdf4e make HotSpotResolvedJavaMethod leaner
twisti
parents: 14706
diff changeset
1068
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
1069 @HotSpotVMConstant(name = "InvocationEntryBci") @Stable public int invocationEntryBci;
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
1070
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1071 @HotSpotVMField(name = "JVMCIEnv::_task", type = "CompileTask*", get = HotSpotVMField.Type.OFFSET) @Stable public int jvmciEnvTaskOffset;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1072 @HotSpotVMField(name = "JVMCIEnv::_jvmti_can_hotswap_or_post_breakpoint", type = "bool", get = HotSpotVMField.Type.OFFSET) @Stable public int jvmciEnvJvmtiCanHotswapOrPostBreakpointOffset;
15463
a20be10ad437 made Graal work with the HotSpot compiler queue and compiler threads, enabled by -XX:-UseGraalCompilationQueue
Doug Simon <doug.simon@oracle.com>
parents: 15456
diff changeset
1073 @HotSpotVMField(name = "CompileTask::_num_inlined_bytecodes", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int compileTaskNumInlinedBytecodesOffset;
a20be10ad437 made Graal work with the HotSpot compiler queue and compiler threads, enabled by -XX:-UseGraalCompilationQueue
Doug Simon <doug.simon@oracle.com>
parents: 15456
diff changeset
1074
9760
c76b43ed5089 Added infrastructure for recording invoked methods in the profiling information.
Christian Haeubl <haeubl@ssw.jku.at>
parents: 9693
diff changeset
1075 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1076 * Value of Method::extra_stack_entries().
9760
c76b43ed5089 Added infrastructure for recording invoked methods in the profiling information.
Christian Haeubl <haeubl@ssw.jku.at>
parents: 9693
diff changeset
1077 */
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1078 @HotSpotVMValue(expression = "Method::extra_stack_entries()") @Stable public int extraStackEntries;
6950
41938af2b3d8 modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 6674
diff changeset
1079
13306
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1080 @HotSpotVMField(name = "ConstMethod::_constants", type = "ConstantPool*", get = HotSpotVMField.Type.OFFSET) @Stable public int constMethodConstantsOffset;
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1081 @HotSpotVMField(name = "ConstMethod::_flags", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int constMethodFlagsOffset;
13254
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1082 @HotSpotVMField(name = "ConstMethod::_code_size", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int constMethodCodeSizeOffset;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1083 @HotSpotVMField(name = "ConstMethod::_name_index", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int constMethodNameIndexOffset;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1084 @HotSpotVMField(name = "ConstMethod::_signature_index", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int constMethodSignatureIndexOffset;
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1085 @HotSpotVMField(name = "ConstMethod::_max_stack", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int constMethodMaxStackOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1086 @HotSpotVMField(name = "ConstMethod::_max_locals", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int methodMaxLocalsOffset;
13306
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1087
14105
f62c770c22be make HotSpotResolvedJavaMethod leaner
twisti
parents: 14093
diff changeset
1088 @HotSpotVMConstant(name = "ConstMethod::_has_linenumber_table") @Stable public int constMethodHasLineNumberTable;
13306
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1089 @HotSpotVMConstant(name = "ConstMethod::_has_localvariable_table") @Stable public int constMethodHasLocalVariableTable;
14105
f62c770c22be make HotSpotResolvedJavaMethod leaner
twisti
parents: 14093
diff changeset
1090 @HotSpotVMConstant(name = "ConstMethod::_has_exception_table") @Stable public int constMethodHasExceptionTable;
6950
41938af2b3d8 modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 6674
diff changeset
1091
13305
a63d65b682a8 moved most HotSpotResolvedJavaMethod.getExceptionHandlers logic to Java
twisti
parents: 13261
diff changeset
1092 @HotSpotVMType(name = "ExceptionTableElement", get = HotSpotVMType.Type.SIZE) @Stable public int exceptionTableElementSize;
a63d65b682a8 moved most HotSpotResolvedJavaMethod.getExceptionHandlers logic to Java
twisti
parents: 13261
diff changeset
1093 @HotSpotVMField(name = "ExceptionTableElement::start_pc", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int exceptionTableElementStartPcOffset;
a63d65b682a8 moved most HotSpotResolvedJavaMethod.getExceptionHandlers logic to Java
twisti
parents: 13261
diff changeset
1094 @HotSpotVMField(name = "ExceptionTableElement::end_pc", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int exceptionTableElementEndPcOffset;
a63d65b682a8 moved most HotSpotResolvedJavaMethod.getExceptionHandlers logic to Java
twisti
parents: 13261
diff changeset
1095 @HotSpotVMField(name = "ExceptionTableElement::handler_pc", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int exceptionTableElementHandlerPcOffset;
a63d65b682a8 moved most HotSpotResolvedJavaMethod.getExceptionHandlers logic to Java
twisti
parents: 13261
diff changeset
1096 @HotSpotVMField(name = "ExceptionTableElement::catch_type_index", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int exceptionTableElementCatchTypeIndexOffset;
a63d65b682a8 moved most HotSpotResolvedJavaMethod.getExceptionHandlers logic to Java
twisti
parents: 13261
diff changeset
1097
13306
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1098 @HotSpotVMType(name = "LocalVariableTableElement", get = HotSpotVMType.Type.SIZE) @Stable public int localVariableTableElementSize;
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1099 @HotSpotVMField(name = "LocalVariableTableElement::start_bci", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int localVariableTableElementStartBciOffset;
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1100 @HotSpotVMField(name = "LocalVariableTableElement::length", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int localVariableTableElementLengthOffset;
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1101 @HotSpotVMField(name = "LocalVariableTableElement::name_cp_index", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int localVariableTableElementNameCpIndexOffset;
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1102 @HotSpotVMField(name = "LocalVariableTableElement::descriptor_cp_index", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int localVariableTableElementDescriptorCpIndexOffset;
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1103 @HotSpotVMField(name = "LocalVariableTableElement::signature_cp_index", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int localVariableTableElementSignatureCpIndexOffset;
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1104 @HotSpotVMField(name = "LocalVariableTableElement::slot", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int localVariableTableElementSlotOffset;
dfb780080923 moved most CompilerToVM.getLocalVariableTable to Java
twisti
parents: 13305
diff changeset
1105
13254
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1106 @HotSpotVMType(name = "ConstantPool", get = HotSpotVMType.Type.SIZE) @Stable public int constantPoolSize;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1107 @HotSpotVMField(name = "ConstantPool::_tags", type = "Array<u1>*", get = HotSpotVMField.Type.OFFSET) @Stable public int constantPoolTagsOffset;
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1108 @HotSpotVMField(name = "ConstantPool::_pool_holder", type = "InstanceKlass*", get = HotSpotVMField.Type.OFFSET) @Stable public int constantPoolHolderOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1109 @HotSpotVMField(name = "ConstantPool::_length", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int constantPoolLengthOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1110
14052
361acb279104 moved to-constant-pool-index conversion up to Java
twisti
parents: 14051
diff changeset
1111 @HotSpotVMConstant(name = "ConstantPool::CPCACHE_INDEX_TAG") @Stable public int constantPoolCpCacheIndexTag;
361acb279104 moved to-constant-pool-index conversion up to Java
twisti
parents: 14051
diff changeset
1112
13254
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1113 @HotSpotVMConstant(name = "JVM_CONSTANT_Utf8") @Stable public int jvmConstantUtf8;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1114 @HotSpotVMConstant(name = "JVM_CONSTANT_Integer") @Stable public int jvmConstantInteger;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1115 @HotSpotVMConstant(name = "JVM_CONSTANT_Long") @Stable public int jvmConstantLong;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1116 @HotSpotVMConstant(name = "JVM_CONSTANT_Float") @Stable public int jvmConstantFloat;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1117 @HotSpotVMConstant(name = "JVM_CONSTANT_Double") @Stable public int jvmConstantDouble;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1118 @HotSpotVMConstant(name = "JVM_CONSTANT_Class") @Stable public int jvmConstantClass;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1119 @HotSpotVMConstant(name = "JVM_CONSTANT_UnresolvedClass") @Stable public int jvmConstantUnresolvedClass;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1120 @HotSpotVMConstant(name = "JVM_CONSTANT_UnresolvedClassInError") @Stable public int jvmConstantUnresolvedClassInError;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1121 @HotSpotVMConstant(name = "JVM_CONSTANT_String") @Stable public int jvmConstantString;
13261
0ffe9e4bb364 don't go through VM to create HotSpotResolvedObjectType (part 1)
twisti
parents: 13257
diff changeset
1122 @HotSpotVMConstant(name = "JVM_CONSTANT_Fieldref") @Stable public int jvmConstantFieldref;
0ffe9e4bb364 don't go through VM to create HotSpotResolvedObjectType (part 1)
twisti
parents: 13257
diff changeset
1123 @HotSpotVMConstant(name = "JVM_CONSTANT_Methodref") @Stable public int jvmConstantMethodref;
0ffe9e4bb364 don't go through VM to create HotSpotResolvedObjectType (part 1)
twisti
parents: 13257
diff changeset
1124 @HotSpotVMConstant(name = "JVM_CONSTANT_InterfaceMethodref") @Stable public int jvmConstantInterfaceMethodref;
0ffe9e4bb364 don't go through VM to create HotSpotResolvedObjectType (part 1)
twisti
parents: 13257
diff changeset
1125 @HotSpotVMConstant(name = "JVM_CONSTANT_NameAndType") @Stable public int jvmConstantNameAndType;
13254
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1126 @HotSpotVMConstant(name = "JVM_CONSTANT_MethodHandle") @Stable public int jvmConstantMethodHandle;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1127 @HotSpotVMConstant(name = "JVM_CONSTANT_MethodHandleInError") @Stable public int jvmConstantMethodHandleInError;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1128 @HotSpotVMConstant(name = "JVM_CONSTANT_MethodType") @Stable public int jvmConstantMethodType;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1129 @HotSpotVMConstant(name = "JVM_CONSTANT_MethodTypeInError") @Stable public int jvmConstantMethodTypeInError;
14979
5dfaaa91be37 fixed com.oracle.graal.hotspot.meta.HotSpotConstantPool.loadReferencedType(int, int) for invokedynamic
twisti
parents: 14969
diff changeset
1130 @HotSpotVMConstant(name = "JVM_CONSTANT_InvokeDynamic") @Stable public int jvmConstantInvokeDynamic;
13254
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1131
17393
a8186c7f73e9 added table to speed up mapping JVM_CONSTANT tag value to JVM_CONSTANT enum object
Doug Simon <doug.simon@oracle.com>
parents: 17144
diff changeset
1132 @HotSpotVMConstant(name = "JVM_CONSTANT_ExternalMax") @Stable public int jvmConstantExternalMax;
a8186c7f73e9 added table to speed up mapping JVM_CONSTANT tag value to JVM_CONSTANT enum object
Doug Simon <doug.simon@oracle.com>
parents: 17144
diff changeset
1133 @HotSpotVMConstant(name = "JVM_CONSTANT_InternalMin") @Stable public int jvmConstantInternalMin;
a8186c7f73e9 added table to speed up mapping JVM_CONSTANT tag value to JVM_CONSTANT enum object
Doug Simon <doug.simon@oracle.com>
parents: 17144
diff changeset
1134 @HotSpotVMConstant(name = "JVM_CONSTANT_InternalMax") @Stable public int jvmConstantInternalMax;
a8186c7f73e9 added table to speed up mapping JVM_CONSTANT tag value to JVM_CONSTANT enum object
Doug Simon <doug.simon@oracle.com>
parents: 17144
diff changeset
1135
13933
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1136 @HotSpotVMConstant(name = "HeapWordSize") @Stable public int heapWordSize;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1137
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
1138 @HotSpotVMType(name = "Symbol*", get = HotSpotVMType.Type.SIZE) @Stable public int symbolPointerSize;
13254
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1139 @HotSpotVMField(name = "Symbol::_length", type = "unsigned short", get = HotSpotVMField.Type.OFFSET) @Stable public int symbolLengthOffset;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1140 @HotSpotVMField(name = "Symbol::_body[0]", type = "jbyte", get = HotSpotVMField.Type.OFFSET) @Stable public int symbolBodyOffset;
42aaf7306707 Teach Graal about Symbol and ConstantPool so we can move more logic into Java. We'll see how that ends...
twisti
parents: 13252
diff changeset
1141
14012
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
1142 @HotSpotVMField(name = "vmSymbols::_symbols[0]", type = "Symbol*", get = HotSpotVMField.Type.ADDRESS) @Stable public long vmSymbolsSymbols;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
1143 @HotSpotVMConstant(name = "vmSymbols::FIRST_SID") @Stable public int vmSymbolsFirstSID;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
1144 @HotSpotVMConstant(name = "vmSymbols::SID_LIMIT") @Stable public int vmSymbolsSIDLimit;
1f34717ccafa remove CompilerToVM.getInstanceFields
twisti
parents: 13933
diff changeset
1145
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1146 @HotSpotVMConstant(name = "JVM_ACC_HAS_FINALIZER") @Stable public int klassHasFinalizerFlag;
9562
99ef9bcb3f32 replaced unwind_exception_call assembler stub with a compiled stub (GRAAL-81)
Doug Simon <doug.simon@oracle.com>
parents: 9519
diff changeset
1147
13818
d2f520f46180 added more unit tests for meta.api, discovering and fixing an issue with HotSpotResolvedJavaField.getModifiers() in the process
Doug Simon <doug.simon@oracle.com>
parents: 13776
diff changeset
1148 // Modifier.SYNTHETIC is not public so we get it via vmStructs.
d2f520f46180 added more unit tests for meta.api, discovering and fixing an issue with HotSpotResolvedJavaField.getModifiers() in the process
Doug Simon <doug.simon@oracle.com>
parents: 13776
diff changeset
1149 @HotSpotVMConstant(name = "JVM_ACC_SYNTHETIC") @Stable public int syntheticFlag;
d2f520f46180 added more unit tests for meta.api, discovering and fixing an issue with HotSpotResolvedJavaField.getModifiers() in the process
Doug Simon <doug.simon@oracle.com>
parents: 13776
diff changeset
1150
d2f520f46180 added more unit tests for meta.api, discovering and fixing an issue with HotSpotResolvedJavaField.getModifiers() in the process
Doug Simon <doug.simon@oracle.com>
parents: 13776
diff changeset
1151 /**
18223
17c98fad6980 converted HotSpotResolvedObjectType to an interface
Doug Simon <doug.simon@oracle.com>
parents: 18041
diff changeset
1152 * @see HotSpotResolvedObjectTypeImpl#createField
13818
d2f520f46180 added more unit tests for meta.api, discovering and fixing an issue with HotSpotResolvedJavaField.getModifiers() in the process
Doug Simon <doug.simon@oracle.com>
parents: 13776
diff changeset
1153 */
d2f520f46180 added more unit tests for meta.api, discovering and fixing an issue with HotSpotResolvedJavaField.getModifiers() in the process
Doug Simon <doug.simon@oracle.com>
parents: 13776
diff changeset
1154 @HotSpotVMConstant(name = "JVM_RECOGNIZED_FIELD_MODIFIERS") @Stable public int recognizedFieldModifiers;
d2f520f46180 added more unit tests for meta.api, discovering and fixing an issue with HotSpotResolvedJavaField.getModifiers() in the process
Doug Simon <doug.simon@oracle.com>
parents: 13776
diff changeset
1155
10771
ec8ee1c2ad7a Move non_oop_bits value up to Graal.
twisti
parents: 10618
diff changeset
1156 /**
ec8ee1c2ad7a Move non_oop_bits value up to Graal.
twisti
parents: 10618
diff changeset
1157 * Bit pattern that represents a non-oop. Neither the high bits nor the low bits of this value
ec8ee1c2ad7a Move non_oop_bits value up to Graal.
twisti
parents: 10618
diff changeset
1158 * are allowed to look like (respectively) the high or low bits of a real oop.
ec8ee1c2ad7a Move non_oop_bits value up to Graal.
twisti
parents: 10618
diff changeset
1159 */
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1160 @HotSpotVMField(name = "Universe::_non_oop_bits", type = "intptr_t", get = HotSpotVMField.Type.VALUE) @Stable public long nonOopBits;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1161
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1162 @HotSpotVMField(name = "StubRoutines::_verify_oop_count", type = "jint", get = HotSpotVMField.Type.ADDRESS) @Stable public long verifyOopCounterAddress;
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1163 @HotSpotVMValue(expression = "Universe::verify_oop_mask()") @Stable public long verifyOopMask;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1164 @HotSpotVMValue(expression = "Universe::verify_oop_bits()") @Stable public long verifyOopBits;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1165
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1166 @HotSpotVMField(name = "CollectedHeap::_barrier_set", type = "BarrierSet*", get = HotSpotVMField.Type.OFFSET) @Stable public int collectedHeapBarrierSetOffset;
10771
ec8ee1c2ad7a Move non_oop_bits value up to Graal.
twisti
parents: 10618
diff changeset
1167
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1168 @HotSpotVMField(name = "HeapRegion::LogOfHRGrainBytes", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int logOfHRGrainBytes;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1169
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1170 @HotSpotVMField(name = "BarrierSet::_kind", type = "BarrierSet::Name", get = HotSpotVMField.Type.OFFSET) @Stable private int barrierSetKindOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1171 @HotSpotVMConstant(name = "BarrierSet::CardTableModRef") @Stable public int barrierSetCardTableModRef;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1172 @HotSpotVMConstant(name = "BarrierSet::CardTableExtension") @Stable public int barrierSetCardTableExtension;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1173 @HotSpotVMConstant(name = "BarrierSet::G1SATBCT") @Stable public int barrierSetG1SATBCT;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1174 @HotSpotVMConstant(name = "BarrierSet::G1SATBCTLogging") @Stable public int barrierSetG1SATBCTLogging;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1175 @HotSpotVMConstant(name = "BarrierSet::ModRef") @Stable public int barrierSetModRef;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1176 @HotSpotVMConstant(name = "BarrierSet::Other") @Stable public int barrierSetOther;
9574
df3aa336a313 replaced verify_oop assembler stub with a compiled stub (GRAAL-81)
Doug Simon <doug.simon@oracle.com>
parents: 9562
diff changeset
1177
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1178 @HotSpotVMField(name = "CardTableModRefBS::byte_map_base", type = "jbyte*", get = HotSpotVMField.Type.OFFSET) @Stable private int cardTableModRefBSByteMapBaseOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1179 @HotSpotVMConstant(name = "CardTableModRefBS::card_shift") @Stable public int cardTableModRefBSCardShift;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1180
16018
6a62ccbd1658 add support for new G1 marking behavior
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15805
diff changeset
1181 @HotSpotVMValue(expression = "(jbyte)CardTableModRefBS::dirty_card_val()") @Stable public byte dirtyCardValue;
6a62ccbd1658 add support for new G1 marking behavior
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15805
diff changeset
1182 @HotSpotVMValue(expression = "(jbyte)G1SATBCardTableModRefBS::g1_young_card_val()") @Stable public byte g1YoungCardValue;
6a62ccbd1658 add support for new G1 marking behavior
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15805
diff changeset
1183
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
1184 private final long cardtableStartAddress;
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
1185 private final int cardtableShift;
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
1186
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1187 public long cardtableStartAddress() {
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
1188 if (cardtableStartAddress == -1) {
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
1189 throw JVMCIError.shouldNotReachHere();
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1190 }
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
1191 return cardtableStartAddress;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1192 }
9517
51973e9ec004 added comments clarifying the difference between _exception_oop and _pending_exception in the HotSpot Thread class
Doug Simon <doug.simon@oracle.com>
parents: 9471
diff changeset
1193
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1194 public int cardtableShift() {
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
1195 if (cardtableShift == -1) {
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
1196 throw JVMCIError.shouldNotReachHere();
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1197 }
18652
dfacef5b7958 remove uses of Unsafe in HotSpotVMConfig methods that may be executed on a deserialized HotSpotVMConfig object
Doug Simon <doug.simon@oracle.com>
parents: 18589
diff changeset
1198 return cardtableShift;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1199 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1200
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1201 @HotSpotVMField(name = "os::_polling_page", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long safepointPollingAddress;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1202
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1203 // G1 Collector Related Values.
6950
41938af2b3d8 modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 6674
diff changeset
1204
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1205 public int g1CardQueueIndexOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1206 return javaThreadDirtyCardQueueOffset + ptrQueueIndexOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1207 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1208
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1209 public int g1CardQueueBufferOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1210 return javaThreadDirtyCardQueueOffset + ptrQueueBufferOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1211 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1212
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1213 public int g1SATBQueueMarkingOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1214 return javaThreadSatbMarkQueueOffset + ptrQueueActiveOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1215 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1216
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1217 public int g1SATBQueueIndexOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1218 return javaThreadSatbMarkQueueOffset + ptrQueueIndexOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1219 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1220
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1221 public int g1SATBQueueBufferOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1222 return javaThreadSatbMarkQueueOffset + ptrQueueBufferOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1223 }
8490
1567c6cc6561 Towards porting G1 WBs
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 8489
diff changeset
1224
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1225 @HotSpotVMField(name = "java_lang_Class::_klass_offset", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int klassOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1226 @HotSpotVMField(name = "java_lang_Class::_array_klass_offset", type = "int", get = HotSpotVMField.Type.VALUE) @Stable public int arrayKlassOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1227
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1228 @HotSpotVMField(name = "Method::_method_data", type = "MethodData*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1229 @HotSpotVMField(name = "Method::_from_compiled_entry", type = "address", get = HotSpotVMField.Type.OFFSET) @Stable public int methodCompiledEntryOffset;
14107
800057208a2c enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 14105
diff changeset
1230 @HotSpotVMField(name = "Method::_code", type = "nmethod*", get = HotSpotVMField.Type.OFFSET) @Stable public int methodCodeOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1231
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1232 @HotSpotVMField(name = "MethodData::_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataSize;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1233 @HotSpotVMField(name = "MethodData::_data_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataDataSize;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1234 @HotSpotVMField(name = "MethodData::_data[0]", type = "intptr_t", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOopDataOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1235 @HotSpotVMField(name = "MethodData::_trap_hist._array[0]", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOopTrapHistoryOffset;
21552
9579a3c62a9e use skeleton findbugs jar containing only SuppresFBWarnings to avoid external dependency for JVMCI classes (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21414
diff changeset
1236 @HotSpotVMField(name = "MethodData::_jvmci_ir_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataIRSizeOffset;
13241
8b5852df0471 remove CompilerToVM.initializeMethodData
twisti
parents: 13216
diff changeset
1237
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1238 @HotSpotVMField(name = "nmethod::_verified_entry_point", type = "address", get = HotSpotVMField.Type.OFFSET) @Stable public int nmethodEntryOffset;
14107
800057208a2c enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 14105
diff changeset
1239 @HotSpotVMField(name = "nmethod::_comp_level", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int nmethodCompLevelOffset;
800057208a2c enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 14105
diff changeset
1240
800057208a2c enable C1 + Graal tiered
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 14105
diff changeset
1241 @HotSpotVMConstant(name = "CompLevel_full_optimization") @Stable public int compilationLevelFullOptimization;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1242
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1243 @HotSpotVMType(name = "BasicLock", get = HotSpotVMType.Type.SIZE) @Stable public int basicLockSize;
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1244 @HotSpotVMField(name = "BasicLock::_displaced_header", type = "markOop", get = HotSpotVMField.Type.OFFSET) @Stable public int basicLockDisplacedHeaderOffset;
7220
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7125
diff changeset
1245
20810
4407dc8b1323 Only access head end/top address if heap supports inline contiguous alloc
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 19810
diff changeset
1246 @HotSpotVMValue(expression = "Universe::heap()->supports_inline_contig_alloc() ? Universe::heap()->end_addr() : (HeapWord**)-1", get = HotSpotVMValue.Type.ADDRESS) @Stable public long heapEndAddress;
4407dc8b1323 Only access head end/top address if heap supports inline contiguous alloc
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 19810
diff changeset
1247 @HotSpotVMValue(expression = "Universe::heap()->supports_inline_contig_alloc() ? Universe::heap()->top_addr() : (HeapWord**)-1", get = HotSpotVMValue.Type.ADDRESS) @Stable public long heapTopAddress;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1248
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1249 @HotSpotVMField(name = "Thread::_allocated_bytes", type = "jlong", get = HotSpotVMField.Type.OFFSET) @Stable public int threadAllocatedBytesOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1250
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1251 @HotSpotVMFlag(name = "TLABWasteIncrement") @Stable public int tlabRefillWasteIncrement;
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1252 @HotSpotVMValue(expression = "ThreadLocalAllocBuffer::alignment_reserve()") @Stable public int tlabAlignmentReserve;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1253
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1254 @HotSpotVMField(name = "ThreadLocalAllocBuffer::_start", type = "HeapWord*", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferStartOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1255 @HotSpotVMField(name = "ThreadLocalAllocBuffer::_end", type = "HeapWord*", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferEndOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1256 @HotSpotVMField(name = "ThreadLocalAllocBuffer::_top", type = "HeapWord*", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferTopOffset;
15066
2cae21d9f122 HSAIL: initial support for object allocation in HSAIL kernels
Doug Simon <doug.simon@oracle.com>
parents: 15062
diff changeset
1257 @HotSpotVMField(name = "ThreadLocalAllocBuffer::_pf_top", type = "HeapWord*", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferPfTopOffset;
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1258 @HotSpotVMField(name = "ThreadLocalAllocBuffer::_slow_allocations", type = "unsigned", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferSlowAllocationsOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1259 @HotSpotVMField(name = "ThreadLocalAllocBuffer::_fast_refill_waste", type = "unsigned", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferFastRefillWasteOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1260 @HotSpotVMField(name = "ThreadLocalAllocBuffer::_number_of_refills", type = "unsigned", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferNumberOfRefillsOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1261 @HotSpotVMField(name = "ThreadLocalAllocBuffer::_refill_waste_limit", type = "size_t", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferRefillWasteLimitOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1262 @HotSpotVMField(name = "ThreadLocalAllocBuffer::_desired_size", type = "size_t", get = HotSpotVMField.Type.OFFSET) @Stable private int threadLocalAllocBufferDesiredSizeOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1263
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1264 public int tlabSlowAllocationsOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1265 return threadTlabOffset + threadLocalAllocBufferSlowAllocationsOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1266 }
7220
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7125
diff changeset
1267
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1268 public int tlabFastRefillWasteOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1269 return threadTlabOffset + threadLocalAllocBufferFastRefillWasteOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1270 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1271
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1272 public int tlabNumberOfRefillsOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1273 return threadTlabOffset + threadLocalAllocBufferNumberOfRefillsOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1274 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1275
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1276 public int tlabRefillWasteLimitOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1277 return threadTlabOffset + threadLocalAllocBufferRefillWasteLimitOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1278 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1279
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1280 public int threadTlabSizeOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1281 return threadTlabOffset + threadLocalAllocBufferDesiredSizeOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1282 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1283
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1284 public int threadTlabStartOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1285 return threadTlabOffset + threadLocalAllocBufferStartOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1286 }
7220
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7125
diff changeset
1287
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1288 public int threadTlabEndOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1289 return threadTlabOffset + threadLocalAllocBufferEndOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1290 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1291
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1292 public int threadTlabTopOffset() {
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1293 return threadTlabOffset + threadLocalAllocBufferTopOffset;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1294 }
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1295
15066
2cae21d9f122 HSAIL: initial support for object allocation in HSAIL kernels
Doug Simon <doug.simon@oracle.com>
parents: 15062
diff changeset
1296 public int threadTlabPfTopOffset() {
2cae21d9f122 HSAIL: initial support for object allocation in HSAIL kernels
Doug Simon <doug.simon@oracle.com>
parents: 15062
diff changeset
1297 return threadTlabOffset + threadLocalAllocBufferPfTopOffset;
2cae21d9f122 HSAIL: initial support for object allocation in HSAIL kernels
Doug Simon <doug.simon@oracle.com>
parents: 15062
diff changeset
1298 }
2cae21d9f122 HSAIL: initial support for object allocation in HSAIL kernels
Doug Simon <doug.simon@oracle.com>
parents: 15062
diff changeset
1299
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1300 @HotSpotVMFlag(name = "TLABStats") @Stable public boolean tlabStats;
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1301 @HotSpotVMValue(expression = " !CMSIncrementalMode && Universe::heap()->supports_inline_contig_alloc()") @Stable public boolean inlineContiguousAllocationSupported;
6950
41938af2b3d8 modifications to support non-perm-gen changes in HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 6674
diff changeset
1302
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
1303 /**
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1304 * The DataLayout header size is the same as the cell size.
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
1305 */
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1306 @HotSpotVMConstant(name = "DataLayout::cell_size") @Stable public int dataLayoutHeaderSize;
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1307 @HotSpotVMField(name = "DataLayout::_header._struct._tag", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int dataLayoutTagOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1308 @HotSpotVMField(name = "DataLayout::_header._struct._flags", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int dataLayoutFlagsOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1309 @HotSpotVMField(name = "DataLayout::_header._struct._bci", type = "u2", get = HotSpotVMField.Type.OFFSET) @Stable public int dataLayoutBCIOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1310 @HotSpotVMField(name = "DataLayout::_cells[0]", type = "intptr_t", get = HotSpotVMField.Type.OFFSET) @Stable public int dataLayoutCellsOffset;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1311 @HotSpotVMConstant(name = "DataLayout::cell_size") @Stable public int dataLayoutCellSize;
10897
9c4f90e48c60 read HotSpot VM options via HotSpotDiagnosticMXBean
twisti
parents: 10772
diff changeset
1312
13182
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1313 @HotSpotVMConstant(name = "DataLayout::no_tag") @Stable public int dataLayoutNoTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1314 @HotSpotVMConstant(name = "DataLayout::bit_data_tag") @Stable public int dataLayoutBitDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1315 @HotSpotVMConstant(name = "DataLayout::counter_data_tag") @Stable public int dataLayoutCounterDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1316 @HotSpotVMConstant(name = "DataLayout::jump_data_tag") @Stable public int dataLayoutJumpDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1317 @HotSpotVMConstant(name = "DataLayout::receiver_type_data_tag") @Stable public int dataLayoutReceiverTypeDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1318 @HotSpotVMConstant(name = "DataLayout::virtual_call_data_tag") @Stable public int dataLayoutVirtualCallDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1319 @HotSpotVMConstant(name = "DataLayout::ret_data_tag") @Stable public int dataLayoutRetDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1320 @HotSpotVMConstant(name = "DataLayout::branch_data_tag") @Stable public int dataLayoutBranchDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1321 @HotSpotVMConstant(name = "DataLayout::multi_branch_data_tag") @Stable public int dataLayoutMultiBranchDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1322 @HotSpotVMConstant(name = "DataLayout::arg_info_data_tag") @Stable public int dataLayoutArgInfoDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1323 @HotSpotVMConstant(name = "DataLayout::call_type_data_tag") @Stable public int dataLayoutCallTypeDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1324 @HotSpotVMConstant(name = "DataLayout::virtual_call_type_data_tag") @Stable public int dataLayoutVirtualCallTypeDataTag;
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1325 @HotSpotVMConstant(name = "DataLayout::parameters_type_data_tag") @Stable public int dataLayoutParametersTypeDataTag;
18041
52b4284cb496 Merge with jdk8u20-b26
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 17393
diff changeset
1326 @HotSpotVMConstant(name = "DataLayout::speculative_trap_data_tag") @Stable public int dataLayoutSpeculativeTrapDataTag;
13182
599eaf3bc4b2 get DataLayout tags from VM
twisti
parents: 13170
diff changeset
1327
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1328 @HotSpotVMFlag(name = "BciProfileWidth") @Stable public int bciProfileWidth;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1329 @HotSpotVMFlag(name = "TypeProfileWidth") @Stable public int typeProfileWidth;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1330 @HotSpotVMFlag(name = "MethodProfileWidth") @Stable public int methodProfileWidth;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1331
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1332 @HotSpotVMField(name = "CodeBlob::_code_offset", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable private int codeBlobCodeOffsetOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1333 @HotSpotVMField(name = "SharedRuntime::_ic_miss_blob", type = "RuntimeStub*", get = HotSpotVMField.Type.VALUE) @Stable private long inlineCacheMissBlob;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1334
19462
33a783b15758 made use of Graal stubs instead of equivalent HotSpot stubs optional and off by default
Doug Simon <doug.simon@oracle.com>
parents: 19412
diff changeset
1335 @HotSpotVMValue(expression = "SharedRuntime::deopt_blob()->unpack()", get = HotSpotVMValue.Type.ADDRESS) @Stable public long handleDeoptStub;
33a783b15758 made use of Graal stubs instead of equivalent HotSpot stubs optional and off by default
Doug Simon <doug.simon@oracle.com>
parents: 19412
diff changeset
1336 @HotSpotVMValue(expression = "SharedRuntime::deopt_blob()->uncommon_trap()", get = HotSpotVMValue.Type.ADDRESS) @Stable public long uncommonTrapStub;
33a783b15758 made use of Graal stubs instead of equivalent HotSpot stubs optional and off by default
Doug Simon <doug.simon@oracle.com>
parents: 19412
diff changeset
1337
22540
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
1338 public final long inlineCacheMissStub;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1339
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1340 @HotSpotVMField(name = "CodeCache::_heap", type = "CodeHeap*", get = HotSpotVMField.Type.VALUE) @Stable private long codeCacheHeap;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1341 @HotSpotVMField(name = "CodeHeap::_memory", type = "VirtualSpace", get = HotSpotVMField.Type.OFFSET) @Stable private int codeHeapMemoryOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1342 @HotSpotVMField(name = "VirtualSpace::_low_boundary", type = "char*", get = HotSpotVMField.Type.OFFSET) @Stable private int virtualSpaceLowBoundaryOffset;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1343 @HotSpotVMField(name = "VirtualSpace::_high_boundary", type = "char*", get = HotSpotVMField.Type.OFFSET) @Stable private int virtualSpaceHighBoundaryOffset;
11430
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
1344
22540
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
1345 public final long codeCacheLowBound;
df2764d92a3c Renames to be more consistent with jvmci-9
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22529
diff changeset
1346 public final long codeCacheHighBound;
4439
f7251c729b31 profiling info first try
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4199
diff changeset
1347
13242
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1348 @HotSpotVMField(name = "StubRoutines::_aescrypt_encryptBlock", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long aescryptEncryptBlockStub;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1349 @HotSpotVMField(name = "StubRoutines::_aescrypt_decryptBlock", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long aescryptDecryptBlockStub;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1350 @HotSpotVMField(name = "StubRoutines::_cipherBlockChaining_encryptAESCrypt", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long cipherBlockChainingEncryptAESCryptStub;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1351 @HotSpotVMField(name = "StubRoutines::_cipherBlockChaining_decryptAESCrypt", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long cipherBlockChainingDecryptAESCryptStub;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1352 @HotSpotVMField(name = "StubRoutines::_updateBytesCRC32", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long updateBytesCRC32Stub;
65c0f2ec1ad7 added type to HotSpotVMField annotation in order to verify the expected type
twisti
parents: 13241
diff changeset
1353 @HotSpotVMField(name = "StubRoutines::_crc_table_adr", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long crcTableAddress;
6521
2a0c9f20baa1 consolidated framework for runtime and stub calls and moved declaration of descriptors for such calls to the source file in which they are used
Doug Simon <doug.simon@oracle.com>
parents: 6494
diff changeset
1354
13933
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1355 @HotSpotVMField(name = "StubRoutines::_jbyte_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jbyteArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1356 @HotSpotVMField(name = "StubRoutines::_jshort_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jshortArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1357 @HotSpotVMField(name = "StubRoutines::_jint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jintArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1358 @HotSpotVMField(name = "StubRoutines::_jlong_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jlongArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1359 @HotSpotVMField(name = "StubRoutines::_oop_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long oopArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1360 @HotSpotVMField(name = "StubRoutines::_oop_arraycopy_uninit", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long oopArraycopyUninit;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1361 @HotSpotVMField(name = "StubRoutines::_jbyte_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jbyteDisjointArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1362 @HotSpotVMField(name = "StubRoutines::_jshort_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jshortDisjointArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1363 @HotSpotVMField(name = "StubRoutines::_jint_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jintDisjointArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1364 @HotSpotVMField(name = "StubRoutines::_jlong_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jlongDisjointArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1365 @HotSpotVMField(name = "StubRoutines::_oop_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long oopDisjointArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1366 @HotSpotVMField(name = "StubRoutines::_oop_disjoint_arraycopy_uninit", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long oopDisjointArraycopyUninit;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1367 @HotSpotVMField(name = "StubRoutines::_arrayof_jbyte_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jbyteAlignedArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1368 @HotSpotVMField(name = "StubRoutines::_arrayof_jshort_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jshortAlignedArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1369 @HotSpotVMField(name = "StubRoutines::_arrayof_jint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jintAlignedArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1370 @HotSpotVMField(name = "StubRoutines::_arrayof_jlong_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jlongAlignedArraycopy;
16028
bca2ed3b97fd skip initialization and use arraycopy for cloning arrays
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16018
diff changeset
1371 @HotSpotVMField(name = "StubRoutines::_arrayof_oop_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long oopAlignedArraycopy;
bca2ed3b97fd skip initialization and use arraycopy for cloning arrays
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16018
diff changeset
1372 @HotSpotVMField(name = "StubRoutines::_arrayof_oop_arraycopy_uninit", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long oopAlignedArraycopyUninit;
13933
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1373 @HotSpotVMField(name = "StubRoutines::_arrayof_jbyte_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jbyteAlignedDisjointArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1374 @HotSpotVMField(name = "StubRoutines::_arrayof_jshort_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jshortAlignedDisjointArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1375 @HotSpotVMField(name = "StubRoutines::_arrayof_jint_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jintAlignedDisjointArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1376 @HotSpotVMField(name = "StubRoutines::_arrayof_jlong_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long jlongAlignedDisjointArraycopy;
16028
bca2ed3b97fd skip initialization and use arraycopy for cloning arrays
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16018
diff changeset
1377 @HotSpotVMField(name = "StubRoutines::_arrayof_oop_disjoint_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long oopAlignedDisjointArraycopy;
bca2ed3b97fd skip initialization and use arraycopy for cloning arrays
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16018
diff changeset
1378 @HotSpotVMField(name = "StubRoutines::_arrayof_oop_disjoint_arraycopy_uninit", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long oopAlignedDisjointArraycopyUninit;
13933
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1379 @HotSpotVMField(name = "StubRoutines::_checkcast_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long checkcastArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1380 @HotSpotVMField(name = "StubRoutines::_checkcast_arraycopy_uninit", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long checkcastArraycopyUninit;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1381 @HotSpotVMField(name = "StubRoutines::_unsafe_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long unsafeArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1382 @HotSpotVMField(name = "StubRoutines::_generic_arraycopy", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long genericArraycopy;
ebd2dfc2b780 use hotspot stubs for primitive arraycopy calls
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13897
diff changeset
1383
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1384 @HotSpotVMValue(expression = "JVMCIRuntime::new_instance", get = HotSpotVMValue.Type.ADDRESS) @Stable public long newInstanceAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1385 @HotSpotVMValue(expression = "JVMCIRuntime::new_array", get = HotSpotVMValue.Type.ADDRESS) @Stable public long newArrayAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1386 @HotSpotVMValue(expression = "JVMCIRuntime::new_multi_array", get = HotSpotVMValue.Type.ADDRESS) @Stable public long newMultiArrayAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1387 @HotSpotVMValue(expression = "JVMCIRuntime::dynamic_new_array", get = HotSpotVMValue.Type.ADDRESS) @Stable public long dynamicNewArrayAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1388 @HotSpotVMValue(expression = "JVMCIRuntime::dynamic_new_instance", get = HotSpotVMValue.Type.ADDRESS) @Stable public long dynamicNewInstanceAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1389 @HotSpotVMValue(expression = "JVMCIRuntime::thread_is_interrupted", get = HotSpotVMValue.Type.ADDRESS) @Stable public long threadIsInterruptedAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1390 @HotSpotVMValue(expression = "JVMCIRuntime::vm_message", signature = "(unsigned char, long, long, long, long)", get = HotSpotVMValue.Type.ADDRESS) @Stable public long vmMessageAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1391 @HotSpotVMValue(expression = "JVMCIRuntime::identity_hash_code", get = HotSpotVMValue.Type.ADDRESS) @Stable public long identityHashCodeAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1392 @HotSpotVMValue(expression = "JVMCIRuntime::exception_handler_for_pc", signature = "(JavaThread*)", get = HotSpotVMValue.Type.ADDRESS) @Stable public long exceptionHandlerForPcAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1393 @HotSpotVMValue(expression = "JVMCIRuntime::monitorenter", get = HotSpotVMValue.Type.ADDRESS) @Stable public long monitorenterAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1394 @HotSpotVMValue(expression = "JVMCIRuntime::monitorexit", get = HotSpotVMValue.Type.ADDRESS) @Stable public long monitorexitAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1395 @HotSpotVMValue(expression = "JVMCIRuntime::create_null_exception", get = HotSpotVMValue.Type.ADDRESS) @Stable public long createNullPointerExceptionAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1396 @HotSpotVMValue(expression = "JVMCIRuntime::create_out_of_bounds_exception", get = HotSpotVMValue.Type.ADDRESS) @Stable public long createOutOfBoundsExceptionAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1397 @HotSpotVMValue(expression = "JVMCIRuntime::log_primitive", get = HotSpotVMValue.Type.ADDRESS) @Stable public long logPrimitiveAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1398 @HotSpotVMValue(expression = "JVMCIRuntime::log_object", get = HotSpotVMValue.Type.ADDRESS) @Stable public long logObjectAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1399 @HotSpotVMValue(expression = "JVMCIRuntime::log_printf", get = HotSpotVMValue.Type.ADDRESS) @Stable public long logPrintfAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1400 @HotSpotVMValue(expression = "JVMCIRuntime::vm_error", get = HotSpotVMValue.Type.ADDRESS) @Stable public long vmErrorAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1401 @HotSpotVMValue(expression = "JVMCIRuntime::load_and_clear_exception", get = HotSpotVMValue.Type.ADDRESS) @Stable public long loadAndClearExceptionAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1402 @HotSpotVMValue(expression = "JVMCIRuntime::write_barrier_pre", get = HotSpotVMValue.Type.ADDRESS) @Stable public long writeBarrierPreAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1403 @HotSpotVMValue(expression = "JVMCIRuntime::write_barrier_post", get = HotSpotVMValue.Type.ADDRESS) @Stable public long writeBarrierPostAddress;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1404 @HotSpotVMValue(expression = "JVMCIRuntime::validate_object", get = HotSpotVMValue.Type.ADDRESS) @Stable public long validateObject;
9338
0266549ff6e0 added support from compiled stubs to be installed as RuntimeStubs and to be able to directly call C/C++ runtime functions (GRAAL-81)
Doug Simon <doug.simon@oracle.com>
parents: 9232
diff changeset
1405
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1406 @HotSpotVMValue(expression = "JVMCIRuntime::test_deoptimize_call_int", get = HotSpotVMValue.Type.ADDRESS) @Stable public long testDeoptimizeCallInt;
18227
bcb1e5c232d8 Test deoptimization inside ForeignCallNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 18041
diff changeset
1407
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1408 @HotSpotVMValue(expression = "SharedRuntime::register_finalizer", get = HotSpotVMValue.Type.ADDRESS) @Stable public long registerFinalizerAddress;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1409 @HotSpotVMValue(expression = "SharedRuntime::exception_handler_for_return_address", get = HotSpotVMValue.Type.ADDRESS) @Stable public long exceptionHandlerForReturnAddressAddress;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1410 @HotSpotVMValue(expression = "SharedRuntime::OSR_migration_end", get = HotSpotVMValue.Type.ADDRESS) @Stable public long osrMigrationEndAddress;
13776
8305aec3a1ae an empty architecture specification implies all architectures
Doug Simon <doug.simon@oracle.com>
parents: 13641
diff changeset
1411
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1412 @HotSpotVMValue(expression = "os::javaTimeMillis", get = HotSpotVMValue.Type.ADDRESS) @Stable public long javaTimeMillisAddress;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1413 @HotSpotVMValue(expression = "os::javaTimeNanos", get = HotSpotVMValue.Type.ADDRESS) @Stable public long javaTimeNanosAddress;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1414 @HotSpotVMValue(expression = "SharedRuntime::dsin", get = HotSpotVMValue.Type.ADDRESS) @Stable public long arithmeticSinAddress;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1415 @HotSpotVMValue(expression = "SharedRuntime::dcos", get = HotSpotVMValue.Type.ADDRESS) @Stable public long arithmeticCosAddress;
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1416 @HotSpotVMValue(expression = "SharedRuntime::dtan", get = HotSpotVMValue.Type.ADDRESS) @Stable public long arithmeticTanAddress;
20846
ac9d0db0716e expose more HotSpot runtime math methods to Graal
Doug Simon <doug.simon@oracle.com>
parents: 20810
diff changeset
1417 @HotSpotVMValue(expression = "SharedRuntime::dexp", get = HotSpotVMValue.Type.ADDRESS) @Stable public long arithmeticExpAddress;
ac9d0db0716e expose more HotSpot runtime math methods to Graal
Doug Simon <doug.simon@oracle.com>
parents: 20810
diff changeset
1418 @HotSpotVMValue(expression = "SharedRuntime::dlog", get = HotSpotVMValue.Type.ADDRESS) @Stable public long arithmeticLogAddress;
ac9d0db0716e expose more HotSpot runtime math methods to Graal
Doug Simon <doug.simon@oracle.com>
parents: 20810
diff changeset
1419 @HotSpotVMValue(expression = "SharedRuntime::dlog10", get = HotSpotVMValue.Type.ADDRESS) @Stable public long arithmeticLog10Address;
19810
853f84c7cc6f fixed Math.pow intrinsic to make a runtime call instead of calling the original method
Doug Simon <doug.simon@oracle.com>
parents: 19782
diff changeset
1420 @HotSpotVMValue(expression = "SharedRuntime::dpow", get = HotSpotVMValue.Type.ADDRESS) @Stable public long arithmeticPowAddress;
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1421
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1422 @HotSpotVMValue(expression = "(jint) JVMCICounterSize") @Stable public int jvmciCountersSize;
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1423
16182
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1424 @HotSpotVMValue(expression = "Deoptimization::fetch_unroll_info", signature = "(JavaThread*)", get = HotSpotVMValue.Type.ADDRESS) @Stable public long deoptimizationFetchUnrollInfo;
15805
dffc37fa7157 initialize HotSpotVMConfig fields efficiently from C++
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15725
diff changeset
1425 @HotSpotVMValue(expression = "Deoptimization::uncommon_trap", get = HotSpotVMValue.Type.ADDRESS) @Stable public long deoptimizationUncommonTrap;
16182
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1426 @HotSpotVMValue(expression = "Deoptimization::unpack_frames", signature = "(JavaThread*, int)", get = HotSpotVMValue.Type.ADDRESS) @Stable public long deoptimizationUnpackFrames;
15104
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1427
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1428 @HotSpotVMConstant(name = "Deoptimization::Reason_none") @Stable public int deoptReasonNone;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1429 @HotSpotVMConstant(name = "Deoptimization::Reason_null_check") @Stable public int deoptReasonNullCheck;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1430 @HotSpotVMConstant(name = "Deoptimization::Reason_range_check") @Stable public int deoptReasonRangeCheck;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1431 @HotSpotVMConstant(name = "Deoptimization::Reason_class_check") @Stable public int deoptReasonClassCheck;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1432 @HotSpotVMConstant(name = "Deoptimization::Reason_array_check") @Stable public int deoptReasonArrayCheck;
18403
b9f2356c3a69 HotSpotVMConfig: use the correct deopt reason constants
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 18308
diff changeset
1433 @HotSpotVMConstant(name = "Deoptimization::Reason_unreached0") @Stable public int deoptReasonUnreached0;
b9f2356c3a69 HotSpotVMConfig: use the correct deopt reason constants
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 18308
diff changeset
1434 @HotSpotVMConstant(name = "Deoptimization::Reason_type_checked_inlining") @Stable public int deoptReasonTypeCheckInlining;
b9f2356c3a69 HotSpotVMConfig: use the correct deopt reason constants
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 18308
diff changeset
1435 @HotSpotVMConstant(name = "Deoptimization::Reason_optimized_type_check") @Stable public int deoptReasonOptimizedTypeCheck;
b9f2356c3a69 HotSpotVMConfig: use the correct deopt reason constants
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 18308
diff changeset
1436 @HotSpotVMConstant(name = "Deoptimization::Reason_not_compiled_exception_handler") @Stable public int deoptReasonNotCompiledExceptionHandler;
b9f2356c3a69 HotSpotVMConfig: use the correct deopt reason constants
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 18308
diff changeset
1437 @HotSpotVMConstant(name = "Deoptimization::Reason_unresolved") @Stable public int deoptReasonUnresolved;
b9f2356c3a69 HotSpotVMConfig: use the correct deopt reason constants
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 18308
diff changeset
1438 @HotSpotVMConstant(name = "Deoptimization::Reason_jsr_mismatch") @Stable public int deoptReasonJsrMismatch;
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1439 @HotSpotVMConstant(name = "Deoptimization::Reason_div0_check") @Stable public int deoptReasonDiv0Check;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1440 @HotSpotVMConstant(name = "Deoptimization::Reason_constraint") @Stable public int deoptReasonConstraint;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1441 @HotSpotVMConstant(name = "Deoptimization::Reason_loop_limit_check") @Stable public int deoptReasonLoopLimitCheck;
13155
1dd9aa5a9ee5 Deoptimization reason for failed aliasing assumptions.
Roland Schatz <roland.schatz@oracle.com>
parents: 13103
diff changeset
1442 @HotSpotVMConstant(name = "Deoptimization::Reason_aliasing") @Stable public int deoptReasonAliasing;
16535
ada0a7729b6f Truffle: introduce debug option to print the stack trace when transferring to the interpreter
Andreas Woess <andreas.woess@jku.at>
parents: 16399
diff changeset
1443 @HotSpotVMConstant(name = "Deoptimization::Reason_transfer_to_interpreter") @Stable public int deoptReasonTransferToInterpreter;
13216
51e97f88c771 Profile deoptimizations of OSR methods separately.
Roland Schatz <roland.schatz@oracle.com>
parents: 13214
diff changeset
1444 @HotSpotVMConstant(name = "Deoptimization::Reason_LIMIT") @Stable public int deoptReasonOSROffset;
7154
5d0bb7d52783 changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
Doug Simon <doug.simon@oracle.com>
parents: 7147
diff changeset
1445
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1446 @HotSpotVMConstant(name = "Deoptimization::Action_none") @Stable public int deoptActionNone;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1447 @HotSpotVMConstant(name = "Deoptimization::Action_maybe_recompile") @Stable public int deoptActionMaybeRecompile;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1448 @HotSpotVMConstant(name = "Deoptimization::Action_reinterpret") @Stable public int deoptActionReinterpret;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1449 @HotSpotVMConstant(name = "Deoptimization::Action_make_not_entrant") @Stable public int deoptActionMakeNotEntrant;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1450 @HotSpotVMConstant(name = "Deoptimization::Action_make_not_compilable") @Stable public int deoptActionMakeNotCompilable;
7154
5d0bb7d52783 changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
Doug Simon <doug.simon@oracle.com>
parents: 7147
diff changeset
1451
13257
4eacfd0767ed get deoptimization constants in HotSpotMetaAccessProvider from HotSpotVMConfig
twisti
parents: 13255
diff changeset
1452 @HotSpotVMConstant(name = "Deoptimization::_action_bits") @Stable public int deoptimizationActionBits;
4eacfd0767ed get deoptimization constants in HotSpotMetaAccessProvider from HotSpotVMConfig
twisti
parents: 13255
diff changeset
1453 @HotSpotVMConstant(name = "Deoptimization::_reason_bits") @Stable public int deoptimizationReasonBits;
13641
5a9afbf72714 Add a speculation oop for uncommon trap deoptimization. Save it in the SpeculationLog during deoptimization.
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 13640
diff changeset
1454 @HotSpotVMConstant(name = "Deoptimization::_debug_id_bits") @Stable public int deoptimizationDebugIdBits;
13257
4eacfd0767ed get deoptimization constants in HotSpotMetaAccessProvider from HotSpotVMConfig
twisti
parents: 13255
diff changeset
1455 @HotSpotVMConstant(name = "Deoptimization::_action_shift") @Stable public int deoptimizationActionShift;
4eacfd0767ed get deoptimization constants in HotSpotMetaAccessProvider from HotSpotVMConfig
twisti
parents: 13255
diff changeset
1456 @HotSpotVMConstant(name = "Deoptimization::_reason_shift") @Stable public int deoptimizationReasonShift;
13641
5a9afbf72714 Add a speculation oop for uncommon trap deoptimization. Save it in the SpeculationLog during deoptimization.
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 13640
diff changeset
1457 @HotSpotVMConstant(name = "Deoptimization::_debug_id_shift") @Stable public int deoptimizationDebugIdShift;
13257
4eacfd0767ed get deoptimization constants in HotSpotMetaAccessProvider from HotSpotVMConfig
twisti
parents: 13255
diff changeset
1458
15104
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1459 @HotSpotVMConstant(name = "Deoptimization::Unpack_deopt") @Stable public int deoptimizationUnpackDeopt;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1460 @HotSpotVMConstant(name = "Deoptimization::Unpack_exception") @Stable public int deoptimizationUnpackException;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1461 @HotSpotVMConstant(name = "Deoptimization::Unpack_uncommon_trap") @Stable public int deoptimizationUnpackUncommonTrap;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1462 @HotSpotVMConstant(name = "Deoptimization::Unpack_reexecute") @Stable public int deoptimizationUnpackReexecute;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1463
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1464 @HotSpotVMField(name = "Deoptimization::UnrollBlock::_size_of_deoptimized_frame", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int deoptimizationUnrollBlockSizeOfDeoptimizedFrameOffset;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1465 @HotSpotVMField(name = "Deoptimization::UnrollBlock::_caller_adjustment", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int deoptimizationUnrollBlockCallerAdjustmentOffset;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1466 @HotSpotVMField(name = "Deoptimization::UnrollBlock::_number_of_frames", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int deoptimizationUnrollBlockNumberOfFramesOffset;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1467 @HotSpotVMField(name = "Deoptimization::UnrollBlock::_total_frame_sizes", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int deoptimizationUnrollBlockTotalFrameSizesOffset;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1468 @HotSpotVMField(name = "Deoptimization::UnrollBlock::_frame_sizes", type = "intptr_t*", get = HotSpotVMField.Type.OFFSET) @Stable public int deoptimizationUnrollBlockFrameSizesOffset;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1469 @HotSpotVMField(name = "Deoptimization::UnrollBlock::_frame_pcs", type = "address*", get = HotSpotVMField.Type.OFFSET) @Stable public int deoptimizationUnrollBlockFramePcsOffset;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1470 @HotSpotVMField(name = "Deoptimization::UnrollBlock::_initial_info", type = "intptr_t", get = HotSpotVMField.Type.OFFSET) @Stable public int deoptimizationUnrollBlockInitialInfoOffset;
ed29f7ff71eb add DeoptimizationStub
twisti
parents: 15102
diff changeset
1471
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1472 @HotSpotVMConstant(name = "vmIntrinsics::_invokeBasic") @Stable public int vmIntrinsicInvokeBasic;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1473 @HotSpotVMConstant(name = "vmIntrinsics::_linkToVirtual") @Stable public int vmIntrinsicLinkToVirtual;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1474 @HotSpotVMConstant(name = "vmIntrinsics::_linkToStatic") @Stable public int vmIntrinsicLinkToStatic;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1475 @HotSpotVMConstant(name = "vmIntrinsics::_linkToSpecial") @Stable public int vmIntrinsicLinkToSpecial;
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1476 @HotSpotVMConstant(name = "vmIntrinsics::_linkToInterface") @Stable public int vmIntrinsicLinkToInterface;
9013
3b0ec709827c added macro substitutions for the @PolymorphicSignature methods in MethodHandle
Doug Simon <doug.simon@oracle.com>
parents: 8996
diff changeset
1477
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1478 @HotSpotVMConstant(name = "JVMCIEnv::ok") @Stable public int codeInstallResultOk;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1479 @HotSpotVMConstant(name = "JVMCIEnv::dependencies_failed") @Stable public int codeInstallResultDependenciesFailed;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1480 @HotSpotVMConstant(name = "JVMCIEnv::dependencies_invalid") @Stable public int codeInstallResultDependenciesInvalid;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1481 @HotSpotVMConstant(name = "JVMCIEnv::cache_full") @Stable public int codeInstallResultCacheFull;
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21554
diff changeset
1482 @HotSpotVMConstant(name = "JVMCIEnv::code_too_large") @Stable public int codeInstallResultCodeTooLarge;
13170
f294b4ee2d47 make CodeInstallResult enum independent of the actual values in C++ code
twisti
parents: 13155
diff changeset
1483
21414
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1484 public String getCodeInstallResultDescription(int codeInstallResult) {
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1485 if (codeInstallResult == codeInstallResultOk) {
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1486 return "ok";
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1487 }
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1488 if (codeInstallResult == codeInstallResultDependenciesFailed) {
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1489 return "dependencies failed";
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1490 }
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1491 if (codeInstallResult == codeInstallResultDependenciesInvalid) {
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1492 return "dependencies invalid";
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1493 }
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1494 if (codeInstallResult == codeInstallResultCacheFull) {
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1495 return "code cache is full";
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1496 }
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1497 if (codeInstallResult == codeInstallResultCodeTooLarge) {
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1498 return "code is too large";
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1499 }
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1500 assert false : codeInstallResult;
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1501 return "unknown";
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1502 }
b04f579c803f removed unnecessary CompilerToVM.CodeInstallResult enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21413
diff changeset
1503
14093
dd783f0ecf17 refactor CompilerToVM interface
twisti
parents: 14052
diff changeset
1504 @HotSpotVMConstant(name = "CompilerToVM::KLASS_TAG") @Stable public int compilerToVMKlassTag;
dd783f0ecf17 refactor CompilerToVM interface
twisti
parents: 14052
diff changeset
1505 @HotSpotVMConstant(name = "CompilerToVM::SYMBOL_TAG") @Stable public int compilerToVMSymbolTag;
dd783f0ecf17 refactor CompilerToVM interface
twisti
parents: 14052
diff changeset
1506
21413
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1507 // Checkstyle: stop
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1508 @HotSpotVMConstant(name = "CodeInstaller::VERIFIED_ENTRY") @Stable public int MARKID_VERIFIED_ENTRY;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1509 @HotSpotVMConstant(name = "CodeInstaller::UNVERIFIED_ENTRY") @Stable public int MARKID_UNVERIFIED_ENTRY;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1510 @HotSpotVMConstant(name = "CodeInstaller::OSR_ENTRY") @Stable public int MARKID_OSR_ENTRY;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1511 @HotSpotVMConstant(name = "CodeInstaller::EXCEPTION_HANDLER_ENTRY") @Stable public int MARKID_EXCEPTION_HANDLER_ENTRY;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1512 @HotSpotVMConstant(name = "CodeInstaller::DEOPT_HANDLER_ENTRY") @Stable public int MARKID_DEOPT_HANDLER_ENTRY;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1513 @HotSpotVMConstant(name = "CodeInstaller::INVOKEINTERFACE") @Stable public int MARKID_INVOKEINTERFACE;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1514 @HotSpotVMConstant(name = "CodeInstaller::INVOKEVIRTUAL") @Stable public int MARKID_INVOKEVIRTUAL;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1515 @HotSpotVMConstant(name = "CodeInstaller::INVOKESTATIC") @Stable public int MARKID_INVOKESTATIC;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1516 @HotSpotVMConstant(name = "CodeInstaller::INVOKESPECIAL") @Stable public int MARKID_INVOKESPECIAL;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1517 @HotSpotVMConstant(name = "CodeInstaller::INLINE_INVOKE") @Stable public int MARKID_INLINE_INVOKE;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1518 @HotSpotVMConstant(name = "CodeInstaller::POLL_NEAR") @Stable public int MARKID_POLL_NEAR;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1519 @HotSpotVMConstant(name = "CodeInstaller::POLL_RETURN_NEAR") @Stable public int MARKID_POLL_RETURN_NEAR;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1520 @HotSpotVMConstant(name = "CodeInstaller::POLL_FAR") @Stable public int MARKID_POLL_FAR;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1521 @HotSpotVMConstant(name = "CodeInstaller::POLL_RETURN_FAR") @Stable public int MARKID_POLL_RETURN_FAR;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1522 @HotSpotVMConstant(name = "CodeInstaller::CARD_TABLE_SHIFT") @Stable public int MARKID_CARD_TABLE_SHIFT;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1523 @HotSpotVMConstant(name = "CodeInstaller::CARD_TABLE_ADDRESS") @Stable public int MARKID_CARD_TABLE_ADDRESS;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1524 @HotSpotVMConstant(name = "CodeInstaller::INVOKE_INVALID") @Stable public int MARKID_INVOKE_INVALID;
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1525
22572
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1526 @HotSpotVMConstant(name = "BitData::exception_seen_flag") @Stable public int bitDataExceptionSeenFlag;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1527 @HotSpotVMConstant(name = "BitData::null_seen_flag") @Stable public int bitDataNullSeenFlag;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1528 @HotSpotVMConstant(name = "CounterData::count_off") @Stable public int methodDataCountOffset;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1529 @HotSpotVMConstant(name = "JumpData::taken_off_set") @Stable public int jumpDataTakenOffset;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1530 @HotSpotVMConstant(name = "JumpData::displacement_off_set") @Stable public int jumpDataDisplacementOffset;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1531 @HotSpotVMConstant(name = "ReceiverTypeData::nonprofiled_count_off_set") @Stable public int receiverTypeDataNonprofiledCountOffset;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1532 @HotSpotVMConstant(name = "ReceiverTypeData::receiver_type_row_cell_count") @Stable public int receiverTypeDataReceiverTypeRowCellCount;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1533 @HotSpotVMConstant(name = "ReceiverTypeData::receiver0_offset") @Stable public int receiverTypeDataReceiver0Offset;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1534 @HotSpotVMConstant(name = "ReceiverTypeData::count0_offset") @Stable public int receiverTypeDataCount0Offset;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1535 @HotSpotVMConstant(name = "BranchData::not_taken_off_set") @Stable public int branchDataNotTakenOffset;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1536 @HotSpotVMConstant(name = "ArrayData::array_len_off_set") @Stable public int arrayDataArrayLenOffset;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1537 @HotSpotVMConstant(name = "ArrayData::array_start_off_set") @Stable public int arrayDataArrayStartOffset;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1538 @HotSpotVMConstant(name = "MultiBranchData::per_case_cell_count") @Stable public int multiBranchDataPerCaseCellCount;
c3b49e9d0f48 HotSpotMethodData shouldn't hardcode constants
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22569
diff changeset
1539
21413
15a46a918fc1 removed unnecessary HotSpotCodeCache.MarkId enum (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21411
diff changeset
1540 // Checkstyle: resume
14574
6bab029d6e3a removed com/oracle/graal/hotspot/bridge/Marks.java and replaced with enum
twisti
parents: 14551
diff changeset
1541
11430
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
1542 public boolean check() {
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
1543 for (Field f : getClass().getDeclaredFields()) {
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
1544 int modifiers = f.getModifiers();
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
1545 if (Modifier.isPublic(modifiers) && !Modifier.isStatic(modifiers)) {
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1546 assert Modifier.isFinal(modifiers) || f.getAnnotation(Stable.class) != null : "field should either be final or @Stable: " + f;
11430
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
1547 }
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
1548 }
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1549
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1550 assert codeEntryAlignment > 0 : codeEntryAlignment;
13593
24353c21ef34 slightly better (denser) Class.isArray check
twisti
parents: 13578
diff changeset
1551 assert (layoutHelperArrayTagObjectValue & (1 << (Integer.SIZE - 1))) != 0 : "object array must have first bit set";
24353c21ef34 slightly better (denser) Class.isArray check
twisti
parents: 13578
diff changeset
1552 assert (layoutHelperArrayTagTypeValue & (1 << (Integer.SIZE - 1))) != 0 : "type array must have first bit set";
12559
ae412befde21 read HotSpotVMConfig fields from HotSpot's vmStructs via annotations
twisti
parents: 12372
diff changeset
1553
11430
a7dd2d728500 made all public, non-static fields in HotSpotVMConfig final
Doug Simon <doug.simon@oracle.com>
parents: 11238
diff changeset
1554 return true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1555 }
13520
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1556
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1557 /**
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1558 * A compact representation of the different encoding strategies for Objects and metadata.
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1559 */
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1560 public static class CompressEncoding {
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1561 public final long base;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1562 public final int shift;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1563 public final int alignment;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1564
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1565 CompressEncoding(long base, int shift, int alignment) {
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1566 this.base = base;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1567 this.shift = shift;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1568 this.alignment = alignment;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1569 }
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1570
15023
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1571 public int compress(long ptr) {
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1572 if (ptr == 0L) {
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1573 return 0;
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1574 } else {
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1575 return (int) ((ptr - base) >>> shift);
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1576 }
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1577 }
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1578
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1579 public long uncompress(int ptr) {
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1580 if (ptr == 0) {
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1581 return 0L;
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1582 } else {
15062
10b0b01a4a61 Fix operator precedence bug.
Roland Schatz <roland.schatz@oracle.com>
parents: 15052
diff changeset
1583 return ((ptr & 0xFFFFFFFFL) << shift) + base;
15023
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1584 }
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1585 }
652564fe42d5 Use CompressionNode for accessing compressed Klass pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14989
diff changeset
1586
13520
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1587 @Override
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1588 public String toString() {
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1589 return "base: " + base + " shift: " + shift + " alignment: " + alignment;
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1590 }
14943
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1591
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1592 @Override
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1593 public int hashCode() {
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1594 final int prime = 31;
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1595 int result = 1;
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1596 result = prime * result + alignment;
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1597 result = prime * result + (int) (base ^ (base >>> 32));
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1598 result = prime * result + shift;
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1599 return result;
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1600 }
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1601
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1602 @Override
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1603 public boolean equals(Object obj) {
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1604 if (obj instanceof CompressEncoding) {
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1605 CompressEncoding other = (CompressEncoding) obj;
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1606 return alignment == other.alignment && base == other.base && shift == other.shift;
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1607 } else {
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1608 return false;
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1609 }
e5a55d280f24 Floating nodes for compressing and uncompressing pointers.
Roland Schatz <roland.schatz@oracle.com>
parents: 14909
diff changeset
1610 }
13520
fb7b39f07232 Embed compressed constants when possible and use more efficient patterns for encoding
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 13517
diff changeset
1611 }
16182
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1612
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1613 /**
17000
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1614 * Returns the name of the C/C++ symbol that is associated (via HotSpotVMValue annotation) with
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1615 * the HotSpotVMConfig object's field containing {@code value}; returns null if no field holds
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1616 * the provided address.
16182
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1617 *
17000
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1618 * @param value value of the field
16182
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1619 * @return C/C++ symbol name or null
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1620 */
17000
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1621 public String getVMValueCSymbol(long value) {
16182
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1622 for (Field f : HotSpotVMConfig.class.getDeclaredFields()) {
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1623 if (f.isAnnotationPresent(HotSpotVMValue.class)) {
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1624 HotSpotVMValue annotation = f.getAnnotation(HotSpotVMValue.class);
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1625
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1626 if (annotation.get() == HotSpotVMValue.Type.ADDRESS) {
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1627 try {
17000
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1628 if (value == f.getLong(this)) {
16182
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1629 return (annotation.expression() + annotation.signature());
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1630 }
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1631 } catch (IllegalArgumentException e1) {
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1632 // TODO Auto-generated catch block
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1633 e1.printStackTrace();
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1634 } catch (IllegalAccessException e1) {
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1635 // TODO Auto-generated catch block
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1636 e1.printStackTrace();
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1637 }
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1638 }
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1639 }
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1640 }
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1641 return null;
0a7e9347f8d0 Add an ability to specify the signature of a C/C++ foreign function in HotSpotVMConfig and get the full symbol string; add a couple of convenience getters and setters for stubs with foreign call linkage.
bharadwaj
parents: 16076
diff changeset
1642 }
17000
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1643
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1644 /**
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1645 * Returns the name of the C/C++ symbol that is associated (via HotSpotVMField annotation) with
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1646 * the HotSpotVMConfig object's field containing {@code value}; returns null if no field holds
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1647 * the provided address.
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1648 *
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1649 * @param value value of the field
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1650 * @return C/C++ symbol name or null
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1651 */
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1652 public String getVMFieldCSymbol(long value) {
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1653 for (Field f : HotSpotVMConfig.class.getDeclaredFields()) {
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1654 if (f.isAnnotationPresent(HotSpotVMField.class)) {
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1655 HotSpotVMField annotation = f.getAnnotation(HotSpotVMField.class);
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1656
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1657 if (annotation.get() == HotSpotVMField.Type.VALUE) {
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1658 try {
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1659 if (value == f.getLong(this)) {
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1660 return (annotation.name());
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1661 }
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1662 } catch (IllegalArgumentException e1) {
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1663 // TODO Auto-generated catch block
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1664 e1.printStackTrace();
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1665 } catch (IllegalAccessException e1) {
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1666 // TODO Auto-generated catch block
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1667 e1.printStackTrace();
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1668 }
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1669 }
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1670 }
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1671 }
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1672 return null;
e35a3af4f680 Add a getter method to that returns the HotSpot VM symbol string associated via HotSpotVMField annotation. Renamed a similar existing method that returns HotSpot VM symbol string associated via HotSpotVMValue annotation.
bharadwaj
parents: 16795
diff changeset
1673 }
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1674 }