From 2a622188e62705f20d7806926a99f47f727d8858 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 9 Mar 2022 16:28:16 -0800 Subject: [PATCH] compiler-rt: Enable __int128 for ppc32 Upstream-Status: Pending Signed-off-by: Khem Raj --- compiler-rt/lib/builtins/CMakeLists.txt | 15 +++++++-------- compiler-rt/lib/builtins/int_types.h | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt index 2fc70522895f..55f0ecb20a1f 100644 --- a/compiler-rt/lib/builtins/CMakeLists.txt +++ b/compiler-rt/lib/builtins/CMakeLists.txt @@ -668,11 +668,9 @@ 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(powerpc64_SOURCES +set(powerpc_SOURCES ppc/divtc3.c ppc/fixtfdi.c ppc/fixunstfdi.c @@ -687,14 +685,15 @@ set(powerpc64_SOURCES ) # These routines require __int128, which isn't supported on AIX. if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "AIX") - set(powerpc64_SOURCES + set(powerpc_SOURCES ppc/floattitf.c ppc/fixtfti.c ppc/fixunstfti.c - ${powerpc64_SOURCES} + ${powerpc_SOURCES} ) endif() -set(powerpc64le_SOURCES ${powerpc64_SOURCES}) +set(powerpc64le_SOURCES ${powerpc_SOURCES}) +set(powerpc64_SOURCES ${powerpc_SOURCES}) set(riscv_SOURCES riscv/fp_mode.c @@ -818,9 +817,9 @@ else () list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET) endif() - # For RISCV32, we must force enable int128 for compiling long + # For RISCV32/PPC32, we must force enable int128 for compiling long # double routines. - if("${arch}" STREQUAL "riscv32") + if("${arch}" STREQUAL "riscv32" OR "${arch}" STREQUAL "powerpc" ) 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 e94d3154c6d4..37b2cb43f932 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(__SIZEOF_INT128__) || defined(_WIN64) + defined(__SIZEOF_INT128__) || defined(_WIN64) || defined(__powerpc__) #define CRT_HAS_128BIT #endif