Currently HotSpot VM allocate java object fileds according to thir type
in the next order:
oops (32-bits for LP32, 64-bits for LP64)
long/double (64-bits fileds)
int/float (32-bits fileds)
short/char (16-bits fileds)
byte ( 8-bits fileds)
The other stype could be source based.
Also we could compact fields by placeing them into gaps between fields in super class.
Different styles of java object nonstatic fields allocation provide
These changes implement straightforward approach by allocating oops fields
last instead of first. Added the fields compacting by allocating fields in
available gap before a double/long field.
Added missed hard-coded offset checks in JavaClasses::check_offsets().
Changed generation of several prefetch instructions. Do it only for arrays
and do it on sparc also.