Re: [PATCH v2] x86/altcall: use an union as register type for function parameters

2024-02-23 Thread Jan Beulich
On 23.02.2024 13:18, Roger Pau Monné wrote: > On Fri, Feb 23, 2024 at 11:43:14AM +0100, Jan Beulich wrote: >> On 23.02.2024 10:19, Roger Pau Monné wrote: >>> On Thu, Feb 22, 2024 at 05:55:00PM +0100, Jan Beulich wrote: On 22.02.2024 17:44, Roger Pau Monne wrote: > ---

Re: [PATCH v2] x86/altcall: use an union as register type for function parameters

2024-02-23 Thread Roger Pau Monné
On Fri, Feb 23, 2024 at 11:43:14AM +0100, Jan Beulich wrote: > On 23.02.2024 10:19, Roger Pau Monné wrote: > > On Thu, Feb 22, 2024 at 05:55:00PM +0100, Jan Beulich wrote: > >> On 22.02.2024 17:44, Roger Pau Monne wrote: > >>> --- a/xen/arch/x86/include/asm/alternative.h > >>> +++

Re: [PATCH v2] x86/altcall: use an union as register type for function parameters

2024-02-23 Thread Jan Beulich
On 23.02.2024 10:19, Roger Pau Monné wrote: > On Thu, Feb 22, 2024 at 05:55:00PM +0100, Jan Beulich wrote: >> On 22.02.2024 17:44, Roger Pau Monne wrote: >>> --- a/xen/arch/x86/include/asm/alternative.h >>> +++ b/xen/arch/x86/include/asm/alternative.h >>> @@ -167,9 +167,25 @@ extern void

Re: [PATCH v2] x86/altcall: use an union as register type for function parameters

2024-02-23 Thread Roger Pau Monné
On Thu, Feb 22, 2024 at 05:55:00PM +0100, Jan Beulich wrote: > On 22.02.2024 17:44, Roger Pau Monne wrote: > > --- a/xen/arch/x86/include/asm/alternative.h > > +++ b/xen/arch/x86/include/asm/alternative.h > > @@ -167,9 +167,25 @@ extern void alternative_branches(void); > > #define ALT_CALL_arg5

Re: [PATCH v2] x86/altcall: use an union as register type for function parameters

2024-02-22 Thread Andrew Cooper
On 22/02/2024 4:55 pm, Jan Beulich wrote: > On 22.02.2024 17:44, Roger Pau Monne wrote: >> --- a/xen/arch/x86/include/asm/alternative.h >> +++ b/xen/arch/x86/include/asm/alternative.h >> @@ -167,9 +167,25 @@ extern void alternative_branches(void); >> #define ALT_CALL_arg5 "r8" >> #define

Re: [PATCH v2] x86/altcall: use an union as register type for function parameters

2024-02-22 Thread Jan Beulich
On 22.02.2024 17:44, Roger Pau Monne wrote: > --- a/xen/arch/x86/include/asm/alternative.h > +++ b/xen/arch/x86/include/asm/alternative.h > @@ -167,9 +167,25 @@ extern void alternative_branches(void); > #define ALT_CALL_arg5 "r8" > #define ALT_CALL_arg6 "r9" > > +#ifdef CONFIG_CC_IS_CLANG >

[PATCH v2] x86/altcall: use an union as register type for function parameters

2024-02-22 Thread Roger Pau Monne
The current code for alternative calls uses the caller parameter types as the types for the register variables that serve as function parameters: uint8_t foo; [...] alternative_call(myfunc, foo); Would expand roughly into: register unint8_t a1_ asm("rdi") = foo; register unsigned long a2_