Mercurial > hg > graal-compiler
comparison src/cpu/x86/vm/c1_LIRGenerator_x86.cpp @ 1791:3a294e483abc
6919069: client compiler needs to capture more profile information for tiered work
Summary: Added profiling of instanceof and aastore.
Reviewed-by: kvn, jrose, never
author | iveresov |
---|---|
date | Mon, 13 Sep 2010 12:10:49 -0700 |
parents | d5d065957597 |
children | f02a8bbe6ed4 |
comparison
equal
deleted
inserted
replaced
1790:7f9553bedfd5 | 1791:3a294e483abc |
---|---|
1154 if ((!x->klass()->is_loaded() || PatchALot)) { | 1154 if ((!x->klass()->is_loaded() || PatchALot)) { |
1155 // must do this before locking the destination register as an oop register | 1155 // must do this before locking the destination register as an oop register |
1156 patching_info = state_for(x, x->state_before()); | 1156 patching_info = state_for(x, x->state_before()); |
1157 } | 1157 } |
1158 obj.load_item(); | 1158 obj.load_item(); |
1159 LIR_Opr tmp = new_register(objectType); | |
1160 __ instanceof(reg, obj.result(), x->klass(), | 1159 __ instanceof(reg, obj.result(), x->klass(), |
1161 tmp, new_register(objectType), LIR_OprFact::illegalOpr, | 1160 new_register(objectType), new_register(objectType), |
1162 x->direct_compare(), patching_info); | 1161 !x->klass()->is_loaded() ? new_register(objectType) : LIR_OprFact::illegalOpr, |
1162 x->direct_compare(), patching_info, x->profiled_method(), x->profiled_bci()); | |
1163 } | 1163 } |
1164 | 1164 |
1165 | 1165 |
1166 void LIRGenerator::do_If(If* x) { | 1166 void LIRGenerator::do_If(If* x) { |
1167 assert(x->number_of_sux() == 2, "inconsistency"); | 1167 assert(x->number_of_sux() == 2, "inconsistency"); |