--- a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp Thu Jun 13 12:27:29 2019 +0200
+++ b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp Thu Jun 13 15:24:34 2019 +0100
@@ -1015,7 +1015,11 @@
if (UseCompressedOops && !wide) {
__ decode_heap_oop(dest->as_register());
}
- __ verify_oop(dest->as_register());
+
+ if (!UseZGC) {
+ // Load barrier has not yet been applied, so ZGC can't verify the oop here
+ __ verify_oop(dest->as_register());
+ }
} else if (type == T_ADDRESS && addr->disp() == oopDesc::klass_offset_in_bytes()) {
if (UseCompressedClassPointers) {
__ decode_klass_not_null(dest->as_register());
@@ -2869,7 +2873,11 @@
void LIR_Assembler::leal(LIR_Opr addr, LIR_Opr dest, LIR_PatchCode patch_code, CodeEmitInfo* info) {
- assert(patch_code == lir_patch_none, "Patch code not supported");
+ if (patch_code != lir_patch_none) {
+ deoptimize_trap(info);
+ return;
+ }
+
__ lea(dest->as_register_lo(), as_Address(addr->as_address_ptr()));
}