equal
deleted
inserted
replaced
847 GrowableArray<MonitorValue*> *monarray = new GrowableArray<MonitorValue*>(num_mon); |
847 GrowableArray<MonitorValue*> *monarray = new GrowableArray<MonitorValue*>(num_mon); |
848 |
848 |
849 // Loop over monitors and insert into array |
849 // Loop over monitors and insert into array |
850 for(idx = 0; idx < num_mon; idx++) { |
850 for(idx = 0; idx < num_mon; idx++) { |
851 // Grab the node that defines this monitor |
851 // Grab the node that defines this monitor |
852 Node* box_node; |
852 Node* box_node = sfn->monitor_box(jvms, idx); |
853 Node* obj_node; |
853 Node* obj_node = sfn->monitor_obj(jvms, idx); |
854 box_node = sfn->monitor_box(jvms, idx); |
|
855 obj_node = sfn->monitor_obj(jvms, idx); |
|
856 |
854 |
857 // Create ScopeValue for object |
855 // Create ScopeValue for object |
858 ScopeValue *scval = NULL; |
856 ScopeValue *scval = NULL; |
859 |
857 |
860 if( obj_node->is_SafePointScalarObject() ) { |
858 if( obj_node->is_SafePointScalarObject() ) { |
888 scval = new ConstantOopWriteValue(tp->is_instptr()->const_oop()->encoding()); |
886 scval = new ConstantOopWriteValue(tp->is_instptr()->const_oop()->encoding()); |
889 } |
887 } |
890 |
888 |
891 OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node); |
889 OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node); |
892 Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg)); |
890 Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg)); |
|
891 while( !box_node->is_BoxLock() ) box_node = box_node->in(1); |
893 monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated())); |
892 monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated())); |
894 } |
893 } |
895 |
894 |
896 // We dump the object pool first, since deoptimization reads it in first. |
895 // We dump the object pool first, since deoptimization reads it in first. |
897 debug_info()->dump_object_pool(objs); |
896 debug_info()->dump_object_pool(objs); |