examples/distributor: fix build for non-x86 arch
authorJerin Jacob <jerin.jacob@caviumnetworks.com>
Fri, 12 Feb 2016 11:13:51 +0000 (16:43 +0530)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 16 Feb 2016 06:21:31 +0000 (07:21 +0100)
_mm_prefetch is defined only in x86 compilers.
Use rte_prefetch_non_temporal() abstraction instead of _mm_prefetch(x, 0)
to in-order to build distributor application for non x86 platforms

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
examples/distributor/main.c

index 4e74f8f..c0201a9 100644 (file)
@@ -42,6 +42,7 @@
 #include <rte_cycles.h>
 #include <rte_malloc.h>
 #include <rte_debug.h>
+#include <rte_prefetch.h>
 #include <rte_distributor.h>
 
 #define RX_RING_SIZE 256
@@ -335,13 +336,13 @@ lcore_tx(struct rte_ring *in_r)
 
                        /* for traffic we receive, queue it up for transmit */
                        uint16_t i;
-                       _mm_prefetch((void *)bufs[0], 0);
-                       _mm_prefetch((void *)bufs[1], 0);
-                       _mm_prefetch((void *)bufs[2], 0);
+                       rte_prefetch_non_temporal((void *)bufs[0]);
+                       rte_prefetch_non_temporal((void *)bufs[1]);
+                       rte_prefetch_non_temporal((void *)bufs[2]);
                        for (i = 0; i < nb_rx; i++) {
                                struct output_buffer *outbuf;
                                uint8_t outp;
-                               _mm_prefetch((void *)bufs[i + 3], 0);
+                               rte_prefetch_non_temporal((void *)bufs[i + 3]);
                                /*
                                 * workers should update in_port to hold the
                                 * output port value