[dpdk-dev] [PATCH v2] eal/armv8: fix poly64/128 compile issue in old GCC(<4.9.0)

Thomas Monjalon thomas at monjalon.net
Wed Jul 19 14:31:11 CEST 2017


19/07/2017 11:21, Herbert Guan:
> From: Thomas Monjalon [mailto:thomas at monjalon.net]
> > 13/07/2017 05:16, Herbert Guan:
> > > --- a/lib/librte_eal/common/include/arch/arm/rte_vect.h
> > > +++ b/lib/librte_eal/common/include/arch/arm/rte_vect.h
> > > +#if (GCC_VERSION < 40900)
> > > +typedef uint64_t poly64_t;
> > > +typedef uint64x2_t poly64x2_t;
> > > +typedef uint8_t poly128_t __attribute__((vector_size(16),
> > > aligned(16)));
> > > +#endif
> > 
> > I think a better fix would be to switch to DPDK types
> > like rte_v128u8_t.
> 
> Thanks a lot for your review and comment.
> But I have some concern in this approach.  "poly128_t" is for
> ARM64 platform only and in fact it's more likely that rte_v128u8_t
> (generic DPDK data type) could be defined from poly128_t
> (ARM data type) which seems more reasonable.

How poly128_t is different from rte_v128u8_t?
You are defining poly128_t as (vector_size(16),aligned(16))
and rte_v128u8_t is exactly that.
Is it interpreted differently with newer compilers?
In that case, you could at least fallback on rte_v128u8_t.


More information about the dev mailing list