< prev index next >

src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp

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

*** 834,843 **** --- 834,844 ---- __ bind(L); } #endif // ASSERT __ bind(done); + __ resolve(IS_NOT_NULL, r0); } // add space for monitor & lock __ sub(sp, sp, entry_size); // add space for a monitor entry __ sub(esp, esp, entry_size);
*** 1060,1069 **** --- 1061,1071 ---- __ 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(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 __ ldrw(crc, Address(esp, 3*wordSize)); // Initial CRC }
*** 1104,1113 **** --- 1106,1118 ---- __ 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(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 } else { __ add(buf, buf, arrayOopDesc::base_offset_in_bytes(T_BYTE)); // + header size
< prev index next >