On Wed, Jun 25, 2025 at 4:59 PM Florian Weimer <fwei...@redhat.com> wrote: > > * H. J. Lu: > > > Add preserve_none attribute which is similar to no_callee_saved_registers > > attribute, except on x86-64, r12, r13, r14, r15, rdi and rsi registers are > > used for integer parameter passing. This can be used in an interpreter > > to avoid saving/restoring the registers in functions which process byte > > codes. It improved the pystones benchmark by 6-7%: > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119628#c15 > > > > Remove -mgeneral-regs-only restriction on no_caller_saved_registers > > attribute. Only SSE is allowed since SSE XMM register load preserves > > the upper bits in YMM/ZMM register while YMM register load zeros the > > upper 256 bits of ZMM register, and preserving 32 ZMM registers can > > be quite expensive. > > Please consider updating the x86-64 psABI, along the suggestions here: > > Document the ABI for __preserve_most__ function calls > <https://gitlab.com/x86-psABIs/x86-64-ABI/-/merge_requests/45> >
Done: https://gitlab.com/x86-psABIs/x86-64-ABI/-/merge_requests/64 -- H.J.