< prev index next >
src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
Print this page
@@ -2874,16 +2874,15 @@
// The calculation for byte_map_base is as follows:
// byte_map_base = _byte_map - (uintptr_t(low_bound) >> card_shift);
// So this essentially converts an address to a displacement and
// it will never need to be relocated.
-
- // FIXME: It's not likely that disp will fit into an offset so we
- // don't bother to check, but it could save an instruction.
intptr_t disp = (intptr_t) ct->byte_map_base;
mov(rscratch1, disp);
- strb(zr, Address(obj, rscratch1));
+ add(rscratch1, rscratch1, obj);
+ mov(obj, zr);
+ stlrb(obj, rscratch1);
}
void MacroAssembler::load_klass(Register dst, Register src) {
if (UseCompressedClassPointers) {
ldrw(dst, Address(src, oopDesc::klass_offset_in_bytes()));
< prev index next >