< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Print this page
rev 53399 : Redo: Avoid stub when calling to write-barrier from C2, remove all related code

*** 2586,2597 **** patch_end[-2] = (u_int64_t)prolog_ptr; patch_end[-1] = calltype; } #endif ! void MacroAssembler::push_call_clobbered_fp_registers() { int step = 4 * wordSize; sub(sp, sp, step); mov(rscratch1, -step); // Push v0-v7, v16-v31. for (int i = 31; i>= 4; i -= 4) { if (i <= v7->encoding() || i >= v16->encoding()) --- 2586,2598 ---- patch_end[-2] = (u_int64_t)prolog_ptr; patch_end[-1] = calltype; } #endif ! void MacroAssembler::push_call_clobbered_registers() { int step = 4 * wordSize; + push(RegSet::range(r0, r18) - RegSet::of(rscratch1, rscratch2), sp); sub(sp, sp, step); mov(rscratch1, -step); // Push v0-v7, v16-v31. for (int i = 31; i>= 4; i -= 4) { if (i <= v7->encoding() || i >= v16->encoding())
*** 2600,2624 **** } st1(as_FloatRegister(0), as_FloatRegister(1), as_FloatRegister(2), as_FloatRegister(3), T1D, Address(sp)); } ! void MacroAssembler::pop_call_clobbered_fp_registers() { for (int i = 0; i < 32; i += 4) { if (i <= v7->encoding() || i >= v16->encoding()) ld1(as_FloatRegister(i), as_FloatRegister(i+1), as_FloatRegister(i+2), as_FloatRegister(i+3), T1D, Address(post(sp, 4 * wordSize))); } - } - void MacroAssembler::push_call_clobbered_registers() { - push(RegSet::range(r0, r18) - RegSet::of(rscratch1, rscratch2), sp); - push_call_clobbered_fp_registers(); - } - - void MacroAssembler::pop_call_clobbered_registers() { - pop_call_clobbered_fp_registers(); pop(RegSet::range(r0, r18) - RegSet::of(rscratch1, rscratch2), sp); } void MacroAssembler::push_CPU_state(bool save_vectors) { int step = (save_vectors ? 8 : 4) * wordSize; --- 2601,2617 ---- } st1(as_FloatRegister(0), as_FloatRegister(1), as_FloatRegister(2), as_FloatRegister(3), T1D, Address(sp)); } ! void MacroAssembler::pop_call_clobbered_registers() { for (int i = 0; i < 32; i += 4) { if (i <= v7->encoding() || i >= v16->encoding()) ld1(as_FloatRegister(i), as_FloatRegister(i+1), as_FloatRegister(i+2), as_FloatRegister(i+3), T1D, Address(post(sp, 4 * wordSize))); } pop(RegSet::range(r0, r18) - RegSet::of(rscratch1, rscratch2), sp); } void MacroAssembler::push_CPU_state(bool save_vectors) { int step = (save_vectors ? 8 : 4) * wordSize;
< prev index next >