A DESCRIPTION OF THE PROBLEM :
When running my program, the HotSpot Java virtual machine crashes, prints error messages, and halts. However, this is pure Java code with nothing tricky, just multidimensional array indexing.

The program does not access any out-of-bounds indexes, so it should not crash at all. Even if any indexes are potentially out of bounds, the JVM should throw ArrayIndexOutOfBoundsException, not crash at the native level.

Also, it seems that the variables xreal and yreal are necessary for the crash. Tweaking some numerical constants (e.g. x < 80, y - 15) will also affect whether the JVM crashes or not. The numbers have already been reduced in magnitude compared to the first discovered crashing case.

THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: No

THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Yes

REGRESSION. Last worked in version 8u121

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Simply compile and run the code:
- javac Buggy.java
- java Buggy

RAX=0x000000002581c970 is an unknown value
RBX=0x000000002581b0a0 is an unknown value
RCX=0x00000000000001ff is an unknown value
RDX=0x000000002712b6f8 is an unknown value
RSP=0x000000002701bcb0 is pointing into the stack for thread: 0x00000000257e0800
RBP=0x000000002712c500 is an unknown value
RSI=0x0000000000000000 is an unknown value
RDI=0x0000000000000000 is an unknown value
R8 =0x0000000000000002 is an unknown value
R9 =0x0000000025835838 is an unknown value
R10=0x00000000257cb5e0 is an unknown value
R11=0x0000000000000004 is an unknown value
R12=0x000000002712cd40 is an unknown value
R13=0x000000002701c230 is pointing into the stack for thread: 0x00000000257e0800
R14=0x00000000000001ff is an unknown value
R15=0x0000000000000002 is an unknown value

CUSTOMER SUBMITTED WORKAROUND :
- Use interpreted mode, at a great cost to image processing speed.
- Use the older version Java SE 8 Update 92, which runs this program without crashing.
- Maybe change logic to use 1-dimension arrays?