< prev index next >

src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp

Print this page
rev 55308 : z_aarch64 8224675

*** 44,53 **** --- 44,56 ---- #include "runtime/thread.inline.hpp" #include "utilities/align.hpp" #ifdef COMPILER2 #include "opto/runtime.hpp" #endif + #if INCLUDE_ZGC + #include "gc/z/zThreadLocalData.hpp" + #endif #ifdef BUILTIN_SIM #include "../../../../../../simulator/simulator.hpp" #endif
*** 578,587 **** --- 581,600 ---- // object is in r0 // make sure object is 'reasonable' __ cbz(r0, exit); // if obj is NULL it is OK + #if INCLUDE_ZGC + if (UseZGC) { + // Check if mask is good. + // verifies that ZAddressBadMask & r0 == 0 + __ ldr(c_rarg3, Address(rthread, ZThreadLocalData::address_bad_mask_offset())); + __ andr(c_rarg2, r0, c_rarg3); + __ cbnz(c_rarg2, error); + } + #endif + // Check if the oop is in the right area of memory __ mov(c_rarg3, (intptr_t) Universe::verify_oop_mask()); __ andr(c_rarg2, r0, c_rarg3); __ mov(c_rarg3, (intptr_t) Universe::verify_oop_bits());
< prev index next >