[9] RFR(S): 8178033: C1 crashes with -XX:UseAVX = 3: "not a mov [reg+offs], reg instruction"

Tobias Hartmann tobias.hartmann at oracle.com
Tue Apr 4 10:38:31 UTC 2017


Hi,

please review the following patch:
https://bugs.openjdk.java.net/browse/JDK-8178033
http://cr.openjdk.java.net/~thartmann/8178033/webrev.00/

JDK-8076276 [1] added support for AVX512 but NativeMovRegMem::instruction_start() was not updated to recognize/skip the 4-bytes prefix for EVEX instructions. As a result, C1 crashes in NativeMovRegMem::verify() because the instruction_address() points to the EVEX prefix (0x62) which is not a valid MovRegMem instruction.

Similar to the VEX prefixes, we should skip the corresponding number of bytes such that the instruction address points to the prefixed opcode (see also 'case 0x62' in Assembler::locate_operand()).

Tested with replay compilation and RBT (running).

Thanks,
Tobias

[1] https://bugs.openjdk.java.net/browse/JDK-8076276


More information about the hotspot-compiler-dev mailing list