RFR: 8283327: Add methods to save/restore registers when calling into the VM from C1/interpreter barrier code/improve push pop stuff for x86
Erik Österlund
eosterlund at openjdk.java.net
Fri Mar 18 15:56:29 UTC 2022
On Fri, 18 Mar 2022 14:00:34 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
> Hi all,
>
> can I have reviews for this change that adds an API to save/restore caller-saved registers for VM upcalls for C1/interpreter.
>
> Currently, for x86, this is done in a very ad-hoc (copy&pasty) way, which starts to fall apart. Additionally this fixes some problems with wrong stack alignment.
>
> There is some cleanup to do separately to remove that copy&paste code in another CR. At the moment the API (`push_call_clobbered_registers/pop_call_clobbered_registers`) is only used for g1.
>
> It's based on `RegSet` from AArch64.
>
> Testing: tier1-5, tier1 testing with x64 and x86, with some at this point obscure combinations (like x86 UseSSE=0/1).
>
> Thanks,
> Thomas
src/hotspot/cpu/x86/macroAssembler_x86.cpp line 3599:
> 3597: #if defined(WINDOWS) && defined(_LP64)
> 3598: XMMRegSet result = XMMRegSet::range(xmm0, xmm5);
> 3599: if (FrameMap::get_num_caller_save_xmms() > 16) {
Why is this part needed?
-------------
PR: https://git.openjdk.java.net/jdk/pull/7867
More information about the hotspot-dev
mailing list