--- a/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp Thu Aug 09 17:11:11 2018 +0200
+++ b/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp Fri Jun 22 16:07:15 2018 +0200
@@ -836,6 +836,7 @@
#endif // ASSERT
__ bind(done);
+ __ resolve(IS_NOT_NULL, r0);
}
// add space for monitor & lock
@@ -1062,6 +1063,7 @@
__ ldrw(crc, Address(esp, 4*wordSize)); // Initial CRC
} else {
__ ldr(buf, Address(esp, 2*wordSize)); // byte[] array
+ __ resolve(IS_NOT_NULL | ACCESS_READ, buf);
__ add(buf, buf, arrayOopDesc::base_offset_in_bytes(T_BYTE)); // + header size
__ ldrw(off, Address(esp, wordSize)); // offset
__ add(buf, buf, off); // + offset
@@ -1106,6 +1108,9 @@
__ ldrw(off, Address(esp, wordSize)); // int offset
__ sub(len, end, off);
__ ldr(buf, Address(esp, 2*wordSize)); // byte[] buf | long buf
+ if (kind == Interpreter::java_util_zip_CRC32C_updateBytes) {
+ __ resolve(IS_NOT_NULL | ACCESS_READ, buf);
+ }
__ add(buf, buf, off); // + offset
if (kind == Interpreter::java_util_zip_CRC32C_updateDirectByteBuffer) {
__ ldrw(crc, Address(esp, 4*wordSize)); // long crc