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");