eal/arm64: fix poly64/128 compilation with GCC < 4.9
authorHerbert Guan <herbert.guan@arm.com>
Thu, 13 Jul 2017 02:16:42 +0000 (10:16 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 31 Jul 2017 07:45:40 +0000 (09:45 +0200)
Use built-in data types for unsupported poly64/128 types
for GCC version lower than 4.9.0

Fixes: 3c4b4024c225 ("arch/arm: add vcopyq_laneq_u32 for old gcc")
Cc: stable@dpdk.org
Signed-off-by: Herbert Guan <herbert.guan@arm.com>
lib/librte_eal/common/include/arch/arm/rte_vect.h

index 7fec25e..782350d 100644 (file)
@@ -101,6 +101,13 @@ vcopyq_laneq_u32(uint32x4_t a, const int lane_a,
 
 #if defined(RTE_ARCH_ARM64)
 #if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION < 70000)
+
+#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
+
 /* NEON intrinsic vreinterpretq_u64_p128() is supported since GCC version 7 */
 static inline uint64x2_t
 vreinterpretq_u64_p128(poly128_t x)