comparison src/share/vm/opto/output.cpp @ 4970:33df1aeaebbf

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 13:10:13 +0100
parents 597bc897257d fd8114661503
children e1a03c81cef0
comparison
equal deleted inserted replaced
4703:2cfb7fb2dce7 4970:33df1aeaebbf
165 165
166 bool Compile::need_stack_bang(int frame_size_in_bytes) const { 166 bool Compile::need_stack_bang(int frame_size_in_bytes) const {
167 // Determine if we need to generate a stack overflow check. 167 // Determine if we need to generate a stack overflow check.
168 // Do it if the method is not a stub function and 168 // Do it if the method is not a stub function and
169 // has java calls or has frame size > vm_page_size/8. 169 // has java calls or has frame size > vm_page_size/8.
170 return (stub_function() == NULL && 170 return (UseStackBanging && stub_function() == NULL &&
171 (has_java_calls() || frame_size_in_bytes > os::vm_page_size()>>3)); 171 (has_java_calls() || frame_size_in_bytes > os::vm_page_size()>>3));
172 } 172 }
173 173
174 bool Compile::need_register_stack_bang() const { 174 bool Compile::need_register_stack_bang() const {
175 // Determine if we need to generate a register stack overflow check. 175 // Determine if we need to generate a register stack overflow check.
922 } else { 922 } else {
923 const TypePtr *tp = obj_node->bottom_type()->make_ptr(); 923 const TypePtr *tp = obj_node->bottom_type()->make_ptr();
924 scval = new ConstantOopWriteValue(tp->is_oopptr()->const_oop()->constant_encoding()); 924 scval = new ConstantOopWriteValue(tp->is_oopptr()->const_oop()->constant_encoding());
925 } 925 }
926 926
927 OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node); 927 OptoReg::Name box_reg = BoxLockNode::reg(box_node);
928 Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg)); 928 Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg));
929 while( !box_node->is_BoxLock() ) box_node = box_node->in(1); 929 bool eliminated = (box_node->is_BoxLock() && box_node->as_BoxLock()->is_eliminated());
930 monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated())); 930 monarray->append(new MonitorValue(scval, basic_lock, eliminated));
931 } 931 }
932 932
933 // We dump the object pool first, since deoptimization reads it in first. 933 // We dump the object pool first, since deoptimization reads it in first.
934 debug_info()->dump_object_pool(objs); 934 debug_info()->dump_object_pool(objs);
935 935