|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86emul: correct DECLARE_ALIGNED()
On 16/03/17 13:05, Jan Beulich wrote:
> Stop creating an excessively large array on the stack, by properly
> taking into account the array element size when establishing its
> element count (and of course also when calculating the pointer to
> be actually used to access the memory).
What in practice does this do? It looks like it reduces the size of the
array by 4 or 8 times?
~Andrew
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>
> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -553,10 +553,10 @@ typedef union {
> * the compiler for automatic variables. Use this helper to instantiate a
> * suitably aligned variable, producing a pointer to access it.
> */
> -#define DECLARE_ALIGNED(type, var) \
> - long __##var[sizeof(type) + __alignof(type) - __alignof(long)]; \
> - type *const var##p = \
> - (void *)((long)(__##var + __alignof(type) - __alignof(long)) \
> +#define DECLARE_ALIGNED(type, var) \
> + long __##var[(sizeof(type) + __alignof(type)) / __alignof(long) - 1]; \
> + type *const var##p = \
> + (void *)(((long)__##var + __alignof(type) - __alignof(__##var)) \
> & -__alignof(type))
>
> #ifdef __GCC_ASM_FLAG_OUTPUTS__
>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |