annotate test/compiler/8009761/Test8009761.java @ 20543:e7d0505c8a30

8059758: Footprint regressions with JDK-8038423 Summary: Changes in JDK-8038423 always initialize (zero out) virtual memory used for auxiliary data structures. This causes a footprint regression for G1 in startup benchmarks. This is because they do not touch that memory at all, so the operating system does not actually commit these pages. The fix is to, if the initialization value of the data structures matches the default value of just committed memory (=0), do not do anything. Reviewed-by: jwilhelm, brutisso
author tschatzl
date Fri, 10 Oct 2014 15:51:58 +0200
parents d15464bfd4d0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8727
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
1 /*
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
4 *
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
7 * published by the Free Software Foundation.
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
8 *
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
13 * accompanied this code).
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
14 *
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
18 *
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
21 * questions.
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
22 */
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
23
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
24 /*
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
25 * @test
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
26 * @bug 8009761
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
27 * @summary Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
10273
d15464bfd4d0 8012037: Test8009761.java "Failed: init recursive calls: 7224. After deopt 58824"
roland
parents: 8876
diff changeset
28 * @run main/othervm -XX:CompileCommand=exclude,Test8009761::m2 -XX:-UseOnStackReplacement -XX:-BackgroundCompilation -Xss256K Test8009761
8727
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
29 *
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
30 */
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
31
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
32 public class Test8009761 {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
33
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
34 static class UnloadedClass {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
35 volatile int i;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
36 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
37
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
38 static Object m1(boolean deopt) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
39 // When running interpreted, on sparc, the caller's stack is
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
40 // extended for the locals and the caller's frame is restored
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
41 // on return.
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
42 long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
43 l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
44 l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
45 l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
46 l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
47 l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
48 l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
49 l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
50 l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
51 l108, l109, l110, l111, l112, l113, l114, l115, l116, l117,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
52 l118, l119, l120, l121, l122, l123, l124, l125, l126, l127,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
53 l128, l129, l130, l131, l132, l133, l134, l135, l136, l137,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
54 l138, l139, l140, l141, l142, l143, l144, l145, l146, l147,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
55 l148, l149, l150, l151, l152, l153, l154, l155, l156, l157,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
56 l158, l159, l160, l161, l162, l163, l164, l165, l166, l167,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
57 l168, l169, l170, l171, l172, l173, l174, l175, l176, l177,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
58 l178, l179, l180, l181, l182, l183, l184, l185, l186, l187,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
59 l188, l189, l190, l191, l192, l193, l194, l195, l196, l197,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
60 l198, l199, l200, l201, l202, l203, l204, l205, l206, l207,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
61 l208, l209, l210, l211, l212, l213, l214, l215, l216, l217,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
62 l218, l219, l220, l221, l222, l223, l224, l225, l226, l227,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
63 l228, l229, l230, l231, l232, l233, l234, l235, l236, l237,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
64 l238, l239, l240, l241, l242, l243, l244, l245, l246, l247,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
65 l248, l249, l250, l251, l252, l253, l254, l255, l256, l257,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
66 l258, l259, l260, l261, l262, l263, l264, l265, l266, l267,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
67 l268, l269, l270, l271, l272, l273, l274, l275, l276, l277,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
68 l278, l279, l280, l281, l282, l283, l284, l285, l286, l287,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
69 l288, l289, l290, l291, l292, l293, l294, l295, l296, l297,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
70 l298, l299, l300, l301, l302, l303, l304, l305, l306, l307,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
71 l308, l309, l310, l311, l312, l313, l314, l315, l316, l317,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
72 l318, l319, l320, l321, l322, l323, l324, l325, l326, l327,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
73 l328, l329, l330, l331, l332, l333, l334, l335, l336, l337,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
74 l338, l339, l340, l341, l342, l343, l344, l345, l346, l347,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
75 l348, l349, l350, l351, l352, l353, l354, l355, l356, l357,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
76 l358, l359, l360, l361, l362, l363, l364, l365, l366, l367,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
77 l368, l369, l370, l371, l372, l373, l374, l375, l376, l377,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
78 l378, l379, l380, l381, l382, l383, l384, l385, l386, l387,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
79 l388, l389, l390, l391, l392, l393, l394, l395, l396, l397,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
80 l398, l399, l400, l401, l402, l403, l404, l405, l406, l407,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
81 l408, l409, l410, l411, l412, l413, l414, l415, l416, l417,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
82 l418, l419, l420, l421, l422, l423, l424, l425, l426, l427,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
83 l428, l429, l430, l431, l432, l433, l434, l435, l436, l437,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
84 l438, l439, l440, l441, l442, l443, l444, l445, l446, l447,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
85 l448, l449, l450, l451, l452, l453, l454, l455, l456, l457,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
86 l458, l459, l460, l461, l462, l463, l464, l465, l466, l467,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
87 l468, l469, l470, l471, l472, l473, l474, l475, l476, l477,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
88 l478, l479, l480, l481, l482, l483, l484, l485, l486, l487,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
89 l488, l489, l490, l491, l492, l493, l494, l495, l496, l497,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
90 l498, l499, l500, l501, l502, l503, l504, l505, l506, l507,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
91 l508, l509, l510, l511;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
92
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
93 long ll0, ll1, ll2, ll3, ll4, ll5, ll6, ll7, ll8, ll9, ll10, ll11, ll12,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
94 ll13, ll14, ll15, ll16, ll17, ll18, ll19, ll20, ll21, ll22, ll23, ll24,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
95 ll25, ll26, ll27, ll28, ll29, ll30, ll31, ll32, ll33, ll34, ll35, ll36,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
96 ll37, ll38, ll39, ll40, ll41, ll42, ll43, ll44, ll45, ll46, ll47, ll48,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
97 ll49, ll50, ll51, ll52, ll53, ll54, ll55, ll56, ll57, ll58, ll59, ll60,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
98 ll61, ll62, ll63, ll64, ll65, ll66, ll67, ll68, ll69, ll70, ll71, ll72,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
99 ll73, ll74, ll75, ll76, ll77, ll78, ll79, ll80, ll81, ll82, ll83, ll84,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
100 ll85, ll86, ll87, ll88, ll89, ll90, ll91, ll92, ll93, ll94, ll95, ll96,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
101 ll97, ll98, ll99, ll100, ll101, ll102, ll103, ll104, ll105, ll106, ll107,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
102 ll108, ll109, ll110, ll111, ll112, ll113, ll114, ll115, ll116, ll117,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
103 ll118, ll119, ll120, ll121, ll122, ll123, ll124, ll125, ll126, ll127,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
104 ll128, ll129, ll130, ll131, ll132, ll133, ll134, ll135, ll136, ll137,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
105 ll138, ll139, ll140, ll141, ll142, ll143, ll144, ll145, ll146, ll147,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
106 ll148, ll149, ll150, ll151, ll152, ll153, ll154, ll155, ll156, ll157,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
107 ll158, ll159, ll160, ll161, ll162, ll163, ll164, ll165, ll166, ll167,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
108 ll168, ll169, ll170, ll171, ll172, ll173, ll174, ll175, ll176, ll177,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
109 ll178, ll179, ll180, ll181, ll182, ll183, ll184, ll185, ll186, ll187,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
110 ll188, ll189, ll190, ll191, ll192, ll193, ll194, ll195, ll196, ll197,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
111 ll198, ll199, ll200, ll201, ll202, ll203, ll204, ll205, ll206, ll207,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
112 ll208, ll209, ll210, ll211, ll212, ll213, ll214, ll215, ll216, ll217,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
113 ll218, ll219, ll220, ll221, ll222, ll223, ll224, ll225, ll226, ll227,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
114 ll228, ll229, ll230, ll231, ll232, ll233, ll234, ll235, ll236, ll237,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
115 ll238, ll239, ll240, ll241, ll242, ll243, ll244, ll245, ll246, ll247,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
116 ll248, ll249, ll250, ll251, ll252, ll253, ll254, ll255, ll256, ll257,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
117 ll258, ll259, ll260, ll261, ll262, ll263, ll264, ll265, ll266, ll267,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
118 ll268, ll269, ll270, ll271, ll272, ll273, ll274, ll275, ll276, ll277,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
119 ll278, ll279, ll280, ll281, ll282, ll283, ll284, ll285, ll286, ll287,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
120 ll288, ll289, ll290, ll291, ll292, ll293, ll294, ll295, ll296, ll297,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
121 ll298, ll299, ll300, ll301, ll302, ll303, ll304, ll305, ll306, ll307,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
122 ll308, ll309, ll310, ll311, ll312, ll313, ll314, ll315, ll316, ll317,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
123 ll318, ll319, ll320, ll321, ll322, ll323, ll324, ll325, ll326, ll327,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
124 ll328, ll329, ll330, ll331, ll332, ll333, ll334, ll335, ll336, ll337,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
125 ll338, ll339, ll340, ll341, ll342, ll343, ll344, ll345, ll346, ll347,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
126 ll348, ll349, ll350, ll351, ll352, ll353, ll354, ll355, ll356, ll357,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
127 ll358, ll359, ll360, ll361, ll362, ll363, ll364, ll365, ll366, ll367,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
128 ll368, ll369, ll370, ll371, ll372, ll373, ll374, ll375, ll376, ll377,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
129 ll378, ll379, ll380, ll381, ll382, ll383, ll384, ll385, ll386, ll387,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
130 ll388, ll389, ll390, ll391, ll392, ll393, ll394, ll395, ll396, ll397,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
131 ll398, ll399, ll400, ll401, ll402, ll403, ll404, ll405, ll406, ll407,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
132 ll408, ll409, ll410, ll411, ll412, ll413, ll414, ll415, ll416, ll417,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
133 ll418, ll419, ll420, ll421, ll422, ll423, ll424, ll425, ll426, ll427,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
134 ll428, ll429, ll430, ll431, ll432, ll433, ll434, ll435, ll436, ll437,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
135 ll438, ll439, ll440, ll441, ll442, ll443, ll444, ll445, ll446, ll447,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
136 ll448, ll449, ll450, ll451, ll452, ll453, ll454, ll455, ll456, ll457,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
137 ll458, ll459, ll460, ll461, ll462, ll463, ll464, ll465, ll466, ll467,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
138 ll468, ll469, ll470, ll471, ll472, ll473, ll474, ll475, ll476, ll477,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
139 ll478, ll479, ll480, ll481, ll482, ll483, ll484, ll485, ll486, ll487,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
140 ll488, ll489, ll490, ll491, ll492, ll493, ll494, ll495, ll496, ll497,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
141 ll498, ll499, ll500, ll501, ll502, ll503, ll504, ll505, ll506, ll507,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
142 ll508, ll509, ll510, ll511;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
143
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
144 if (deopt) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
145 UnloadedClass res = new UnloadedClass(); // sufficient to force deopt with c2 but not c1
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
146 res.i = 0; // forces deopt with c1
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
147 return res;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
148 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
149 return null;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
150 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
151
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
152 static int count = 0;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
153
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
154 static void m2() {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
155 // Will be called recursively until a stack overflow
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
156 // exception. Makes sure it has a lot of locals so that it's
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
157 // not called a sufficient number of times to trigger
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
158 // compilation.
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
159
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
160 long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
161 l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
162 l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
163 l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
164 l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
165 l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
166 l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
167 l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
168 l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
169 l108, l109, l110, l111, l112, l113, l114, l115, l116, l117,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
170 l118, l119, l120, l121, l122, l123, l124, l125, l126, l127,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
171 l128, l129, l130, l131, l132, l133, l134, l135, l136, l137,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
172 l138, l139, l140, l141, l142, l143, l144, l145, l146, l147,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
173 l148, l149, l150, l151, l152, l153, l154, l155, l156, l157,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
174 l158, l159, l160, l161, l162, l163, l164, l165, l166, l167,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
175 l168, l169, l170, l171, l172, l173, l174, l175, l176, l177,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
176 l178, l179, l180, l181, l182, l183, l184, l185, l186, l187,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
177 l188, l189, l190, l191, l192, l193, l194, l195, l196, l197,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
178 l198, l199, l200, l201, l202, l203, l204, l205, l206, l207,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
179 l208, l209, l210, l211, l212, l213, l214, l215, l216, l217,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
180 l218, l219, l220, l221, l222, l223, l224, l225, l226, l227,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
181 l228, l229, l230, l231, l232, l233, l234, l235, l236, l237,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
182 l238, l239, l240, l241, l242, l243, l244, l245, l246, l247,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
183 l248, l249, l250, l251, l252, l253, l254, l255, l256, l257,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
184 l258, l259, l260, l261, l262, l263, l264, l265, l266, l267,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
185 l268, l269, l270, l271, l272, l273, l274, l275, l276, l277,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
186 l278, l279, l280, l281, l282, l283, l284, l285, l286, l287,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
187 l288, l289, l290, l291, l292, l293, l294, l295, l296, l297,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
188 l298, l299, l300, l301, l302, l303, l304, l305, l306, l307,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
189 l308, l309, l310, l311, l312, l313, l314, l315, l316, l317,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
190 l318, l319, l320, l321, l322, l323, l324, l325, l326, l327,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
191 l328, l329, l330, l331, l332, l333, l334, l335, l336, l337,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
192 l338, l339, l340, l341, l342, l343, l344, l345, l346, l347,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
193 l348, l349, l350, l351, l352, l353, l354, l355, l356, l357,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
194 l358, l359, l360, l361, l362, l363, l364, l365, l366, l367,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
195 l368, l369, l370, l371, l372, l373, l374, l375, l376, l377,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
196 l378, l379, l380, l381, l382, l383, l384, l385, l386, l387,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
197 l388, l389, l390, l391, l392, l393, l394, l395, l396, l397,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
198 l398, l399, l400, l401, l402, l403, l404, l405, l406, l407,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
199 l408, l409, l410, l411, l412, l413, l414, l415, l416, l417,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
200 l418, l419, l420, l421, l422, l423, l424, l425, l426, l427,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
201 l428, l429, l430, l431, l432, l433, l434, l435, l436, l437,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
202 l438, l439, l440, l441, l442, l443, l444, l445, l446, l447,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
203 l448, l449, l450, l451, l452, l453, l454, l455, l456, l457,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
204 l458, l459, l460, l461, l462, l463, l464, l465, l466, l467,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
205 l468, l469, l470, l471, l472, l473, l474, l475, l476, l477,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
206 l478, l479, l480, l481, l482, l483, l484, l485, l486, l487,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
207 l488, l489, l490, l491, l492, l493, l494, l495, l496, l497,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
208 l498, l499, l500, l501, l502, l503, l504, l505, l506, l507,
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
209 l508, l509, l510, l511;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
210
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
211 count++;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
212 m2();
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
213 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
214
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
215 static Object m3(boolean overflow_stack, boolean deopt) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
216 if (overflow_stack) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
217 m2();
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
218 return null;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
219 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
220 Object o = m1(deopt);
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
221 if (deopt) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
222 m2();
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
223 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
224 return o;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
225 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
226
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
227 static public void main(String[] args) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
228 int c1;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
229 // Call m2 from m3 recursively until stack overflow. Count the number of recursive calls.
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
230 try {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
231 m3(true, false);
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
232 } catch(StackOverflowError soe) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
233 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
234 c1 = count;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
235 // Force the compilation of m3() that will inline m1()
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
236 for (int i = 0; i < 20000; i++) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
237 m3(false, false);
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
238 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
239 count = 0;
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
240 // Force deoptimization of m3() in m1(), then return from m1()
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
241 // to m3(), call recursively m2(). If deoptimization correctly
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
242 // built the interpreter stack for m3()/m1() then we should be
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
243 // able to call m2() recursively as many times as before.
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
244 try {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
245 m3(false, true);
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
246 } catch(StackOverflowError soe) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
247 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
248 if (c1 != count) {
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
249 System.out.println("Failed: init recursive calls: " + c1 + ". After deopt " + count);
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
250 System.exit(97);
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
251 } else {
10273
d15464bfd4d0 8012037: Test8009761.java "Failed: init recursive calls: 7224. After deopt 58824"
roland
parents: 8876
diff changeset
252 System.out.println("PASSED " + c1);
8727
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
253 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
254 }
0094485b46c7 8009761: Deoptimization on sparc doesn't set Llast_SP correctly in the interpreter frames it creates
roland
parents:
diff changeset
255 }