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: 6633953
Votes 0
Synopsis type2aelembytes[T_ADDRESS] should be 8 bytes in 64 bit VM
Category hotspot:compiler2
Reported Against
Release Fixed hs12(b02)
State 10-Fix Delivered, bug
Priority: 4-Low
Related Bugs
Submit Date 26-NOV-2007
Description
In globalDefinitions.cpp from the first day T_ADDRESS size is defined as 'int' size:

int type2aelembytes[T_CONFLICT+1] = {
...
  T_OBJECT_aelem_bytes,   // T_OBJECT   = 12,
  T_ARRAY_aelem_bytes,    // T_ARRAY    = 13,
  0,                      // T_VOID     = 14,
  T_INT_aelem_bytes,      // T_ADDRESS  = 15,   
  0                       // T_CONFLICT = 16,
};

I think, this is because T_OBJECT_aelem_bytes was also 4 when it was created.
T_OBJECT and T_ARRAY sizes were fixed when VM was changed to support 64 bits oops.

The incorrect T_ADDRESS size in 64-bits VM produces whong size of StoreP nodes
attached to Initialize:

  virtual int memory_size() const { return type2aelembytes[memory_type()]; }

As result EA can't find stores through Initialize node.
The current code which use InitializeNode::find_captured_store() may also be broken. 
I think, it works now because LoadP and StoreP has the same T_ADDRESS type.
Posted Date : 2007-11-26 20:25:00.0
Work Around
N/A
Evaluation
See Description.
Posted Date : 2007-11-26 20:25:00.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang