< 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,12 +2586,13 @@
patch_end[-2] = (u_int64_t)prolog_ptr;
patch_end[-1] = calltype;
}
#endif
-void MacroAssembler::push_call_clobbered_fp_registers() {
+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,25 +2601,17 @@
}
st1(as_FloatRegister(0), as_FloatRegister(1), as_FloatRegister(2),
as_FloatRegister(3), T1D, Address(sp));
}
-void MacroAssembler::pop_call_clobbered_fp_registers() {
+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)));
}
-}
-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;
< prev index next >