Add powerpc64 to compiler-rt build infrastructure.

Summary: Add powerpc64 to compiler-rt build infrastructure.

Reviewers: timshen

Reviewed By: timshen

Subscribers: nemanjai, dberris, mgorny, aheejin, cfe-commits

Differential Revision: https://reviews.llvm.org/D36108

llvm-svn: 309634
This commit is contained in:
Sterling Augustine 2017-07-31 22:23:17 +00:00
parent 4a94d8d5f7
commit 81fd449238
4 changed files with 22 additions and 2 deletions

View File

@ -167,6 +167,8 @@ macro(detect_target_arch)
check_symbol_exists(__i386__ "" __I386) check_symbol_exists(__i386__ "" __I386)
check_symbol_exists(__mips__ "" __MIPS) check_symbol_exists(__mips__ "" __MIPS)
check_symbol_exists(__mips64__ "" __MIPS64) check_symbol_exists(__mips64__ "" __MIPS64)
check_symbol_exists(__powerpc64__ "" __PPC64)
check_symbol_exists(__powerpc64le__ "" __PPC64LE)
check_symbol_exists(__s390x__ "" __S390X) check_symbol_exists(__s390x__ "" __S390X)
check_symbol_exists(__wasm32__ "" __WEBASSEMBLY32) check_symbol_exists(__wasm32__ "" __WEBASSEMBLY32)
check_symbol_exists(__wasm64__ "" __WEBASSEMBLY64) check_symbol_exists(__wasm64__ "" __WEBASSEMBLY64)
@ -184,6 +186,10 @@ macro(detect_target_arch)
add_default_target_arch(mips64) add_default_target_arch(mips64)
elseif(__MIPS) elseif(__MIPS)
add_default_target_arch(mips) add_default_target_arch(mips)
elseif(__PPC64)
add_default_target_arch(powerpc64)
elseif(__PPC64LE)
add_default_target_arch(powerpc64le)
elseif(__S390X) elseif(__S390X)
add_default_target_arch(s390x) add_default_target_arch(s390x)
elseif(__WEBASSEMBLY32) elseif(__WEBASSEMBLY32)

View File

@ -40,7 +40,7 @@ if(APPLE)
endif() endif()
set(ALL_BUILTIN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} set(ALL_BUILTIN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}
${MIPS32} ${MIPS64} ${WASM32} ${WASM64}) ${MIPS32} ${MIPS64} ${PPC64} ${WASM32} ${WASM64})
include(CompilerRTUtils) include(CompilerRTUtils)
include(CompilerRTDarwinUtils) include(CompilerRTDarwinUtils)

View File

@ -458,6 +458,20 @@ set(mips64_SOURCES ${GENERIC_TF_SOURCES}
set(mips64el_SOURCES ${GENERIC_TF_SOURCES} set(mips64el_SOURCES ${GENERIC_TF_SOURCES}
${mips_SOURCES}) ${mips_SOURCES})
set(powerpc64_SOURCES
ppc/divtc3.c
ppc/fixtfdi.c
ppc/fixunstfdi.c
ppc/floatditf.c
ppc/floatunditf.c
ppc/gcc_qadd.c
ppc/gcc_qdiv.c
ppc/gcc_qmul.c
ppc/gcc_qsub.c
ppc/multc3.c
${GENERIC_SOURCES})
set(powerpc64le_SOURCES ${powerpc64_SOURCES})
set(wasm32_SOURCES ${GENERIC_SOURCES}) set(wasm32_SOURCES ${GENERIC_SOURCES})
set(wasm64_SOURCES ${GENERIC_SOURCES}) set(wasm64_SOURCES ${GENERIC_SOURCES})

View File

@ -165,7 +165,7 @@ void __clear_cache(void *start, void *end) {
for (addr = xstart; addr < xend; addr += icache_line_size) for (addr = xstart; addr < xend; addr += icache_line_size)
__asm __volatile("ic ivau, %0" :: "r"(addr)); __asm __volatile("ic ivau, %0" :: "r"(addr));
__asm __volatile("isb sy"); __asm __volatile("isb sy");
#elif defined (__powerpc64__) && defined(__LITTLE_ENDIAN__) #elif defined (__powerpc64__)
const size_t line_size = 32; const size_t line_size = 32;
const size_t len = (uintptr_t)end - (uintptr_t)start; const size_t len = (uintptr_t)end - (uintptr_t)start;