summaryrefslogtreecommitdiffstats
path: root/lib/libzpool
diff options
context:
space:
mode:
authorRomain Dolbeau <[email protected]>2020-01-23 20:01:24 +0100
committerBrian Behlendorf <[email protected]>2020-01-23 11:01:24 -0800
commit35b07497c60701465a87aab48fc890a0bc502561 (patch)
treeded14fd0cfd7c3dd985617ae1d576d4e26c165a2 /lib/libzpool
parent1a69856034304e74b32fb372e89967e91989cafd (diff)
Add AltiVec RAID-Z
Implements the RAID-Z function using AltiVec SIMD. This is basically the NEON code translated to AltiVec. Note that the 'fletcher' algorithm requires 64-bits operations, and the initial implementations of AltiVec (PPC74xx a.k.a. G4, PPC970 a.k.a. G5) only has up to 32-bits operations, so no 'fletcher'. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Romain Dolbeau <[email protected]> Closes #9539
Diffstat (limited to 'lib/libzpool')
-rw-r--r--lib/libzpool/Makefile.am6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/libzpool/Makefile.am b/lib/libzpool/Makefile.am
index 7b1ae098d..f1f56b704 100644
--- a/lib/libzpool/Makefile.am
+++ b/lib/libzpool/Makefile.am
@@ -130,6 +130,7 @@ KERNEL_C = \
vdev_raidz_math_scalar.c \
vdev_raidz_math_sse2.c \
vdev_raidz_math_ssse3.c \
+ vdev_raidz_math_powerpc_altivec.c \
vdev_removal.c \
vdev_root.c \
vdev_trim.c \
@@ -201,3 +202,8 @@ libzpool_la_LIBADD += $(ZLIB) -ldl
libzpool_la_LDFLAGS = -pthread -version-info 2:0:0
EXTRA_DIST = $(USER_C)
+
+if TARGET_CPU_POWERPC
+vdev_raidz_math_powerpc_altivec.$(OBJEXT): CFLAGS += -maltivec
+vdev_raidz_math_powerpc_altivec.l$(OBJEXT): CFLAGS += -maltivec
+endif