< prev index next >

src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp

Print this page
rev 55444 : JDK-8226515

*** 89,113 **** __ mov(c_rarg0, dst); } __ mov(c_rarg1, rscratch2); int step = 4 * wordSize; ! __ mov(rscratch1, -step); __ sub(sp, sp, step); for (int i = 28; i >= 4; i -= 4) { __ st1(as_FloatRegister(i), as_FloatRegister(i+1), as_FloatRegister(i+2), ! as_FloatRegister(i+3), __ T1D, Address(__ post(sp, rscratch1))); } __ call_VM_leaf(ZBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), 2); for (int i = 0; i <= 28; i += 4) { __ ld1(as_FloatRegister(i), as_FloatRegister(i+1), as_FloatRegister(i+2), as_FloatRegister(i+3), __ T1D, Address(__ post(sp, step))); } // Make sure dst has the return value. if (dst != r0) { __ mov(dst, r0); } --- 89,116 ---- __ mov(c_rarg0, dst); } __ mov(c_rarg1, rscratch2); int step = 4 * wordSize; ! __ mov(rscratch2, -step); __ sub(sp, sp, step); for (int i = 28; i >= 4; i -= 4) { __ st1(as_FloatRegister(i), as_FloatRegister(i+1), as_FloatRegister(i+2), ! as_FloatRegister(i+3), __ T1D, Address(__ post(sp, rscratch2))); } + __ st1(as_FloatRegister(0), as_FloatRegister(1), as_FloatRegister(2), + as_FloatRegister(3), __ T1D, Address(sp)); __ call_VM_leaf(ZBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), 2); for (int i = 0; i <= 28; i += 4) { __ ld1(as_FloatRegister(i), as_FloatRegister(i+1), as_FloatRegister(i+2), as_FloatRegister(i+3), __ T1D, Address(__ post(sp, step))); } + // Make sure dst has the return value. if (dst != r0) { __ mov(dst, r0); }
< prev index next >