In ZBarrierSetAssembler::load_at we save all GPRs and FPRs. We only need to save the registers clobbered by the C runtime.
Likewise ZBarrierSetAssembler::arraycopy_prologue saves all GPRs and no FPRs,
Also, ZBarrierSetAssembler::generate_c1_load_barrier_runtime_stub suffers in the same way.
MacroAssembler::(pop|push)_call_clobbered_registers() is modified to take a RegSet of registers not to save and restore.
This will save the correct registers and no more when calling out.
Likewise ZBarrierSetAssembler::arraycopy_prologue saves all GPRs and no FPRs,
Also, ZBarrierSetAssembler::generate_c1_load_barrier_runtime_stub suffers in the same way.
MacroAssembler::(pop|push)_call_clobbered_registers() is modified to take a RegSet of registers not to save and restore.
This will save the correct registers and no more when calling out.