From Ard: "Simply disabling -mgeneral-regs-only left and right is risky, given that the standard AArch64 ABI permits the use of FP/SIMD registers anywhere, and GCC is known to use SIMD registers for spilling, and may invent other uses of the FP/SIMD register file that have nothing to do with the floating point code in question. Note that putting kernel_neon_begin() and kernel_neon_end() around the code that does use FP is not sufficient here, the problem is in all the other code that may be emitted with references to SIMD registers in it. So the only way to do this properly is to put all floating point code in a separate compilation unit, and only compile that unit with -mgeneral-regs-only." Disable support until the code can be properly refactored to support this properly on aarch64. Acked-by: Will Deacon <will@kernel.org> Reported-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
44 lines
1.2 KiB
Makefile
44 lines
1.2 KiB
Makefile
#
|
|
# (c) Copyright 2020 Advanced Micro Devices, Inc. All the rights reserved
|
|
#
|
|
# All rights reserved. This notice is intended as a precaution against
|
|
# inadvertent publication and does not imply publication or any waiver
|
|
# of confidentiality. The year included in the foregoing notice is the
|
|
# year of creation of the work.
|
|
#
|
|
# Authors: AMD
|
|
#
|
|
# Makefile for dcn30.
|
|
|
|
DCN301 = dcn301_init.o dcn301_resource.o dcn301_dccg.o \
|
|
dcn301_dio_link_encoder.o dcn301_hwseq.o dcn301_panel_cntl.o dcn301_hubbub.o
|
|
|
|
ifdef CONFIG_X86
|
|
CFLAGS_$(AMDDALPATH)/dc/dcn301/dcn301_resource.o := -mhard-float -msse
|
|
endif
|
|
|
|
ifdef CONFIG_PPC64
|
|
CFLAGS_$(AMDDALPATH)/dc/dcn301/dcn301_resource.o := -mhard-float -maltivec
|
|
endif
|
|
|
|
ifdef CONFIG_CC_IS_GCC
|
|
ifeq ($(call cc-ifversion, -lt, 0701, y), y)
|
|
IS_OLD_GCC = 1
|
|
endif
|
|
endif
|
|
|
|
ifdef CONFIG_X86
|
|
ifdef IS_OLD_GCC
|
|
# Stack alignment mismatch, proceed with caution.
|
|
# GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3
|
|
# (8B stack alignment).
|
|
CFLAGS_$(AMDDALPATH)/dc/dcn301/dcn301_resource.o += -mpreferred-stack-boundary=4
|
|
else
|
|
CFLAGS_$(AMDDALPATH)/dc/dcn301/dcn301_resource.o += -msse2
|
|
endif
|
|
endif
|
|
|
|
AMD_DAL_DCN301 = $(addprefix $(AMDDALPATH)/dc/dcn301/,$(DCN301))
|
|
|
|
AMD_DISPLAY_FILES += $(AMD_DAL_DCN301)
|