src/share/vm/opto/output.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/output.cpp	Tue Dec  2 23:49:28 2008
--- new/src/share/vm/opto/output.cpp	Tue Dec  2 23:49:28 2008

*** 847,860 **** --- 847,858 ---- GrowableArray<MonitorValue*> *monarray = new GrowableArray<MonitorValue*>(num_mon); // Loop over monitors and insert into array for(idx = 0; idx < num_mon; idx++) { // Grab the node that defines this monitor ! Node* box_node = sfn->monitor_box(jvms, idx); ! Node* obj_node; box_node = sfn->monitor_box(jvms, idx); obj_node = sfn->monitor_obj(jvms, idx); ! Node* obj_node = sfn->monitor_obj(jvms, idx); // Create ScopeValue for object ScopeValue *scval = NULL; if( obj_node->is_SafePointScalarObject() ) {
*** 888,897 **** --- 886,896 ---- scval = new ConstantOopWriteValue(tp->is_instptr()->const_oop()->encoding()); } OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node); Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg)); + while( !box_node->is_BoxLock() ) box_node = box_node->in(1); monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated())); } // We dump the object pool first, since deoptimization reads it in first. debug_info()->dump_object_pool(objs);

src/share/vm/opto/output.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File