< 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 >