Mercurial > hg > truffle
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 |