@@ -52,23 +52,25 @@ do_macswap(struct rte_mbuf *pkts[], uint16_t nb,
5252 addr1 = _mm_loadu_si128 ((__m128i * )eth_hdr [1 ]);
5353 mbuf_field_set (mb [1 ], ol_flags );
5454
55+ addr0 = _mm_shuffle_epi8 (addr0 , shfl_msk );
56+
5557 mb [2 ] = pkts [i ++ ];
5658 eth_hdr [2 ] = rte_pktmbuf_mtod (mb [2 ], struct rte_ether_hdr * );
5759 addr2 = _mm_loadu_si128 ((__m128i * )eth_hdr [2 ]);
5860 mbuf_field_set (mb [2 ], ol_flags );
5961
62+ addr1 = _mm_shuffle_epi8 (addr1 , shfl_msk );
63+ _mm_storeu_si128 ((__m128i * )eth_hdr [0 ], addr0 );
64+
6065 mb [3 ] = pkts [i ++ ];
6166 eth_hdr [3 ] = rte_pktmbuf_mtod (mb [3 ], struct rte_ether_hdr * );
6267 addr3 = _mm_loadu_si128 ((__m128i * )eth_hdr [3 ]);
6368 mbuf_field_set (mb [3 ], ol_flags );
6469
65- addr0 = _mm_shuffle_epi8 (addr0 , shfl_msk );
66- addr1 = _mm_shuffle_epi8 (addr1 , shfl_msk );
6770 addr2 = _mm_shuffle_epi8 (addr2 , shfl_msk );
68- addr3 = _mm_shuffle_epi8 (addr3 , shfl_msk );
69-
70- _mm_storeu_si128 ((__m128i * )eth_hdr [0 ], addr0 );
7171 _mm_storeu_si128 ((__m128i * )eth_hdr [1 ], addr1 );
72+
73+ addr3 = _mm_shuffle_epi8 (addr3 , shfl_msk );
7274 _mm_storeu_si128 ((__m128i * )eth_hdr [2 ], addr2 );
7375 _mm_storeu_si128 ((__m128i * )eth_hdr [3 ], addr3 );
7476
0 commit comments