-
Bug
-
Resolution: Fixed
-
P1
-
hs14
-
b09
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2172400 | 7 | Tom Rodriguez | P1 | Closed | Fixed | b42 |
JDK-2170220 | 6u12 | Tom Rodriguez | P3 | Resolved | Fixed | b01 |
JDK-2169324 | hs11 | Tom Rodriguez | P1 | Resolved | Fixed | b17 |
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.
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.
- backported by
-
JDK-2169324 load_constant() produces a wrong long constant, with high a low words swapped
-
- Resolved
-
-
JDK-2170220 load_constant() produces a wrong long constant, with high a low words swapped
-
- Resolved
-
-
JDK-2172400 load_constant() produces a wrong long constant, with high a low words swapped
-
- Closed
-