hash: reverse the operand order to crc32
authorH. Peter Anvin <hpa@linux.intel.com>
Tue, 25 Feb 2014 10:07:40 +0000 (02:07 -0800)
committerDavid Marchand <david.marchand@6wind.com>
Wed, 26 Feb 2014 10:01:14 +0000 (11:01 +0100)
commitc4eedd9b5362e0bd24af8ac13135ab8caecdca82
tree4c188c6a80a3ea83bb43e16d11bbaf4db5ca133a
parentd8a2bc71dfc2a4530dd80f0b5a962e5f795ad3f6
hash: reverse the operand order to crc32

Checkin

a132a9cf2bcd440a974b9d3f5c44ba30b2c895a1 hash: use intrinsic

changed the rte_hash_crc.h from using the crc32 instruction via inline
assembly to using an intrinsic.  The intrinsic should allow for better
compiler performance, but the change did not account for the fact that
the inline assembly being in AT&T syntax used the opposite operand
order of the intrinsic.

This turns out to not matter for correctness, because the CRC32
operation is commutative.  However, it could potentially matter for
performance, because the loop is more efficient with the moving
pointer in the source operand and the accumulation in the destination
operand.

This was discovered by Jan Beulich when looking at the equivalent code
in the Linux kernel.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Reported-by: Jan Beulich <jbeulich@suse.com>
Reported-by: Pashupati Kumar <kumarp@brocade.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
lib/librte_hash/rte_hash_crc.h