Mercurial > hg > graal-compiler
comparison src/cpu/sparc/vm/templateInterpreter_sparc.cpp @ 14260:8cdf3f43f63e
8026253: New type profiling points: sparc support
Summary: c1 and interpreter support for new type profiling on sparc
Reviewed-by: kvn, twisti
author | roland |
---|---|
date | Tue, 14 Jan 2014 14:51:47 +0100 |
parents | bd3237e0e18d |
children | d8041d695d19 2100bf712e2a |
comparison
equal
deleted
inserted
replaced
14259:ee5727365ce5 | 14260:8cdf3f43f63e |
---|---|
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 } | |
158 | 162 |
159 #if !defined(_LP64) && defined(COMPILER2) | 163 #if !defined(_LP64) && defined(COMPILER2) |
160 // All return values are where we want them, except for Longs. C2 returns | 164 // All return values are where we want them, except for Longs. C2 returns |
161 // longs in G1 in the 32-bit build whereas the interpreter wants them in O0/O1. | 165 // longs in G1 in the 32-bit build whereas the interpreter wants them in O0/O1. |
162 // Since the interpreter will return longs in G1 and O0/O1 in the 32bit | 166 // Since the interpreter will return longs in G1 and O0/O1 in the 32bit |
1331 // runtime, exception handling i.e. unlock_if_synchronized_method will | 1335 // runtime, exception handling i.e. unlock_if_synchronized_method will |
1332 // check this thread local flag. | 1336 // check this thread local flag. |
1333 __ movbool(true, G3_scratch); | 1337 __ movbool(true, G3_scratch); |
1334 __ stbool(G3_scratch, do_not_unlock_if_synchronized); | 1338 __ stbool(G3_scratch, do_not_unlock_if_synchronized); |
1335 | 1339 |
1340 __ profile_parameters_type(G1_scratch, G3_scratch, G4_scratch, Lscratch); | |
1336 // increment invocation counter and check for overflow | 1341 // increment invocation counter and check for overflow |
1337 // | 1342 // |
1338 // Note: checking for negative value instead of overflow | 1343 // Note: checking for negative value instead of overflow |
1339 // so we have a 'sticky' overflow test (may be of | 1344 // so we have a 'sticky' overflow test (may be of |
1340 // importance as soon as we have true MT/MP) | 1345 // importance as soon as we have true MT/MP) |