提交 433b3b3d 编写于 作者: M Matt Sealey 提交者: Linus Torvalds

lib/lzo: 64-bit CTZ on arm64

LZO leaves some performance on the table by not realising that arm64 can
optimize count-trailing-zeros bit operations.

Add CONFIG_ARM64 to the checked definitions alongside CONFIG_X86_64 to
enable the use of rbit/clz instructions on full 64-bit quantities.

Link: http://lkml.kernel.org/r/20181127161913.23863-5-dave.rodgman@arm.com
Link: http://lkml.kernel.org/r/20190205141950.9058-3-dave.rodgman@arm.comSigned-off-by: NMatt Sealey <matt.sealey@arm.com>
Signed-off-by: NDave Rodgman <dave.rodgman@arm.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Markus F.X.J. Oberhumer <markus@oberhumer.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Nitin Gupta <nitingupta910@gmail.com>
Cc: Richard Purdie <rpurdie@openedhand.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Sonny Rao <sonnyrao@google.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 95777591
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) #if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
#error "conflicting endian definitions" #error "conflicting endian definitions"
#elif defined(CONFIG_X86_64) #elif defined(CONFIG_X86_64) || defined(CONFIG_ARM64)
#define LZO_USE_CTZ64 1 #define LZO_USE_CTZ64 1
#define LZO_USE_CTZ32 1 #define LZO_USE_CTZ32 1
#elif defined(CONFIG_X86) || defined(CONFIG_PPC) #elif defined(CONFIG_X86) || defined(CONFIG_PPC)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册