Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/vmTestbase/jit/inline/inline003/inline003.java
40948 views
1
/*
2
* Copyright (c) 2008, 2020, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/*
25
* @test
26
*
27
* @summary converted from VM Testbase jit/inline/inline003.
28
* VM Testbase keywords: [jit, quick]
29
*
30
* @library /vmTestbase
31
* /test/lib
32
* @run main/othervm jit.inline.inline003.inline003
33
*/
34
35
package jit.inline.inline003;
36
37
38
import java.io.ByteArrayOutputStream;
39
import java.io.IOException;
40
import nsk.share.TestFailure;
41
import nsk.share.GoldChecker;
42
43
class inline003_1 {
44
final protected static int[] inlineClassObj1 = { 1, 2 };
45
protected static int[] inlineClassObj2 = { 3, 4};
46
final protected static int[] trash = { 10, 11};
47
}
48
49
public class inline003 extends inline003_1 {
50
public static final GoldChecker goldChecker = new GoldChecker( "inline003" );
51
52
final private static int ITERS=4;
53
private static int pFlag = 0;
54
private static int[] myIters = new int[15];
55
56
final private static int[] inlineClassObj3 = { 4, 5 };
57
private static int[] inlineClassObj4 = { 5, 6 };
58
59
final private static int[] inlineObj5 = { 6, 7 };
60
final private static int[] inlineObj6 = { 7, 8 };
61
final private static int[] inlineObj7 = { 8, 9 };
62
final private static int[] inlineObj8 = { 9, 10 };
63
64
private Object inlineInstanceObj1 = inline003.inlineObj5;
65
private Object inlineInstanceObj2 = inline003.inlineObj6;
66
private Object inlineInstanceObj3 = inline003.inlineObj7;
67
private Object inlineInstanceObj4 = inline003.inlineObj8;
68
69
private final static Object MPAT_Const4_fs00() {
70
return null;
71
}
72
private final static Object MPAT_GetStatic4_fsc1() {
73
return inlineClassObj1;
74
}
75
private final static Object MPAT_GetStatic4_fsc2() {
76
return inlineClassObj2;
77
}
78
private final static Object MPAT_GetStatic4_fsc3() {
79
return inlineClassObj3;
80
}
81
private final static Object MPAT_GetStatic4_fsc4() {
82
return inlineClassObj4;
83
}
84
private final Object MPAT_GetStatic4_fnc1() {
85
return inlineClassObj1;
86
}
87
private final Object MPAT_GetStatic4_fnc2() {
88
return inlineClassObj2;
89
}
90
private final Object MPAT_GetStatic4_fnc3() {
91
return inlineClassObj3;
92
}
93
private final Object MPAT_GetStatic4_fnc4() {
94
return inlineClassObj4;
95
}
96
97
private final Object MPAT_Const4_fn00() {
98
return null;
99
}
100
private final Object MPAT_GetField4_fni1() {
101
return inlineInstanceObj1;
102
}
103
private final Object MPAT_GetField4_fni2() {
104
return inlineInstanceObj2;
105
}
106
private final Object MPAT_GetField4_fni3() {
107
return inlineInstanceObj3;
108
}
109
private final Object MPAT_GetField4_fni4() {
110
return inlineInstanceObj4;
111
}
112
private final Object MPAT_Handle_fi() {
113
return this;
114
}
115
116
117
private void runFinals () {
118
int jcount=0;
119
Object locObj = null;
120
if (pFlag==2) inline003.goldChecker.print("MPAT_Const4_fs00");
121
try {
122
jcount = 0;
123
for (jcount=0; jcount<ITERS; jcount++) {
124
locObj = trash;
125
locObj = MPAT_Const4_fs00();
126
if (locObj != null) break;
127
}
128
} catch (Exception e) {
129
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
130
} finally {
131
myIters[0] = jcount;
132
if (pFlag==2) inline003.goldChecker.println();
133
}
134
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fsc1");
135
try {
136
jcount = 0;
137
for (jcount=0; jcount<ITERS; jcount++) {
138
locObj = trash;
139
locObj = MPAT_GetStatic4_fsc1();
140
if (locObj != inlineClassObj1) break;
141
}
142
} catch (Exception e) {
143
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
144
} finally {
145
myIters[1] = jcount;
146
if (pFlag==2) inline003.goldChecker.println();
147
}
148
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fsc2");
149
try {
150
jcount = 0;
151
for (jcount=0; jcount<ITERS; jcount++) {
152
locObj = trash;
153
locObj = MPAT_GetStatic4_fsc2();
154
if (locObj != inlineClassObj2) break;
155
}
156
} catch (Exception e) {
157
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
158
} finally {
159
myIters[2] = jcount;
160
if (pFlag==2) inline003.goldChecker.println();
161
}
162
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fsc3");
163
try {
164
jcount = 0;
165
for (jcount=0; jcount<ITERS; jcount++) {
166
locObj = trash;
167
locObj = MPAT_GetStatic4_fsc3();
168
if (locObj != inlineClassObj3) break;
169
}
170
} catch (Exception e) {
171
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
172
} finally {
173
myIters[3] = jcount;
174
if (pFlag==2) inline003.goldChecker.println();
175
}
176
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fsc4");
177
try {
178
jcount = 0;
179
for (jcount=0; jcount<ITERS; jcount++) {
180
locObj = trash;
181
locObj = MPAT_GetStatic4_fsc4();
182
if (locObj != inlineClassObj4) break;
183
}
184
} catch (Exception e) {
185
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
186
} finally {
187
myIters[4] = jcount;
188
if (pFlag==2) inline003.goldChecker.println();
189
}
190
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fnc1");
191
try {
192
jcount = 0;
193
for (jcount=0; jcount<ITERS; jcount++) {
194
locObj = trash;
195
locObj = MPAT_GetStatic4_fnc1();
196
if (locObj != inlineClassObj1) break;
197
}
198
} catch (Exception e) {
199
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
200
} finally {
201
myIters[5] = jcount;
202
if (pFlag==2) inline003.goldChecker.println();
203
}
204
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fnc2");
205
try {
206
jcount = 0;
207
for (jcount=0; jcount<ITERS; jcount++) {
208
locObj = trash;
209
locObj = MPAT_GetStatic4_fnc2();
210
if (locObj != inlineClassObj2) break;
211
}
212
} catch (Exception e) {
213
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
214
} finally {
215
myIters[6] = jcount;
216
if (pFlag==2) inline003.goldChecker.println();
217
}
218
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fnc3");
219
try {
220
jcount = 0;
221
for (jcount=0; jcount<ITERS; jcount++) {
222
locObj = trash;
223
locObj = MPAT_GetStatic4_fnc3();
224
if (locObj != inlineClassObj3) break;
225
}
226
} catch (Exception e) {
227
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
228
} finally {
229
myIters[7] = jcount;
230
if (pFlag==2) inline003.goldChecker.println();
231
}
232
if (pFlag==2) inline003.goldChecker.print("MPAT_GetStatic4_fnc4");
233
try {
234
jcount = 0;
235
for (jcount=0; jcount<ITERS; jcount++) {
236
locObj = trash;
237
locObj = MPAT_GetStatic4_fnc4();
238
if (locObj != inlineClassObj4) break;
239
}
240
} catch (Exception e) {
241
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
242
} finally {
243
myIters[8] = jcount;
244
if (pFlag==2) inline003.goldChecker.println();
245
}
246
if (pFlag==2) inline003.goldChecker.print("MPAT_Const4_fn00");
247
try {
248
jcount = 0;
249
for (jcount=0; jcount<ITERS; jcount++) {
250
locObj = trash;
251
locObj = MPAT_Const4_fn00();
252
if (locObj != null) break;
253
}
254
} catch (Exception e) {
255
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
256
} finally {
257
myIters[9] = jcount;
258
if (pFlag==2) inline003.goldChecker.println();
259
}
260
if (pFlag==2) inline003.goldChecker.print("MPAT_GetField4_fni1");
261
try {
262
jcount = 0;
263
for (jcount=0; jcount<ITERS; jcount++) {
264
locObj = trash;
265
locObj = MPAT_GetField4_fni1();
266
if (locObj != inlineInstanceObj1) break;
267
}
268
} catch (Exception e) {
269
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
270
} finally {
271
myIters[10] = jcount;
272
if (pFlag==2) inline003.goldChecker.println();
273
}
274
if (pFlag==2) inline003.goldChecker.print("MPAT_GetField4_fni2");
275
try {
276
jcount = 0;
277
for (jcount=0; jcount<ITERS; jcount++) {
278
locObj = trash;
279
locObj = MPAT_GetField4_fni2();
280
if (locObj != inlineInstanceObj2) break;
281
}
282
} catch (Exception e) {
283
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
284
} finally {
285
myIters[11] = jcount;
286
if (pFlag==2) inline003.goldChecker.println();
287
}
288
if (pFlag==2) inline003.goldChecker.print("MPAT_GetField4_fni3");
289
try {
290
jcount = 0;
291
for (jcount=0; jcount<ITERS; jcount++) {
292
locObj = trash;
293
locObj = MPAT_GetField4_fni3();
294
if (locObj != inlineInstanceObj3) break;
295
}
296
} catch (Exception e) {
297
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
298
} finally {
299
myIters[12] = jcount;
300
if (pFlag==2) inline003.goldChecker.println();
301
}
302
if (pFlag==2) inline003.goldChecker.print("MPAT_GetField4_fni4");
303
try {
304
jcount = 0;
305
for (jcount=0; jcount<ITERS; jcount++) {
306
locObj = trash;
307
locObj = MPAT_GetField4_fni4();
308
if (locObj != inlineInstanceObj4) break;
309
}
310
} catch (Exception e) {
311
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
312
} finally {
313
myIters[13] = jcount;
314
if (pFlag==2) inline003.goldChecker.println();
315
}
316
if (pFlag==2) inline003.goldChecker.print("MPAT_Handle_fi");
317
try {
318
jcount = 0;
319
for (jcount=0; jcount<ITERS; jcount++) {
320
locObj = trash;
321
locObj = MPAT_Handle_fi();
322
if (locObj != this) break;
323
}
324
} catch (Exception e) {
325
if (pFlag==2) inline003.goldChecker.print(": iteration="+(jcount+1)+": "+e);
326
} finally {
327
myIters[14] = jcount;
328
if (pFlag==2) inline003.goldChecker.println();
329
}
330
}
331
332
333
public static int result() {
334
String[] label = {
335
"MPAT_Const4_fs00",
336
"MPAT_GetStatic4_fsc1",
337
"MPAT_GetStatic4_fsc2",
338
"MPAT_GetStatic4_fsc3",
339
"MPAT_GetStatic4_fsc4",
340
"MPAT_GetStatic4_fnc1",
341
"MPAT_GetStatic4_fnc2",
342
"MPAT_GetStatic4_fnc3",
343
"MPAT_GetStatic4_fnc4",
344
"MPAT_Const4_fn00",
345
"MPAT_GetField4_fni1",
346
"MPAT_GetField4_fni2",
347
"MPAT_GetField4_fni3",
348
"MPAT_GetField4_fni4",
349
"MPAT_Handle_fi" };
350
ByteArrayOutputStream baos = new ByteArrayOutputStream(80);
351
byte[] ba = new byte[80];
352
String s = null;
353
int ierr = 0;
354
for (int icount=0; icount < 15; icount++) {
355
if (pFlag >= 1) {
356
baos.reset();
357
try {
358
for (int i=0; i<ba.length; i++) ba[i]=(byte)' ';
359
for (int i=0; i<label[icount].length(); i++)
360
ba[i]=(byte)label[icount].charAt(i);
361
baos.write(ba,0,27);
362
}
363
catch (IndexOutOfBoundsException e) {
364
}
365
try {
366
for (int i=0; i<ba.length; i++) ba[i]=(byte)' ';
367
baos.write(ba,0,3);
368
s = Long.toString(myIters[icount]);
369
for (int i=0; i<s.length(); i++)
370
ba[i]=(byte)s.charAt(i);
371
baos.write(ba,0,7);
372
}
373
catch (IndexOutOfBoundsException e) {
374
}
375
inline003.goldChecker.print(baos.toString());
376
inline003.goldChecker.println();
377
}
378
if (myIters[icount] != ITERS) ierr=1;
379
}
380
return ierr;
381
}
382
383
public static void main( String args[] ) {
384
int ierr=0;
385
inline003 myInline_f = new inline003();
386
387
388
if (args.length > 0 && args[0].equals("-help")) {
389
inline003.goldChecker.println("usage: java inline003 [-print]");
390
inline003.goldChecker.check();
391
return;
392
}
393
pFlag = 1;
394
if (args.length > 0 && args[0].equals("-print"))
395
pFlag = 2;
396
for (int ii=0; ii<15; ii++) myIters[ii]=ITERS;
397
if (pFlag==2) inline003.goldChecker.println("inline003");
398
399
/* Give the JIT an initial look at all the methods */
400
myInline_f.runFinals();
401
ierr = inline003.result();
402
if (ierr == 0) {
403
inline003.goldChecker.println("PASSED.");
404
}
405
else {
406
inline003.goldChecker.println("FAILED. (ierr = " + ierr + ")");
407
}
408
inline003.goldChecker.check();
409
}
410
}
411
412