|
Quick Lists
|
|
Bug ID:
|
6757316
|
|
Votes
|
0
|
|
Synopsis
|
load_constant() produces a wrong long constant, with high a low words swapped
|
|
Category
|
hotspot:compiler1
|
|
Reported Against
|
|
|
Release Fixed
|
hs14(b09),
hs11(b17) (Bug ID:2169324)
, 6u12(b01) (Bug ID:2170220)
, 7(b42) (Bug ID:2172400)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
1-Very High
|
|
Related Bugs
|
|
|
Submit Date
|
08-OCT-2008
|
|
Description
|
C1 code generator refers to invalid T_LONG constant in case a similar constant with high and low words swapped is present.
The test case:
public static void main(String[] args) {
long[] arr = {
0x11111111aaaaaaaaL,
0xaaaaaaaa11111111L,
0x11111111aaaaaaaaL,
0xaaaaaaaa11111111L
};
System.out.println(Long.toHexString(arr[1]));
}
The output is wrong (11111111aaaaaaaa) on SPARC and on ARM.
Posted Date : 2008-10-08 15:26:17.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
The problem was found in LIRGenerator::load_constant(). See comments and suggester fix for details.
Posted Date : 2008-10-17 15:23:44.0
http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/a738a625039a
Posted Date : 2008-12-13 09:19:41.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |