< prev index next >

src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp

Print this page
rev 50715 : 8205523: Explicit barriers for interpreter

*** 806,815 **** --- 806,816 ---- __ bind(L); } #endif // ASSERT __ bind(done); + __ resolve_for_write(OOP_NOT_NULL, r0); } // add space for monitor & lock __ sub(sp, sp, entry_size); // add space for a monitor entry __ sub(esp, esp, entry_size);
*** 1032,1041 **** --- 1033,1043 ---- __ ldrw(off, Address(esp, wordSize)); // offset __ add(buf, buf, off); // + offset __ ldrw(crc, Address(esp, 4*wordSize)); // Initial CRC } else { __ ldr(buf, Address(esp, 2*wordSize)); // byte[] array + __ resolve_for_read(OOP_NOT_NULL, buf); __ add(buf, buf, arrayOopDesc::base_offset_in_bytes(T_BYTE)); // + header size __ ldrw(off, Address(esp, wordSize)); // offset __ add(buf, buf, off); // + offset __ ldrw(crc, Address(esp, 3*wordSize)); // Initial CRC }
*** 1076,1085 **** --- 1078,1090 ---- __ ldrw(end, Address(esp)); // int end __ 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_for_read(OOP_NOT_NULL, buf); + } __ add(buf, buf, off); // + offset if (kind == Interpreter::java_util_zip_CRC32C_updateDirectByteBuffer) { __ ldrw(crc, Address(esp, 4*wordSize)); // long crc } else { __ add(buf, buf, arrayOopDesc::base_offset_in_bytes(T_BYTE)); // + header size
< prev index next >