提交 cdbae77f 编写于 作者: N never

6761594: framesize rounding code rounds using wrong units leading to slightly oversized frames

Reviewed-by: rasbold, kvn
上级 3296e1f2
...@@ -440,9 +440,7 @@ void PhaseChaitin::Register_Allocate() { ...@@ -440,9 +440,7 @@ void PhaseChaitin::Register_Allocate() {
assert((int)(_matcher._new_SP+_framesize) >= (int)_matcher._out_arg_limit, "framesize must be large enough"); assert((int)(_matcher._new_SP+_framesize) >= (int)_matcher._out_arg_limit, "framesize must be large enough");
// This frame must preserve the required fp alignment // This frame must preserve the required fp alignment
const int stack_alignment_in_words = Matcher::stack_alignment_in_slots(); _framesize = round_to(_framesize, Matcher::stack_alignment_in_slots());
if (stack_alignment_in_words > 0)
_framesize = round_to(_framesize, Matcher::stack_alignment_in_bytes());
assert( _framesize >= 0 && _framesize <= 1000000, "sanity check" ); assert( _framesize >= 0 && _framesize <= 1000000, "sanity check" );
#ifndef PRODUCT #ifndef PRODUCT
_total_framesize += _framesize; _total_framesize += _framesize;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册