Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8141900 | emb-9 | Ed Nevill | P4 | Resolved | Fixed | team |
C2 can generate illegal instructions with int shifts >=32 combined with a logical operation.
The following test program provokes the problem
--- CUT HERE ---
public class SigILL {
public static void main(String[] args) {
int res = 0;
for (int i=0; i<2000; i++) {
for (int j=0; j < 2000; j++) {
res += i | (j >>> 53);
}
}
System.out.println("res = " + res);
}
}
--- CUT HERE ---
This generates
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGILL (0x4) at pc=0x000003ff65340e74, pid=45993, tid=4395797115376
#
# JRE version: OpenJDK Runtime Environment (7.0_51-b31) (build 1.7.0_51-b31)
# Java VM: OpenJDK 64-Bit Server VM (25.0-b70 mixed mode linux-aarch64 compressed oops)
# Problematic frame:
# J 57% C2 SigILL.main([Ljava/lang/String;)V (67 bytes) @ 0x000003ff65340e74 [0x000003ff65340e00+0x74]
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/ed/tmp/hs_err_pid45993.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
Aborted
The following test program provokes the problem
--- CUT HERE ---
public class SigILL {
public static void main(String[] args) {
int res = 0;
for (int i=0; i<2000; i++) {
for (int j=0; j < 2000; j++) {
res += i | (j >>> 53);
}
}
System.out.println("res = " + res);
}
}
--- CUT HERE ---
This generates
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGILL (0x4) at pc=0x000003ff65340e74, pid=45993, tid=4395797115376
#
# JRE version: OpenJDK Runtime Environment (7.0_51-b31) (build 1.7.0_51-b31)
# Java VM: OpenJDK 64-Bit Server VM (25.0-b70 mixed mode linux-aarch64 compressed oops)
# Problematic frame:
# J 57% C2 SigILL.main([Ljava/lang/String;)V (67 bytes) @ 0x000003ff65340e74 [0x000003ff65340e00+0x74]
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/ed/tmp/hs_err_pid45993.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
Aborted
- backported by
-
JDK-8141900 aarch64: C2 generates illegal instructions with int shifts >=32
-
- Resolved
-