Re: Passing a hidden argument in a dedicated register

2024-12-23 Thread Florian Weimer via Gcc
* Alexander Monakov: > On Mon, 16 Dec 2024, Florian Weimer via Gcc wrote: > >> I would like to provide a facility to create wrapper functions without >> lots of argument shuffling. To achieve that, the wrapping function and >> the wrapped function should have the same prototype. There will be a

Re: Passing a hidden argument in a dedicated register

2024-12-23 Thread Alexander Monakov
On Mon, 23 Dec 2024, Florian Weimer via Gcc wrote: > * Alexander Monakov: > > > On Mon, 16 Dec 2024, Florian Weimer via Gcc wrote: > > > >> I would like to provide a facility to create wrapper functions without > >> lots of argument shuffling. To achieve that, the wrapping function and > >> th

Re: Passing a hidden argument in a dedicated register

2024-12-23 Thread Florian Weimer via Gcc
* Alexander Monakov: >> > Not in a way that will work with LLVM, I'm afraid, and with GCC >> > you'll have to shield wrappers from LTO: >> > >> > register void *r10 asm("r10"); >> > void f(int, int); >> > void f_wrap(int a, int b) >> > { >> > r10 = f; >> > f(a, b); >> > } >> >> Does this

Re: Passing a hidden argument in a dedicated register

2024-12-23 Thread Alexander Monakov
On Mon, 23 Dec 2024, Florian Weimer via Gcc wrote: > * Alexander Monakov: > >> Does this work on all primary GCC targets? > > > > Yes? I'm not sure why you think it might not work. What are your > > concerns? > > Targets not setting up REGISTER_NAMES, not mentioning the static chain > pointer r