aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2022-08-02 15:34:42 +0200
committerNikita Popov <npopov@redhat.com>2022-08-05 16:43:44 +0200
commit542977d43841820614a32823c33415042430e230 (patch)
tree74a383ae0850173eb0671e347f1b83d82fd7878b
parent131dda9acc6978aba4740d75ca45f411fbabd726 (diff)
Revert "[compiler-rt][CMake] Enable TF intrinsics on powerpc32 Linux"
As mentioned in https://reviews.llvm.org/D121379#3690593, this change broke the build of compiler-rt targeting powerpc using GCC. The 32-bit powerpc target is not supposed to emit 128-bit libcalls -- if it does, then that's a backend bug and needs to be fixed there. This reverts commit 8f24a56a3a9363f353c8da318d97491a6818781d. Differential Revision: https://reviews.llvm.org/D130988
-rw-r--r--compiler-rt/lib/builtins/CMakeLists.txt16
-rw-r--r--compiler-rt/lib/builtins/int_types.h2
2 files changed, 10 insertions, 8 deletions
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt
index 0b91b4ce7993..795fe2ab316d 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -621,9 +621,11 @@ set(mips64_SOURCES ${GENERIC_TF_SOURCES}
set(mips64el_SOURCES ${GENERIC_TF_SOURCES}
${mips_SOURCES})
+set(powerpc_SOURCES ${GENERIC_SOURCES})
+
set(powerpcspe_SOURCES ${GENERIC_SOURCES})
-set(powerpc_SOURCES
+set(powerpc64_SOURCES
ppc/divtc3.c
ppc/fixtfdi.c
ppc/fixunstfdi.c
@@ -638,15 +640,14 @@ set(powerpc_SOURCES
)
# These routines require __int128, which isn't supported on AIX.
if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "AIX")
- set(powerpc_SOURCES
+ set(powerpc64_SOURCES
ppc/floattitf.c
ppc/fixtfti.c
ppc/fixunstfti.c
- ${powerpc_SOURCES}
+ ${powerpc64_SOURCES}
)
endif()
-set(powerpc64le_SOURCES ${powerpc_SOURCES})
-set(powerpc64_SOURCES ${powerpc_SOURCES})
+set(powerpc64le_SOURCES ${powerpc64_SOURCES})
set(riscv_SOURCES
riscv/save.S
@@ -753,8 +754,9 @@ else ()
list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET)
endif()
- # For some arches, force enable int128 for compiling long double routines.
- if("${arch}" STREQUAL "powerpc" OR "${arch}" STREQUAL "riscv32")
+ # For RISCV32, we must force enable int128 for compiling long
+ # double routines.
+ if("${arch}" STREQUAL "riscv32")
list(APPEND BUILTIN_CFLAGS_${arch} -fforce-enable-int128)
endif()
diff --git a/compiler-rt/lib/builtins/int_types.h b/compiler-rt/lib/builtins/int_types.h
index 9ee5a327b28a..7a72de480676 100644
--- a/compiler-rt/lib/builtins/int_types.h
+++ b/compiler-rt/lib/builtins/int_types.h
@@ -64,7 +64,7 @@ typedef union {
} udwords;
#if defined(__LP64__) || defined(__wasm__) || defined(__mips64) || \
- defined(__riscv) || defined(_WIN64) || defined(__powerpc__)
+ defined(__riscv) || defined(_WIN64)
#define CRT_HAS_128BIT
#endif