[compiler-rt] r302147 - [compiler-rt][mips] Add support for quad precision builtins for mips64
Simon Dardis via llvm-commits
llvm-commits at lists.llvm.org
Thu May 4 06:34:17 PDT 2017
Author: sdardis
Date: Thu May 4 08:34:17 2017
New Revision: 302147
URL: http://llvm.org/viewvc/llvm-project?rev=302147&view=rev
Log:
[compiler-rt][mips] Add support for quad precision builtins for mips64
Match the builtins that GCC provides for IEEE754 quad precision
on MIPS64. Also, enable building them with clang as PR20098 is resolved.
Disable tests for xf and xc modes as MIPS doesn't support that mode in
hardware or software.
Reviewers: slthakur
Differential Revision: https://reviews.llvm.org/D32794
Modified:
compiler-rt/trunk/lib/builtins/CMakeLists.txt
compiler-rt/trunk/lib/builtins/int_types.h
compiler-rt/trunk/test/builtins/Unit/divxc3_test.c
compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c
compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c
compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c
compiler-rt/trunk/test/builtins/Unit/floattixf_test.c
compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c
compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c
Modified: compiler-rt/trunk/lib/builtins/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/CMakeLists.txt?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/CMakeLists.txt (original)
+++ compiler-rt/trunk/lib/builtins/CMakeLists.txt Thu May 4 08:34:17 2017
@@ -167,6 +167,26 @@ set(GENERIC_SOURCES
umodti3.c
emutls.c)
+set(GENERIC_TF_SOURCES
+ comparetf2.c
+ extenddftf2.c
+ extendsftf2.c
+ fixtfdi.c
+ fixtfsi.c
+ fixtfti.c
+ fixunstfdi.c
+ fixunstfsi.c
+ fixunstfti.c
+ floatditf.c
+ floatsitf.c
+ floattitf.c
+ floatunditf.c
+ floatunsitf.c
+ floatuntitf.c
+ multc3.c
+ trunctfdf2.c
+ trunctfsf2.c)
+
option(COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN
"Skip the atomic builtin (this may be needed if system headers are unavailable)"
Off)
@@ -404,24 +424,7 @@ elseif(NOT WIN32)
endif()
set(aarch64_SOURCES
- comparetf2.c
- extenddftf2.c
- extendsftf2.c
- fixtfdi.c
- fixtfsi.c
- fixtfti.c
- fixunstfdi.c
- fixunstfsi.c
- fixunstfti.c
- floatditf.c
- floatsitf.c
- floattitf.c
- floatunditf.c
- floatunsitf.c
- floatuntitf.c
- multc3.c
- trunctfdf2.c
- trunctfsf2.c
+ ${GENERIC_TF_SOURCES}
${GENERIC_SOURCES})
set(armhf_SOURCES ${arm_SOURCES})
@@ -437,8 +440,10 @@ set(armv7em_SOURCES ${arm_SOURCES})
set(mips_SOURCES ${GENERIC_SOURCES})
set(mipsel_SOURCES ${mips_SOURCES})
-set(mips64_SOURCES ${mips_SOURCES})
-set(mips64el_SOURCES ${mips_SOURCES})
+set(mips64_SOURCES ${GENERIC_TF_SOURCES}
+ ${mips_SOURCES})
+set(mips64el_SOURCES ${GENERIC_TF_SOURCES}
+ ${mips_SOURCES})
set(wasm32_SOURCES ${GENERIC_SOURCES})
set(wasm64_SOURCES ${GENERIC_SOURCES})
Modified: compiler-rt/trunk/lib/builtins/int_types.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/int_types.h?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/int_types.h (original)
+++ compiler-rt/trunk/lib/builtins/int_types.h Thu May 4 08:34:17 2017
@@ -60,9 +60,7 @@ typedef union
}s;
} udwords;
-/* MIPS64 issue: PR 20098 */
-#if (defined(__LP64__) || defined(__wasm__)) && \
- !(defined(__mips__) && defined(__clang__))
+#if (defined(__LP64__) || defined(__wasm__) || defined(__mips64))
#define CRT_HAS_128BIT
#endif
Modified: compiler-rt/trunk/test/builtins/Unit/divxc3_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/divxc3_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/divxc3_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/divxc3_test.c Thu May 4 08:34:17 2017
@@ -19,6 +19,7 @@
#include <complex.h>
#include <stdio.h>
+// UNSUPPORTED: mips
// REQUIRES: c99-complex
// Returns: the quotient of (a + ib) / (c + id)
Modified: compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c Thu May 4 08:34:17 2017
@@ -14,6 +14,8 @@
#include <stdio.h>
+// UNSUPPORTED: mips
+
#if __LDBL_MANT_DIG__ == 113
#include "fp_test.h"
Modified: compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c Thu May 4 08:34:17 2017
@@ -2,6 +2,8 @@
// XFAIL: aarch64
// test fails for aarch64 (see pr32260)
+// UNSUPPORTED: mips
+
//===-- fixunsxfti_test.c - Test __fixunsxfti -----------------------------===//
//
// The LLVM Compiler Infrastructure
Modified: compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c Thu May 4 08:34:17 2017
@@ -2,6 +2,8 @@
// XFAIL: aarch64
// test fails for aarch64 (see pr32260)
+// UNSUPPORTED: mips
+
//===-- fixxfti_test.c - Test __fixxfti -----------------------------------===//
//
// The LLVM Compiler Infrastructure
Modified: compiler-rt/trunk/test/builtins/Unit/floattixf_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/floattixf_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/floattixf_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/floattixf_test.c Thu May 4 08:34:17 2017
@@ -2,6 +2,8 @@
// XFAIL: aarch64
// test fails for aarch64 (see pr32260)
+// UNSUPPORTED: mips
+
//===-- floattixf.c - Test __floattixf ------------------------------------===//
//
// The LLVM Compiler Infrastructure
Modified: compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c Thu May 4 08:34:17 2017
@@ -2,6 +2,8 @@
// XFAIL: aarch64
// test fails for aarch64 (see pr32260)
+// UNSUPPORTED: mips
+
//===-- floatuntixf.c - Test __floatuntixf --------------------------------===//
//
// The LLVM Compiler Infrastructure
Modified: compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c Thu May 4 08:34:17 2017
@@ -19,6 +19,7 @@
#include <complex.h>
#include <stdio.h>
+// UNSUPPORTED: mips
// REQUIRES: c99-complex
// Returns: the product of a + ib and c + id
More information about the llvm-commits
mailing list