< prev index next >

src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp

Print this page
rev 50376 : [mq]: JDK-8203172.patch

*** 54,63 **** --- 54,72 ---- assert(on_root, "why else?"); __ ldr(dst, src); } break; } + case T_BOOLEAN: __ load_unsigned_byte (dst, src); break; + case T_BYTE: __ load_signed_byte (dst, src); break; + case T_CHAR: __ load_unsigned_short(dst, src); break; + case T_SHORT: __ load_signed_short (dst, src); break; + case T_INT: __ ldrw (dst, src); break; + case T_LONG: __ ldr (dst, src); break; + case T_ADDRESS: __ ldr (dst, src); break; + case T_FLOAT: __ ldrs (v0, src); break; + case T_DOUBLE: __ ldrd (v0, src); break; default: Unimplemented(); } } void BarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
*** 82,91 **** --- 91,112 ---- assert(on_root, "why else?"); __ str(val, dst); } break; } + case T_BOOLEAN: + __ andw(val, val, 0x1); // boolean is true if LSB is 1 + __ strb(val, dst); + break; + case T_BYTE: __ strb(val, dst); break; + case T_CHAR: __ strh(val, dst); break; + case T_SHORT: __ strh(val, dst); break; + case T_INT: __ strw(val, dst); break; + case T_LONG: __ str (val, dst); break; + case T_ADDRESS: __ str (val, dst); break; + case T_FLOAT: __ strs(v0, dst); break; + case T_DOUBLE: __ strd(v0, dst); break; default: Unimplemented(); } } void BarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env,
< prev index next >