Mercurial > hg > truffle
diff src/share/vm/c1/c1_LIRGenerator.cpp @ 17628:add2caa66e7e
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 | e6ba215af802 |
children | d8041d695d19 3c3953fb3f2a ce9fd31ffd14 |
line wrap: on
line diff
--- a/src/share/vm/c1/c1_LIRGenerator.cpp Tue Jan 14 12:44:12 2014 +0100 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp Tue Jan 14 14:51:47 2014 +0100 @@ -3288,7 +3288,10 @@ ciSignature* signature_at_call = NULL; x->method()->get_method_at_bci(bci, ignored_will_link, &signature_at_call); - ciKlass* exact = profile_type(md, 0, md->byte_offset_of_slot(data, ret->type_offset()), + // The offset within the MDO of the entry to update may be too large + // to be used in load/store instructions on some platforms. So have + // profile_type() compute the address of the profile in a register. + ciKlass* exact = profile_type(md, md->byte_offset_of_slot(data, ret->type_offset()), 0, ret->type(), x->ret(), mdp, !x->needs_null_check(), signature_at_call->return_type()->as_klass(),