comparison test/compiler/uncommontrap/StackOverflowGuardPagesOff.java @ 17620:69dc1be43fce

8029873: compiler/uncommontrap/TestStackBangRbp.java crashes with SIGSEGV Summary: May end up in uncommon trap blob/deopt blob with unguarded stack Reviewed-by: kvn, twisti
author roland
date Wed, 08 Jan 2014 09:49:31 +0100
parents
children
comparison
equal deleted inserted replaced
17619:5231c2210388 17620:69dc1be43fce
1 /*
2 * Copyright (c) 2014, 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 * @bug 8029383
27 * @summary stack overflow if callee is marked for deoptimization causes crash
28 * @run main/othervm -XX:TieredStopAtLevel=1 -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,StackOverflowGuardPagesOff::m1 -XX:CompileCommand=exclude,StackOverflowGuardPagesOff::m2 -Xss256K -XX:-UseOnStackReplacement StackOverflowGuardPagesOff
29 *
30 */
31
32 // This test calls m2 recursively until a stack overflow. Then calls
33 // m3 that calls m1. m1 triggers B's class loading, as a result m1 and
34 // m3 needs to be deoptimized. Deoptimization of m1 causes a stack
35 // overflow exception to be thrown which is propagated to m3 in the
36 // deopt blob. If the guard pages are no enabled, the stack bang in
37 // the deopt blob triggers a crash.
38 public class StackOverflowGuardPagesOff {
39
40 static class A {
41 void m() {}
42 }
43
44 static class B extends A {
45 void m() {}
46 }
47
48 static void m1(boolean deopt, A a) {
49 long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
50 l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24,
51 l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36,
52 l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48,
53 l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60,
54 l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72,
55 l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84,
56 l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96,
57 l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107,
58 l108, l109, l110, l111, l112, l113, l114, l115, l116, l117,
59 l118, l119, l120, l121, l122, l123, l124, l125, l126, l127,
60 l128, l129, l130, l131, l132, l133, l134, l135, l136, l137,
61 l138, l139, l140, l141, l142, l143, l144, l145, l146, l147,
62 l148, l149, l150, l151, l152, l153, l154, l155, l156, l157,
63 l158, l159, l160, l161, l162, l163, l164, l165, l166, l167,
64 l168, l169, l170, l171, l172, l173, l174, l175, l176, l177,
65 l178, l179, l180, l181, l182, l183, l184, l185, l186, l187,
66 l188, l189, l190, l191, l192, l193, l194, l195, l196, l197,
67 l198, l199, l200, l201, l202, l203, l204, l205, l206, l207,
68 l208, l209, l210, l211, l212, l213, l214, l215, l216, l217,
69 l218, l219, l220, l221, l222, l223, l224, l225, l226, l227,
70 l228, l229, l230, l231, l232, l233, l234, l235, l236, l237,
71 l238, l239, l240, l241, l242, l243, l244, l245, l246, l247,
72 l248, l249, l250, l251, l252, l253, l254, l255, l256, l257,
73 l258, l259, l260, l261, l262, l263, l264, l265, l266, l267,
74 l268, l269, l270, l271, l272, l273, l274, l275, l276, l277,
75 l278, l279, l280, l281, l282, l283, l284, l285, l286, l287,
76 l288, l289, l290, l291, l292, l293, l294, l295, l296, l297,
77 l298, l299, l300, l301, l302, l303, l304, l305, l306, l307,
78 l308, l309, l310, l311, l312, l313, l314, l315, l316, l317,
79 l318, l319, l320, l321, l322, l323, l324, l325, l326, l327,
80 l328, l329, l330, l331, l332, l333, l334, l335, l336, l337,
81 l338, l339, l340, l341, l342, l343, l344, l345, l346, l347,
82 l348, l349, l350, l351, l352, l353, l354, l355, l356, l357,
83 l358, l359, l360, l361, l362, l363, l364, l365, l366, l367,
84 l368, l369, l370, l371, l372, l373, l374, l375, l376, l377,
85 l378, l379, l380, l381, l382, l383, l384, l385, l386, l387,
86 l388, l389, l390, l391, l392, l393, l394, l395, l396, l397,
87 l398, l399, l400, l401, l402, l403, l404, l405, l406, l407,
88 l408, l409, l410, l411, l412, l413, l414, l415, l416, l417,
89 l418, l419, l420, l421, l422, l423, l424, l425, l426, l427,
90 l428, l429, l430, l431, l432, l433, l434, l435, l436, l437,
91 l438, l439, l440, l441, l442, l443, l444, l445, l446, l447,
92 l448, l449, l450, l451, l452, l453, l454, l455, l456, l457,
93 l458, l459, l460, l461, l462, l463, l464, l465, l466, l467,
94 l468, l469, l470, l471, l472, l473, l474, l475, l476, l477,
95 l478, l479, l480, l481, l482, l483, l484, l485, l486, l487,
96 l488, l489, l490, l491, l492, l493, l494, l495, l496, l497,
97 l498, l499, l500, l501, l502, l503, l504, l505, l506, l507,
98 l508, l509, l510, l511;
99
100 long ll0, ll1, ll2, ll3, ll4, ll5, ll6, ll7, ll8, ll9, ll10, ll11, ll12,
101 ll13, ll14, ll15, ll16, ll17, ll18, ll19, ll20, ll21, ll22, ll23, ll24,
102 ll25, ll26, ll27, ll28, ll29, ll30, ll31, ll32, ll33, ll34, ll35, ll36,
103 ll37, ll38, ll39, ll40, ll41, ll42, ll43, ll44, ll45, ll46, ll47, ll48,
104 ll49, ll50, ll51, ll52, ll53, ll54, ll55, ll56, ll57, ll58, ll59, ll60,
105 ll61, ll62, ll63, ll64, ll65, ll66, ll67, ll68, ll69, ll70, ll71, ll72,
106 ll73, ll74, ll75, ll76, ll77, ll78, ll79, ll80, ll81, ll82, ll83, ll84,
107 ll85, ll86, ll87, ll88, ll89, ll90, ll91, ll92, ll93, ll94, ll95, ll96,
108 ll97, ll98, ll99, ll100, ll101, ll102, ll103, ll104, ll105, ll106, ll107,
109 ll108, ll109, ll110, ll111, ll112, ll113, ll114, ll115, ll116, ll117,
110 ll118, ll119, ll120, ll121, ll122, ll123, ll124, ll125, ll126, ll127,
111 ll128, ll129, ll130, ll131, ll132, ll133, ll134, ll135, ll136, ll137,
112 ll138, ll139, ll140, ll141, ll142, ll143, ll144, ll145, ll146, ll147,
113 ll148, ll149, ll150, ll151, ll152, ll153, ll154, ll155, ll156, ll157,
114 ll158, ll159, ll160, ll161, ll162, ll163, ll164, ll165, ll166, ll167,
115 ll168, ll169, ll170, ll171, ll172, ll173, ll174, ll175, ll176, ll177,
116 ll178, ll179, ll180, ll181, ll182, ll183, ll184, ll185, ll186, ll187,
117 ll188, ll189, ll190, ll191, ll192, ll193, ll194, ll195, ll196, ll197,
118 ll198, ll199, ll200, ll201, ll202, ll203, ll204, ll205, ll206, ll207,
119 ll208, ll209, ll210, ll211, ll212, ll213, ll214, ll215, ll216, ll217,
120 ll218, ll219, ll220, ll221, ll222, ll223, ll224, ll225, ll226, ll227,
121 ll228, ll229, ll230, ll231, ll232, ll233, ll234, ll235, ll236, ll237,
122 ll238, ll239, ll240, ll241, ll242, ll243, ll244, ll245, ll246, ll247,
123 ll248, ll249, ll250, ll251, ll252, ll253, ll254, ll255, ll256, ll257,
124 ll258, ll259, ll260, ll261, ll262, ll263, ll264, ll265, ll266, ll267,
125 ll268, ll269, ll270, ll271, ll272, ll273, ll274, ll275, ll276, ll277,
126 ll278, ll279, ll280, ll281, ll282, ll283, ll284, ll285, ll286, ll287,
127 ll288, ll289, ll290, ll291, ll292, ll293, ll294, ll295, ll296, ll297,
128 ll298, ll299, ll300, ll301, ll302, ll303, ll304, ll305, ll306, ll307,
129 ll308, ll309, ll310, ll311, ll312, ll313, ll314, ll315, ll316, ll317,
130 ll318, ll319, ll320, ll321, ll322, ll323, ll324, ll325, ll326, ll327,
131 ll328, ll329, ll330, ll331, ll332, ll333, ll334, ll335, ll336, ll337,
132 ll338, ll339, ll340, ll341, ll342, ll343, ll344, ll345, ll346, ll347,
133 ll348, ll349, ll350, ll351, ll352, ll353, ll354, ll355, ll356, ll357,
134 ll358, ll359, ll360, ll361, ll362, ll363, ll364, ll365, ll366, ll367,
135 ll368, ll369, ll370, ll371, ll372, ll373, ll374, ll375, ll376, ll377,
136 ll378, ll379, ll380, ll381, ll382, ll383, ll384, ll385, ll386, ll387,
137 ll388, ll389, ll390, ll391, ll392, ll393, ll394, ll395, ll396, ll397,
138 ll398, ll399, ll400, ll401, ll402, ll403, ll404, ll405, ll406, ll407,
139 ll408, ll409, ll410, ll411, ll412, ll413, ll414, ll415, ll416, ll417,
140 ll418, ll419, ll420, ll421, ll422, ll423, ll424, ll425, ll426, ll427,
141 ll428, ll429, ll430, ll431, ll432, ll433, ll434, ll435, ll436, ll437,
142 ll438, ll439, ll440, ll441, ll442, ll443, ll444, ll445, ll446, ll447,
143 ll448, ll449, ll450, ll451, ll452, ll453, ll454, ll455, ll456, ll457,
144 ll458, ll459, ll460, ll461, ll462, ll463, ll464, ll465, ll466, ll467,
145 ll468, ll469, ll470, ll471, ll472, ll473, ll474, ll475, ll476, ll477,
146 ll478, ll479, ll480, ll481, ll482, ll483, ll484, ll485, ll486, ll487,
147 ll488, ll489, ll490, ll491, ll492, ll493, ll494, ll495, ll496, ll497,
148 ll498, ll499, ll500, ll501, ll502, ll503, ll504, ll505, ll506, ll507,
149 ll508, ll509, ll510, ll511;
150
151 a.m();
152
153 if (deopt) {
154 do_load = true;
155 while (!load_done);
156 }
157 }
158
159 static void m2(boolean deopt, A a) {
160 long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
161 l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24,
162 l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36,
163 l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48,
164 l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60,
165 l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72,
166 l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84,
167 l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96,
168 l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107,
169 l108, l109, l110, l111, l112, l113, l114, l115, l116, l117,
170 l118, l119, l120, l121, l122, l123, l124, l125, l126, l127,
171 l128, l129, l130, l131, l132, l133, l134, l135, l136, l137,
172 l138, l139, l140, l141, l142, l143, l144, l145, l146, l147,
173 l148, l149, l150, l151, l152, l153, l154, l155, l156, l157,
174 l158, l159, l160, l161, l162, l163, l164, l165, l166, l167,
175 l168, l169, l170, l171, l172, l173, l174, l175, l176, l177,
176 l178, l179, l180, l181, l182, l183, l184, l185, l186, l187,
177 l188, l189, l190, l191, l192, l193, l194, l195, l196, l197,
178 l198, l199, l200, l201, l202, l203, l204, l205, l206, l207,
179 l208, l209, l210, l211, l212, l213, l214, l215, l216, l217,
180 l218, l219, l220, l221, l222, l223, l224, l225, l226, l227,
181 l228, l229, l230, l231, l232, l233, l234, l235, l236, l237,
182 l238, l239, l240, l241, l242, l243, l244, l245, l246, l247,
183 l248, l249, l250, l251, l252, l253, l254, l255, l256, l257,
184 l258, l259, l260, l261, l262, l263, l264, l265, l266, l267,
185 l268, l269, l270, l271, l272, l273, l274, l275, l276, l277,
186 l278, l279, l280, l281, l282, l283, l284, l285, l286, l287,
187 l288, l289, l290, l291, l292, l293, l294, l295, l296, l297,
188 l298, l299, l300, l301, l302, l303, l304, l305, l306, l307,
189 l308, l309, l310, l311, l312, l313, l314, l315, l316, l317,
190 l318, l319, l320, l321, l322, l323, l324, l325, l326, l327,
191 l328, l329, l330, l331, l332, l333, l334, l335, l336, l337,
192 l338, l339, l340, l341, l342, l343, l344, l345, l346, l347,
193 l348, l349, l350, l351, l352, l353, l354, l355, l356, l357,
194 l358, l359, l360, l361, l362, l363, l364, l365, l366, l367,
195 l368, l369, l370, l371, l372, l373, l374, l375, l376, l377,
196 l378, l379, l380, l381, l382, l383, l384, l385, l386, l387,
197 l388, l389, l390, l391, l392, l393, l394, l395, l396, l397,
198 l398, l399, l400, l401, l402, l403, l404, l405, l406, l407,
199 l408, l409, l410, l411, l412, l413, l414, l415, l416, l417,
200 l418, l419, l420, l421, l422, l423, l424, l425, l426, l427,
201 l428, l429, l430, l431, l432, l433, l434, l435, l436, l437,
202 l438, l439, l440, l441, l442, l443, l444, l445, l446, l447,
203 l448, l449, l450, l451, l452, l453, l454, l455, l456, l457,
204 l458, l459, l460, l461, l462, l463, l464, l465, l466, l467,
205 l468, l469, l470, l471, l472, l473, l474, l475, l476, l477,
206 l478, l479, l480, l481, l482, l483, l484, l485, l486, l487,
207 l488, l489, l490, l491, l492, l493, l494, l495, l496, l497,
208 l498, l499, l500, l501, l502, l503, l504, l505, l506, l507,
209 l508, l509, l510, l511;
210
211 try {
212 m2(deopt, a);
213 } catch (StackOverflowError e) {
214 m3(deopt, a);
215 }
216 }
217
218 static void m3(boolean deopt, A a) {
219 long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12,
220 l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24,
221 l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36,
222 l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48,
223 l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60,
224 l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72,
225 l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84,
226 l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96,
227 l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107,
228 l108, l109, l110, l111, l112, l113, l114, l115, l116, l117,
229 l118, l119, l120, l121, l122, l123, l124, l125, l126, l127,
230 l128, l129, l130, l131, l132, l133, l134, l135, l136, l137,
231 l138, l139, l140, l141, l142, l143, l144, l145, l146, l147,
232 l148, l149, l150, l151, l152, l153, l154, l155, l156, l157,
233 l158, l159, l160, l161, l162, l163, l164, l165, l166, l167,
234 l168, l169, l170, l171, l172, l173, l174, l175, l176, l177,
235 l178, l179, l180, l181, l182, l183, l184, l185, l186, l187,
236 l188, l189, l190, l191, l192, l193, l194, l195, l196, l197,
237 l198, l199, l200, l201, l202, l203, l204, l205, l206, l207,
238 l208, l209, l210, l211, l212, l213, l214, l215, l216, l217,
239 l218, l219, l220, l221, l222, l223, l224, l225, l226, l227,
240 l228, l229, l230, l231, l232, l233, l234, l235, l236, l237,
241 l238, l239, l240, l241, l242, l243, l244, l245, l246, l247,
242 l248, l249, l250, l251, l252, l253, l254, l255, l256, l257,
243 l258, l259, l260, l261, l262, l263, l264, l265, l266, l267,
244 l268, l269, l270, l271, l272, l273, l274, l275, l276, l277,
245 l278, l279, l280, l281, l282, l283, l284, l285, l286, l287,
246 l288, l289, l290, l291, l292, l293, l294, l295, l296, l297,
247 l298, l299, l300, l301, l302, l303, l304, l305, l306, l307,
248 l308, l309, l310, l311, l312, l313, l314, l315, l316, l317,
249 l318, l319, l320, l321, l322, l323, l324, l325, l326, l327,
250 l328, l329, l330, l331, l332, l333, l334, l335, l336, l337,
251 l338, l339, l340, l341, l342, l343, l344, l345, l346, l347,
252 l348, l349, l350, l351, l352, l353, l354, l355, l356, l357,
253 l358, l359, l360, l361, l362, l363, l364, l365, l366, l367,
254 l368, l369, l370, l371, l372, l373, l374, l375, l376, l377,
255 l378, l379, l380, l381, l382, l383, l384, l385, l386, l387,
256 l388, l389, l390, l391, l392, l393, l394, l395, l396, l397,
257 l398, l399, l400, l401, l402, l403, l404, l405, l406, l407,
258 l408, l409, l410, l411, l412, l413, l414, l415, l416, l417,
259 l418, l419, l420, l421, l422, l423, l424, l425, l426, l427,
260 l428, l429, l430, l431, l432, l433, l434, l435, l436, l437,
261 l438, l439, l440, l441, l442, l443, l444, l445, l446, l447,
262 l448, l449, l450, l451, l452, l453, l454, l455, l456, l457,
263 l458, l459, l460, l461, l462, l463, l464, l465, l466, l467,
264 l468, l469, l470, l471, l472, l473, l474, l475, l476, l477,
265 l478, l479, l480, l481, l482, l483, l484, l485, l486, l487,
266 l488, l489, l490, l491, l492, l493, l494, l495, l496, l497,
267 l498, l499, l500, l501, l502, l503, l504, l505, l506, l507,
268 l508, l509, l510, l511;
269
270 long ll0, ll1, ll2, ll3, ll4, ll5, ll6, ll7, ll8, ll9, ll10, ll11, ll12,
271 ll13, ll14, ll15, ll16, ll17, ll18, ll19, ll20, ll21, ll22, ll23, ll24,
272 ll25, ll26, ll27, ll28, ll29, ll30, ll31, ll32, ll33, ll34, ll35, ll36,
273 ll37, ll38, ll39, ll40, ll41, ll42, ll43, ll44, ll45, ll46, ll47, ll48,
274 ll49, ll50, ll51, ll52, ll53, ll54, ll55, ll56, ll57, ll58, ll59, ll60,
275 ll61, ll62, ll63, ll64, ll65, ll66, ll67, ll68, ll69, ll70, ll71, ll72,
276 ll73, ll74, ll75, ll76, ll77, ll78, ll79, ll80, ll81, ll82, ll83, ll84,
277 ll85, ll86, ll87, ll88, ll89, ll90, ll91, ll92, ll93, ll94, ll95, ll96,
278 ll97, ll98, ll99, ll100, ll101, ll102, ll103, ll104, ll105, ll106, ll107,
279 ll108, ll109, ll110, ll111, ll112, ll113, ll114, ll115, ll116, ll117,
280 ll118, ll119, ll120, ll121, ll122, ll123, ll124, ll125, ll126, ll127,
281 ll128, ll129, ll130, ll131, ll132, ll133, ll134, ll135, ll136, ll137,
282 ll138, ll139, ll140, ll141, ll142, ll143, ll144, ll145, ll146, ll147,
283 ll148, ll149, ll150, ll151, ll152, ll153, ll154, ll155, ll156, ll157,
284 ll158, ll159, ll160, ll161, ll162, ll163, ll164, ll165, ll166, ll167,
285 ll168, ll169, ll170, ll171, ll172, ll173, ll174, ll175, ll176, ll177,
286 ll178, ll179, ll180, ll181, ll182, ll183, ll184, ll185, ll186, ll187,
287 ll188, ll189, ll190, ll191, ll192, ll193, ll194, ll195, ll196, ll197,
288 ll198, ll199, ll200, ll201, ll202, ll203, ll204, ll205, ll206, ll207,
289 ll208, ll209, ll210, ll211, ll212, ll213, ll214, ll215, ll216, ll217,
290 ll218, ll219, ll220, ll221, ll222, ll223, ll224, ll225, ll226, ll227,
291 ll228, ll229, ll230, ll231, ll232, ll233, ll234, ll235, ll236, ll237,
292 ll238, ll239, ll240, ll241, ll242, ll243, ll244, ll245, ll246, ll247,
293 ll248, ll249, ll250, ll251, ll252, ll253, ll254, ll255, ll256, ll257,
294 ll258, ll259, ll260, ll261, ll262, ll263, ll264, ll265, ll266, ll267,
295 ll268, ll269, ll270, ll271, ll272, ll273, ll274, ll275, ll276, ll277,
296 ll278, ll279, ll280, ll281, ll282, ll283, ll284, ll285, ll286, ll287,
297 ll288, ll289, ll290, ll291, ll292, ll293, ll294, ll295, ll296, ll297,
298 ll298, ll299, ll300, ll301, ll302, ll303, ll304, ll305, ll306, ll307,
299 ll308, ll309, ll310, ll311, ll312, ll313, ll314, ll315, ll316, ll317,
300 ll318, ll319, ll320, ll321, ll322, ll323, ll324, ll325, ll326, ll327,
301 ll328, ll329, ll330, ll331, ll332, ll333, ll334, ll335, ll336, ll337,
302 ll338, ll339, ll340, ll341, ll342, ll343, ll344, ll345, ll346, ll347,
303 ll348, ll349, ll350, ll351, ll352, ll353, ll354, ll355, ll356, ll357,
304 ll358, ll359, ll360, ll361, ll362, ll363, ll364, ll365, ll366, ll367,
305 ll368, ll369, ll370, ll371, ll372, ll373, ll374, ll375, ll376, ll377,
306 ll378, ll379, ll380, ll381, ll382, ll383, ll384, ll385, ll386, ll387,
307 ll388, ll389, ll390, ll391, ll392, ll393, ll394, ll395, ll396, ll397,
308 ll398, ll399, ll400, ll401, ll402, ll403, ll404, ll405, ll406, ll407,
309 ll408, ll409, ll410, ll411, ll412, ll413, ll414, ll415, ll416, ll417,
310 ll418, ll419, ll420, ll421, ll422, ll423, ll424, ll425, ll426, ll427,
311 ll428, ll429, ll430, ll431, ll432, ll433, ll434, ll435, ll436, ll437,
312 ll438, ll439, ll440, ll441, ll442, ll443, ll444, ll445, ll446, ll447,
313 ll448, ll449, ll450, ll451, ll452, ll453, ll454, ll455, ll456, ll457,
314 ll458, ll459, ll460, ll461, ll462, ll463, ll464, ll465, ll466, ll467,
315 ll468, ll469, ll470, ll471, ll472, ll473, ll474, ll475, ll476, ll477,
316 ll478, ll479, ll480, ll481, ll482, ll483, ll484, ll485, ll486, ll487,
317 ll488, ll489, ll490, ll491, ll492, ll493, ll494, ll495, ll496, ll497,
318 ll498, ll499, ll500, ll501, ll502, ll503, ll504, ll505, ll506, ll507,
319 ll508, ll509, ll510, ll511;
320
321 a.m();
322
323 m1(deopt, a);
324 }
325
326 // Used for synchronization betwen main thread and thread
327 // responsible for class loading
328 static volatile boolean thread_started = false;
329 static volatile boolean do_load = false;
330 static volatile boolean load_done = false;
331
332 static public void main(String[] args) {
333 // This thread does the loading of B. If m1 does it, the class
334 // loading can cause stack overflows.
335 Thread thread = new Thread() {
336 public void run() {
337 thread_started = true;
338 while(!do_load);
339 new B();
340 load_done = true;
341 }
342 };
343 thread.start();
344 while(!thread_started);
345 // get m3 and m1 compiled
346 A a = new A();
347 for (int i = 0; i < 5000; i++) {
348 m3(false, a);
349 m1(false, a);
350 }
351 m2(true, a);
352
353 System.out.println("TEST PASSED");
354 }
355 }