Mercurial > hg > graal-compiler
comparison src/cpu/sparc/vm/templateInterpreter_sparc.cpp @ 14909:4ca6dc0799b6
Backout jdk9 merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Tue, 01 Apr 2014 13:57:07 +0200 |
parents | d8041d695d19 |
children | 4062efea018b |
comparison
equal
deleted
inserted
replaced
14908:8db6e76cb658 | 14909:4ca6dc0799b6 |
---|---|
153 } | 153 } |
154 | 154 |
155 | 155 |
156 address TemplateInterpreterGenerator::generate_return_entry_for(TosState state, int step, size_t index_size) { | 156 address TemplateInterpreterGenerator::generate_return_entry_for(TosState state, int step, size_t index_size) { |
157 address entry = __ pc(); | 157 address entry = __ pc(); |
158 | |
159 if (state == atos) { | |
160 __ profile_return_type(O0, G3_scratch, G1_scratch); | |
161 } | |
162 | 158 |
163 #if !defined(_LP64) && defined(COMPILER2) | 159 #if !defined(_LP64) && defined(COMPILER2) |
164 // All return values are where we want them, except for Longs. C2 returns | 160 // All return values are where we want them, except for Longs. C2 returns |
165 // longs in G1 in the 32-bit build whereas the interpreter wants them in O0/O1. | 161 // longs in G1 in the 32-bit build whereas the interpreter wants them in O0/O1. |
166 // Since the interpreter will return longs in G1 and O0/O1 in the 32bit | 162 // Since the interpreter will return longs in G1 and O0/O1 in the 32bit |
1348 // runtime, exception handling i.e. unlock_if_synchronized_method will | 1344 // runtime, exception handling i.e. unlock_if_synchronized_method will |
1349 // check this thread local flag. | 1345 // check this thread local flag. |
1350 __ movbool(true, G3_scratch); | 1346 __ movbool(true, G3_scratch); |
1351 __ stbool(G3_scratch, do_not_unlock_if_synchronized); | 1347 __ stbool(G3_scratch, do_not_unlock_if_synchronized); |
1352 | 1348 |
1353 __ profile_parameters_type(G1_scratch, G3_scratch, G4_scratch, Lscratch); | |
1354 // increment invocation counter and check for overflow | 1349 // increment invocation counter and check for overflow |
1355 // | 1350 // |
1356 // Note: checking for negative value instead of overflow | 1351 // Note: checking for negative value instead of overflow |
1357 // so we have a 'sticky' overflow test (may be of | 1352 // so we have a 'sticky' overflow test (may be of |
1358 // importance as soon as we have true MT/MP) | 1353 // importance as soon as we have true MT/MP) |