arch/arm64: Use -mno-implicit-float with clang
This fixes building inline assembly that uses SIMD registers. This is for instance the case in the vboot library. Change-Id: I24fa9d9f81430ea3ecd40de4304a10c6e235fece Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/81658 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
parent
8eb59d8122
commit
00783211c0
2 changed files with 6 additions and 1 deletions
|
|
@ -60,7 +60,7 @@ ARCHDIR-riscv := riscv
|
|||
ARCHDIR-ppc64 := ppc64
|
||||
|
||||
CFLAGS_arm +=
|
||||
CFLAGS_arm64 += -mgeneral-regs-only
|
||||
CFLAGS_arm64 +=
|
||||
CFLAGS_riscv +=
|
||||
CFLAGS_x86_32 +=
|
||||
CFLAGS_x86_64 += -mcmodel=large -mno-red-zone
|
||||
|
|
|
|||
|
|
@ -256,6 +256,11 @@ detect_special_flags() {
|
|||
testld "$GCC" "$FLAGS_GCC" "${GCCPREFIX}ld${LINKER_SUFFIX}" \
|
||||
"$LDFLAGS --fix-cortex-a53-843419" && \
|
||||
LDFLAGS_ARM64_A53_ERRATUM_843419+=" --fix-cortex-a53-843419"
|
||||
# https://bugs.llvm.org/show_bug.cgi?id=30792
|
||||
# LLVM/clang runs into problems when encountering SIMD registers in assembly
|
||||
# with -mgeneral-regs-only. -mno-implicit-float achieves the same though.
|
||||
CFLAGS_GCC="$CFLAGS_GCC -mgeneral-regs-only" &&
|
||||
CFLAGS_CLANG="$CFLAGS_CLANG -mno-implicit-float"
|
||||
;;
|
||||
riscv)
|
||||
testcc "$GCC" "$FLAGS_GCC -march=rv64iadc_zicsr_zifencei" &&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue