[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 |