1obj-$(CONFIG_RAID6_PQ) += raid6_pq.o 2 3raid6_pq-y += algos.o recov.o tables.o int1.o int2.o int4.o \ 4 int8.o int16.o int32.o 5 6raid6_pq-$(CONFIG_X86) += recov_ssse3.o recov_avx2.o mmx.o sse1.o sse2.o avx2.o avx512.o recov_avx512.o 7raid6_pq-$(CONFIG_ALTIVEC) += altivec1.o altivec2.o altivec4.o altivec8.o 8raid6_pq-$(CONFIG_KERNEL_MODE_NEON) += neon.o neon1.o neon2.o neon4.o neon8.o recov_neon.o recov_neon_inner.o 9raid6_pq-$(CONFIG_TILEGX) += tilegx8.o 10raid6_pq-$(CONFIG_S390) += s390vx8.o recov_s390xc.o 11 12hostprogs-y += mktables 13 14quiet_cmd_unroll = UNROLL $@ 15 cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$(UNROLL) \ 16 < $< > $@ || ( rm -f $@ && exit 1 ) 17 18ifeq ($(CONFIG_ALTIVEC),y) 19altivec_flags := -maltivec $(call cc-option,-mabi=altivec) 20endif 21 22# The GCC option -ffreestanding is required in order to compile code containing 23# ARM/NEON intrinsics in a non C99-compliant environment (such as the kernel) 24ifeq ($(CONFIG_KERNEL_MODE_NEON),y) 25NEON_FLAGS := -ffreestanding 26ifeq ($(ARCH),arm) 27NEON_FLAGS += -mfloat-abi=softfp -mfpu=neon 28endif 29CFLAGS_recov_neon_inner.o += $(NEON_FLAGS) 30ifeq ($(ARCH),arm64) 31CFLAGS_REMOVE_recov_neon_inner.o += -mgeneral-regs-only 32CFLAGS_REMOVE_neon1.o += -mgeneral-regs-only 33CFLAGS_REMOVE_neon2.o += -mgeneral-regs-only 34CFLAGS_REMOVE_neon4.o += -mgeneral-regs-only 35CFLAGS_REMOVE_neon8.o += -mgeneral-regs-only 36endif 37endif 38 39targets += int1.c 40$(obj)/int1.c: UNROLL := 1 41$(obj)/int1.c: $(src)/int.uc $(src)/unroll.awk FORCE 42 $(call if_changed,unroll) 43 44targets += int2.c 45$(obj)/int2.c: UNROLL := 2 46$(obj)/int2.c: $(src)/int.uc $(src)/unroll.awk FORCE 47 $(call if_changed,unroll) 48 49targets += int4.c 50$(obj)/int4.c: UNROLL := 4 51$(obj)/int4.c: $(src)/int.uc $(src)/unroll.awk FORCE 52 $(call if_changed,unroll) 53 54targets += int8.c 55$(obj)/int8.c: UNROLL := 8 56$(obj)/int8.c: $(src)/int.uc $(src)/unroll.awk FORCE 57 $(call if_changed,unroll) 58 59targets += int16.c 60$(obj)/int16.c: UNROLL := 16 61$(obj)/int16.c: $(src)/int.uc $(src)/unroll.awk FORCE 62 $(call if_changed,unroll) 63 64targets += int32.c 65$(obj)/int32.c: UNROLL := 32 66$(obj)/int32.c: $(src)/int.uc $(src)/unroll.awk FORCE 67 $(call if_changed,unroll) 68 69CFLAGS_altivec1.o += $(altivec_flags) 70targets += altivec1.c 71$(obj)/altivec1.c: UNROLL := 1 72$(obj)/altivec1.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 73 $(call if_changed,unroll) 74 75CFLAGS_altivec2.o += $(altivec_flags) 76targets += altivec2.c 77$(obj)/altivec2.c: UNROLL := 2 78$(obj)/altivec2.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 79 $(call if_changed,unroll) 80 81CFLAGS_altivec4.o += $(altivec_flags) 82targets += altivec4.c 83$(obj)/altivec4.c: UNROLL := 4 84$(obj)/altivec4.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 85 $(call if_changed,unroll) 86 87CFLAGS_altivec8.o += $(altivec_flags) 88targets += altivec8.c 89$(obj)/altivec8.c: UNROLL := 8 90$(obj)/altivec8.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 91 $(call if_changed,unroll) 92 93CFLAGS_neon1.o += $(NEON_FLAGS) 94targets += neon1.c 95$(obj)/neon1.c: UNROLL := 1 96$(obj)/neon1.c: $(src)/neon.uc $(src)/unroll.awk FORCE 97 $(call if_changed,unroll) 98 99CFLAGS_neon2.o += $(NEON_FLAGS) 100targets += neon2.c 101$(obj)/neon2.c: UNROLL := 2 102$(obj)/neon2.c: $(src)/neon.uc $(src)/unroll.awk FORCE 103 $(call if_changed,unroll) 104 105CFLAGS_neon4.o += $(NEON_FLAGS) 106targets += neon4.c 107$(obj)/neon4.c: UNROLL := 4 108$(obj)/neon4.c: $(src)/neon.uc $(src)/unroll.awk FORCE 109 $(call if_changed,unroll) 110 111CFLAGS_neon8.o += $(NEON_FLAGS) 112targets += neon8.c 113$(obj)/neon8.c: UNROLL := 8 114$(obj)/neon8.c: $(src)/neon.uc $(src)/unroll.awk FORCE 115 $(call if_changed,unroll) 116 117targets += tilegx8.c 118$(obj)/tilegx8.c: UNROLL := 8 119$(obj)/tilegx8.c: $(src)/tilegx.uc $(src)/unroll.awk FORCE 120 $(call if_changed,unroll) 121 122targets += s390vx8.c 123$(obj)/s390vx8.c: UNROLL := 8 124$(obj)/s390vx8.c: $(src)/s390vx.uc $(src)/unroll.awk FORCE 125 $(call if_changed,unroll) 126 127quiet_cmd_mktable = TABLE $@ 128 cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 ) 129 130targets += tables.c 131$(obj)/tables.c: $(obj)/mktables FORCE 132 $(call if_changed,mktable) 133