Mercurial > hg > graal-jvmci-8
annotate src/share/vm/graal/graalJavaAccess.hpp @ 5545:65f832e7476b
Further clean up on api.meta project.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sat, 09 Jun 2012 17:54:50 +0200 |
parents | 20e390e09717 |
children | e42c0df7212a |
rev | line source |
---|---|
2516
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
1 /* |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
2 * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
4 * |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
7 * published by the Free Software Foundation. |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
8 * |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
13 * accompanied this code). |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
14 * |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
18 * |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
a384fac3fd34
Removed anything OSR-related.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2502
diff
changeset
|
21 * questions. |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
22 */ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
23 |
2891
75a99b4f1c98
Rebranded C++ part from C1X to Graal.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2890
diff
changeset
|
24 void graal_compute_offsets(); |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
25 |
2663
d7c0775d7e72
added includes to build without precompiled headers
Christian.Wimmer@Oracle.com
parents:
2516
diff
changeset
|
26 #include "classfile/systemDictionary.hpp" |
2492
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
27 #include "oops/instanceMirrorKlass.hpp" |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
28 |
1434
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
29 /* This macro defines the structure of the CiTargetMethod - classes. |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
30 * It will generate classes with accessors similar to javaClasses.hpp, but with specializations for oops, Handles and jni handles. |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
31 * |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
32 * The public interface of these classes will look like this: |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
33 |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
34 * class CiStackSlot : AllStatic { |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
35 * public: |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
36 * static klassOop klass(); |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
37 * static jint index(oop obj); |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
38 * static jint index(Handle obj); |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
39 * static jint index(jobject obj); |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
40 * static void set_index(oop obj, jint x); |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
41 * static void set_index(Handle obj, jint x); |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
42 * static void set_index(jobject obj, jint x); |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
43 * }; |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
44 * |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
45 */ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
46 |
2926
0e3ec0a4eda4
RiTypeProfile information and invocation counters for RiMethods
Lukas Stadler <lukas.stadler@jku.at>
parents:
2891
diff
changeset
|
47 #define COMPILER_CLASSES_DO(start_class, end_class, char_field, int_field, boolean_field, long_field, float_field, oop_field, static_oop_field) \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
48 start_class(HotSpotTypeResolved) \ |
1465
2c754f3a2722
Inlining of static final field values. Java mirror instead of VmID. Support for PrintMetrics option.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
1458
diff
changeset
|
49 oop_field(HotSpotTypeResolved, javaMirror, "Ljava/lang/Class;") \ |
2055
99ad52189524
Refactorings to get towards less CRI overhead.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2048
diff
changeset
|
50 oop_field(HotSpotTypeResolved, simpleName, "Ljava/lang/String;") \ |
1429
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
51 int_field(HotSpotTypeResolved, accessFlags) \ |
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
52 boolean_field(HotSpotTypeResolved, hasFinalizer) \ |
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
53 boolean_field(HotSpotTypeResolved, hasFinalizableSubclass) \ |
5466
af07e798947d
lifted fast subtype check into checkcast snippets
Doug Simon <doug.simon@oracle.com>
parents:
5326
diff
changeset
|
54 int_field(HotSpotTypeResolved, superCheckOffset) \ |
1429
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
55 boolean_field(HotSpotTypeResolved, isArrayClass) \ |
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
56 boolean_field(HotSpotTypeResolved, isInstanceClass) \ |
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
57 boolean_field(HotSpotTypeResolved, isInterface) \ |
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
58 int_field(HotSpotTypeResolved, instanceSize) \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
59 end_class \ |
5326
a53162ca8219
introduced HotSpotKlassOop type to convey a klassOop value from the compiler to the C++ code instead of relying on the C++ code automagically converting a HotSpotTypeResolvedImpl value to a klassOop
Doug Simon <doug.simon@oracle.com>
parents:
5275
diff
changeset
|
60 start_class(HotSpotKlassOop) \ |
a53162ca8219
introduced HotSpotKlassOop type to convey a klassOop value from the compiler to the C++ code instead of relying on the C++ code automagically converting a HotSpotTypeResolvedImpl value to a klassOop
Doug Simon <doug.simon@oracle.com>
parents:
5275
diff
changeset
|
61 oop_field(HotSpotKlassOop, javaMirror, "Ljava/lang/Class;") \ |
a53162ca8219
introduced HotSpotKlassOop type to convey a klassOop value from the compiler to the C++ code instead of relying on the C++ code automagically converting a HotSpotTypeResolvedImpl value to a klassOop
Doug Simon <doug.simon@oracle.com>
parents:
5275
diff
changeset
|
62 end_class \ |
3011
f00918f35c7f
inlining and runtime interface related changes:
Lukas Stadler <lukas.stadler@jku.at>
parents:
2926
diff
changeset
|
63 start_class(HotSpotMethodResolved) \ |
f00918f35c7f
inlining and runtime interface related changes:
Lukas Stadler <lukas.stadler@jku.at>
parents:
2926
diff
changeset
|
64 oop_field(HotSpotMethodResolved, name, "Ljava/lang/String;") \ |
5541
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
65 oop_field(HotSpotMethodResolved, holder, "Lcom/oracle/graal/api/meta/ResolvedJavaType;") \ |
3020
9fed07e4a375
Changed from method/reflect object back to methodOop, because using method/reflection can create deadlock with the user application (test with -Xcomp). Disabled method caching by default and created a flag -G:StoreResultGraph (otherwise eclipse will fail because of being out of memory).
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
3018
diff
changeset
|
66 oop_field(HotSpotMethodResolved, javaMirror, "Ljava/lang/Object;") \ |
3011
f00918f35c7f
inlining and runtime interface related changes:
Lukas Stadler <lukas.stadler@jku.at>
parents:
2926
diff
changeset
|
67 int_field(HotSpotMethodResolved, codeSize) \ |
f00918f35c7f
inlining and runtime interface related changes:
Lukas Stadler <lukas.stadler@jku.at>
parents:
2926
diff
changeset
|
68 int_field(HotSpotMethodResolved, accessFlags) \ |
f00918f35c7f
inlining and runtime interface related changes:
Lukas Stadler <lukas.stadler@jku.at>
parents:
2926
diff
changeset
|
69 int_field(HotSpotMethodResolved, maxLocals) \ |
f00918f35c7f
inlining and runtime interface related changes:
Lukas Stadler <lukas.stadler@jku.at>
parents:
2926
diff
changeset
|
70 int_field(HotSpotMethodResolved, maxStackSize) \ |
4296
d089b71a5237
Add possibility to disable inlining for specific methods.
Andreas Woess <andreas.woess@jku.at>
parents:
4229
diff
changeset
|
71 boolean_field(HotSpotMethodResolved, canBeInlined) \ |
3011
f00918f35c7f
inlining and runtime interface related changes:
Lukas Stadler <lukas.stadler@jku.at>
parents:
2926
diff
changeset
|
72 end_class \ |
4441
4e3aaf14cbc6
fixed graal to hotspot
Christian Haeubl <christian.haeubl@oracle.com>
parents:
4439
diff
changeset
|
73 start_class(HotSpotMethodData) \ |
4444 | 74 oop_field(HotSpotMethodData, hotspotMirror, "Ljava/lang/Object;") \ |
4441
4e3aaf14cbc6
fixed graal to hotspot
Christian Haeubl <christian.haeubl@oracle.com>
parents:
4439
diff
changeset
|
75 int_field(HotSpotMethodData, normalDataSize) \ |
4e3aaf14cbc6
fixed graal to hotspot
Christian Haeubl <christian.haeubl@oracle.com>
parents:
4439
diff
changeset
|
76 int_field(HotSpotMethodData, extraDataSize) \ |
4439
f7251c729b31
profiling info first try
Christian Haeubl <christian.haeubl@oracle.com>
parents:
4229
diff
changeset
|
77 end_class \ |
2055
99ad52189524
Refactorings to get towards less CRI overhead.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2048
diff
changeset
|
78 start_class(HotSpotType) \ |
99ad52189524
Refactorings to get towards less CRI overhead.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2048
diff
changeset
|
79 oop_field(HotSpotType, name, "Ljava/lang/String;") \ |
99ad52189524
Refactorings to get towards less CRI overhead.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2048
diff
changeset
|
80 end_class \ |
1465
2c754f3a2722
Inlining of static final field values. Java mirror instead of VmID. Support for PrintMetrics option.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
1458
diff
changeset
|
81 start_class(HotSpotField) \ |
5538
e18ba36bfebc
Renamed RiConstant => Constant.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5536
diff
changeset
|
82 oop_field(HotSpotField, constant, "Lcom/oracle/graal/api/meta/Constant;") \ |
3619
5e9645341ec3
support for new RiRuntime features: add code without making it the default for the method, executing Java tasks on the compile thread, communicate nmethod reference to Java code as HotSpotCompiledMethod
Lukas Stadler <lukas.stadler@jku.at>
parents:
3591
diff
changeset
|
83 int_field(HotSpotField, offset) \ |
5e9645341ec3
support for new RiRuntime features: add code without making it the default for the method, executing Java tasks on the compile thread, communicate nmethod reference to Java code as HotSpotCompiledMethod
Lukas Stadler <lukas.stadler@jku.at>
parents:
3591
diff
changeset
|
84 int_field(HotSpotField, accessFlags) \ |
5e9645341ec3
support for new RiRuntime features: add code without making it the default for the method, executing Java tasks on the compile thread, communicate nmethod reference to Java code as HotSpotCompiledMethod
Lukas Stadler <lukas.stadler@jku.at>
parents:
3591
diff
changeset
|
85 end_class \ |
5e9645341ec3
support for new RiRuntime features: add code without making it the default for the method, executing Java tasks on the compile thread, communicate nmethod reference to Java code as HotSpotCompiledMethod
Lukas Stadler <lukas.stadler@jku.at>
parents:
3591
diff
changeset
|
86 start_class(HotSpotCompiledMethod) \ |
5e9645341ec3
support for new RiRuntime features: add code without making it the default for the method, executing Java tasks on the compile thread, communicate nmethod reference to Java code as HotSpotCompiledMethod
Lukas Stadler <lukas.stadler@jku.at>
parents:
3591
diff
changeset
|
87 long_field(HotSpotCompiledMethod, nmethod) \ |
5541
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
88 oop_field(HotSpotCompiledMethod, method, "Lcom/oracle/graal/api/meta/ResolvedJavaMethod;")\ |
5275
290b3025b66f
added support for disassembling code after installation (so that the result of patching and relocation can be seen)
Doug Simon <doug.simon@oracle.com>
parents:
5129
diff
changeset
|
89 end_class \ |
290b3025b66f
added support for disassembling code after installation (so that the result of patching and relocation can be seen)
Doug Simon <doug.simon@oracle.com>
parents:
5129
diff
changeset
|
90 start_class(HotSpotCodeInfo) \ |
290b3025b66f
added support for disassembling code after installation (so that the result of patching and relocation can be seen)
Doug Simon <doug.simon@oracle.com>
parents:
5129
diff
changeset
|
91 long_field(HotSpotCodeInfo, start) \ |
290b3025b66f
added support for disassembling code after installation (so that the result of patching and relocation can be seen)
Doug Simon <doug.simon@oracle.com>
parents:
5129
diff
changeset
|
92 oop_field(HotSpotCodeInfo, code, "[B") \ |
1465
2c754f3a2722
Inlining of static final field values. Java mirror instead of VmID. Support for PrintMetrics option.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
1458
diff
changeset
|
93 end_class \ |
4229
8074251d1e05
Fix bug in code installer that caused builds with assertions to crash
Gilles Duboscq <gilles.m.duboscq@gmail.com>
parents:
4223
diff
changeset
|
94 start_class(HotSpotProxy) \ |
8074251d1e05
Fix bug in code installer that caused builds with assertions to crash
Gilles Duboscq <gilles.m.duboscq@gmail.com>
parents:
4223
diff
changeset
|
95 static_oop_field(HotSpotProxy, DUMMY_CONSTANT_OBJ, "Ljava/lang/Long;") \ |
8074251d1e05
Fix bug in code installer that caused builds with assertions to crash
Gilles Duboscq <gilles.m.duboscq@gmail.com>
parents:
4223
diff
changeset
|
96 end_class \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
97 start_class(HotSpotTargetMethod) \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
98 oop_field(HotSpotTargetMethod, targetMethod, "Lcom/oracle/graal/api/code/CiTargetMethod;") \ |
5062
5e9f38419819
Adjust C++ part according to the renaming.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5003
diff
changeset
|
99 oop_field(HotSpotTargetMethod, method, "Lcom/oracle/graal/hotspot/ri/HotSpotMethodResolved;") \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
100 oop_field(HotSpotTargetMethod, name, "Ljava/lang/String;") \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
101 oop_field(HotSpotTargetMethod, sites, "[Lcom/oracle/graal/api/code/CiTargetMethod$Site;") \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
102 oop_field(HotSpotTargetMethod, exceptionHandlers, "[Lcom/oracle/graal/api/code/CiTargetMethod$ExceptionHandler;") \ |
1429
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
103 end_class \ |
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
104 start_class(HotSpotExceptionHandler) \ |
5544
20e390e09717
Convert ExceptionHandler class from interface to final data class. Remove CiExceptionHandler and HotSpotExceptionHandler classes and replace usages with ExceptionHandler class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5542
diff
changeset
|
105 int_field(HotSpotExceptionHandler, startBCI) \ |
20e390e09717
Convert ExceptionHandler class from interface to final data class. Remove CiExceptionHandler and HotSpotExceptionHandler classes and replace usages with ExceptionHandler class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5542
diff
changeset
|
106 int_field(HotSpotExceptionHandler, endBCI) \ |
20e390e09717
Convert ExceptionHandler class from interface to final data class. Remove CiExceptionHandler and HotSpotExceptionHandler classes and replace usages with ExceptionHandler class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5542
diff
changeset
|
107 int_field(HotSpotExceptionHandler, handlerBCI) \ |
20e390e09717
Convert ExceptionHandler class from interface to final data class. Remove CiExceptionHandler and HotSpotExceptionHandler classes and replace usages with ExceptionHandler class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5542
diff
changeset
|
108 int_field(HotSpotExceptionHandler, catchTypeCPI) \ |
20e390e09717
Convert ExceptionHandler class from interface to final data class. Remove CiExceptionHandler and HotSpotExceptionHandler classes and replace usages with ExceptionHandler class.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5542
diff
changeset
|
109 oop_field(HotSpotExceptionHandler, catchType, "Lcom/oracle/graal/api/meta/JavaType;") \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
110 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
111 start_class(CiTargetMethod) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
112 int_field(CiTargetMethod, frameSize) \ |
1938
1aa5b22a7716
Support for custom stack area (needed for deoptimization).
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
1484
diff
changeset
|
113 int_field(CiTargetMethod, customStackAreaOffset) \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
114 oop_field(CiTargetMethod, targetCode, "[B") \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
115 oop_field(CiTargetMethod, assumptions, "Lcom/oracle/graal/api/code/CiAssumptions;") \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
116 int_field(CiTargetMethod, targetCodeSize) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
117 end_class \ |
2048
177398c6147d
Added unique concrete subtype assumption.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2046
diff
changeset
|
118 start_class(CiAssumptions) \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
119 oop_field(CiAssumptions, list, "[Lcom/oracle/graal/api/code/CiAssumptions$Assumption;") \ |
2048
177398c6147d
Added unique concrete subtype assumption.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2046
diff
changeset
|
120 end_class \ |
4670
41034914e2ee
add MethodContents assumption to fix debbugging issue
Lukas Stadler <lukas.stadler@jku.at>
parents:
4551
diff
changeset
|
121 start_class(CiAssumptions_MethodContents) \ |
5541
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
122 oop_field(CiAssumptions_MethodContents, method, "Lcom/oracle/graal/api/meta/ResolvedJavaMethod;") \ |
4670
41034914e2ee
add MethodContents assumption to fix debbugging issue
Lukas Stadler <lukas.stadler@jku.at>
parents:
4551
diff
changeset
|
123 end_class \ |
2048
177398c6147d
Added unique concrete subtype assumption.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2046
diff
changeset
|
124 start_class(CiAssumptions_ConcreteSubtype) \ |
5541
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
125 oop_field(CiAssumptions_ConcreteSubtype, context, "Lcom/oracle/graal/api/meta/ResolvedJavaType;") \ |
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
126 oop_field(CiAssumptions_ConcreteSubtype, subtype, "Lcom/oracle/graal/api/meta/ResolvedJavaType;") \ |
2048
177398c6147d
Added unique concrete subtype assumption.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2046
diff
changeset
|
127 end_class \ |
177398c6147d
Added unique concrete subtype assumption.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2046
diff
changeset
|
128 start_class(CiAssumptions_ConcreteMethod) \ |
5541
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
129 oop_field(CiAssumptions_ConcreteMethod, method, "Lcom/oracle/graal/api/meta/ResolvedJavaMethod;") \ |
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
130 oop_field(CiAssumptions_ConcreteMethod, context, "Lcom/oracle/graal/api/meta/ResolvedJavaType;") \ |
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
131 oop_field(CiAssumptions_ConcreteMethod, impl, "Lcom/oracle/graal/api/meta/ResolvedJavaMethod;") \ |
2048
177398c6147d
Added unique concrete subtype assumption.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
2046
diff
changeset
|
132 end_class \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
133 start_class(CiTargetMethod_Site) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
134 int_field(CiTargetMethod_Site, pcOffset) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
135 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
136 start_class(CiTargetMethod_Call) \ |
3561
bea018622324
Changes to JavaAccess as a result of CRI changes.
Doug Simon <doug.simon@oracle.com>
parents:
3558
diff
changeset
|
137 oop_field(CiTargetMethod_Call, target, "Ljava/lang/Object;") \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
138 oop_field(CiTargetMethod_Call, debugInfo, "Lcom/oracle/graal/api/code/CiDebugInfo;") \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
139 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
140 start_class(CiTargetMethod_DataPatch) \ |
5538
e18ba36bfebc
Renamed RiConstant => Constant.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5536
diff
changeset
|
141 oop_field(CiTargetMethod_DataPatch, constant, "Lcom/oracle/graal/api/meta/Constant;") \ |
3710
4e037604f6ee
use alignment for constants specified in DataPatch.alignment
Christian Wimmer <christian.wimmer@oracle.com>
parents:
3706
diff
changeset
|
142 int_field(CiTargetMethod_DataPatch, alignment) \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
143 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
144 start_class(CiTargetMethod_Safepoint) \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
145 oop_field(CiTargetMethod_Safepoint, debugInfo, "Lcom/oracle/graal/api/code/CiDebugInfo;") \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
146 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
147 start_class(CiTargetMethod_ExceptionHandler) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
148 int_field(CiTargetMethod_ExceptionHandler, handlerPos) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
149 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
150 start_class(CiTargetMethod_Mark) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
151 oop_field(CiTargetMethod_Mark, id, "Ljava/lang/Object;") \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
152 oop_field(CiTargetMethod_Mark, references, "[Lcom/oracle/graal/api/code/CiTargetMethod$Mark;") \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
153 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
154 start_class(CiDebugInfo) \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
155 oop_field(CiDebugInfo, codePos, "Lcom/oracle/graal/api/code/CiCodePos;") \ |
5542
e318468952f5
Remove CiBitMap and replace usages with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5541
diff
changeset
|
156 oop_field(CiDebugInfo, registerRefMap, "Ljava/util/BitSet;") \ |
e318468952f5
Remove CiBitMap and replace usages with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5541
diff
changeset
|
157 oop_field(CiDebugInfo, frameRefMap, "Ljava/util/BitSet;") \ |
1468
e4cd5d2de7e1
Changes to sync with CRI changes.
Doug Simon <doug.simon@oracle.com>
parents:
1465
diff
changeset
|
158 end_class \ |
3028
1305cb3809c1
Performed folder and class name changes in native code.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
3020
diff
changeset
|
159 start_class(GraalBitMap) \ |
5542
e318468952f5
Remove CiBitMap and replace usages with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5541
diff
changeset
|
160 oop_field(GraalBitMap, words, "[J") \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
161 end_class \ |
2282
0309d394eb5f
Added support for non-null oop values in scope objects (allocating global handle).
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2280
diff
changeset
|
162 start_class(CiFrame) \ |
5539
bc647d8b0080
Renaming RiValue => Value.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5538
diff
changeset
|
163 oop_field(CiFrame, values, "[Lcom/oracle/graal/api/meta/Value;") \ |
2282
0309d394eb5f
Added support for non-null oop values in scope objects (allocating global handle).
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2280
diff
changeset
|
164 int_field(CiFrame, numLocals) \ |
0309d394eb5f
Added support for non-null oop values in scope objects (allocating global handle).
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2280
diff
changeset
|
165 int_field(CiFrame, numStack) \ |
0309d394eb5f
Added support for non-null oop values in scope objects (allocating global handle).
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2280
diff
changeset
|
166 int_field(CiFrame, numLocks) \ |
5129
51111665eda6
Support for recording a leaf graph id for each deoptimization point in the debug info.
Lukas Stadler <lukas.stadler@jku.at>
parents:
5067
diff
changeset
|
167 long_field(CiFrame, leafGraphId) \ |
3018
5857923e563c
Fixed an issue with frame states in exception dispatch chains (now we are correctly rethrowing the exception immediately at entering the interpreter).
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
3011
diff
changeset
|
168 boolean_field(CiFrame, rethrowException) \ |
4678
a03f3fd16b22
Fix reexecute boolean in HotSpot debug information. Introduce "duringCall" flag in FrameState that indicates that the bci of the frame state denotes an invoke that should *not* be reexecuted.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
4670
diff
changeset
|
169 boolean_field(CiFrame, duringCall) \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
170 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
171 start_class(CiCodePos) \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
172 oop_field(CiCodePos, caller, "Lcom/oracle/graal/api/code/CiCodePos;") \ |
5541
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
173 oop_field(CiCodePos, method, "Lcom/oracle/graal/api/meta/ResolvedJavaMethod;") \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
174 int_field(CiCodePos, bci) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
175 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
176 start_class(CiConstant) \ |
5540
a891c53a295b
Renaming RiKind => Kind.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5539
diff
changeset
|
177 oop_field(CiConstant, kind, "Lcom/oracle/graal/api/meta/Kind;") \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
178 oop_field(CiConstant, object, "Ljava/lang/Object;") \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
179 long_field(CiConstant, primitive) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
180 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
181 start_class(CiKind) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
182 char_field(CiKind, typeChar) \ |
5540
a891c53a295b
Renaming RiKind => Kind.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5539
diff
changeset
|
183 static_oop_field(CiKind, Boolean, "Lcom/oracle/graal/api/meta/Kind;"); \ |
a891c53a295b
Renaming RiKind => Kind.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5539
diff
changeset
|
184 static_oop_field(CiKind, Byte, "Lcom/oracle/graal/api/meta/Kind;"); \ |
a891c53a295b
Renaming RiKind => Kind.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5539
diff
changeset
|
185 static_oop_field(CiKind, Char, "Lcom/oracle/graal/api/meta/Kind;"); \ |
a891c53a295b
Renaming RiKind => Kind.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5539
diff
changeset
|
186 static_oop_field(CiKind, Short, "Lcom/oracle/graal/api/meta/Kind;"); \ |
a891c53a295b
Renaming RiKind => Kind.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5539
diff
changeset
|
187 static_oop_field(CiKind, Int, "Lcom/oracle/graal/api/meta/Kind;"); \ |
a891c53a295b
Renaming RiKind => Kind.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5539
diff
changeset
|
188 static_oop_field(CiKind, Long, "Lcom/oracle/graal/api/meta/Kind;"); \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
189 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
190 start_class(CiRuntimeCall) \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
191 static_oop_field(CiRuntimeCall, UnwindException, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
192 static_oop_field(CiRuntimeCall, RegisterFinalizer, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
193 static_oop_field(CiRuntimeCall, SetDeoptInfo, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
194 static_oop_field(CiRuntimeCall, CreateNullPointerException, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
195 static_oop_field(CiRuntimeCall, CreateOutOfBoundsException, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
196 static_oop_field(CiRuntimeCall, JavaTimeMillis, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
197 static_oop_field(CiRuntimeCall, JavaTimeNanos, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
198 static_oop_field(CiRuntimeCall, Debug, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
199 static_oop_field(CiRuntimeCall, ArithmeticFrem, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
200 static_oop_field(CiRuntimeCall, ArithmeticDrem, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
201 static_oop_field(CiRuntimeCall, ArithmeticCos, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
202 static_oop_field(CiRuntimeCall, ArithmeticTan, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
203 static_oop_field(CiRuntimeCall, ArithmeticSin, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
204 static_oop_field(CiRuntimeCall, Deoptimize, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
205 static_oop_field(CiRuntimeCall, GenericCallback, "Lcom/oracle/graal/api/code/CiRuntimeCall;"); \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
206 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
207 start_class(RiMethod) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
208 end_class \ |
1434
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
209 start_class(CiValue) \ |
5540
a891c53a295b
Renaming RiKind => Kind.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5539
diff
changeset
|
210 oop_field(CiValue, kind, "Lcom/oracle/graal/api/meta/Kind;") \ |
5539
bc647d8b0080
Renaming RiValue => Value.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5538
diff
changeset
|
211 static_oop_field(CiValue, IllegalValue, "Lcom/oracle/graal/api/meta/Value;"); \ |
1434
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
212 end_class \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
213 start_class(CiRegisterValue) \ |
5512
18f51ca0070f
Changes in the C++ part according to the Java renamings.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5508
diff
changeset
|
214 oop_field(CiRegisterValue, reg, "Lcom/oracle/graal/api/code/CiRegister;") \ |
1434
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
215 end_class \ |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
216 start_class(CiRegister) \ |
72cfb36c6bb2
* enabled all jtt tests
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1433
diff
changeset
|
217 int_field(CiRegister, number) \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
218 end_class \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
219 start_class(CiStackSlot) \ |
4181
319860ae697a
Simplify FrameMap: make offsets of spill slots and outgoing parameters independent so that they can be allocated at the same time, eliminating the separate phases. This makes the separate StackBlock unnecesary. Change CiStackSlot to use byte offsets instead of spill slot index. This makes CiTarget.spillSlotSize unnecessary.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents:
3714
diff
changeset
|
220 int_field(CiStackSlot, offset) \ |
319860ae697a
Simplify FrameMap: make offsets of spill slots and outgoing parameters independent so that they can be allocated at the same time, eliminating the separate phases. This makes the separate StackBlock unnecesary. Change CiStackSlot to use byte offsets instead of spill slot index. This makes CiTarget.spillSlotSize unnecessary.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents:
3714
diff
changeset
|
221 boolean_field(CiStackSlot, addFrameSize) \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
222 end_class \ |
3090
536528f48708
more escape analysis work: debug info
Lukas Stadler <lukas.stadler@jku.at>
parents:
3056
diff
changeset
|
223 start_class(CiVirtualObject) \ |
536528f48708
more escape analysis work: debug info
Lukas Stadler <lukas.stadler@jku.at>
parents:
3056
diff
changeset
|
224 int_field(CiVirtualObject, id) \ |
5541
b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5540
diff
changeset
|
225 oop_field(CiVirtualObject, type, "Lcom/oracle/graal/api/meta/JavaType;") \ |
5539
bc647d8b0080
Renaming RiValue => Value.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5538
diff
changeset
|
226 oop_field(CiVirtualObject, values, "[Lcom/oracle/graal/api/meta/Value;") \ |
3090
536528f48708
more escape analysis work: debug info
Lukas Stadler <lukas.stadler@jku.at>
parents:
3056
diff
changeset
|
227 end_class \ |
3714
b648304ba4ff
Change Graal monitor enter and exit from BasicObjectLock to BasicLock
Christian Wimmer <christian.wimmer@oracle.com>
parents:
3710
diff
changeset
|
228 start_class(CiMonitorValue) \ |
5539
bc647d8b0080
Renaming RiValue => Value.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5538
diff
changeset
|
229 oop_field(CiMonitorValue, owner, "Lcom/oracle/graal/api/meta/Value;") \ |
bc647d8b0080
Renaming RiValue => Value.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5538
diff
changeset
|
230 oop_field(CiMonitorValue, lockData, "Lcom/oracle/graal/api/meta/Value;") \ |
3714
b648304ba4ff
Change Graal monitor enter and exit from BasicObjectLock to BasicLock
Christian Wimmer <christian.wimmer@oracle.com>
parents:
3710
diff
changeset
|
231 boolean_field(CiMonitorValue, eliminated) \ |
b648304ba4ff
Change Graal monitor enter and exit from BasicObjectLock to BasicLock
Christian Wimmer <christian.wimmer@oracle.com>
parents:
3710
diff
changeset
|
232 end_class \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
233 /* end*/ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
234 |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
235 #define START_CLASS(name) \ |
3028
1305cb3809c1
Performed folder and class name changes in native code.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
3020
diff
changeset
|
236 class name : AllStatic { \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
237 private: \ |
2891
75a99b4f1c98
Rebranded C++ part from C1X to Graal.
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
2890
diff
changeset
|
238 friend class GraalCompiler; \ |
1942
00bc9eaf0e24
Support for -XX:+UseFastLocking flag. Fixed monitor enter XIR template for correct debug info at the runtime call.
Thomas Wuerthinger <wuerthinger@ssw.jku.at>
parents:
1941
diff
changeset
|
239 static void check(oop obj) { assert(obj != NULL, "NULL field access of class " #name); assert(obj->is_a(SystemDictionary::name##_klass()), "wrong class, " #name " expected"); } \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
240 static void compute_offsets(); \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
241 public: \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
242 static klassOop klass() { return SystemDictionary::name##_klass(); } |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
243 |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
244 #define END_CLASS }; |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
245 |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
246 #define FIELD(name, type, accessor) \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
247 static int _##name##_offset; \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
248 static type name(oop obj) { check(obj); return obj->accessor(_##name##_offset); } \ |
3662
e0bbc6b1c4a1
Fixed wrong type transition.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
3661
diff
changeset
|
249 static type name(Handle& obj) { check(obj()); return obj->accessor(_##name##_offset); } \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
250 static type name(jobject obj) { check(JNIHandles::resolve(obj)); return JNIHandles::resolve(obj)->accessor(_##name##_offset); } \ |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
251 static void set_##name(oop obj, type x) { check(obj); obj->accessor##_put(_##name##_offset, x); } \ |
3662
e0bbc6b1c4a1
Fixed wrong type transition.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
3661
diff
changeset
|
252 static void set_##name(Handle& obj, type x) { check(obj()); obj->accessor##_put(_##name##_offset, x); } \ |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
253 static void set_##name(jobject obj, type x) { check(JNIHandles::resolve(obj)); JNIHandles::resolve(obj)->accessor##_put(_##name##_offset, x); } |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
254 |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
255 #define CHAR_FIELD(klass, name) FIELD(name, jchar, char_field) |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
256 #define INT_FIELD(klass, name) FIELD(name, jint, int_field) |
1429
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
257 #define BOOLEAN_FIELD(klass, name) FIELD(name, jboolean, bool_field) |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
258 #define LONG_FIELD(klass, name) FIELD(name, jlong, long_field) |
2926
0e3ec0a4eda4
RiTypeProfile information and invocation counters for RiMethods
Lukas Stadler <lukas.stadler@jku.at>
parents:
2891
diff
changeset
|
259 #define FLOAT_FIELD(klass, name) FIELD(name, jfloat, float_field) |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
260 #define OOP_FIELD(klass, name, signature) FIELD(name, oop, obj_field) |
2492
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
261 #define STATIC_OOP_FIELD(klassName, name, signature) \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
262 static int _##name##_offset; \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
263 static oop name() { \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
264 instanceKlass* ik = instanceKlass::cast(klassName::klass()); \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
265 address addr = ik->static_field_addr(_##name##_offset - instanceMirrorKlass::offset_of_static_fields()); \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
266 if (UseCompressedOops) { \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
267 return oopDesc::load_decode_heap_oop((narrowOop *)addr); \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
268 } else { \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
269 return oopDesc::load_decode_heap_oop((oop*)addr); \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
270 } \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
271 } \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
272 static void set_##name(oop x) { \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
273 instanceKlass* ik = instanceKlass::cast(klassName::klass()); \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
274 address addr = ik->static_field_addr(_##name##_offset - instanceMirrorKlass::offset_of_static_fields()); \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
275 if (UseCompressedOops) { \ |
3661
d24f157f2ba8
Use write barrier in JavaAccess. Fixed thread transition bug.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
3619
diff
changeset
|
276 oop_store((narrowOop *)addr, x); \ |
2492
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
277 } else { \ |
3661
d24f157f2ba8
Use write barrier in JavaAccess. Fixed thread transition bug.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
3619
diff
changeset
|
278 oop_store((oop*)addr, x); \ |
2492
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
279 } \ |
4e5515d09314
Fixed merge issues.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
2284
diff
changeset
|
280 } |
2926
0e3ec0a4eda4
RiTypeProfile information and invocation counters for RiMethods
Lukas Stadler <lukas.stadler@jku.at>
parents:
2891
diff
changeset
|
281 COMPILER_CLASSES_DO(START_CLASS, END_CLASS, CHAR_FIELD, INT_FIELD, BOOLEAN_FIELD, LONG_FIELD, FLOAT_FIELD, OOP_FIELD, STATIC_OOP_FIELD) |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
282 #undef START_CLASS |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
283 #undef END_CLASS |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
284 #undef FIELD |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
285 #undef CHAR_FIELD |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
286 #undef INT_FIELD |
1429
abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
Lukas Stadler <lukas.stadler@oracle.com>
parents:
1428
diff
changeset
|
287 #undef BOOLEAN_FIELD |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
288 #undef LONG_FIELD |
2926
0e3ec0a4eda4
RiTypeProfile information and invocation counters for RiMethods
Lukas Stadler <lukas.stadler@jku.at>
parents:
2891
diff
changeset
|
289 #undef FLOAT_FIELD |
1428
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
290 #undef OOP_FIELD |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
291 #undef STATIC_OOP_FIELD |
695451afc619
refactoring classes into separate files
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
292 |
3706
a59727158259
hide HotSpotMethodResolvedImpl.javaMirror field in debuggers
Lukas Stadler <lukas.stadler@jku.at>
parents:
3704
diff
changeset
|
293 void compute_offset(int &dest_offset, klassOop klass_oop, const char* name, const char* signature, bool static_field); |