Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6761594
Votes 0
Synopsis framesize rounding code rounds using wrong units leading to slightly oversized frames
Category hotspot:compiler2
Reported Against
Release Fixed hs14(b07)
State 10-Fix Delivered, bug
Priority: 4-Low
Related Bugs
Submit Date 20-OCT-2008
Description
I believe that I have found a minor bug in the framesize calculation in chaitin.cpp:
 
  // Convert that to a frame_slot number.
  if( _max_reg <= _matcher._new_SP )
    _framesize = C->out_preserve_stack_slots();
  else _framesize = _max_reg -_matcher._new_SP;
  assert((int)(_matcher._new_SP+_framesize) >= (int)_matcher._out_arg_limit, "framesize must be large enough");
 
  // This frame must preserve the required fp alignment
  const int stack_alignment_in_words = 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" );
 
The granularity of _framesize at this point is OptoReg slots and so should it be aligned to Matcher::stack_alignment_in_slots() instead of Matcher::stack_alignment_in_bytes()? This is causing the minimum framesize on Itanium to be 80 bytes instead of 32 (2 words scratch, 1 word for the original_pc offset, and 1 word for alignment).
Posted Date : 2008-10-20 22:00:03.0
Work Around
N/A
Evaluation
That's correct.
Posted Date : 2008-10-20 22:00:03.0

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/0bf25c4807f9
Posted Date : 2008-11-07 06:23:06.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang