-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P1
-
Affects Version/s: hs14
-
Component/s: hotspot
-
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
-