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 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 29ifeq ($(ARCH),arm64) 30CFLAGS_REMOVE_neon1.o += -mgeneral-regs-only 31CFLAGS_REMOVE_neon2.o += -mgeneral-regs-only 32CFLAGS_REMOVE_neon4.o += -mgeneral-regs-only 33CFLAGS_REMOVE_neon8.o += -mgeneral-regs-only 34endif 35endif 36 37targets += int1.c 38$(obj)/int1.c: UNROLL := 1 39$(obj)/int1.c: $(src)/int.uc $(src)/unroll.awk FORCE 40 $(call if_changed,unroll) 41 42targets += int2.c 43$(obj)/int2.c: UNROLL := 2 44$(obj)/int2.c: $(src)/int.uc $(src)/unroll.awk FORCE 45 $(call if_changed,unroll) 46 47targets += int4.c 48$(obj)/int4.c: UNROLL := 4 49$(obj)/int4.c: $(src)/int.uc $(src)/unroll.awk FORCE 50 $(call if_changed,unroll) 51 52targets += int8.c 53$(obj)/int8.c: UNROLL := 8 54$(obj)/int8.c: $(src)/int.uc $(src)/unroll.awk FORCE 55 $(call if_changed,unroll) 56 57targets += int16.c 58$(obj)/int16.c: UNROLL := 16 59$(obj)/int16.c: $(src)/int.uc $(src)/unroll.awk FORCE 60 $(call if_changed,unroll) 61 62targets += int32.c 63$(obj)/int32.c: UNROLL := 32 64$(obj)/int32.c: $(src)/int.uc $(src)/unroll.awk FORCE 65 $(call if_changed,unroll) 66 67CFLAGS_altivec1.o += $(altivec_flags) 68targets += altivec1.c 69$(obj)/altivec1.c: UNROLL := 1 70$(obj)/altivec1.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 71 $(call if_changed,unroll) 72 73CFLAGS_altivec2.o += $(altivec_flags) 74targets += altivec2.c 75$(obj)/altivec2.c: UNROLL := 2 76$(obj)/altivec2.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 77 $(call if_changed,unroll) 78 79CFLAGS_altivec4.o += $(altivec_flags) 80targets += altivec4.c 81$(obj)/altivec4.c: UNROLL := 4 82$(obj)/altivec4.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 83 $(call if_changed,unroll) 84 85CFLAGS_altivec8.o += $(altivec_flags) 86targets += altivec8.c 87$(obj)/altivec8.c: UNROLL := 8 88$(obj)/altivec8.c: $(src)/altivec.uc $(src)/unroll.awk FORCE 89 $(call if_changed,unroll) 90 91CFLAGS_neon1.o += $(NEON_FLAGS) 92targets += neon1.c 93$(obj)/neon1.c: UNROLL := 1 94$(obj)/neon1.c: $(src)/neon.uc $(src)/unroll.awk FORCE 95 $(call if_changed,unroll) 96 97CFLAGS_neon2.o += $(NEON_FLAGS) 98targets += neon2.c 99$(obj)/neon2.c: UNROLL := 2 100$(obj)/neon2.c: $(src)/neon.uc $(src)/unroll.awk FORCE 101 $(call if_changed,unroll) 102 103CFLAGS_neon4.o += $(NEON_FLAGS) 104targets += neon4.c 105$(obj)/neon4.c: UNROLL := 4 106$(obj)/neon4.c: $(src)/neon.uc $(src)/unroll.awk FORCE 107 $(call if_changed,unroll) 108 109CFLAGS_neon8.o += $(NEON_FLAGS) 110targets += neon8.c 111$(obj)/neon8.c: UNROLL := 8 112$(obj)/neon8.c: $(src)/neon.uc $(src)/unroll.awk FORCE 113 $(call if_changed,unroll) 114 115targets += tilegx8.c 116$(obj)/tilegx8.c: UNROLL := 8 117$(obj)/tilegx8.c: $(src)/tilegx.uc $(src)/unroll.awk FORCE 118 $(call if_changed,unroll) 119 120targets += s390vx8.c 121$(obj)/s390vx8.c: UNROLL := 8 122$(obj)/s390vx8.c: $(src)/s390vx.uc $(src)/unroll.awk FORCE 123 $(call if_changed,unroll) 124 125quiet_cmd_mktable = TABLE $@ 126 cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 ) 127 128targets += tables.c 129$(obj)/tables.c: $(obj)/mktables FORCE 130 $(call if_changed,mktable) 131