annotate src/os/bsd/dtrace/generateJvmOffsets.cpp @ 15388:769fc3629f59

Add phase FlowSensitiveReductionPhase. It is possible to remove GuardingPiNodes, CheckCastNodes, and FixedGuards during HighTier under certain conditions (control-flow sensitive conditions). The phase added in this commit (FlowSensitiveReductionPhase) does that, and in addition replaces usages with "downcasting" PiNodes when possible thus resulting in more precise object stamps (e.g., non-null). Finally, usages of floating, side-effects free, expressions are also simplified (as per control-flow sensitive conditions). The newly added phase runs only during HighTier and can be deactivated using Graal option FlowSensitiveReduction (it is active by default).
author Miguel Garcia <miguel.m.garcia@oracle.com>
date Fri, 25 Apr 2014 16:50:52 +0200
parents f36e073d56a4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
1 /*
9152
f36e073d56a4 7104565: trim jprt build targets
drchase
parents: 6848
diff changeset
2 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
4 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
7 * published by the Free Software Foundation.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
8 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
13 * accompanied this code).
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
14 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
18 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
21 * questions.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
22 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
23 */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
24
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
25 /*
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
26 * This is to provide sanity check in jhelper.d which compares SCCS
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
27 * versions of generateJvmOffsets.cpp used to create and extract
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
28 * contents of __JvmOffsets[] table.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
29 * The __JvmOffsets[] table is located in generated JvmOffsets.cpp.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
30 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
31 * GENOFFS_SCCS_VER 34
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
32 */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
33
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
34 #include "generateJvmOffsets.h"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
35
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
36 /* A workaround for private and protected fields */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
37 #define private public
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
38 #define protected public
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
39
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
40 // not on macosx #include <proc_service.h>
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
41 #include "code/codeBlob.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
42 #include "code/nmethod.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
43 #include "code/pcDesc.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
44 #include "gc_interface/collectedHeap.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
45 #include "memory/heap.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
46 #include "memory/memRegion.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
47 #include "memory/universe.hpp"
6725
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
48 #include "oops/constMethod.hpp"
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
49 #include "oops/klass.hpp"
6725
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
50 #include "oops/method.hpp"
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
51 #include "oops/oop.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
52 #include "oops/symbol.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
53 #include "runtime/virtualspace.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
54 #include "runtime/vmStructs.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
55 #include "utilities/accessFlags.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
56 #include "utilities/globalDefinitions.hpp"
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
57
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
58 // These are defined somewhere for Solaris
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
59 #define PR_MODEL_ILP32 1
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
60 #define PR_MODEL_LP64 2
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
61
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
62 #ifdef COMPILER1
9152
f36e073d56a4 7104565: trim jprt build targets
drchase
parents: 6848
diff changeset
63 #ifdef ASSERT
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
64
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
65 /*
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
66 * To avoid the most part of potential link errors
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
67 * we link this program with -z nodefs .
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
68 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
69 * But for 'debug1' and 'fastdebug1' we still have to provide
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
70 * a particular workaround for the following symbols bellow.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
71 * It will be good to find out a generic way in the future.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
72 */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
73
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
74 #pragma weak tty
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
75 #pragma weak CMSExpAvgFactor
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
76
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
77 #if defined(i386) || defined(__i386) || defined(__amd64)
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
78 #pragma weak noreg
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
79 #endif /* i386 */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
80
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
81 LIR_Opr LIR_OprFact::illegalOpr = (LIR_Opr) 0;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
82
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
83 address StubRoutines::_call_stub_return_address = NULL;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
84
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
85 StubQueue* AbstractInterpreter::_code = NULL;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
86
9152
f36e073d56a4 7104565: trim jprt build targets
drchase
parents: 6848
diff changeset
87 #endif /* ASSERT */
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
88 #endif /* COMPILER1 */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
89
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
90 #define GEN_OFFS(Type,Name) \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
91 switch(gen_variant) { \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
92 case GEN_OFFSET: \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
93 printf("#define OFFSET_%-33s %ld\n", \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
94 #Type #Name, offset_of(Type, Name)); \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
95 break; \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
96 case GEN_INDEX: \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
97 printf("#define IDX_OFFSET_%-33s %d\n", \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
98 #Type #Name, index++); \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
99 break; \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
100 case GEN_TABLE: \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
101 printf("\tOFFSET_%s,\n", #Type #Name); \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
102 break; \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
103 }
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
104
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
105 #define GEN_SIZE(Type) \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
106 switch(gen_variant) { \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
107 case GEN_OFFSET: \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
108 printf("#define SIZE_%-35s %ld\n", \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
109 #Type, sizeof(Type)); \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
110 break; \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
111 case GEN_INDEX: \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
112 printf("#define IDX_SIZE_%-35s %d\n", \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
113 #Type, index++); \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
114 break; \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
115 case GEN_TABLE: \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
116 printf("\tSIZE_%s,\n", #Type); \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
117 break; \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
118 }
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
119
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
120 #define GEN_VALUE(String,Value) \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
121 switch(gen_variant) { \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
122 case GEN_OFFSET: \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
123 printf("#define %-40s %d\n", #String, Value); \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
124 break; \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
125 case GEN_INDEX: \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
126 printf("#define IDX_%-40s %d\n", #String, index++); \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
127 break; \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
128 case GEN_TABLE: \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
129 printf("\t" #String ",\n"); \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
130 break; \
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
131 }
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
132
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
133 void gen_prologue(GEN_variant gen_variant) {
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
134 const char *suffix;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
135
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
136 switch(gen_variant) {
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
137 case GEN_OFFSET: suffix = ".h"; break;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
138 case GEN_INDEX: suffix = "Index.h"; break;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
139 case GEN_TABLE: suffix = ".cpp"; break;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
140 }
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
141
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
142 printf("/*\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
143 printf(" * JvmOffsets%s !!!DO NOT EDIT!!! \n", suffix);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
144 printf(" * The generateJvmOffsets program generates this file!\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
145 printf(" */\n\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
146 switch(gen_variant) {
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
147
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
148 case GEN_OFFSET:
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
149 case GEN_INDEX:
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
150 break;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
151
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
152 case GEN_TABLE:
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
153 printf("#include \"JvmOffsets.h\"\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
154 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
155 printf("int __JvmOffsets[] = {\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
156 break;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
157 }
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
158 }
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
159
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
160 void gen_epilogue(GEN_variant gen_variant) {
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
161 if (gen_variant != GEN_TABLE) {
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
162 return;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
163 }
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
164 printf("};\n\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
165 return;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
166 }
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
167
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
168 int generateJvmOffsets(GEN_variant gen_variant) {
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
169 int index = 0; /* It is used to generate JvmOffsetsIndex.h */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
170 int pointer_size = sizeof(void *);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
171 int data_model = (pointer_size == 4) ? PR_MODEL_ILP32 : PR_MODEL_LP64;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
172
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
173 gen_prologue(gen_variant);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
174
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
175 GEN_VALUE(DATA_MODEL, data_model);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
176 GEN_VALUE(POINTER_SIZE, pointer_size);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
177 #if defined(TIERED)
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
178 GEN_VALUE(COMPILER, 3);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
179 #elif COMPILER1
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
180 GEN_VALUE(COMPILER, 1);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
181 #elif COMPILER2
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
182 GEN_VALUE(COMPILER, 2);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
183 #else
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
184 GEN_VALUE(COMPILER, 0);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
185 #endif // COMPILER1 && COMPILER2
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
186 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
187
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
188 GEN_OFFS(CollectedHeap, _reserved);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
189 GEN_OFFS(MemRegion, _start);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
190 GEN_OFFS(MemRegion, _word_size);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
191 GEN_SIZE(HeapWord);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
192 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
193
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
194 GEN_OFFS(VMStructEntry, typeName);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
195 GEN_OFFS(VMStructEntry, fieldName);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
196 GEN_OFFS(VMStructEntry, address);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
197 GEN_SIZE(VMStructEntry);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
198 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
199
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
200 GEN_VALUE(MAX_METHOD_CODE_SIZE, max_method_code_size);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
201 #if defined(sparc) || defined(__sparc)
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
202 GEN_VALUE(OFFSET_interpreter_frame_method, 2 * pointer_size); /* L2 in saved window */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
203 GEN_VALUE(OFFSET_interpreter_frame_sender_sp, 13 * pointer_size); /* I5 in saved window */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
204 // Fake value for consistency. It is not going to be used.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
205 GEN_VALUE(OFFSET_interpreter_frame_bcx_offset, 0xFFFF);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
206 #elif defined(i386) || defined(__i386) || defined(__amd64)
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
207 GEN_VALUE(OFFSET_interpreter_frame_sender_sp, -1 * pointer_size);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
208 GEN_VALUE(OFFSET_interpreter_frame_method, -3 * pointer_size);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
209 GEN_VALUE(OFFSET_interpreter_frame_bcx_offset, -7 * pointer_size);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
210 #endif
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
211
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
212 GEN_OFFS(Klass, _name);
6725
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
213 GEN_OFFS(ConstantPool, _pool_holder);
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
214 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
215
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
216 GEN_VALUE(OFFSET_HeapBlockHeader_used, (int) offset_of(HeapBlock::Header, _used));
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
217 GEN_OFFS(oopDesc, _metadata);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
218 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
219
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
220 GEN_VALUE(AccessFlags_NATIVE, JVM_ACC_NATIVE);
6725
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
221 GEN_VALUE(ConstMethod_has_linenumber_table, ConstMethod::_has_linenumber_table);
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
222 GEN_OFFS(AccessFlags, _flags);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
223 GEN_OFFS(Symbol, _length);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
224 GEN_OFFS(Symbol, _body);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
225 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
226
6725
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
227 GEN_OFFS(Method, _constMethod);
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
228 GEN_OFFS(Method, _constants);
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
229 GEN_OFFS(Method, _access_flags);
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
230 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
231
6725
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
232 GEN_OFFS(ConstMethod, _flags);
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
233 GEN_OFFS(ConstMethod, _code_size);
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
234 GEN_OFFS(ConstMethod, _name_index);
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
235 GEN_OFFS(ConstMethod, _signature_index);
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
236 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
237
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
238 GEN_OFFS(CodeHeap, _memory);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
239 GEN_OFFS(CodeHeap, _segmap);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
240 GEN_OFFS(CodeHeap, _log2_segment_size);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
241 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
242
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
243 GEN_OFFS(VirtualSpace, _low_boundary);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
244 GEN_OFFS(VirtualSpace, _high_boundary);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
245 GEN_OFFS(VirtualSpace, _low);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
246 GEN_OFFS(VirtualSpace, _high);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
247 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
248
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
249 GEN_OFFS(CodeBlob, _name);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
250 GEN_OFFS(CodeBlob, _header_size);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
251 GEN_OFFS(CodeBlob, _content_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
252 GEN_OFFS(CodeBlob, _code_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
253 GEN_OFFS(CodeBlob, _data_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
254 GEN_OFFS(CodeBlob, _frame_size);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
255 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
256
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
257 GEN_OFFS(nmethod, _method);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
258 GEN_OFFS(nmethod, _oops_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
259 GEN_OFFS(nmethod, _scopes_data_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
260 GEN_OFFS(nmethod, _scopes_pcs_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
261 GEN_OFFS(nmethod, _handler_table_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
262 GEN_OFFS(nmethod, _deoptimize_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
263 GEN_OFFS(nmethod, _orig_pc_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
264
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
265 GEN_OFFS(PcDesc, _pc_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
266 GEN_OFFS(PcDesc, _scope_decode_offset);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
267
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
268 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
269
6848
8e47bac5643a 7054512: Compress class pointers after perm gen removal
roland
parents: 6725
diff changeset
270 GEN_OFFS(NarrowPtrStruct, _base);
8e47bac5643a 7054512: Compress class pointers after perm gen removal
roland
parents: 6725
diff changeset
271 GEN_OFFS(NarrowPtrStruct, _shift);
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
272 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
273
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
274 GEN_VALUE(SIZE_HeapBlockHeader, (int) sizeof(HeapBlock::Header));
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
275 GEN_SIZE(oopDesc);
6725
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
276 GEN_SIZE(ConstantPool);
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
277 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
278
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
279 GEN_SIZE(PcDesc);
6725
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
280 GEN_SIZE(Method);
da91efe96a93 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 4006
diff changeset
281 GEN_SIZE(ConstMethod);
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
282 GEN_SIZE(nmethod);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
283 GEN_SIZE(CodeBlob);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
284 GEN_SIZE(BufferBlob);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
285 GEN_SIZE(SingletonBlob);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
286 GEN_SIZE(RuntimeStub);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
287 GEN_SIZE(SafepointBlob);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
288
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
289 gen_epilogue(gen_variant);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
290 printf("\n");
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
291
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
292 fflush(stdout);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
293 return 0;
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
294 }