comparison src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp @ 3957:5cceda753a4a

7091764: Tiered: enable aastore profiling Summary: Turn on aastore profiling Reviewed-by: jrose, twisti
author iveresov
date Mon, 19 Sep 2011 15:21:03 -0700
parents e1162778c1c8
children 6759698e3140
comparison
equal deleted inserted replaced
3953:77e1a9153757 3957:5cceda753a4a
326 assert(x->is_pinned(),""); 326 assert(x->is_pinned(),"");
327 bool needs_range_check = true; 327 bool needs_range_check = true;
328 bool use_length = x->length() != NULL; 328 bool use_length = x->length() != NULL;
329 bool obj_store = x->elt_type() == T_ARRAY || x->elt_type() == T_OBJECT; 329 bool obj_store = x->elt_type() == T_ARRAY || x->elt_type() == T_OBJECT;
330 bool needs_store_check = obj_store && (x->value()->as_Constant() == NULL || 330 bool needs_store_check = obj_store && (x->value()->as_Constant() == NULL ||
331 !get_jobject_constant(x->value())->is_null_object()); 331 !get_jobject_constant(x->value())->is_null_object() ||
332 x->should_profile());
332 333
333 LIRItem array(x->array(), this); 334 LIRItem array(x->array(), this);
334 LIRItem index(x->index(), this); 335 LIRItem index(x->index(), this);
335 LIRItem value(x->value(), this); 336 LIRItem value(x->value(), this);
336 LIRItem length(this); 337 LIRItem length(this);
380 LIR_Opr tmp1 = FrameMap::G1_opr; 381 LIR_Opr tmp1 = FrameMap::G1_opr;
381 LIR_Opr tmp2 = FrameMap::G3_opr; 382 LIR_Opr tmp2 = FrameMap::G3_opr;
382 LIR_Opr tmp3 = FrameMap::G5_opr; 383 LIR_Opr tmp3 = FrameMap::G5_opr;
383 384
384 CodeEmitInfo* store_check_info = new CodeEmitInfo(range_check_info); 385 CodeEmitInfo* store_check_info = new CodeEmitInfo(range_check_info);
385 __ store_check(value.result(), array.result(), tmp1, tmp2, tmp3, store_check_info); 386 __ store_check(value.result(), array.result(), tmp1, tmp2, tmp3, store_check_info, x->profiled_method(), x->profiled_bci());
386 } 387 }
387 388
388 if (obj_store) { 389 if (obj_store) {
389 // Needs GC write barriers. 390 // Needs GC write barriers.
390 pre_barrier(LIR_OprFact::address(array_addr), LIR_OprFact::illegalOpr /* pre_val */, 391 pre_barrier(LIR_OprFact::address(array_addr), LIR_OprFact::illegalOpr /* pre_val */,