blob: 3516c7231b5b430dfe3dbe5c382131b4edad3b6c [file] [log] [blame]
Nicolas Geoffrayd9309292015-10-31 22:21:31 +00001/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package p1;
18
19public class InP1 {
20 public static Object $inline$AllocateOtherInP1(int i) {
21 // Let this method execute a while to make sure the JIT sees it hot.
22 if (i <= 10000) {
23 return null;
24 }
25 // Set the flag that we have entered InP1 code to get OtherInP1 loaded.
26 PlaceHolder.entered = true;
27 return new OtherInP1();
28 }
29
30 public static Object $inline$AllocateArrayOtherInP1(int i) {
31 if (i <= 10000) {
32 return null;
33 }
34 return new OtherInP1[10];
35 }
36
37 public static Object $inline$UseStaticFieldOtherInP1(int i) {
38 if (i <= 10000) {
39 return null;
40 }
41 return OtherInP1.staticField;
42 }
43
44 public static void $inline$SetStaticFieldOtherInP1(int i) {
45 if (i <= 10000) {
46 return;
47 }
48 OtherInP1.staticField = new Object();
49 }
50
51 public static Object $inline$UseInstanceFieldOtherInP1(int i) {
52 if (i <= 10000) {
53 return null;
54 }
55 return $noinline$AllocateOtherInP1().instanceField;
56 }
57
58 public static void $inline$SetInstanceFieldOtherInP1(int i) {
59 if (i <= 10000) {
60 return;
61 }
62 $noinline$AllocateOtherInP1().instanceField = new Object();
63 }
64
65 public static OtherInP1 $noinline$AllocateOtherInP1() {
66 try {
67 return new OtherInP1();
68 } catch (Exception e) {
69 throw new Error(e);
70 }
71 }
72
73 public static Object $inline$LoadOtherInP1(int i) {
74 if (i <= 10000) {
75 return null;
76 }
77 return OtherInP1.class;
78 }
79
80 public static Object $inline$StaticCallOtherInP1(int i) {
81 if (i <= 10000) {
82 return null;
83 }
84 return OtherInP1.doTheStaticCall();
85 }
86
87 public static Object $inline$InstanceCallOtherInP1(int i) {
88 if (i <= 10000) {
89 return null;
90 }
91 return $noinline$AllocateOtherInP1().doTheInstanceCall();
92 }
93}