summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/clang/freebsd_cc_version.h2
-rw-r--r--lib/clang/headers/Makefile24
-rw-r--r--lib/clang/include/clang/Basic/Version.inc10
-rw-r--r--lib/clang/include/clang/Config/config.h10
-rw-r--r--lib/clang/include/lld/Config/Version.inc8
-rw-r--r--lib/clang/include/lldb/Host/Config.h28
-rw-r--r--lib/clang/include/llvm/Config/abi-breaking.h8
-rw-r--r--lib/clang/include/llvm/Config/config.h52
-rw-r--r--lib/clang/include/llvm/Config/llvm-config.h9
-rw-r--r--lib/clang/include/llvm/Support/DataTypes.h6
-rw-r--r--lib/clang/include/llvm/Support/VCSRevision.h2
-rw-r--r--lib/clang/libclang/Makefile77
-rw-r--r--lib/clang/liblldb/Makefile83
-rw-r--r--lib/clang/libllvm/Makefile222
-rw-r--r--lib/clang/libllvmminimal/Makefile3
-rw-r--r--lib/clang/llvm.build.mk3
-rw-r--r--lib/libc++/Makefile13
-rw-r--r--lib/libclang_rt/Makefile.inc2
-rw-r--r--lib/libclang_rt/asan/Makefile4
-rw-r--r--lib/libclang_rt/asan_dynamic/Makefile3
-rw-r--r--lib/libclang_rt/include/Makefile1
-rw-r--r--lib/libclang_rt/profile/Makefile1
-rw-r--r--lib/libclang_rt/safestack/Makefile2
-rw-r--r--lib/libclang_rt/stats/Makefile4
-rw-r--r--lib/libclang_rt/ubsan_standalone/Makefile4
-rw-r--r--lib/libcompiler_rt/Makefile.inc8
-rw-r--r--lib/libgpio/gpio.c41
-rw-r--r--lib/libgpio/libgpio.h8
-rw-r--r--lib/msun/Makefile36
-rw-r--r--lib/msun/Symbol.map13
-rw-r--r--lib/msun/amd64/Makefile.inc3
-rw-r--r--lib/msun/amd64/e_fmod.S54
-rw-r--r--lib/msun/amd64/e_fmodf.S24
-rw-r--r--lib/msun/amd64/e_fmodl.S50
-rw-r--r--lib/msun/i387/Makefile.inc9
-rw-r--r--lib/msun/i387/e_fmodf.S20
-rw-r--r--lib/msun/i387/e_fmodl.S50
-rw-r--r--lib/msun/ld80/e_lgammal_r.c2
-rw-r--r--lib/msun/ld80/k_expl.h256
-rw-r--r--lib/msun/ld80/s_logl.c516
-rw-r--r--lib/msun/man/cacos.346
-rw-r--r--lib/msun/man/sincos.382
-rw-r--r--lib/msun/src/catrig.c9
-rw-r--r--lib/msun/src/catrigl.c417
-rw-r--r--lib/msun/src/e_asin.c2
-rw-r--r--lib/msun/src/e_coshl.c2
-rw-r--r--lib/msun/src/e_lgammaf_r.c2
-rw-r--r--lib/msun/src/e_sinhl.c5
-rw-r--r--lib/msun/src/k_sincos.h52
-rw-r--r--lib/msun/src/k_sincosf.h43
-rw-r--r--lib/msun/src/k_sincosl.h134
-rw-r--r--lib/msun/src/math.h3
-rw-r--r--lib/msun/src/math_private.h14
-rw-r--r--lib/msun/src/s_fabs.c5
-rw-r--r--lib/msun/src/s_fmax.c5
-rw-r--r--lib/msun/src/s_fmin.c5
-rw-r--r--lib/msun/src/s_logbl.c5
-rw-r--r--lib/msun/src/s_scalbn.c12
-rw-r--r--lib/msun/src/s_scalbnf.c11
-rw-r--r--lib/msun/src/s_scalbnl.c12
-rw-r--r--lib/msun/src/s_sincos.c80
-rw-r--r--lib/msun/src/s_sincosf.c126
-rw-r--r--lib/msun/src/s_sincosl.c105
-rw-r--r--lib/msun/src/s_tanhl.c2
-rw-r--r--lib/msun/tests/ctrig_test.c4
65 files changed, 2235 insertions, 619 deletions
diff --git a/lib/clang/freebsd_cc_version.h b/lib/clang/freebsd_cc_version.h
index e7a5706..1b075f9 100644
--- a/lib/clang/freebsd_cc_version.h
+++ b/lib/clang/freebsd_cc_version.h
@@ -1,3 +1,3 @@
/* $FreeBSD$ */
-#define FREEBSD_CC_VERSION 1100504
+#define FREEBSD_CC_VERSION 1100505
diff --git a/lib/clang/headers/Makefile b/lib/clang/headers/Makefile
index be03a70..3e401ef 100644
--- a/lib/clang/headers/Makefile
+++ b/lib/clang/headers/Makefile
@@ -4,7 +4,7 @@
.PATH: ${CLANG_SRCS}/lib/Headers
-INCSDIR= ${LIBDIR}/clang/4.0.0/include
+INCSDIR= ${LIBDIR}/clang/5.0.1/include
GENINCS+= arm_neon.h
@@ -37,10 +37,12 @@ INCS+= avx512vlbwintrin.h
INCS+= avx512vlcdintrin.h
INCS+= avx512vldqintrin.h
INCS+= avx512vlintrin.h
+INCS+= avx512vpopcntdqintrin.h
INCS+= avxintrin.h
INCS+= bmi2intrin.h
INCS+= bmiintrin.h
INCS+= clflushoptintrin.h
+INCS+= clzerointrin.h
INCS+= cpuid.h
INCS+= emmintrin.h
INCS+= f16cintrin.h
@@ -51,6 +53,7 @@ INCS+= htmintrin.h
INCS+= htmxlintrin.h
INCS+= ia32intrin.h
INCS+= immintrin.h
+INCS+= lwpintrin.h
INCS+= lzcntintrin.h
INCS+= mm3dnow.h
INCS+= mm_malloc.h
@@ -84,6 +87,25 @@ INCS+= xsavesintrin.h
INCS+= xtestintrin.h
INCS+= ${GENINCS}
+# Headers which possibly conflict with our own versions:
+.if defined(INSTALL_CONFLICTING_CLANG_HEADERS)
+INCS+= float.h
+INCS+= intrin.h
+INCS+= inttypes.h
+INCS+= iso646.h
+INCS+= limits.h
+INCS+= stdalign.h
+INCS+= stdarg.h
+INCS+= stdatomic.h
+INCS+= stdbool.h
+INCS+= stddef.h
+INCS+= stdint.h
+INCS+= stdnoreturn.h
+INCS+= tgmath.h
+INCS+= unwind.h
+INCS+= varargs.h
+.endif
+
arm_neon.h: ${CLANG_SRCS}/include/clang/Basic/arm_neon.td
${CLANG_TBLGEN} -gen-arm-neon \
-d ${.TARGET:C/$/.d/} -o ${.TARGET} \
diff --git a/lib/clang/include/clang/Basic/Version.inc b/lib/clang/include/clang/Basic/Version.inc
index 24fdb8b..67ace7f 100644
--- a/lib/clang/include/clang/Basic/Version.inc
+++ b/lib/clang/include/clang/Basic/Version.inc
@@ -1,11 +1,11 @@
/* $FreeBSD$ */
-#define CLANG_VERSION 4.0.0
-#define CLANG_VERSION_STRING "4.0.0"
-#define CLANG_VERSION_MAJOR 4
+#define CLANG_VERSION 5.0.1
+#define CLANG_VERSION_STRING "5.0.1"
+#define CLANG_VERSION_MAJOR 5
#define CLANG_VERSION_MINOR 0
-#define CLANG_VERSION_PATCHLEVEL 0
+#define CLANG_VERSION_PATCHLEVEL 1
#define CLANG_VENDOR "FreeBSD "
-#define SVN_REVISION "297347"
+#define SVN_REVISION "320880"
diff --git a/lib/clang/include/clang/Config/config.h b/lib/clang/include/clang/Config/config.h
index 07f6325..5f59345 100644
--- a/lib/clang/include/clang/Config/config.h
+++ b/lib/clang/include/clang/Config/config.h
@@ -39,11 +39,14 @@
/* Define if we have libxml2 */
/* #undef CLANG_HAVE_LIBXML */
+/* Define if we have z3 and want to build it */
+/* #undef CLANG_ANALYZER_WITH_Z3 */
+
/* Define if we have sys/resource.h (rlimits) */
#define CLANG_HAVE_RLIMITS 1
/* The LLVM product name and version */
-#define BACKEND_PACKAGE_STRING "LLVM 4.0.0"
+#define BACKEND_PACKAGE_STRING "LLVM 5.0.1"
/* Linker version detected at compile time. */
/* #undef HOST_LINK_VERSION */
@@ -54,4 +57,9 @@
/* enable x86 relax relocations by default */
#define ENABLE_X86_RELAX_RELOCATIONS 0
+/* Enable each functionality of modules */
+/* #undef CLANG_ENABLE_ARCMT */
+/* #undef CLANG_ENABLE_OBJC_REWRITER */
+/* #undef CLANG_ENABLE_STATIC_ANALYZER */
+
#endif
diff --git a/lib/clang/include/lld/Config/Version.inc b/lib/clang/include/lld/Config/Version.inc
index 49ce2ca..6f72748 100644
--- a/lib/clang/include/lld/Config/Version.inc
+++ b/lib/clang/include/lld/Config/Version.inc
@@ -1,8 +1,8 @@
// $FreeBSD$
-#define LLD_VERSION 4.0.0
-#define LLD_VERSION_STRING "4.0.0"
-#define LLD_VERSION_MAJOR 4
+#define LLD_VERSION 5.0.1
+#define LLD_VERSION_STRING "5.0.1"
+#define LLD_VERSION_MAJOR 5
#define LLD_VERSION_MINOR 0
-#define LLD_REVISION_STRING "297347"
+#define LLD_REVISION_STRING "320880"
#define LLD_REPOSITORY_STRING "FreeBSD"
diff --git a/lib/clang/include/lldb/Host/Config.h b/lib/clang/include/lldb/Host/Config.h
new file mode 100644
index 0000000..670eca5
--- /dev/null
+++ b/lib/clang/include/lldb/Host/Config.h
@@ -0,0 +1,28 @@
+// $FreeBSD$
+//===-- Config.h -----------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_HOST_CONFIG_H
+#define LLDB_HOST_CONFIG_H
+
+#define LLDB_CONFIG_TERMIOS_SUPPORTED
+
+/* #undef LLDB_DISABLE_POSIX */
+
+#define HAVE_SYS_EVENT_H 1
+
+#define HAVE_PPOLL 1
+
+#define HAVE_SIGACTION 1
+
+#define HAVE_PROCESS_VM_READV 0
+
+#define HAVE_NR_PROCESS_VM_READV 0
+
+#endif // #ifndef LLDB_HOST_CONFIG_H
diff --git a/lib/clang/include/llvm/Config/abi-breaking.h b/lib/clang/include/llvm/Config/abi-breaking.h
index 39c4162..a6976a1 100644
--- a/lib/clang/include/llvm/Config/abi-breaking.h
+++ b/lib/clang/include/llvm/Config/abi-breaking.h
@@ -16,9 +16,11 @@
/* Define to enable checks that alter the LLVM C++ ABI */
#define LLVM_ENABLE_ABI_BREAKING_CHECKS 1
-/* Define to disable the link-time checking of mismatch for
- LLVM_ENABLE_ABI_BREAKING_CHECKS */
-#define LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING 0
+/* Define to enable reverse iteration of unordered llvm containers */
+#define LLVM_ENABLE_REVERSE_ITERATION 0
+
+/* Allow selectively disabling link-time mismatch checking so that header-only
+ ADT content from LLVM can be used without linking libSupport. */
#if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
// ABI_BREAKING_CHECKS protection: provides link-time failure when clients build
diff --git a/lib/clang/include/llvm/Config/config.h b/lib/clang/include/llvm/Config/config.h
index a5b7ce9..6f3fb10 100644
--- a/lib/clang/include/llvm/Config/config.h
+++ b/lib/clang/include/llvm/Config/config.h
@@ -17,8 +17,12 @@
/* Define to 1 to enable crash overrides, and to 0 otherwise. */
#define ENABLE_CRASH_OVERRIDES 1
+#if __FreeBSD_version >= 1000052
/* Define to 1 if you have the `backtrace' function. */
-/* #undef HAVE_BACKTRACE */
+#define HAVE_BACKTRACE TRUE
+
+#define BACKTRACE_HEADER <execinfo.h>
+#endif
/* Define to 1 if you have the <CrashReporterClient.h> header file. */
/* #undef HAVE_CRASHREPORTERCLIENT_H */
@@ -55,14 +59,12 @@
/* Define if dlopen() is available on this platform. */
#define HAVE_DLOPEN 1
+/* Define if dladdr() is available on this platform. */
+#define HAVE_DLADDR 1
+
/* Define to 1 if you have the <errno.h> header file. */
#define HAVE_ERRNO_H 1
-/* Define to 1 if you have the <execinfo.h> header file. */
-#if __FreeBSD_version >= 1000052
-#define HAVE_EXECINFO_H 1
-#endif
-
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
@@ -356,35 +358,14 @@
/* Host triple LLVM will be executed on */
/* #undef LLVM_HOST_TRIPLE */
-/* LLVM architecture name for the native architecture, if available */
-#define LLVM_NATIVE_ARCH X86
-
-/* LLVM name for the native AsmParser init function, if available */
-#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser
-
-/* LLVM name for the native AsmPrinter init function, if available */
-#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter
-
-/* LLVM name for the native Disassembler init function, if available */
-#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler
-
-/* LLVM name for the native Target init function, if available */
-#define LLVM_NATIVE_TARGET LLVMInitializeX86Target
-
-/* LLVM name for the native TargetInfo init function, if available */
-#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo
-
-/* LLVM name for the native target MC init function, if available */
-#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
-
/* Define if this is Unixish platform */
#define LLVM_ON_UNIX 1
/* Define if this is Win32ish platform */
/* #undef LLVM_ON_WIN32 */
-/* Installation prefix directory */
-#define LLVM_PREFIX "/usr"
+/* Define if overriding target triple is enabled */
+/* #undef LLVM_TARGET_TRIPLE_ENV */
/* Define if we have the Intel JIT API runtime support library */
#define LLVM_USE_INTEL_JITEVENTS 0
@@ -395,17 +376,20 @@
/* LLVM version information */
/* #undef LLVM_VERSION_INFO */
+/* Whether tools show host and target info when invoked with --version */
+#define LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO 1
+
/* Major version of the LLVM API */
-#define LLVM_VERSION_MAJOR 4
+#define LLVM_VERSION_MAJOR 5
/* Minor version of the LLVM API */
#define LLVM_VERSION_MINOR 0
/* Patch version of the LLVM API */
-#define LLVM_VERSION_PATCH 0
+#define LLVM_VERSION_PATCH 1
/* LLVM version string */
-#define LLVM_VERSION_STRING "4.0.0"
+#define LLVM_VERSION_STRING "5.0.1"
/* Define to the extension used for shared libraries, say, ".so". */
#define LTDL_SHLIB_EXT ".so"
@@ -417,13 +401,13 @@
#define PACKAGE_NAME "LLVM"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "LLVM 4.0.0"
+#define PACKAGE_STRING "LLVM 5.0.1"
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
-#define PACKAGE_VERSION "4.0.0"
+#define PACKAGE_VERSION "5.0.1"
/* Define to the vendor of this package. */
/* #undef PACKAGE_VENDOR */
diff --git a/lib/clang/include/llvm/Config/llvm-config.h b/lib/clang/include/llvm/Config/llvm-config.h
index 755017f..d288d8a 100644
--- a/lib/clang/include/llvm/Config/llvm-config.h
+++ b/lib/clang/include/llvm/Config/llvm-config.h
@@ -57,9 +57,6 @@
/* Define if this is Win32ish platform */
/* #undef LLVM_ON_WIN32 */
-/* Installation prefix directory */
-#define LLVM_PREFIX "/usr"
-
/* Define if we have the Intel JIT API runtime support library */
#define LLVM_USE_INTEL_JITEVENTS 0
@@ -67,15 +64,15 @@
#define LLVM_USE_OPROFILE 0
/* Major version of the LLVM API */
-#define LLVM_VERSION_MAJOR 4
+#define LLVM_VERSION_MAJOR 5
/* Minor version of the LLVM API */
#define LLVM_VERSION_MINOR 0
/* Patch version of the LLVM API */
-#define LLVM_VERSION_PATCH 0
+#define LLVM_VERSION_PATCH 1
/* LLVM version string */
-#define LLVM_VERSION_STRING "4.0.0"
+#define LLVM_VERSION_STRING "5.0.1"
#endif
diff --git a/lib/clang/include/llvm/Support/DataTypes.h b/lib/clang/include/llvm/Support/DataTypes.h
index 5d02231..d48e83d 100644
--- a/lib/clang/include/llvm/Support/DataTypes.h
+++ b/lib/clang/include/llvm/Support/DataTypes.h
@@ -86,11 +86,11 @@ typedef u_int64_t uint64_t;
#else /* _MSC_VER */
#ifdef __cplusplus
-#include <cstdlib>
#include <cstddef>
+#include <cstdlib>
#else
-#include <stdlib.h>
#include <stddef.h>
+#include <stdlib.h>
#endif
#include <sys/types.h>
@@ -133,4 +133,4 @@ typedef signed int ssize_t;
#define HUGE_VALF (float)HUGE_VAL
#endif
-#endif /* SUPPORT_DATATYPES_H */
+#endif /* SUPPORT_DATATYPES_H */
diff --git a/lib/clang/include/llvm/Support/VCSRevision.h b/lib/clang/include/llvm/Support/VCSRevision.h
new file mode 100644
index 0000000..053a7d4
--- /dev/null
+++ b/lib/clang/include/llvm/Support/VCSRevision.h
@@ -0,0 +1,2 @@
+/* $FreeBSD$ */
+#define LLVM_REVISION "svn-r320880"
diff --git a/lib/clang/libclang/Makefile b/lib/clang/libclang/Makefile
index 54fb0d7..544f7d4 100644
--- a/lib/clang/libclang/Makefile
+++ b/lib/clang/libclang/Makefile
@@ -7,6 +7,7 @@ LIB= clang
CFLAGS+= -I${.OBJDIR}
CFLAGS+= -I${OBJTOP}/lib/clang/libllvm
+CFLAGS+= -I${CLANG_SRCS}/lib/Driver
# Ensure FREEBSD_CC_VERSION is defined for Basic/Targets.cpp
CFLAGS.Targets.cpp+= -include ../freebsd_cc_version.h
@@ -44,6 +45,7 @@ SRCS_MIN+= AST/ASTContext.cpp
SRCS_MIN+= AST/ASTDiagnostic.cpp
SRCS_MIN+= AST/ASTDumper.cpp
SRCS_MIN+= AST/ASTImporter.cpp
+SRCS_MIN+= AST/ASTStructuralEquivalence.cpp
SRCS_MIN+= AST/ASTTypeTraits.cpp
SRCS_MIN+= AST/AttrImpl.cpp
SRCS_MIN+= AST/CXXInheritance.cpp
@@ -77,6 +79,7 @@ SRCS_MIN+= AST/MicrosoftCXXABI.cpp
SRCS_MIN+= AST/MicrosoftMangle.cpp
SRCS_MIN+= AST/NSAPI.cpp
SRCS_MIN+= AST/NestedNameSpecifier.cpp
+SRCS_MIN+= AST/ODRHash.cpp
SRCS_MIN+= AST/OpenMPClause.cpp
SRCS_MIN+= AST/ParentMap.cpp
SRCS_MIN+= AST/RawCommentList.cpp
@@ -141,6 +144,7 @@ SRCS_MIN+= Basic/FileManager.cpp
SRCS_MIN+= Basic/FileSystemStatCache.cpp
SRCS_MIN+= Basic/IdentifierTable.cpp
SRCS_MIN+= Basic/LangOptions.cpp
+SRCS_MIN+= Basic/MemoryBufferCache.cpp
SRCS_MIN+= Basic/Module.cpp
SRCS_MIN+= Basic/ObjCRuntime.cpp
SRCS_MIN+= Basic/OpenMPKinds.cpp
@@ -156,11 +160,11 @@ SRCS_MIN+= Basic/Version.cpp
SRCS_MIN+= Basic/VersionTuple.cpp
SRCS_MIN+= Basic/VirtualFileSystem.cpp
SRCS_MIN+= Basic/Warnings.cpp
+SRCS_MIN+= Basic/XRayLists.cpp
SRCS_MIN+= CodeGen/BackendUtil.cpp
SRCS_MIN+= CodeGen/CGAtomic.cpp
SRCS_MIN+= CodeGen/CGBlocks.cpp
SRCS_MIN+= CodeGen/CGBuiltin.cpp
-SRCS_MIN+= CodeGen/CGCUDABuiltin.cpp
SRCS_MIN+= CodeGen/CGCUDANV.cpp
SRCS_MIN+= CodeGen/CGCUDARuntime.cpp
SRCS_MIN+= CodeGen/CGCXX.cpp
@@ -179,6 +183,7 @@ SRCS_MIN+= CodeGen/CGExprCXX.cpp
SRCS_MIN+= CodeGen/CGExprComplex.cpp
SRCS_MIN+= CodeGen/CGExprConstant.cpp
SRCS_MIN+= CodeGen/CGExprScalar.cpp
+SRCS_MIN+= CodeGen/CGGPUBuiltin.cpp
SRCS_MIN+= CodeGen/CGLoopInfo.cpp
SRCS_MIN+= CodeGen/CGObjC.cpp
SRCS_MIN+= CodeGen/CGObjCGNU.cpp
@@ -199,8 +204,10 @@ SRCS_MIN+= CodeGen/CodeGenModule.cpp
SRCS_MIN+= CodeGen/CodeGenPGO.cpp
SRCS_MIN+= CodeGen/CodeGenTBAA.cpp
SRCS_MIN+= CodeGen/CodeGenTypes.cpp
+SRCS_MIN+= CodeGen/ConstantInitBuilder.cpp
SRCS_MIN+= CodeGen/CoverageMappingGen.cpp
SRCS_MIN+= CodeGen/ItaniumCXXABI.cpp
+SRCS_MIN+= CodeGen/MacroPPCallbacks.cpp
SRCS_MIN+= CodeGen/MicrosoftCXXABI.cpp
SRCS_MIN+= CodeGen/ModuleBuilder.cpp
SRCS_MIN+= CodeGen/ObjectFilePCHContainerOperations.cpp
@@ -210,36 +217,72 @@ SRCS_MIN+= CodeGen/TargetInfo.cpp
SRCS_MIN+= CodeGen/VarBypassDetector.cpp
SRCS_MIN+= Driver/Action.cpp
SRCS_MIN+= Driver/Compilation.cpp
-SRCS_MIN+= Driver/CrossWindowsToolChain.cpp
SRCS_MIN+= Driver/Distro.cpp
SRCS_MIN+= Driver/Driver.cpp
SRCS_MIN+= Driver/DriverOptions.cpp
SRCS_MIN+= Driver/Job.cpp
-SRCS_MIN+= Driver/MSVCToolChain.cpp
-SRCS_MIN+= Driver/MinGWToolChain.cpp
SRCS_MIN+= Driver/Multilib.cpp
SRCS_MIN+= Driver/Phases.cpp
SRCS_MIN+= Driver/SanitizerArgs.cpp
SRCS_MIN+= Driver/Tool.cpp
SRCS_MIN+= Driver/ToolChain.cpp
-SRCS_MIN+= Driver/ToolChains.cpp
-SRCS_MIN+= Driver/Tools.cpp
+SRCS_MIN+= Driver/ToolChains/AMDGPU.cpp
+SRCS_MIN+= Driver/ToolChains/AVR.cpp
+SRCS_MIN+= Driver/ToolChains/Ananas.cpp
+SRCS_MIN+= Driver/ToolChains/Arch/AArch64.cpp
+SRCS_MIN+= Driver/ToolChains/Arch/ARM.cpp
+SRCS_MIN+= Driver/ToolChains/Arch/Mips.cpp
+SRCS_MIN+= Driver/ToolChains/Arch/PPC.cpp
+SRCS_MIN+= Driver/ToolChains/Arch/Sparc.cpp
+SRCS_MIN+= Driver/ToolChains/Arch/SystemZ.cpp
+SRCS_MIN+= Driver/ToolChains/Arch/X86.cpp
+SRCS_MIN+= Driver/ToolChains/BareMetal.cpp
+SRCS_MIN+= Driver/ToolChains/Bitrig.cpp
+SRCS_MIN+= Driver/ToolChains/Clang.cpp
+SRCS_MIN+= Driver/ToolChains/CloudABI.cpp
+SRCS_MIN+= Driver/ToolChains/CommonArgs.cpp
+SRCS_MIN+= Driver/ToolChains/Contiki.cpp
+SRCS_MIN+= Driver/ToolChains/CrossWindows.cpp
+SRCS_MIN+= Driver/ToolChains/Cuda.cpp
+SRCS_MIN+= Driver/ToolChains/Darwin.cpp
+SRCS_MIN+= Driver/ToolChains/DragonFly.cpp
+SRCS_MIN+= Driver/ToolChains/FreeBSD.cpp
+SRCS_MIN+= Driver/ToolChains/Fuchsia.cpp
+SRCS_MIN+= Driver/ToolChains/Gnu.cpp
+SRCS_MIN+= Driver/ToolChains/Haiku.cpp
+SRCS_MIN+= Driver/ToolChains/Hexagon.cpp
+SRCS_MIN+= Driver/ToolChains/Linux.cpp
+SRCS_MIN+= Driver/ToolChains/MSVC.cpp
+SRCS_MIN+= Driver/ToolChains/MinGW.cpp
+SRCS_MIN+= Driver/ToolChains/Minix.cpp
+SRCS_MIN+= Driver/ToolChains/MipsLinux.cpp
+SRCS_MIN+= Driver/ToolChains/Myriad.cpp
+SRCS_MIN+= Driver/ToolChains/NaCl.cpp
+SRCS_MIN+= Driver/ToolChains/NetBSD.cpp
+SRCS_MIN+= Driver/ToolChains/OpenBSD.cpp
+SRCS_MIN+= Driver/ToolChains/PS4CPU.cpp
+SRCS_MIN+= Driver/ToolChains/Solaris.cpp
+SRCS_MIN+= Driver/ToolChains/TCE.cpp
+SRCS_MIN+= Driver/ToolChains/WebAssembly.cpp
+SRCS_MIN+= Driver/ToolChains/XCore.cpp
SRCS_MIN+= Driver/Types.cpp
+SRCS_MIN+= Driver/XRayArgs.cpp
SRCS_MIN+= Edit/Commit.cpp
SRCS_MIN+= Edit/EditedSource.cpp
SRCS_MIN+= Edit/RewriteObjCFoundationAPI.cpp
SRCS_EXT+= Format/AffectedRangeManager.cpp
SRCS_EXT+= Format/BreakableToken.cpp
-SRCS_EXT+= Format/Comments.cpp
SRCS_EXT+= Format/ContinuationIndenter.cpp
SRCS_EXT+= Format/Format.cpp
SRCS_EXT+= Format/FormatToken.cpp
SRCS_EXT+= Format/FormatTokenLexer.cpp
+SRCS_EXT+= Format/NamespaceEndCommentsFixer.cpp
SRCS_EXT+= Format/SortJavaScriptImports.cpp
SRCS_EXT+= Format/TokenAnalyzer.cpp
SRCS_EXT+= Format/TokenAnnotator.cpp
SRCS_EXT+= Format/UnwrappedLineFormatter.cpp
SRCS_EXT+= Format/UnwrappedLineParser.cpp
+SRCS_EXT+= Format/UsingDeclarationsSorter.cpp
SRCS_EXT+= Format/WhitespaceManager.cpp
SRCS_MIN+= Frontend/ASTConsumers.cpp
SRCS_MIN+= Frontend/ASTMerge.cpp
@@ -266,6 +309,7 @@ SRCS_MIN+= Frontend/LogDiagnosticPrinter.cpp
SRCS_MIN+= Frontend/ModuleDependencyCollector.cpp
SRCS_MIN+= Frontend/MultiplexConsumer.cpp
SRCS_MIN+= Frontend/PCHContainerOperations.cpp
+SRCS_MIN+= Frontend/PrecompiledPreamble.cpp
SRCS_MIN+= Frontend/PrintPreprocessedOutput.cpp
SRCS_MIN+= Frontend/Rewrite/FixItRewriter.cpp
SRCS_MIN+= Frontend/Rewrite/FrontendActions.cpp
@@ -412,7 +456,6 @@ SRCS_FUL+= StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
-SRCS_FUL+= StaticAnalyzer/Checkers/CheckerDocumentation.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/ChrootChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/ClangCheckers.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/CloneChecker.cpp
@@ -429,7 +472,7 @@ SRCS_FUL+= StaticAnalyzer/Checkers/FixedAddressChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/GTestChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/GenericTaintChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/IdenticalExprChecker.cpp
-SRCS_FUL+= StaticAnalyzer/Checkers/IteratorPastEndChecker.cpp
+SRCS_FUL+= StaticAnalyzer/Checkers/IteratorChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/LocalizationChecker.cpp
@@ -441,6 +484,7 @@ SRCS_FUL+= StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/MallocChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
+SRCS_FUL+= StaticAnalyzer/Checkers/MisusedMovedObjectChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/NSErrorChecker.cpp
SRCS_FUL+= StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
@@ -513,6 +557,7 @@ SRCS_FUL+= StaticAnalyzer/Core/PathDiagnostic.cpp
SRCS_FUL+= StaticAnalyzer/Core/PlistDiagnostics.cpp
SRCS_FUL+= StaticAnalyzer/Core/ProgramState.cpp
SRCS_FUL+= StaticAnalyzer/Core/RangeConstraintManager.cpp
+SRCS_FUL+= StaticAnalyzer/Core/RangedConstraintManager.cpp
SRCS_FUL+= StaticAnalyzer/Core/RegionStore.cpp
SRCS_FUL+= StaticAnalyzer/Core/SValBuilder.cpp
SRCS_FUL+= StaticAnalyzer/Core/SVals.cpp
@@ -521,6 +566,7 @@ SRCS_FUL+= StaticAnalyzer/Core/SimpleSValBuilder.cpp
SRCS_FUL+= StaticAnalyzer/Core/Store.cpp
SRCS_FUL+= StaticAnalyzer/Core/SubEngine.cpp
SRCS_FUL+= StaticAnalyzer/Core/SymbolManager.cpp
+SRCS_FUL+= StaticAnalyzer/Core/Z3ConstraintManager.cpp
SRCS_FUL+= StaticAnalyzer/Frontend/AnalysisConsumer.cpp
SRCS_FUL+= StaticAnalyzer/Frontend/CheckerRegistration.cpp
SRCS_FUL+= StaticAnalyzer/Frontend/FrontendActions.cpp
@@ -637,6 +683,12 @@ clang/Basic/AttrList.inc: ${CLANG_SRCS}/include/clang/Basic/Attr.td
${CLANG_SRCS}/include/clang/Basic/Attr.td
TGHDRS+= clang/Basic/AttrList.inc
+clang/Basic/AttrSubMatchRulesList.inc: ${CLANG_SRCS}/include/clang/Basic/Attr.td
+ ${CLANG_TBLGEN} -gen-clang-attr-subject-match-rule-list \
+ -I ${CLANG_SRCS}/include -d ${.TARGET:C/$/.d/} -o ${.TARGET} \
+ ${CLANG_SRCS}/include/clang/Basic/Attr.td
+TGHDRS+= clang/Basic/AttrSubMatchRulesList.inc
+
.for hdr in \
AST Analysis Comment Common Driver Frontend Lex Parse Sema Serialization
clang/Basic/Diagnostic${hdr}Kinds.inc: \
@@ -681,6 +733,13 @@ clang/Parse/AttrParserStringSwitches.inc: \
${CLANG_SRCS}/include/clang/Basic/Attr.td
TGHDRS+= clang/Parse/AttrParserStringSwitches.inc
+clang/Parse/AttrSubMatchRulesParserStringSwitches.inc: \
+ ${CLANG_SRCS}/include/clang/Basic/Attr.td
+ ${CLANG_TBLGEN} -gen-clang-attr-subject-match-rules-parser-string-switches \
+ -I ${CLANG_SRCS}/include -d ${.TARGET:C/$/.d/} -o ${.TARGET} \
+ ${CLANG_SRCS}/include/clang/Basic/Attr.td
+TGHDRS+= clang/Parse/AttrSubMatchRulesParserStringSwitches.inc
+
clang/Sema/AttrParsedAttrImpl.inc: ${CLANG_SRCS}/include/clang/Basic/Attr.td
${CLANG_TBLGEN} -gen-clang-attr-parsed-attr-impl \
-I ${CLANG_SRCS}/include -d ${.TARGET:C/$/.d/} -o ${.TARGET} \
diff --git a/lib/clang/liblldb/Makefile b/lib/clang/liblldb/Makefile
index 189119a..d57a637 100644
--- a/lib/clang/liblldb/Makefile
+++ b/lib/clang/liblldb/Makefile
@@ -61,6 +61,7 @@ SRCS+= API/SBTarget.cpp
SRCS+= API/SBThread.cpp
SRCS+= API/SBThreadCollection.cpp
SRCS+= API/SBThreadPlan.cpp
+SRCS+= API/SBTrace.cpp
SRCS+= API/SBType.cpp
SRCS+= API/SBTypeCategory.cpp
SRCS+= API/SBTypeEnumMember.cpp
@@ -131,29 +132,19 @@ SRCS+= Core/AddressResolver.cpp
SRCS+= Core/AddressResolverFileLine.cpp
SRCS+= Core/AddressResolverName.cpp
SRCS+= Core/ArchSpec.cpp
-SRCS+= Core/Baton.cpp
SRCS+= Core/Broadcaster.cpp
SRCS+= Core/Communication.cpp
-SRCS+= Core/Connection.cpp
-SRCS+= Core/ConstString.cpp
-SRCS+= Core/DataBufferHeap.cpp
-SRCS+= Core/DataBufferMemoryMap.cpp
-SRCS+= Core/DataEncoder.cpp
-SRCS+= Core/DataExtractor.cpp
SRCS+= Core/Debugger.cpp
SRCS+= Core/Disassembler.cpp
+SRCS+= Core/DumpDataExtractor.cpp
SRCS+= Core/DynamicLoader.cpp
SRCS+= Core/EmulateInstruction.cpp
-SRCS+= Core/Error.cpp
SRCS+= Core/Event.cpp
-SRCS+= Core/FastDemangle.cpp
SRCS+= Core/FileLineResolver.cpp
SRCS+= Core/FileSpecList.cpp
SRCS+= Core/FormatEntity.cpp
SRCS+= Core/IOHandler.cpp
SRCS+= Core/Listener.cpp
-SRCS+= Core/Log.cpp
-SRCS+= Core/Logging.cpp
SRCS+= Core/Mangled.cpp
SRCS+= Core/Module.cpp
SRCS+= Core/ModuleChild.cpp
@@ -161,25 +152,14 @@ SRCS+= Core/ModuleList.cpp
SRCS+= Core/Opcode.cpp
SRCS+= Core/PluginManager.cpp
SRCS+= Core/RegisterValue.cpp
-SRCS+= Core/RegularExpression.cpp
SRCS+= Core/Scalar.cpp
SRCS+= Core/SearchFilter.cpp
SRCS+= Core/Section.cpp
SRCS+= Core/SourceManager.cpp
SRCS+= Core/State.cpp
-SRCS+= Core/Stream.cpp
SRCS+= Core/StreamAsynchronousIO.cpp
-SRCS+= Core/StreamCallback.cpp
SRCS+= Core/StreamFile.cpp
-SRCS+= Core/StreamGDBRemote.cpp
-SRCS+= Core/StreamString.cpp
-SRCS+= Core/StringList.cpp
-SRCS+= Core/StructuredData.cpp
-SRCS+= Core/Timer.cpp
-SRCS+= Core/UUID.cpp
-SRCS+= Core/UserID.cpp
SRCS+= Core/UserSettingsController.cpp
-SRCS+= Core/VMRange.cpp
SRCS+= Core/Value.cpp
SRCS+= Core/ValueObject.cpp
SRCS+= Core/ValueObjectCast.cpp
@@ -228,35 +208,32 @@ SRCS+= Expression/UtilityFunction.cpp
SRCS+= Host/common/Editline.cpp
SRCS+= Host/common/File.cpp
SRCS+= Host/common/FileCache.cpp
-SRCS+= Host/common/FileSpec.cpp
SRCS+= Host/common/FileSystem.cpp
SRCS+= Host/common/Host.cpp
SRCS+= Host/common/HostInfoBase.cpp
SRCS+= Host/common/HostNativeThreadBase.cpp
SRCS+= Host/common/HostProcess.cpp
SRCS+= Host/common/HostThread.cpp
-SRCS+= Host/common/IOObject.cpp
SRCS+= Host/common/LockFileBase.cpp
+SRCS+= Host/common/MainLoop.cpp
SRCS+= Host/common/MonitoringProcessLauncher.cpp
SRCS+= Host/common/NativeBreakpointList.cpp
SRCS+= Host/common/NativeWatchpointList.cpp
SRCS+= Host/common/OptionParser.cpp
SRCS+= Host/common/PipeBase.cpp
SRCS+= Host/common/ProcessRunLock.cpp
+SRCS+= Host/common/PseudoTerminal.cpp
SRCS+= Host/common/Socket.cpp
SRCS+= Host/common/SocketAddress.cpp
SRCS+= Host/common/StringConvert.cpp
SRCS+= Host/common/Symbols.cpp
SRCS+= Host/common/TCPSocket.cpp
SRCS+= Host/common/Terminal.cpp
-SRCS+= Host/common/ThisThread.cpp
SRCS+= Host/common/ThreadLauncher.cpp
SRCS+= Host/common/UDPSocket.cpp
SRCS+= Host/common/XML.cpp
SRCS+= Host/freebsd/Host.cpp
SRCS+= Host/freebsd/HostInfoFreeBSD.cpp
-SRCS+= Host/freebsd/HostThreadFreeBSD.cpp
-SRCS+= Host/freebsd/ThisThread.cpp
SRCS+= Host/posix/ConnectionFileDescriptorPosix.cpp
SRCS+= Host/posix/DomainSocket.cpp
SRCS+= Host/posix/FileSystem.cpp
@@ -264,9 +241,8 @@ SRCS+= Host/posix/HostInfoPosix.cpp
SRCS+= Host/posix/HostProcessPosix.cpp
SRCS+= Host/posix/HostThreadPosix.cpp
SRCS+= Host/posix/LockFilePosix.cpp
-SRCS+= Host/posix/MainLoopPosix.cpp
SRCS+= Host/posix/PipePosix.cpp
-SRCS+= Host/posix/ProcessLauncherPosix.cpp
+SRCS+= Host/posix/ProcessLauncherPosixFork.cpp
SRCS+= Initialization/SystemInitializer.cpp
SRCS+= Initialization/SystemInitializerCommon.cpp
SRCS+= Initialization/SystemLifetimeManager.cpp
@@ -347,10 +323,13 @@ SRCS+= Plugins/Instruction/ARM/EmulationStateARM.cpp
SRCS+= Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
SRCS+= Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
SRCS+= Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
-SRCS+= Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp
+SRCS+= Plugins/InstrumentationRuntime/ASan/ASanRuntime.cpp
+SRCS+= Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.cpp
+SRCS+= Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.cpp
SRCS+= Plugins/JITLoader/GDB/JITLoaderGDB.cpp
SRCS+= Plugins/Language/CPlusPlus/BlockPointer.cpp
SRCS+= Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+SRCS+= Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
SRCS+= Plugins/Language/CPlusPlus/LibCxx.cpp
SRCS+= Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
SRCS+= Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
@@ -370,12 +349,16 @@ SRCS+= Plugins/Language/ObjC/NSSet.cpp
SRCS+= Plugins/Language/ObjC/NSString.cpp
SRCS+= Plugins/Language/ObjC/ObjCLanguage.cpp
SRCS+= Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp
+SRCS+= Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
+SRCS+= Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp
+SRCS+= Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp
SRCS+= Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp
SRCS+= Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
SRCS+= Plugins/ObjectFile/ELF/ELFHeader.cpp
SRCS+= Plugins/ObjectFile/ELF/ObjectFileELF.cpp
SRCS+= Plugins/ObjectFile/JIT/ObjectFileJIT.cpp
SRCS+= Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp
+SRCS+= Plugins/Platform/POSIX/PlatformPOSIX.cpp
SRCS+= Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
SRCS+= Plugins/Process/FreeBSD/FreeBSDThread.cpp
SRCS+= Plugins/Process/FreeBSD/POSIXStopInfo.cpp
@@ -401,25 +384,28 @@ SRCS+= Plugins/Process/Utility/NetBSDSignals.cpp
SRCS+= Plugins/Process/Utility/RegisterContextDarwin_i386.cpp
SRCS+= Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp
SRCS+= Plugins/Process/Utility/RegisterContextDummy.cpp
-SRCS+= Plugins/Process/Utility/RegisterContextFreeBSD_arm.cpp
SRCS+= Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp
SRCS+= Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp
SRCS+= Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.cpp
SRCS+= Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp
SRCS+= Plugins/Process/Utility/RegisterContextHistory.cpp
SRCS+= Plugins/Process/Utility/RegisterContextLLDB.cpp
-SRCS+= Plugins/Process/Utility/RegisterContextLinux_arm.cpp
SRCS+= Plugins/Process/Utility/RegisterContextLinux_i386.cpp
SRCS+= Plugins/Process/Utility/RegisterContextLinux_mips.cpp
+SRCS+= Plugins/Process/Utility/RegisterContextLinux_mips64.cpp
SRCS+= Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp
SRCS+= Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp
SRCS+= Plugins/Process/Utility/RegisterContextMemory.cpp
+SRCS+= Plugins/Process/Utility/RegisterContextNetBSD_x86_64.cpp
+SRCS+= Plugins/Process/Utility/RegisterContextOpenBSD_i386.cpp
+SRCS+= Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.cpp
SRCS+= Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp
SRCS+= Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp
SRCS+= Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp
SRCS+= Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp
SRCS+= Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp
SRCS+= Plugins/Process/Utility/RegisterContextThreadMemory.cpp
+SRCS+= Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp
SRCS+= Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
SRCS+= Plugins/Process/Utility/StopInfoMachException.cpp
SRCS+= Plugins/Process/Utility/ThreadMemory.cpp
@@ -523,6 +509,7 @@ SRCS+= Target/Language.cpp
SRCS+= Target/LanguageRuntime.cpp
SRCS+= Target/Memory.cpp
SRCS+= Target/MemoryHistory.cpp
+SRCS+= Target/ModuleCache.cpp
SRCS+= Target/ObjCLanguageRuntime.cpp
SRCS+= Target/OperatingSystem.cpp
SRCS+= Target/PathMappingList.cpp
@@ -534,6 +521,7 @@ SRCS+= Target/Queue.cpp
SRCS+= Target/QueueItem.cpp
SRCS+= Target/QueueList.cpp
SRCS+= Target/RegisterContext.cpp
+SRCS+= Target/RegisterNumber.cpp
SRCS+= Target/SectionLoadHistory.cpp
SRCS+= Target/SectionLoadList.cpp
SRCS+= Target/StackFrame.cpp
@@ -566,21 +554,42 @@ SRCS+= Target/ThreadPlanTracer.cpp
SRCS+= Target/ThreadSpec.cpp
SRCS+= Target/UnixSignals.cpp
SRCS+= Target/UnwindAssembly.cpp
-SRCS+= Utility/ARM_DWARF_Registers.cpp
-SRCS+= Utility/ConvertEnum.cpp
+SRCS+= Utility/Baton.cpp
+SRCS+= Utility/Connection.cpp
+SRCS+= Utility/ConstString.cpp
+SRCS+= Utility/DataBufferHeap.cpp
+SRCS+= Utility/DataBufferLLVM.cpp
+SRCS+= Utility/DataEncoder.cpp
+SRCS+= Utility/DataExtractor.cpp
+SRCS+= Utility/FastDemangle.cpp
+SRCS+= Utility/FileSpec.cpp
+SRCS+= Utility/IOObject.cpp
SRCS+= Utility/JSON.cpp
SRCS+= Utility/LLDBAssert.cpp
-SRCS+= Utility/ModuleCache.cpp
+SRCS+= Utility/Log.cpp
+SRCS+= Utility/Logging.cpp
SRCS+= Utility/NameMatches.cpp
-SRCS+= Utility/PseudoTerminal.cpp
-SRCS+= Utility/RegisterNumber.cpp
+SRCS+= Utility/RegularExpression.cpp
SRCS+= Utility/SelectHelper.cpp
SRCS+= Utility/SharingPtr.cpp
+SRCS+= Utility/Status.cpp
+SRCS+= Utility/Stream.cpp
+SRCS+= Utility/StreamCallback.cpp
+SRCS+= Utility/StreamGDBRemote.cpp
+SRCS+= Utility/StreamString.cpp
SRCS+= Utility/StringExtractor.cpp
SRCS+= Utility/StringExtractorGDBRemote.cpp
SRCS+= Utility/StringLexer.cpp
+SRCS+= Utility/StringList.cpp
+SRCS+= Utility/StructuredData.cpp
SRCS+= Utility/TaskPool.cpp
+SRCS+= Utility/TildeExpressionResolver.cpp
+SRCS+= Utility/Timer.cpp
+SRCS+= Utility/UUID.cpp
SRCS+= Utility/UriParser.cpp
+SRCS+= Utility/UserID.cpp
+SRCS+= Utility/VASprintf.cpp
+SRCS+= Utility/VMRange.cpp
SRCS+= lldb.cpp
.include "../clang.build.mk"
diff --git a/lib/clang/libllvm/Makefile b/lib/clang/libllvm/Makefile
index 1ec73bd..aa1a3f3 100644
--- a/lib/clang/libllvm/Makefile
+++ b/lib/clang/libllvm/Makefile
@@ -67,6 +67,8 @@ SRCS_MIN+= Analysis/MemDerefPrinter.cpp
SRCS_MIN+= Analysis/MemoryBuiltins.cpp
SRCS_MIN+= Analysis/MemoryDependenceAnalysis.cpp
SRCS_MIN+= Analysis/MemoryLocation.cpp
+SRCS_MIN+= Analysis/MemorySSA.cpp
+SRCS_MIN+= Analysis/MemorySSAUpdater.cpp
SRCS_MIN+= Analysis/ModuleDebugInfoPrinter.cpp
SRCS_MIN+= Analysis/ModuleSummaryAnalysis.cpp
SRCS_MIN+= Analysis/ObjCARCAliasAnalysis.cpp
@@ -106,6 +108,8 @@ SRCS_MIN+= Bitcode/Writer/BitWriter.cpp
SRCS_MIN+= Bitcode/Writer/BitcodeWriter.cpp
SRCS_MIN+= Bitcode/Writer/BitcodeWriterPass.cpp
SRCS_MIN+= Bitcode/Writer/ValueEnumerator.cpp
+SRCS_MIN+= BinaryFormat/Dwarf.cpp
+SRCS_MIN+= BinaryFormat/Magic.cpp
SRCS_MIN+= CodeGen/AggressiveAntiDepBreaker.cpp
SRCS_MIN+= CodeGen/AllocationOrder.cpp
SRCS_MIN+= CodeGen/Analysis.cpp
@@ -134,6 +138,7 @@ SRCS_MIN+= CodeGen/AsmPrinter/OcamlGCPrinter.cpp
SRCS_MIN+= CodeGen/AsmPrinter/WinException.cpp
SRCS_MIN+= CodeGen/AtomicExpandPass.cpp
SRCS_MIN+= CodeGen/BasicTargetTransformInfo.cpp
+SRCS_MIN+= CodeGen/BranchCoalescing.cpp
SRCS_MIN+= CodeGen/BranchFolding.cpp
SRCS_MIN+= CodeGen/BranchRelaxation.cpp
SRCS_MIN+= CodeGen/BuiltinGCs.cpp
@@ -152,13 +157,28 @@ SRCS_MIN+= CodeGen/EdgeBundles.cpp
SRCS_MIN+= CodeGen/ExecutionDepsFix.cpp
SRCS_MIN+= CodeGen/ExpandISelPseudos.cpp
SRCS_MIN+= CodeGen/ExpandPostRAPseudos.cpp
+SRCS_MIN+= CodeGen/ExpandReductions.cpp
+SRCS_MIN+= CodeGen/FEntryInserter.cpp
SRCS_MIN+= CodeGen/FaultMaps.cpp
SRCS_MIN+= CodeGen/FuncletLayout.cpp
SRCS_MIN+= CodeGen/GCMetadata.cpp
SRCS_MIN+= CodeGen/GCMetadataPrinter.cpp
SRCS_MIN+= CodeGen/GCRootLowering.cpp
SRCS_MIN+= CodeGen/GCStrategy.cpp
+SRCS_MIN+= CodeGen/GlobalISel/CallLowering.cpp
SRCS_MIN+= CodeGen/GlobalISel/GlobalISel.cpp
+SRCS_MIN+= CodeGen/GlobalISel/IRTranslator.cpp
+SRCS_MIN+= CodeGen/GlobalISel/InstructionSelect.cpp
+SRCS_MIN+= CodeGen/GlobalISel/InstructionSelector.cpp
+SRCS_MIN+= CodeGen/GlobalISel/Legalizer.cpp
+SRCS_MIN+= CodeGen/GlobalISel/LegalizerHelper.cpp
+SRCS_MIN+= CodeGen/GlobalISel/LegalizerInfo.cpp
+SRCS_MIN+= CodeGen/GlobalISel/Localizer.cpp
+SRCS_MIN+= CodeGen/GlobalISel/MachineIRBuilder.cpp
+SRCS_MIN+= CodeGen/GlobalISel/RegBankSelect.cpp
+SRCS_MIN+= CodeGen/GlobalISel/RegisterBank.cpp
+SRCS_MIN+= CodeGen/GlobalISel/RegisterBankInfo.cpp
+SRCS_MIN+= CodeGen/GlobalISel/Utils.cpp
SRCS_MIN+= CodeGen/GlobalMerge.cpp
SRCS_MIN+= CodeGen/IfConversion.cpp
SRCS_MIN+= CodeGen/ImplicitNullChecks.cpp
@@ -168,6 +188,7 @@ SRCS_MIN+= CodeGen/InterleavedAccessPass.cpp
SRCS_MIN+= CodeGen/IntrinsicLowering.cpp
SRCS_MIN+= CodeGen/LLVMTargetMachine.cpp
SRCS_MIN+= CodeGen/LatencyPriorityQueue.cpp
+SRCS_MIN+= CodeGen/LazyMachineBlockFrequencyInfo.cpp
SRCS_MIN+= CodeGen/LexicalScopes.cpp
SRCS_MIN+= CodeGen/LiveDebugValues.cpp
SRCS_MIN+= CodeGen/LiveDebugVariables.cpp
@@ -177,7 +198,9 @@ SRCS_MIN+= CodeGen/LiveIntervalUnion.cpp
SRCS_MIN+= CodeGen/LivePhysRegs.cpp
SRCS_MIN+= CodeGen/LiveRangeCalc.cpp
SRCS_MIN+= CodeGen/LiveRangeEdit.cpp
+SRCS_MIN+= CodeGen/LiveRangeShrink.cpp
SRCS_MIN+= CodeGen/LiveRegMatrix.cpp
+SRCS_MIN+= CodeGen/LiveRegUnits.cpp
SRCS_MIN+= CodeGen/LiveStackAnalysis.cpp
SRCS_MIN+= CodeGen/LiveVariables.cpp
SRCS_MIN+= CodeGen/LocalStackSlotAllocation.cpp
@@ -197,6 +220,7 @@ SRCS_MIN+= CodeGen/MachineCombiner.cpp
SRCS_MIN+= CodeGen/MachineCopyPropagation.cpp
SRCS_MIN+= CodeGen/MachineDominanceFrontier.cpp
SRCS_MIN+= CodeGen/MachineDominators.cpp
+SRCS_MIN+= CodeGen/MachineFrameInfo.cpp
SRCS_MIN+= CodeGen/MachineFunction.cpp
SRCS_MIN+= CodeGen/MachineFunctionPass.cpp
SRCS_MIN+= CodeGen/MachineFunctionPrinterPass.cpp
@@ -206,6 +230,8 @@ SRCS_MIN+= CodeGen/MachineLICM.cpp
SRCS_MIN+= CodeGen/MachineLoopInfo.cpp
SRCS_MIN+= CodeGen/MachineModuleInfo.cpp
SRCS_MIN+= CodeGen/MachineModuleInfoImpls.cpp
+SRCS_MIN+= CodeGen/MachineOptimizationRemarkEmitter.cpp
+SRCS_MIN+= CodeGen/MachineOutliner.cpp
SRCS_MIN+= CodeGen/MachinePassRegistry.cpp
SRCS_MIN+= CodeGen/MachinePipeliner.cpp
SRCS_MIN+= CodeGen/MachinePostDominators.cpp
@@ -216,6 +242,7 @@ SRCS_MIN+= CodeGen/MachineScheduler.cpp
SRCS_MIN+= CodeGen/MachineSink.cpp
SRCS_MIN+= CodeGen/MachineTraceMetrics.cpp
SRCS_MIN+= CodeGen/MachineVerifier.cpp
+SRCS_MIN+= CodeGen/MacroFusion.cpp
SRCS_MIN+= CodeGen/OptimizePHIs.cpp
SRCS_MIN+= CodeGen/PHIElimination.cpp
SRCS_MIN+= CodeGen/PHIEliminationUtils.cpp
@@ -245,6 +272,7 @@ SRCS_MIN+= CodeGen/ResetMachineFunctionPass.cpp
SRCS_MIN+= CodeGen/SafeStack.cpp
SRCS_MIN+= CodeGen/SafeStackColoring.cpp
SRCS_MIN+= CodeGen/SafeStackLayout.cpp
+SRCS_MIN+= CodeGen/ScalarizeMaskedMemIntrin.cpp
SRCS_MIN+= CodeGen/ScheduleDAG.cpp
SRCS_MIN+= CodeGen/ScheduleDAGInstrs.cpp
SRCS_MIN+= CodeGen/ScheduleDAGPrinter.cpp
@@ -261,6 +289,7 @@ SRCS_MIN+= CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
SRCS_MIN+= CodeGen/SelectionDAG/LegalizeVectorOps.cpp
SRCS_MIN+= CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
SRCS_MIN+= CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
+SRCS_MIN+= CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
SRCS_MIN+= CodeGen/SelectionDAG/ScheduleDAGFast.cpp
SRCS_MIN+= CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
SRCS_MIN+= CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
@@ -301,28 +330,43 @@ SRCS_MIN+= CodeGen/VirtRegMap.cpp
SRCS_MIN+= CodeGen/WinEHPrepare.cpp
SRCS_MIN+= CodeGen/XRayInstrumentation.cpp
SRCS_MIN+= DebugInfo/CodeView/CVSymbolVisitor.cpp
-SRCS_MIN+= DebugInfo/CodeView/CVTypeDumper.cpp
SRCS_MIN+= DebugInfo/CodeView/CVTypeVisitor.cpp
SRCS_MIN+= DebugInfo/CodeView/CodeViewError.cpp
SRCS_MIN+= DebugInfo/CodeView/CodeViewRecordIO.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugChecksumsSubsection.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugCrossExSubsection.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugCrossImpSubsection.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugFrameDataSubsection.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugLinesSubsection.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugStringTableSubsection.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugSubsection.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugSubsectionRecord.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugSubsectionVisitor.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugSymbolRVASubsection.cpp
+SRCS_EXT+= DebugInfo/CodeView/DebugSymbolsSubsection.cpp
SRCS_EXT+= DebugInfo/CodeView/EnumTables.cpp
+SRCS_MIN+= DebugInfo/CodeView/Formatters.cpp
+SRCS_EXT+= DebugInfo/CodeView/LazyRandomTypeCollection.cpp
SRCS_MIN+= DebugInfo/CodeView/Line.cpp
-SRCS_MIN+= DebugInfo/CodeView/ModuleSubstream.cpp
-SRCS_MIN+= DebugInfo/CodeView/ModuleSubstreamVisitor.cpp
SRCS_MIN+= DebugInfo/CodeView/RecordSerialization.cpp
+SRCS_EXT+= DebugInfo/CodeView/StringsAndChecksums.cpp
SRCS_MIN+= DebugInfo/CodeView/SymbolDumper.cpp
SRCS_MIN+= DebugInfo/CodeView/SymbolRecordMapping.cpp
-SRCS_MIN+= DebugInfo/CodeView/TypeDatabase.cpp
-SRCS_MIN+= DebugInfo/CodeView/TypeDatabaseVisitor.cpp
+SRCS_EXT+= DebugInfo/CodeView/SymbolSerializer.cpp
SRCS_MIN+= DebugInfo/CodeView/TypeDumpVisitor.cpp
-SRCS_MIN+= DebugInfo/CodeView/TypeRecord.cpp
+SRCS_MIN+= DebugInfo/CodeView/TypeIndex.cpp
+SRCS_MIN+= DebugInfo/CodeView/TypeIndexDiscovery.cpp
+SRCS_MIN+= DebugInfo/CodeView/TypeName.cpp
SRCS_MIN+= DebugInfo/CodeView/TypeRecordMapping.cpp
SRCS_MIN+= DebugInfo/CodeView/TypeSerializer.cpp
SRCS_MIN+= DebugInfo/CodeView/TypeStreamMerger.cpp
+SRCS_MIN+= DebugInfo/CodeView/TypeTableCollection.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFAcceleratorTable.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFCompileUnit.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFContext.cpp
+SRCS_MIW+= DebugInfo/DWARF/DWARFDataExtractor.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFDebugAbbrev.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFDebugArangeSet.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFDebugAranges.cpp
@@ -339,15 +383,45 @@ SRCS_MIW+= DebugInfo/DWARF/DWARFGdbIndex.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFTypeUnit.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFUnit.cpp
SRCS_MIW+= DebugInfo/DWARF/DWARFUnitIndex.cpp
+SRCS_MIW+= DebugInfo/DWARF/DWARFVerifier.cpp
SRCS_MIW+= DebugInfo/DWARF/SyntaxHighlighting.cpp
SRCS_MIN+= DebugInfo/MSF/MSFBuilder.cpp
SRCS_MIN+= DebugInfo/MSF/MSFCommon.cpp
SRCS_MIN+= DebugInfo/MSF/MSFError.cpp
SRCS_MIN+= DebugInfo/MSF/MappedBlockStream.cpp
-SRCS_MIN+= DebugInfo/MSF/StreamReader.cpp
-SRCS_MIN+= DebugInfo/MSF/StreamWriter.cpp
SRCS_EXT+= DebugInfo/PDB/GenericError.cpp
SRCS_EXT+= DebugInfo/PDB/IPDBSourceFile.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/DbiModuleDescriptor.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/DbiModuleList.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/DbiStream.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/DbiStreamBuilder.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/EnumTables.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/GSI.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/GlobalsStream.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/Hash.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/HashTable.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/InfoStream.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/InfoStreamBuilder.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/ModuleDebugStream.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/NamedStreamMap.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/NativeBuiltinSymbol.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/NativeCompilandSymbol.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/NativeEnumModules.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/NativeExeSymbol.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/NativeRawSymbol.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/NativeSession.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/PDBFile.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/PDBFileBuilder.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/PDBStringTable.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/PDBStringTableBuilder.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/PublicsStream.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/PublicsStreamBuilder.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/RawError.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/SymbolStream.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/TpiHashing.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/TpiStream.cpp
+SRCS_EXT+= DebugInfo/PDB/Native/TpiStreamBuilder.cpp
SRCS_EXT+= DebugInfo/PDB/PDB.cpp
SRCS_EXT+= DebugInfo/PDB/PDBContext.cpp
SRCS_EXT+= DebugInfo/PDB/PDBExtras.cpp
@@ -385,28 +459,7 @@ SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeVTable.cpp
SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp
SRCS_EXT+= DebugInfo/PDB/PDBSymbolUnknown.cpp
SRCS_EXT+= DebugInfo/PDB/PDBSymbolUsingNamespace.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/DbiStream.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/DbiStreamBuilder.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/EnumTables.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/GSI.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/GlobalsStream.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/Hash.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/InfoStream.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/InfoStreamBuilder.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/ModInfo.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/ModStream.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/NameHashTable.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/NameMap.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/NameMapBuilder.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/PDBFile.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/PDBFileBuilder.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/PublicsStream.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/RawError.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/RawSession.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/SymbolStream.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/TpiHashing.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/TpiStream.cpp
-SRCS_EXT+= DebugInfo/PDB/Raw/TpiStreamBuilder.cpp
+SRCS_EXT+= DebugInfo/PDB/UDTLayout.cpp
SRCS_EXT+= DebugInfo/Symbolize/DIPrinter.cpp
SRCS_MIW+= DebugInfo/Symbolize/SymbolizableObjectFile.cpp
SRCS_MIW+= DebugInfo/Symbolize/Symbolize.cpp
@@ -425,6 +478,7 @@ SRCS_EXT+= ExecutionEngine/Orc/OrcABISupport.cpp
SRCS_EXT+= ExecutionEngine/Orc/OrcCBindings.cpp
SRCS_EXT+= ExecutionEngine/Orc/OrcError.cpp
SRCS_EXT+= ExecutionEngine/Orc/OrcMCJITReplacement.cpp
+SRCS_EXT+= ExecutionEngine/Orc/RPCUtils.cpp
SRCS_XDB+= ExecutionEngine/RuntimeDyld/JITSymbol.cpp
SRCS_XDB+= ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
SRCS_XDB+= ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
@@ -476,6 +530,7 @@ SRCS_MIN+= IR/Pass.cpp
SRCS_MIN+= IR/PassManager.cpp
SRCS_MIN+= IR/PassRegistry.cpp
SRCS_MIN+= IR/ProfileSummary.cpp
+SRCS_MIN+= IR/SafepointIRVerifier.cpp
SRCS_MIN+= IR/Statepoint.cpp
SRCS_MIN+= IR/Type.cpp
SRCS_MIN+= IR/TypeFinder.cpp
@@ -487,13 +542,12 @@ SRCS_MIN+= IR/ValueTypes.cpp
SRCS_MIN+= IR/Verifier.cpp
SRCS_MIN+= IRReader/IRReader.cpp
SRCS_EXL+= LTO/Caching.cpp
-SRCS_EXL+= LTO/LTO.cpp
+SRCS_MIN+= LTO/LTO.cpp
SRCS_MIN+= LTO/LTOBackend.cpp
SRCS_EXL+= LTO/LTOCodeGenerator.cpp
SRCS_EXL+= LTO/LTOModule.cpp
SRCS_EXL+= LTO/ThinLTOCodeGenerator.cpp
SRCS_MIN+= LTO/UpdateCompilerUsed.cpp
-SRCS_EXL+= LibDriver/LibDriver.cpp
SRCS_MIN+= LineEditor/LineEditor.cpp
SRCS_MIN+= Linker/IRMover.cpp
SRCS_MIN+= Linker/LinkModules.cpp
@@ -545,31 +599,35 @@ SRCS_MIN+= MC/MCSection.cpp
SRCS_MIN+= MC/MCSectionCOFF.cpp
SRCS_MIN+= MC/MCSectionELF.cpp
SRCS_MIN+= MC/MCSectionMachO.cpp
+SRCS_MIN+= MC/MCSectionWasm.cpp
SRCS_MIN+= MC/MCStreamer.cpp
SRCS_MIN+= MC/MCSubtargetInfo.cpp
SRCS_MIN+= MC/MCSymbol.cpp
SRCS_MIN+= MC/MCSymbolELF.cpp
SRCS_MIN+= MC/MCTargetOptions.cpp
SRCS_MIN+= MC/MCValue.cpp
+SRCS_MIN+= MC/MCWasmStreamer.cpp
SRCS_MIN+= MC/MCWin64EH.cpp
+SRCS_MIN+= MC/MCWinCOFFStreamer.cpp
SRCS_MIN+= MC/MCWinEH.cpp
SRCS_MIN+= MC/MachObjectWriter.cpp
SRCS_MIN+= MC/StringTableBuilder.cpp
SRCS_MIN+= MC/SubtargetFeature.cpp
SRCS_MIN+= MC/WinCOFFObjectWriter.cpp
-SRCS_MIN+= MC/WinCOFFStreamer.cpp
SRCS_MIN+= Object/Archive.cpp
SRCS_MIN+= Object/ArchiveWriter.cpp
SRCS_MIN+= Object/Binary.cpp
+SRCS_EXT+= Object/COFFImportFile.cpp
+SRCS_EXT+= Object/COFFModuleDefinition.cpp
SRCS_MIN+= Object/COFFObjectFile.cpp
SRCS_MIN+= Object/Decompressor.cpp
SRCS_MIN+= Object/ELF.cpp
SRCS_MIN+= Object/ELFObjectFile.cpp
SRCS_MIN+= Object/Error.cpp
SRCS_MIN+= Object/IRObjectFile.cpp
+SRCS_MIN+= Object/IRSymtab.cpp
SRCS_MIN+= Object/MachOObjectFile.cpp
SRCS_MIN+= Object/MachOUniversal.cpp
-SRCS_MIN+= Object/ModuleSummaryIndexObjectFile.cpp
SRCS_MIN+= Object/ModuleSymbolTable.cpp
SRCS_EXT+= Object/Object.cpp
SRCS_MIN+= Object/ObjectFile.cpp
@@ -577,10 +635,15 @@ SRCS_MIN+= Object/RecordStreamer.cpp
SRCS_MIW+= Object/SymbolSize.cpp
SRCS_MIN+= Object/SymbolicFile.cpp
SRCS_MIN+= Object/WasmObjectFile.cpp
+SRCS_MIW+= Object/WindowsResource.cpp
SRCS_MIN+= ObjectYAML/COFFYAML.cpp
+SRCS_EXT+= ObjectYAML/CodeViewYAMLDebugSections.cpp
+SRCS_EXT+= ObjectYAML/CodeViewYAMLSymbols.cpp
+SRCS_EXT+= ObjectYAML/CodeViewYAMLTypes.cpp
SRCS_MIN+= ObjectYAML/DWARFYAML.cpp
SRCS_MIN+= ObjectYAML/ELFYAML.cpp
SRCS_MIN+= ObjectYAML/MachOYAML.cpp
+SRCS_EXT+= ObjectYAML/YAML.cpp
SRCS_MIN+= Option/Arg.cpp
SRCS_MIN+= Option/ArgList.cpp
SRCS_MIN+= Option/OptTable.cpp
@@ -599,9 +662,14 @@ SRCS_EXT+= ProfileData/SampleProfWriter.cpp
SRCS_MIN+= Support/APFloat.cpp
SRCS_MIN+= Support/APInt.cpp
SRCS_MIN+= Support/APSInt.cpp
+SRCS_MIN+= Support/ARMAttributeParser.cpp
SRCS_MIN+= Support/ARMBuildAttrs.cpp
SRCS_MIN+= Support/Allocator.cpp
SRCS_MIN+= Support/Atomic.cpp
+SRCS_MIN+= Support/BinaryStreamError.cpp
+SRCS_MIN+= Support/BinaryStreamReader.cpp
+SRCS_MIN+= Support/BinaryStreamRef.cpp
+SRCS_MIN+= Support/BinaryStreamWriter.cpp
SRCS_MIN+= Support/BlockFrequency.cpp
SRCS_MIN+= Support/BranchProbability.cpp
SRCS_EXT+= Support/COM.cpp
@@ -615,8 +683,8 @@ SRCS_MIN+= Support/CrashRecoveryContext.cpp
SRCS_MIN+= Support/DAGDeltaAlgorithm.cpp
SRCS_MIN+= Support/DataExtractor.cpp
SRCS_MIN+= Support/Debug.cpp
+SRCS_MIN+= Support/DebugCounter.cpp
SRCS_MIN+= Support/DeltaAlgorithm.cpp
-SRCS_MIN+= Support/Dwarf.cpp
SRCS_MIN+= Support/DynamicLibrary.cpp
SRCS_MIN+= Support/Errno.cpp
SRCS_MIN+= Support/Error.cpp
@@ -637,6 +705,7 @@ SRCS_MIN+= Support/LEB128.cpp
SRCS_MIN+= Support/LineIterator.cpp
SRCS_MIN+= Support/Locale.cpp
SRCS_MIN+= Support/LockFileManager.cpp
+SRCS_MIN+= Support/LowLevelType.cpp
SRCS_MIN+= Support/MD5.cpp
SRCS_MIN+= Support/ManagedStatic.cpp
SRCS_MIN+= Support/MathExtras.cpp
@@ -645,6 +714,7 @@ SRCS_MIN+= Support/MemoryBuffer.cpp
SRCS_MIN+= Support/Mutex.cpp
SRCS_MIN+= Support/NativeFormatting.cpp
SRCS_MIN+= Support/Options.cpp
+SRCS_LLD+= Support/Parallel.cpp
SRCS_MIN+= Support/Path.cpp
SRCS_MIN+= Support/PluginLoader.cpp
SRCS_MIN+= Support/PrettyStackTrace.cpp
@@ -656,7 +726,6 @@ SRCS_MIN+= Support/Regex.cpp
SRCS_MIN+= Support/SHA1.cpp
SRCS_MIN+= Support/ScaledNumber.cpp
SRCS_MIN+= Support/ScopedPrinter.cpp
-SRCS_MIN+= Support/SearchForAddressOfSpecialSymbol.cpp
SRCS_MIN+= Support/Signals.cpp
SRCS_MIN+= Support/SmallPtrSet.cpp
SRCS_MIN+= Support/SmallVector.cpp
@@ -702,25 +771,31 @@ SRCS_MIN+= TableGen/TGParser.cpp
SRCS_MIN+= TableGen/TableGenBackend.cpp
SRCS_MIN+= Target/AArch64/AArch64A53Fix835769.cpp
SRCS_MIN+= Target/AArch64/AArch64A57FPLoadBalancing.cpp
-SRCS_MIN+= Target/AArch64/AArch64AddressTypePromotion.cpp
SRCS_MIN+= Target/AArch64/AArch64AdvSIMDScalarPass.cpp
SRCS_MIN+= Target/AArch64/AArch64AsmPrinter.cpp
+SRCS_MIN+= Target/AArch64/AArch64CallLowering.cpp
SRCS_MIN+= Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
SRCS_MIN+= Target/AArch64/AArch64CollectLOH.cpp
+SRCS_MIN+= Target/AArch64/AArch64CondBrTuning.cpp
SRCS_MIN+= Target/AArch64/AArch64ConditionOptimizer.cpp
SRCS_MIN+= Target/AArch64/AArch64ConditionalCompares.cpp
SRCS_MIN+= Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
SRCS_MIN+= Target/AArch64/AArch64ExpandPseudoInsts.cpp
+SRCS_MIN+= Target/AArch64/AArch64FalkorHWPFFix.cpp
SRCS_MIN+= Target/AArch64/AArch64FastISel.cpp
SRCS_MIN+= Target/AArch64/AArch64FrameLowering.cpp
SRCS_MIN+= Target/AArch64/AArch64ISelDAGToDAG.cpp
SRCS_MIN+= Target/AArch64/AArch64ISelLowering.cpp
SRCS_MIN+= Target/AArch64/AArch64InstrInfo.cpp
+SRCS_MIN+= Target/AArch64/AArch64InstructionSelector.cpp
+SRCS_MIN+= Target/AArch64/AArch64LegalizerInfo.cpp
SRCS_MIN+= Target/AArch64/AArch64LoadStoreOptimizer.cpp
SRCS_MIN+= Target/AArch64/AArch64MCInstLower.cpp
+SRCS_MIN+= Target/AArch64/AArch64MacroFusion.cpp
SRCS_MIN+= Target/AArch64/AArch64PBQPRegAlloc.cpp
SRCS_MIN+= Target/AArch64/AArch64PromoteConstant.cpp
SRCS_MIN+= Target/AArch64/AArch64RedundantCopyElimination.cpp
+SRCS_MIN+= Target/AArch64/AArch64RegisterBankInfo.cpp
SRCS_MIN+= Target/AArch64/AArch64RegisterInfo.cpp
SRCS_MIN+= Target/AArch64/AArch64SelectionDAGInfo.cpp
SRCS_MIN+= Target/AArch64/AArch64StorePairSuppress.cpp
@@ -742,12 +817,15 @@ SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
+SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
+SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
SRCS_MIN+= Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
SRCS_MIN+= Target/AArch64/Utils/AArch64BaseInfo.cpp
SRCS_MIN+= Target/ARM/A15SDOptimizer.cpp
SRCS_MIN+= Target/ARM/ARMAsmPrinter.cpp
SRCS_MIN+= Target/ARM/ARMBaseInstrInfo.cpp
SRCS_MIN+= Target/ARM/ARMBaseRegisterInfo.cpp
+SRCS_MIN+= Target/ARM/ARMCallLowering.cpp
SRCS_MIN+= Target/ARM/ARMComputeBlockSize.cpp
SRCS_MIN+= Target/ARM/ARMConstantIslandPass.cpp
SRCS_MIN+= Target/ARM/ARMConstantPoolValue.cpp
@@ -758,10 +836,14 @@ SRCS_MIN+= Target/ARM/ARMHazardRecognizer.cpp
SRCS_MIN+= Target/ARM/ARMISelDAGToDAG.cpp
SRCS_MIN+= Target/ARM/ARMISelLowering.cpp
SRCS_MIN+= Target/ARM/ARMInstrInfo.cpp
+SRCS_MIN+= Target/ARM/ARMInstructionSelector.cpp
+SRCS_MIN+= Target/ARM/ARMLegalizerInfo.cpp
SRCS_MIN+= Target/ARM/ARMLoadStoreOptimizer.cpp
SRCS_MIN+= Target/ARM/ARMMCInstLower.cpp
SRCS_MIN+= Target/ARM/ARMMachineFunctionInfo.cpp
+SRCS_MIN+= Target/ARM/ARMMacroFusion.cpp
SRCS_MIN+= Target/ARM/ARMOptimizeBarriersPass.cpp
+SRCS_MIN+= Target/ARM/ARMRegisterBankInfo.cpp
SRCS_MIN+= Target/ARM/ARMRegisterInfo.cpp
SRCS_MIN+= Target/ARM/ARMSelectionDAGInfo.cpp
SRCS_MIN+= Target/ARM/ARMSubtarget.cpp
@@ -807,6 +889,7 @@ SRCS_MIN+= Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
SRCS_MIN+= Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
SRCS_MIN+= Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
SRCS_MIN+= Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
+SRCS_MIN+= Target/Mips/MicroMipsSizeReduction.cpp
SRCS_MIN+= Target/Mips/Mips16FrameLowering.cpp
SRCS_MIN+= Target/Mips/Mips16HardFloat.cpp
SRCS_MIN+= Target/Mips/Mips16HardFloatInfo.cpp
@@ -858,6 +941,7 @@ SRCS_MIN+= Target/PowerPC/PPCBranchSelector.cpp
SRCS_MIN+= Target/PowerPC/PPCCCState.cpp
SRCS_MIN+= Target/PowerPC/PPCCTRLoops.cpp
SRCS_MIN+= Target/PowerPC/PPCEarlyReturn.cpp
+SRCS_MIN+= Target/PowerPC/PPCExpandISEL.cpp
SRCS_MIN+= Target/PowerPC/PPCFastISel.cpp
SRCS_MIN+= Target/PowerPC/PPCFrameLowering.cpp
SRCS_MIN+= Target/PowerPC/PPCHazardRecognizers.cpp
@@ -928,7 +1012,9 @@ SRCS_MIN+= Target/X86/TargetInfo/X86TargetInfo.cpp
SRCS_MIN+= Target/X86/Utils/X86ShuffleDecode.cpp
SRCS_MIN+= Target/X86/X86AsmPrinter.cpp
SRCS_MIN+= Target/X86/X86CallFrameOptimization.cpp
+SRCS_MIN+= Target/X86/X86CallLowering.cpp
SRCS_MIN+= Target/X86/X86CallingConv.cpp
+SRCS_MIN+= Target/X86/X86CmovConversion.cpp
SRCS_MIN+= Target/X86/X86EvexToVex.cpp
SRCS_MIN+= Target/X86/X86ExpandPseudo.cpp
SRCS_MIN+= Target/X86/X86FastISel.cpp
@@ -941,11 +1027,15 @@ SRCS_MIN+= Target/X86/X86ISelDAGToDAG.cpp
SRCS_MIN+= Target/X86/X86ISelLowering.cpp
SRCS_MIN+= Target/X86/X86InstrFMA3Info.cpp
SRCS_MIN+= Target/X86/X86InstrInfo.cpp
+SRCS_MIN+= Target/X86/X86InstructionSelector.cpp
SRCS_MIN+= Target/X86/X86InterleavedAccess.cpp
+SRCS_MIN+= Target/X86/X86LegalizerInfo.cpp
SRCS_MIN+= Target/X86/X86MCInstLower.cpp
SRCS_MIN+= Target/X86/X86MachineFunctionInfo.cpp
+SRCS_MIN+= Target/X86/X86MacroFusion.cpp
SRCS_MIN+= Target/X86/X86OptimizeLEAs.cpp
SRCS_MIN+= Target/X86/X86PadShortFunction.cpp
+SRCS_MIN+= Target/X86/X86RegisterBankInfo.cpp
SRCS_MIN+= Target/X86/X86RegisterInfo.cpp
SRCS_MIN+= Target/X86/X86SelectionDAGInfo.cpp
SRCS_MIN+= Target/X86/X86ShuffleDecodeConstantPool.cpp
@@ -956,6 +1046,8 @@ SRCS_MIN+= Target/X86/X86TargetTransformInfo.cpp
SRCS_MIN+= Target/X86/X86VZeroUpper.cpp
SRCS_MIN+= Target/X86/X86WinAllocaExpander.cpp
SRCS_MIN+= Target/X86/X86WinEHState.cpp
+SRCS_EXT+= ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
+SRCS_EXL+= ToolDrivers/llvm-lib/LibDriver.cpp
SRCS_MIN+= Transforms/Coroutines/CoroCleanup.cpp
SRCS_MIN+= Transforms/Coroutines/CoroEarly.cpp
SRCS_MIN+= Transforms/Coroutines/CoroElide.cpp
@@ -1016,6 +1108,7 @@ SRCS_MIN+= Transforms/Instrumentation/InstrProfiling.cpp
SRCS_MIN+= Transforms/Instrumentation/Instrumentation.cpp
SRCS_MIN+= Transforms/Instrumentation/MemorySanitizer.cpp
SRCS_MIN+= Transforms/Instrumentation/PGOInstrumentation.cpp
+SRCS_MIN+= Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
SRCS_MIN+= Transforms/Instrumentation/SanitizerCoverage.cpp
SRCS_MIN+= Transforms/Instrumentation/ThreadSanitizer.cpp
SRCS_MIN+= Transforms/ObjCARC/DependencyAnalysis.cpp
@@ -1040,13 +1133,14 @@ SRCS_MIN+= Transforms/Scalar/FlattenCFGPass.cpp
SRCS_MIN+= Transforms/Scalar/Float2Int.cpp
SRCS_MIN+= Transforms/Scalar/GVN.cpp
SRCS_MIN+= Transforms/Scalar/GVNHoist.cpp
+SRCS_MIN+= Transforms/Scalar/GVNSink.cpp
SRCS_MIN+= Transforms/Scalar/GuardWidening.cpp
SRCS_MIN+= Transforms/Scalar/IVUsersPrinter.cpp
SRCS_MIN+= Transforms/Scalar/IndVarSimplify.cpp
SRCS_MIN+= Transforms/Scalar/InductiveRangeCheckElimination.cpp
+SRCS_EXT+= Transforms/Scalar/InferAddressSpaces.cpp
SRCS_MIN+= Transforms/Scalar/JumpThreading.cpp
SRCS_MIN+= Transforms/Scalar/LICM.cpp
-SRCS_MIN+= Transforms/Scalar/LoadCombine.cpp
SRCS_MIN+= Transforms/Scalar/LoopAccessAnalysisPrinter.cpp
SRCS_MIN+= Transforms/Scalar/LoopDataPrefetch.cpp
SRCS_MIN+= Transforms/Scalar/LoopDeletion.cpp
@@ -1056,6 +1150,7 @@ SRCS_MIN+= Transforms/Scalar/LoopInstSimplify.cpp
SRCS_MIN+= Transforms/Scalar/LoopInterchange.cpp
SRCS_MIN+= Transforms/Scalar/LoopLoadElimination.cpp
SRCS_MIN+= Transforms/Scalar/LoopPassManager.cpp
+SRCS_MIN+= Transforms/Scalar/LoopPredication.cpp
SRCS_MIN+= Transforms/Scalar/LoopRerollPass.cpp
SRCS_MIN+= Transforms/Scalar/LoopRotation.cpp
SRCS_MIN+= Transforms/Scalar/LoopSimplifyCFG.cpp
@@ -1081,6 +1176,7 @@ SRCS_MIN+= Transforms/Scalar/SROA.cpp
SRCS_EXT+= Transforms/Scalar/Scalar.cpp
SRCS_MIN+= Transforms/Scalar/Scalarizer.cpp
SRCS_MIN+= Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
+SRCS_MIN+= Transforms/Scalar/SimpleLoopUnswitch.cpp
SRCS_MIN+= Transforms/Scalar/SimplifyCFGPass.cpp
SRCS_MIN+= Transforms/Scalar/Sink.cpp
SRCS_MIN+= Transforms/Scalar/SpeculativeExecution.cpp
@@ -1121,10 +1217,11 @@ SRCS_MIN+= Transforms/Utils/LoopVersioning.cpp
SRCS_MIN+= Transforms/Utils/LowerInvoke.cpp
SRCS_MIN+= Transforms/Utils/LowerSwitch.cpp
SRCS_MIN+= Transforms/Utils/Mem2Reg.cpp
-SRCS_MIN+= Transforms/Utils/MemorySSA.cpp
SRCS_MIN+= Transforms/Utils/MetaRenamer.cpp
SRCS_MIN+= Transforms/Utils/ModuleUtils.cpp
SRCS_MIN+= Transforms/Utils/NameAnonGlobals.cpp
+SRCS_MIN+= Transforms/Utils/OrderedInstructions.cpp
+SRCS_MIN+= Transforms/Utils/PredicateInfo.cpp
SRCS_MIN+= Transforms/Utils/PromoteMemoryToRegister.cpp
SRCS_MIN+= Transforms/Utils/SSAUpdater.cpp
SRCS_MIN+= Transforms/Utils/SanitizerStats.cpp
@@ -1138,12 +1235,13 @@ SRCS_MIN+= Transforms/Utils/StripNonLineTableDebugInfo.cpp
SRCS_MIN+= Transforms/Utils/SymbolRewriter.cpp
SRCS_MIN+= Transforms/Utils/UnifyFunctionExitNodes.cpp
SRCS_EXT+= Transforms/Utils/Utils.cpp
+SRCS_MIN+= Transforms/Utils/VNCoercion.cpp
SRCS_MIN+= Transforms/Utils/ValueMapper.cpp
-SRCS_MIN+= Transforms/Vectorize/BBVectorize.cpp
SRCS_MIN+= Transforms/Vectorize/LoadStoreVectorizer.cpp
SRCS_MIN+= Transforms/Vectorize/LoopVectorize.cpp
SRCS_MIN+= Transforms/Vectorize/SLPVectorizer.cpp
SRCS_EXT+= Transforms/Vectorize/Vectorize.cpp
+SRCS_EXT+= XRay/InstrumentationMap.cpp
SRCS_ALL+= ${SRCS_MIN}
.if !defined(TOOLS_PREFIX) || ${MK_LLD_IS_LD} != "no"
@@ -1174,27 +1272,45 @@ SRCS+= ${SRCS_ALL:O}
llvm/IR/Attributes.gen: ${LLVM_SRCS}/include/llvm/IR/Attributes.td
${LLVM_TBLGEN} -gen-attrs \
- -I ${LLVM_SRCS}/include -d ${.TARGET:C/$/.d/} -o ${.TARGET} \
+ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
${LLVM_SRCS}/include/llvm/IR/Attributes.td
TGHDRS+= llvm/IR/Attributes.gen
llvm/IR/Intrinsics.gen: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
${LLVM_TBLGEN} -gen-intrinsic \
- -I ${LLVM_SRCS}/include -d ${.TARGET:C/$/.d/} -o ${.TARGET} \
+ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
TGHDRS+= llvm/IR/Intrinsics.gen
AttributesCompatFunc.inc: ${LLVM_SRCS}/lib/IR/AttributesCompatFunc.td
${LLVM_TBLGEN} -gen-attrs \
- -I ${LLVM_SRCS}/include -d ${.TARGET:C/$/.d/} -o ${.TARGET} \
+ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
${LLVM_SRCS}/lib/IR/AttributesCompatFunc.td
TGHDRS+= AttributesCompatFunc.inc
-Options.inc: ${LLVM_SRCS}/lib/LibDriver/Options.td
+llvm-lib/Options.inc: ${LLVM_SRCS}/lib/ToolDrivers/llvm-lib/Options.td
${LLVM_TBLGEN} -gen-opt-parser-defs \
- -I ${LLVM_SRCS}/include -d ${.TARGET:C/$/.d/} -o ${.TARGET} \
- ${LLVM_SRCS}/lib/LibDriver/Options.td
-TGHDRS+= Options.inc
+ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
+ ${LLVM_SRCS}/lib/ToolDrivers/llvm-lib/Options.td
+TGHDRS+= llvm-lib/Options.inc
+CFLAGS.LibDriver.cpp+= -I${.OBJDIR}/llvm-lib
+
+llvm-dlltool/Options.inc: ${LLVM_SRCS}/lib/ToolDrivers/llvm-dlltool/Options.td
+ ${LLVM_TBLGEN} -gen-opt-parser-defs \
+ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
+ ${LLVM_SRCS}/lib/ToolDrivers/llvm-dlltool/Options.td
+TGHDRS+= llvm-dlltool/Options.inc
+CFLAGS.DlltoolDriver.cpp+= -I${.OBJDIR}/llvm-dlltool
+
+beforebuild:
+# 20170724 remove stale Options.inc file, of which there are two different
+# versions after upstream r308421, one for llvm-lib, one for llvm-dlltool
+.for f in Options.inc
+.if exists(${f}) || exists(${f}.d)
+ @echo Removing stale generated ${f} files
+ @rm -f ${f} ${f}.d
+.endif
+.endfor
# Note: some rules are superfluous, not every combination is valid.
.for arch in \
@@ -1207,17 +1323,20 @@ TGHDRS+= Options.inc
CodeEmitter/-gen-emitter \
DAGISel/-gen-dag-isel \
DisassemblerTables/-gen-disassembler \
+ EVEX2VEXTables/-gen-x86-EVEX2VEX-tables \
FastISel/-gen-fast-isel \
+ GlobalISel/-gen-global-isel \
InstrInfo/-gen-instr-info \
MCCodeEmitter/-gen-emitter \
MCPseudoLowering/-gen-pseudo-lowering \
+ RegisterBank/-gen-register-bank \
RegisterInfo/-gen-register-info \
SubtargetInfo/-gen-subtarget \
SystemOperands/-gen-searchable-tables
${arch:T}Gen${hdr:H}.inc: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
${LLVM_TBLGEN} ${hdr:T:C/,/ /g} \
-I ${LLVM_SRCS}/include -I ${LLVM_SRCS}/lib/Target/${arch:H} \
- -d ${.TARGET:C/$/.d/} -o ${.TARGET} \
+ -d ${.TARGET}.d -o ${.TARGET} \
${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
. endfor
.endfor
@@ -1228,9 +1347,11 @@ TGHDRS+= AArch64GenCallingConv.inc
TGHDRS+= AArch64GenDAGISel.inc
TGHDRS+= AArch64GenDisassemblerTables.inc
TGHDRS+= AArch64GenFastISel.inc
+TGHDRS+= AArch64GenGlobalISel.inc
TGHDRS+= AArch64GenInstrInfo.inc
TGHDRS+= AArch64GenMCCodeEmitter.inc
TGHDRS+= AArch64GenMCPseudoLowering.inc
+TGHDRS+= AArch64GenRegisterBank.inc
TGHDRS+= AArch64GenRegisterInfo.inc
TGHDRS+= AArch64GenSubtargetInfo.inc
TGHDRS+= AArch64GenSystemOperands.inc
@@ -1240,9 +1361,11 @@ TGHDRS+= ARMGenCallingConv.inc
TGHDRS+= ARMGenDAGISel.inc
TGHDRS+= ARMGenDisassemblerTables.inc
TGHDRS+= ARMGenFastISel.inc
+TGHDRS+= ARMGenGlobalISel.inc
TGHDRS+= ARMGenInstrInfo.inc
TGHDRS+= ARMGenMCCodeEmitter.inc
TGHDRS+= ARMGenMCPseudoLowering.inc
+TGHDRS+= ARMGenRegisterBank.inc
TGHDRS+= ARMGenRegisterInfo.inc
TGHDRS+= ARMGenSubtargetInfo.inc
TGHDRS+= MipsGenAsmMatcher.inc
@@ -1281,8 +1404,11 @@ TGHDRS+= X86GenAsmWriter1.inc
TGHDRS+= X86GenCallingConv.inc
TGHDRS+= X86GenDAGISel.inc
TGHDRS+= X86GenDisassemblerTables.inc
+TGHDRS+= X86GenEVEX2VEXTables.inc
TGHDRS+= X86GenFastISel.inc
+TGHDRS+= X86GenGlobalISel.inc
TGHDRS+= X86GenInstrInfo.inc
+TGHDRS+= X86GenRegisterBank.inc
TGHDRS+= X86GenRegisterInfo.inc
TGHDRS+= X86GenSubtargetInfo.inc
diff --git a/lib/clang/libllvmminimal/Makefile b/lib/clang/libllvmminimal/Makefile
index fc16034..804d856 100644
--- a/lib/clang/libllvmminimal/Makefile
+++ b/lib/clang/libllvmminimal/Makefile
@@ -6,6 +6,7 @@ LIB= llvmminimal
INTERNALLIB=
SRCDIR= lib
+SRCS+= Support/APFloat.cpp
SRCS+= Support/APInt.cpp
SRCS+= Support/Atomic.cpp
SRCS+= Support/CommandLine.cpp
@@ -21,6 +22,8 @@ SRCS+= Support/Hashing.cpp
SRCS+= Support/Host.cpp
SRCS+= Support/IntEqClasses.cpp
SRCS+= Support/Locale.cpp
+SRCS+= Support/LowLevelType.cpp
+SRCS+= Support/MD5.cpp
SRCS+= Support/ManagedStatic.cpp
SRCS+= Support/MemoryBuffer.cpp
SRCS+= Support/Mutex.cpp
diff --git a/lib/clang/llvm.build.mk b/lib/clang/llvm.build.mk
index 04a2451..f5838cf 100644
--- a/lib/clang/llvm.build.mk
+++ b/lib/clang/llvm.build.mk
@@ -12,8 +12,7 @@
CFLAGS+= -I${SRCTOP}/lib/clang/include
CFLAGS+= -I${LLVM_SRCS}/include
-CFLAGS+= -DLLVM_ON_UNIX
-CFLAGS+= -DLLVM_ON_FREEBSD
+CFLAGS+= -DLLVM_BUILD_GLOBAL_ISEL
CFLAGS+= -D__STDC_LIMIT_MACROS
CFLAGS+= -D__STDC_CONSTANT_MACROS
CFLAGS+= -DNDEBUG
diff --git a/lib/libc++/Makefile b/lib/libc++/Makefile
index 35cc88c..da1247d 100644
--- a/lib/libc++/Makefile
+++ b/lib/libc++/Makefile
@@ -24,6 +24,7 @@ SRCS+= chrono.cpp
SRCS+= condition_variable.cpp
SRCS+= debug.cpp
SRCS+= exception.cpp
+SRCS+= functional.cpp
SRCS+= future.cpp
SRCS+= hash.cpp
SRCS+= ios.cpp
@@ -45,6 +46,7 @@ SRCS+= typeinfo.cpp
SRCS+= utility.cpp
SRCS+= valarray.cpp
SRCS+= variant.cpp
+SRCS+= vector.cpp
CXXRT_SRCS+= auxhelper.cc
CXXRT_SRCS+= dynamic_cast.cc
@@ -64,7 +66,12 @@ cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
.endfor
WARNS= 0
-CFLAGS+= -isystem ${HDRDIR} -isystem ${_LIBCXXRTDIR} -nostdinc++ -nostdlib -D_LIBCPP_BUILDING_LIBRARY -DLIBCXXRT
+CFLAGS+= -isystem ${HDRDIR}
+CFLAGS+= -isystem ${_LIBCXXRTDIR}
+CFLAGS+= -nostdinc++
+CFLAGS+= -nostdlib
+CFLAGS+= -D_LIBCPP_BUILDING_LIBRARY
+CFLAGS+= -DLIBCXXRT
.if empty(CXXFLAGS:M-std=*)
CXXFLAGS+= -std=c++11
.endif
@@ -85,7 +92,6 @@ STD_HEADERS+= __libcpp_version
STD_HEADERS+= __locale
STD_HEADERS+= __mutex_base
STD_HEADERS+= __nullptr
-STD_HEADERS+= __refstring
STD_HEADERS+= __split_buffer
STD_HEADERS+= __sso_allocator
STD_HEADERS+= __std_stream
@@ -93,7 +99,7 @@ STD_HEADERS+= __string
STD_HEADERS+= __threading_support
STD_HEADERS+= __tree
STD_HEADERS+= __tuple
-STD_HEADERS+= __undef_min_max
+STD_HEADERS+= __undef_macros
STD_HEADERS+= algorithm
STD_HEADERS+= any
STD_HEADERS+= array
@@ -214,6 +220,7 @@ EXP_HEADERS+= __memory
EXP_HEADERS+= algorithm
EXP_HEADERS+= any
EXP_HEADERS+= chrono
+EXP_HEADERS+= coroutine
EXP_HEADERS+= deque
EXP_HEADERS+= dynarray
EXP_HEADERS+= filesystem
diff --git a/lib/libclang_rt/Makefile.inc b/lib/libclang_rt/Makefile.inc
index 08ab48f..9d915dd 100644
--- a/lib/libclang_rt/Makefile.inc
+++ b/lib/libclang_rt/Makefile.inc
@@ -7,7 +7,7 @@ CRTSRC= ${SRCTOP}/contrib/compiler-rt
.PATH: ${CRTSRC}/lib
-CLANGDIR= /usr/lib/clang/4.0.0
+CLANGDIR= /usr/lib/clang/5.0.1
LIBDIR= ${CLANGDIR}/lib/freebsd
NO_PIC=
diff --git a/lib/libclang_rt/asan/Makefile b/lib/libclang_rt/asan/Makefile
index e8a98f5..8c11338 100644
--- a/lib/libclang_rt/asan/Makefile
+++ b/lib/libclang_rt/asan/Makefile
@@ -37,18 +37,16 @@ SRCS+= sanitizer_common/sancov_flags.cc
SRCS+= sanitizer_common/sanitizer_allocator.cc
SRCS+= sanitizer_common/sanitizer_common.cc
SRCS+= sanitizer_common/sanitizer_common_libcdep.cc
-SRCS+= sanitizer_common/sanitizer_coverage_libcdep.cc
SRCS+= sanitizer_common/sanitizer_coverage_libcdep_new.cc
-SRCS+= sanitizer_common/sanitizer_coverage_mapping_libcdep.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector1.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector2.cc
+SRCS+= sanitizer_common/sanitizer_errno.cc
SRCS+= sanitizer_common/sanitizer_flag_parser.cc
SRCS+= sanitizer_common/sanitizer_flags.cc
SRCS+= sanitizer_common/sanitizer_libc.cc
SRCS+= sanitizer_common/sanitizer_libignore.cc
SRCS+= sanitizer_common/sanitizer_linux.cc
SRCS+= sanitizer_common/sanitizer_linux_libcdep.cc
-SRCS+= sanitizer_common/sanitizer_linux_x86_64.S
SRCS+= sanitizer_common/sanitizer_mac.cc
SRCS+= sanitizer_common/sanitizer_persistent_allocator.cc
SRCS+= sanitizer_common/sanitizer_platform_limits_linux.cc
diff --git a/lib/libclang_rt/asan_dynamic/Makefile b/lib/libclang_rt/asan_dynamic/Makefile
index 118fa1b..9ef7dc4 100644
--- a/lib/libclang_rt/asan_dynamic/Makefile
+++ b/lib/libclang_rt/asan_dynamic/Makefile
@@ -38,9 +38,7 @@ SRCS+= sanitizer_common/sancov_flags.cc
SRCS+= sanitizer_common/sanitizer_allocator.cc
SRCS+= sanitizer_common/sanitizer_common.cc
SRCS+= sanitizer_common/sanitizer_common_libcdep.cc
-SRCS+= sanitizer_common/sanitizer_coverage_libcdep.cc
SRCS+= sanitizer_common/sanitizer_coverage_libcdep_new.cc
-SRCS+= sanitizer_common/sanitizer_coverage_mapping_libcdep.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector1.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector2.cc
SRCS+= sanitizer_common/sanitizer_flag_parser.cc
@@ -49,7 +47,6 @@ SRCS+= sanitizer_common/sanitizer_libc.cc
SRCS+= sanitizer_common/sanitizer_libignore.cc
SRCS+= sanitizer_common/sanitizer_linux.cc
SRCS+= sanitizer_common/sanitizer_linux_libcdep.cc
-SRCS+= sanitizer_common/sanitizer_linux_x86_64.S
SRCS+= sanitizer_common/sanitizer_mac.cc
SRCS+= sanitizer_common/sanitizer_persistent_allocator.cc
SRCS+= sanitizer_common/sanitizer_platform_limits_linux.cc
diff --git a/lib/libclang_rt/include/Makefile b/lib/libclang_rt/include/Makefile
index 412063a..7e855ea 100644
--- a/lib/libclang_rt/include/Makefile
+++ b/lib/libclang_rt/include/Makefile
@@ -15,6 +15,7 @@ INCS+= esan_interface.h
INCS+= linux_syscall_hooks.h
INCS+= lsan_interface.h
INCS+= msan_interface.h
+INCS+= tsan_interface.h
INCS+= tsan_interface_atomic.h
.include <bsd.prog.mk>
diff --git a/lib/libclang_rt/profile/Makefile b/lib/libclang_rt/profile/Makefile
index 74e79ce..f5860a6 100644
--- a/lib/libclang_rt/profile/Makefile
+++ b/lib/libclang_rt/profile/Makefile
@@ -13,6 +13,7 @@ SRCS+= profile/InstrProfilingBuffer.c
SRCS+= profile/InstrProfilingFile.c
SRCS+= profile/InstrProfilingMerge.c
SRCS+= profile/InstrProfilingMergeFile.c
+SRCS+= profile/InstrProfilingNameVar.c
SRCS+= profile/InstrProfilingPlatformDarwin.c
SRCS+= profile/InstrProfilingPlatformLinux.c
SRCS+= profile/InstrProfilingPlatformOther.c
diff --git a/lib/libclang_rt/safestack/Makefile b/lib/libclang_rt/safestack/Makefile
index 6612120..fd305e6 100644
--- a/lib/libclang_rt/safestack/Makefile
+++ b/lib/libclang_rt/safestack/Makefile
@@ -14,12 +14,12 @@ SRCS+= sanitizer_common/sanitizer_common.cc
SRCS+= sanitizer_common/sanitizer_common_nolibc.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector1.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector2.cc
+SRCS+= sanitizer_common/sanitizer_errno.cc
SRCS+= sanitizer_common/sanitizer_flag_parser.cc
SRCS+= sanitizer_common/sanitizer_flags.cc
SRCS+= sanitizer_common/sanitizer_libc.cc
SRCS+= sanitizer_common/sanitizer_libignore.cc
SRCS+= sanitizer_common/sanitizer_linux.cc
-SRCS+= sanitizer_common/sanitizer_linux_x86_64.S
SRCS+= sanitizer_common/sanitizer_mac.cc
SRCS+= sanitizer_common/sanitizer_persistent_allocator.cc
SRCS+= sanitizer_common/sanitizer_platform_limits_linux.cc
diff --git a/lib/libclang_rt/stats/Makefile b/lib/libclang_rt/stats/Makefile
index 8487281..dd214cf 100644
--- a/lib/libclang_rt/stats/Makefile
+++ b/lib/libclang_rt/stats/Makefile
@@ -8,18 +8,16 @@ SRCS+= sanitizer_common/sancov_flags.cc
SRCS+= sanitizer_common/sanitizer_allocator.cc
SRCS+= sanitizer_common/sanitizer_common.cc
SRCS+= sanitizer_common/sanitizer_common_libcdep.cc
-SRCS+= sanitizer_common/sanitizer_coverage_libcdep.cc
SRCS+= sanitizer_common/sanitizer_coverage_libcdep_new.cc
-SRCS+= sanitizer_common/sanitizer_coverage_mapping_libcdep.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector1.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector2.cc
+SRCS+= sanitizer_common/sanitizer_errno.cc
SRCS+= sanitizer_common/sanitizer_flag_parser.cc
SRCS+= sanitizer_common/sanitizer_flags.cc
SRCS+= sanitizer_common/sanitizer_libc.cc
SRCS+= sanitizer_common/sanitizer_libignore.cc
SRCS+= sanitizer_common/sanitizer_linux.cc
SRCS+= sanitizer_common/sanitizer_linux_libcdep.cc
-SRCS+= sanitizer_common/sanitizer_linux_x86_64.S
SRCS+= sanitizer_common/sanitizer_mac.cc
SRCS+= sanitizer_common/sanitizer_persistent_allocator.cc
SRCS+= sanitizer_common/sanitizer_platform_limits_linux.cc
diff --git a/lib/libclang_rt/ubsan_standalone/Makefile b/lib/libclang_rt/ubsan_standalone/Makefile
index ed008e5..75f5268 100644
--- a/lib/libclang_rt/ubsan_standalone/Makefile
+++ b/lib/libclang_rt/ubsan_standalone/Makefile
@@ -8,18 +8,16 @@ SRCS+= sanitizer_common/sancov_flags.cc
SRCS+= sanitizer_common/sanitizer_allocator.cc
SRCS+= sanitizer_common/sanitizer_common.cc
SRCS+= sanitizer_common/sanitizer_common_libcdep.cc
-SRCS+= sanitizer_common/sanitizer_coverage_libcdep.cc
SRCS+= sanitizer_common/sanitizer_coverage_libcdep_new.cc
-SRCS+= sanitizer_common/sanitizer_coverage_mapping_libcdep.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector1.cc
SRCS+= sanitizer_common/sanitizer_deadlock_detector2.cc
+SRCS+= sanitizer_common/sanitizer_errno.cc
SRCS+= sanitizer_common/sanitizer_flag_parser.cc
SRCS+= sanitizer_common/sanitizer_flags.cc
SRCS+= sanitizer_common/sanitizer_libc.cc
SRCS+= sanitizer_common/sanitizer_libignore.cc
SRCS+= sanitizer_common/sanitizer_linux.cc
SRCS+= sanitizer_common/sanitizer_linux_libcdep.cc
-SRCS+= sanitizer_common/sanitizer_linux_x86_64.S
SRCS+= sanitizer_common/sanitizer_mac.cc
SRCS+= sanitizer_common/sanitizer_persistent_allocator.cc
SRCS+= sanitizer_common/sanitizer_platform_limits_linux.cc
diff --git a/lib/libcompiler_rt/Makefile.inc b/lib/libcompiler_rt/Makefile.inc
index 3d05eed..69e14d6 100644
--- a/lib/libcompiler_rt/Makefile.inc
+++ b/lib/libcompiler_rt/Makefile.inc
@@ -39,6 +39,7 @@ SRCF+= enable_execute_stack
SRCF+= eprintf
SRCF+= extendhfsf2
SRCF+= ffsdi2
+SRCF+= ffssi2
SRCF+= ffsti2
SRCF+= fixdfdi
SRCF+= fixdfti
@@ -219,3 +220,10 @@ SRCS+= switch8.S
SRCS+= switchu8.S
SRCS+= sync_synchronize.S
.endif
+
+# GCC-6.3 on mips32 requires bswap32 built-in.
+.if ${MACHINE_CPUARCH} == "mips"
+SRCS+= bswapdi2.c
+SRCS+= bswapsi2.c
+.endif
+
diff --git a/lib/libgpio/gpio.c b/lib/libgpio/gpio.c
index 8170822..48642f5 100644
--- a/lib/libgpio/gpio.c
+++ b/lib/libgpio/gpio.c
@@ -276,3 +276,44 @@ gpio_pin_pulsate(gpio_handle_t handle, gpio_pin_t pin)
{
return (gpio_pin_set_flag(handle, pin, GPIO_PIN_PULSATE));
}
+
+int
+gpio_pin_pwm(gpio_handle_t handle, gpio_pin_t pin)
+{
+ return (gpio_pin_set_flag(handle, pin, GPIO_PIN_PWM));
+}
+
+int
+gpio_pwm_get(gpio_handle_t handle, gpio_pwm_t pwm, gpio_pin_t pin,
+ uint32_t reg, uint32_t *value)
+{
+ struct gpio_pwm_req pwmreq;
+
+ bzero(&pwmreq, sizeof(pwmreq));
+ pwmreq.gp_pwm = pwm;
+ pwmreq.gp_pwm_pin = pin;
+ pwmreq.gp_pwm_reg = reg;
+ if (ioctl(handle, GPIOPWMGET, &pwmreq) < 0)
+ return (-1);
+ *value = pwmreq.gp_pwm_value;
+
+ return (0);
+
+}
+
+int
+gpio_pwm_set(gpio_handle_t handle, gpio_pwm_t pwm, gpio_pin_t pin,
+ uint32_t reg, uint32_t value)
+{
+ struct gpio_pwm_req pwmreq;
+
+ bzero(&pwmreq, sizeof(pwmreq));
+ pwmreq.gp_pwm = pwm;
+ pwmreq.gp_pwm_pin = pin;
+ pwmreq.gp_pwm_reg = reg;
+ pwmreq.gp_pwm_value = value;
+ if (ioctl(handle, GPIOPWMSET, &pwmreq) < 0)
+ return (-1);
+
+ return (0);
+}
diff --git a/lib/libgpio/libgpio.h b/lib/libgpio/libgpio.h
index a832234..6cc258e 100644
--- a/lib/libgpio/libgpio.h
+++ b/lib/libgpio/libgpio.h
@@ -35,6 +35,7 @@ __BEGIN_DECLS
#define GPIO_INVALID_HANDLE -1
typedef int gpio_handle_t;
+typedef int32_t gpio_pwm_t;
typedef uint32_t gpio_pin_t;
/*
@@ -104,6 +105,13 @@ int gpio_pin_pulldown(gpio_handle_t, gpio_pin_t);
int gpio_pin_invin(gpio_handle_t, gpio_pin_t);
int gpio_pin_invout(gpio_handle_t, gpio_pin_t);
int gpio_pin_pulsate(gpio_handle_t, gpio_pin_t);
+int gpio_pin_pwm(gpio_handle_t, gpio_pin_t);
+
+/* PWM Settings. */
+int gpio_pwm_get(gpio_handle_t, gpio_pwm_t pwm, gpio_pin_t,
+ uint32_t, uint32_t *);
+int gpio_pwm_set(gpio_handle_t, gpio_pwm_t pwm, gpio_pin_t,
+ uint32_t, uint32_t);
__END_DECLS
diff --git a/lib/msun/Makefile b/lib/msun/Makefile
index 820855c..99ab57e 100644
--- a/lib/msun/Makefile
+++ b/lib/msun/Makefile
@@ -13,11 +13,7 @@
#
PACKAGE= clibs
-.if ${MACHINE_CPUARCH} == "i386"
-ARCH_SUBDIR= i387
-.else
-ARCH_SUBDIR= ${MACHINE_CPUARCH}
-.endif
+ARCH_SUBDIR= ${MACHINE_CPUARCH:S/i386/i387/}
.include "${ARCH_SUBDIR}/Makefile.inc"
@@ -67,8 +63,8 @@ COMMON_SRCS= b_exp.c b_log.c b_tgamma.c \
s_exp2.c s_exp2f.c s_expm1.c s_expm1f.c s_fabsf.c s_fdim.c \
s_finite.c s_finitef.c \
s_floor.c s_floorf.c s_fma.c s_fmaf.c \
- s_fmax.c s_fmaxf.c s_fmaxl.c s_fmin.c \
- s_fminf.c s_fminl.c s_frexp.c s_frexpf.c s_ilogb.c s_ilogbf.c \
+ s_fmax.c s_fmaxf.c s_fmin.c \
+ s_fminf.c s_frexp.c s_frexpf.c s_ilogb.c s_ilogbf.c \
s_ilogbl.c s_isfinite.c s_isnan.c s_isnormal.c \
s_llrint.c s_llrintf.c s_llround.c s_llroundf.c s_llroundl.c \
s_log1p.c s_log1pf.c s_logb.c s_logbf.c s_lrint.c s_lrintf.c \
@@ -77,7 +73,8 @@ COMMON_SRCS= b_exp.c b_log.c b_tgamma.c \
s_nexttowardf.c s_remquo.c s_remquof.c \
s_rint.c s_rintf.c s_round.c s_roundf.c \
s_scalbln.c s_scalbn.c s_scalbnf.c s_signbit.c \
- s_signgam.c s_significand.c s_significandf.c s_sin.c s_sinf.c \
+ s_signgam.c s_significand.c s_significandf.c s_sin.c \
+ s_sincos.c s_sincosf.c s_sinf.c \
s_tan.c s_tanf.c s_tanh.c s_tanhf.c s_tgammaf.c s_trunc.c s_truncf.c \
w_cabs.c w_cabsf.c w_drem.c w_dremf.c
@@ -98,16 +95,18 @@ SYMBOL_MAPS= ${SYM_MAPS}
COMMON_SRCS+= s_copysignl.c s_fabsl.c s_llrintl.c s_lrintl.c s_modfl.c
.if ${LDBL_PREC} != 53
# If long double != double use these; otherwise, we alias the double versions.
-COMMON_SRCS+= e_acoshl.c e_acosl.c e_asinl.c e_atan2l.c e_atanhl.c \
+COMMON_SRCS+= catrigl.c \
+ e_acoshl.c e_acosl.c e_asinl.c e_atan2l.c e_atanhl.c \
e_coshl.c e_fmodl.c e_hypotl.c \
e_lgammal.c e_lgammal_r.c \
e_remainderl.c e_sinhl.c e_sqrtl.c \
invtrig.c k_cosl.c k_sinl.c k_tanl.c \
s_asinhl.c s_atanl.c s_cbrtl.c s_ceill.c s_cosl.c s_cprojl.c \
s_csqrtl.c s_erfl.c s_exp2l.c s_expl.c s_floorl.c s_fmal.c \
- s_frexpl.c s_logbl.c s_logl.c s_nanl.c s_nextafterl.c \
- s_nexttoward.c s_remquol.c s_rintl.c s_roundl.c s_scalbnl.c \
- s_sinl.c s_tanhl.c s_tanl.c s_truncl.c w_cabsl.c
+ s_fmaxl.c s_fminl.c s_frexpl.c s_logbl.c s_logl.c s_nanl.c \
+ s_nextafterl.c s_nexttoward.c s_remquol.c s_rintl.c s_roundl.c \
+ s_scalbnl.c s_sinl.c s_sincosl.c \
+ s_tanhl.c s_tanl.c s_truncl.c w_cabsl.c
.endif
# C99 complex functions
@@ -140,7 +139,8 @@ MAN= acos.3 acosh.3 asin.3 asinh.3 atan.3 atan2.3 atanh.3 \
fma.3 fmax.3 fmod.3 hypot.3 ieee.3 ieee_test.3 ilogb.3 j0.3 \
lgamma.3 log.3 lrint.3 lround.3 math.3 nan.3 \
nextafter.3 remainder.3 rint.3 \
- round.3 scalbn.3 signbit.3 sin.3 sinh.3 sqrt.3 tan.3 tanh.3 trunc.3 \
+ round.3 scalbn.3 signbit.3 sin.3 sincos.3 \
+ sinh.3 sqrt.3 tan.3 tanh.3 trunc.3 \
complex.3
MLINKS+=acos.3 acosf.3 acos.3 acosl.3
@@ -151,9 +151,12 @@ MLINKS+=atan.3 atanf.3 atan.3 atanl.3
MLINKS+=atanh.3 atanhf.3 atanh.3 atanhl.3
MLINKS+=atan2.3 atan2f.3 atan2.3 atan2l.3 \
atan2.3 carg.3 atan2.3 cargf.3 atan2.3 cargl.3
-MLINKS+=cacos.3 cacosf.3 cacos.3 cacosh.3 cacos.3 cacoshf.3 \
- cacos.3 casin.3 cacos.3 casinf.3 cacos.3 casinh.3 cacos.3 casinhf.3 \
- cacos.3 catan.3 cacos.3 catanf.3 cacos.3 catanh.3 cacos.3 catanhf.3
+MLINKS+=cacos.3 cacosf.3 cacos.3 cacosl.3 \
+ cacos.3 cacosh.3 cacos.3 cacoshf.3 cacos.3 cacoshl.3 \
+ cacos.3 casin.3 cacos.3 casinf.3 cacos.3 casinl.3 \
+ cacos.3 casinh.3 cacos.3 casinhf.3 cacos.3 casinhl.3 \
+ cacos.3 catan.3 cacos.3 catanf.3 cacos.3 catanl.3 \
+ cacos.3 catanh.3 cacos.3 catanhf.3 cacos.3 catanhl.3
MLINKS+=ccos.3 ccosf.3 ccos.3 csin.3 ccos.3 csinf.3 ccos.3 ctan.3 ccos.3 ctanf.3
MLINKS+=ccosh.3 ccoshf.3 ccosh.3 csinh.3 ccosh.3 csinhf.3 \
ccosh.3 ctanh.3 ccosh.3 ctanhf.3
@@ -215,6 +218,7 @@ MLINKS+=round.3 roundf.3 round.3 roundl.3
MLINKS+=scalbn.3 scalbln.3 scalbn.3 scalblnf.3 scalbn.3 scalblnl.3
MLINKS+=scalbn.3 scalbnf.3 scalbn.3 scalbnl.3
MLINKS+=sin.3 sinf.3 sin.3 sinl.3
+MLINKS+=sincos.3 sincosf.3 sin.3 sincosl.3
MLINKS+=sinh.3 sinhf.3 sinh.3 sinhl.3
MLINKS+=sqrt.3 cbrt.3 sqrt.3 cbrtf.3 sqrt.3 cbrtl.3 sqrt.3 sqrtf.3 \
sqrt.3 sqrtl.3
diff --git a/lib/msun/Symbol.map b/lib/msun/Symbol.map
index d5b7f46..f7d9e03 100644
--- a/lib/msun/Symbol.map
+++ b/lib/msun/Symbol.map
@@ -285,3 +285,16 @@ FBSD_1.3 {
FBSD_1.4 {
lgammal_r;
};
+
+/* First added in 12.0-CURRENT */
+FBSD_1.5 {
+ cacoshl;
+ cacosl;
+ casinhl;
+ casinl;
+ catanl;
+ catanhl;
+ sincos;
+ sincosf;
+ sincosl;
+};
diff --git a/lib/msun/amd64/Makefile.inc b/lib/msun/amd64/Makefile.inc
index 6ad2276..02264c4 100644
--- a/lib/msun/amd64/Makefile.inc
+++ b/lib/msun/amd64/Makefile.inc
@@ -1,6 +1,7 @@
# $FreeBSD$
-ARCH_SRCS = e_remainder.S e_remainderf.S e_remainderl.S \
+ARCH_SRCS = e_fmod.S e_fmodf.S e_fmodl.S \
+ e_remainder.S e_remainderf.S e_remainderl.S \
e_sqrt.S e_sqrtf.S e_sqrtl.S \
s_llrint.S s_llrintf.S s_llrintl.S \
s_logbl.S s_lrint.S s_lrintf.S s_lrintl.S \
diff --git a/lib/msun/amd64/e_fmod.S b/lib/msun/amd64/e_fmod.S
new file mode 100644
index 0000000..6163134
--- /dev/null
+++ b/lib/msun/amd64/e_fmod.S
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 1993,94 Winning Strategies, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Winning Strategies, Inc.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Based on the i387 version written by:
+ * J.T. Conklin (jtc@wimsey.com), Winning Strategies, Inc.
+ */
+
+#include <machine/asm.h>
+__FBSDID("$FreeBSD$")
+
+ENTRY(fmod)
+ movsd %xmm0,-8(%rsp)
+ movsd %xmm1,-16(%rsp)
+ fldl -16(%rsp)
+ fldl -8(%rsp)
+1: fprem
+ fstsw %ax
+ testw $0x400,%ax
+ jne 1b
+ fstpl -8(%rsp)
+ movsd -8(%rsp),%xmm0
+ fstp %st
+ ret
+END(fmod)
+
+ .section .note.GNU-stack,"",%progbits
diff --git a/lib/msun/amd64/e_fmodf.S b/lib/msun/amd64/e_fmodf.S
new file mode 100644
index 0000000..4b52040
--- /dev/null
+++ b/lib/msun/amd64/e_fmodf.S
@@ -0,0 +1,24 @@
+/*
+ * Based on the i387 version written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+__FBSDID("$FreeBSD$")
+
+ENTRY(fmodf)
+ movss %xmm0,-4(%rsp)
+ movss %xmm1,-8(%rsp)
+ flds -8(%rsp)
+ flds -4(%rsp)
+1: fprem
+ fstsw %ax
+ testw $0x400,%ax
+ jne 1b
+ fstps -4(%rsp)
+ movss -4(%rsp),%xmm0
+ fstp %st
+ ret
+END(fmodf)
+
+ .section .note.GNU-stack,"",%progbits
diff --git a/lib/msun/amd64/e_fmodl.S b/lib/msun/amd64/e_fmodl.S
new file mode 100644
index 0000000..8f7a3b5
--- /dev/null
+++ b/lib/msun/amd64/e_fmodl.S
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 1993,94 Winning Strategies, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Winning Strategies, Inc.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Based on the i387 version written by:
+ * J.T. Conklin (jtc@wimsey.com), Winning Strategies, Inc.
+ */
+
+#include <machine/asm.h>
+__FBSDID("$FreeBSD$")
+
+ENTRY(fmodl)
+ fldt 24(%rsp)
+ fldt 8(%rsp)
+1: fprem
+ fstsw %ax
+ testw $0x400,%ax
+ jne 1b
+ fstp %st(1)
+ ret
+END(fmodl)
+
+ .section .note.GNU-stack,"",%progbits
diff --git a/lib/msun/i387/Makefile.inc b/lib/msun/i387/Makefile.inc
index f387e90..daa93f6 100644
--- a/lib/msun/i387/Makefile.inc
+++ b/lib/msun/i387/Makefile.inc
@@ -2,18 +2,19 @@
ARCH_SRCS = e_exp.S e_fmod.S e_log.S e_log10.S \
e_remainder.S e_sqrt.S s_ceil.S s_copysign.S \
- s_cos.S s_finite.S s_floor.S s_llrint.S s_logb.S s_lrint.S \
- s_remquo.S s_rint.S s_scalbn.S s_significand.S s_sin.S s_tan.S \
+ s_finite.S s_floor.S s_llrint.S s_logb.S s_lrint.S \
+ s_remquo.S s_rint.S s_scalbn.S s_significand.S \
s_trunc.S
# float counterparts
-ARCH_SRCS+= e_log10f.S e_logf.S e_remainderf.S \
+ARCH_SRCS+= e_fmodf.S e_log10f.S e_logf.S e_remainderf.S \
e_sqrtf.S s_ceilf.S s_copysignf.S s_floorf.S \
s_llrintf.S s_logbf.S s_lrintf.S \
s_remquof.S s_rintf.S s_scalbnf.S s_significandf.S s_truncf.S
# long double counterparts
-ARCH_SRCS+= e_remainderl.S e_sqrtl.S s_ceill.S s_copysignl.S \
+ARCH_SRCS+= e_fmodl.S \
+ e_remainderl.S e_sqrtl.S s_ceill.S s_copysignl.S \
s_floorl.S s_llrintl.S \
s_logbl.S s_lrintl.S s_remquol.S s_rintl.S s_scalbnl.S s_truncl.S
diff --git a/lib/msun/i387/e_fmodf.S b/lib/msun/i387/e_fmodf.S
new file mode 100644
index 0000000..e269447
--- /dev/null
+++ b/lib/msun/i387/e_fmodf.S
@@ -0,0 +1,20 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+__FBSDID("$FreeBSD$")
+
+ENTRY(fmodf)
+ flds 8(%esp)
+ flds 4(%esp)
+1: fprem
+ fstsw %ax
+ sahf
+ jp 1b
+ fstp %st(1)
+ ret
+END(fmodf)
+
+ .section .note.GNU-stack,"",%progbits
diff --git a/lib/msun/i387/e_fmodl.S b/lib/msun/i387/e_fmodl.S
new file mode 100644
index 0000000..57e986c
--- /dev/null
+++ b/lib/msun/i387/e_fmodl.S
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 1993,94 Winning Strategies, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Winning Strategies, Inc.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Written by:
+ * J.T. Conklin (jtc@wimsey.com), Winning Strategies, Inc.
+ */
+
+#include <machine/asm.h>
+__FBSDID("$FreeBSD$")
+
+ENTRY(fmodl)
+ fldt 16(%esp)
+ fldt 4(%esp)
+1: fprem
+ fstsw %ax
+ sahf
+ jp 1b
+ fstp %st(1)
+ ret
+END(fmodl)
+
+ .section .note.GNU-stack,"",%progbits
diff --git a/lib/msun/ld80/e_lgammal_r.c b/lib/msun/ld80/e_lgammal_r.c
index 1e65769..f56758b 100644
--- a/lib/msun/ld80/e_lgammal_r.c
+++ b/lib/msun/ld80/e_lgammal_r.c
@@ -249,7 +249,7 @@ sin_pil(long double x)
long double
lgammal_r(long double x, int *signgamp)
{
- long double nadj,p,p1,p2,p3,q,r,t,w,y,z;
+ long double nadj,p,p1,p2,q,r,t,w,y,z;
uint64_t lx;
int i;
uint16_t hx,ix;
diff --git a/lib/msun/ld80/k_expl.h b/lib/msun/ld80/k_expl.h
index 9b081fa..1c2213e 100644
--- a/lib/msun/ld80/k_expl.h
+++ b/lib/msun/ld80/k_expl.h
@@ -75,140 +75,140 @@ static const struct {
double hi;
double lo;
} tbl[INTERVALS] = {
- 0x1p+0, 0x0p+0,
+ { 0x1p+0, 0x0p+0 },
/*
* XXX hi is rounded down, and the formatting is not quite normal.
* But I rather like both. The 0x1.*p format is good for 4N+1
* mantissa bits. Rounding down makes the lo terms positive,
* so that the columnar formatting can be simpler.
*/
- 0x1.0163da9fb3335p+0, 0x1.b61299ab8cdb7p-54,
- 0x1.02c9a3e778060p+0, 0x1.dcdef95949ef4p-53,
- 0x1.04315e86e7f84p+0, 0x1.7ae71f3441b49p-53,
- 0x1.059b0d3158574p+0, 0x1.d73e2a475b465p-55,
- 0x1.0706b29ddf6ddp+0, 0x1.8db880753b0f6p-53,
- 0x1.0874518759bc8p+0, 0x1.186be4bb284ffp-57,
- 0x1.09e3ecac6f383p+0, 0x1.1487818316136p-54,
- 0x1.0b5586cf9890fp+0, 0x1.8a62e4adc610bp-54,
- 0x1.0cc922b7247f7p+0, 0x1.01edc16e24f71p-54,
- 0x1.0e3ec32d3d1a2p+0, 0x1.03a1727c57b53p-59,
- 0x1.0fb66affed31ap+0, 0x1.e464123bb1428p-53,
- 0x1.11301d0125b50p+0, 0x1.49d77e35db263p-53,
- 0x1.12abdc06c31cbp+0, 0x1.f72575a649ad2p-53,
- 0x1.1429aaea92ddfp+0, 0x1.66820328764b1p-53,
- 0x1.15a98c8a58e51p+0, 0x1.2406ab9eeab0ap-55,
- 0x1.172b83c7d517ap+0, 0x1.b9bef918a1d63p-53,
- 0x1.18af9388c8de9p+0, 0x1.777ee1734784ap-53,
- 0x1.1a35beb6fcb75p+0, 0x1.e5b4c7b4968e4p-55,
- 0x1.1bbe084045cd3p+0, 0x1.3563ce56884fcp-53,
- 0x1.1d4873168b9aap+0, 0x1.e016e00a2643cp-54,
- 0x1.1ed5022fcd91cp+0, 0x1.71033fec2243ap-53,
- 0x1.2063b88628cd6p+0, 0x1.dc775814a8495p-55,
- 0x1.21f49917ddc96p+0, 0x1.2a97e9494a5eep-55,
- 0x1.2387a6e756238p+0, 0x1.9b07eb6c70573p-54,
- 0x1.251ce4fb2a63fp+0, 0x1.ac155bef4f4a4p-55,
- 0x1.26b4565e27cddp+0, 0x1.2bd339940e9d9p-55,
- 0x1.284dfe1f56380p+0, 0x1.2d9e2b9e07941p-53,
- 0x1.29e9df51fdee1p+0, 0x1.612e8afad1255p-55,
- 0x1.2b87fd0dad98fp+0, 0x1.fbbd48ca71f95p-53,
- 0x1.2d285a6e4030bp+0, 0x1.0024754db41d5p-54,
- 0x1.2ecafa93e2f56p+0, 0x1.1ca0f45d52383p-56,
- 0x1.306fe0a31b715p+0, 0x1.6f46ad23182e4p-55,
- 0x1.32170fc4cd831p+0, 0x1.a9ce78e18047cp-55,
- 0x1.33c08b26416ffp+0, 0x1.32721843659a6p-54,
- 0x1.356c55f929ff0p+0, 0x1.928c468ec6e76p-53,
- 0x1.371a7373aa9cap+0, 0x1.4e28aa05e8a8fp-53,
- 0x1.38cae6d05d865p+0, 0x1.0b53961b37da2p-53,
- 0x1.3a7db34e59ff6p+0, 0x1.d43792533c144p-53,
- 0x1.3c32dc313a8e4p+0, 0x1.08003e4516b1ep-53,
- 0x1.3dea64c123422p+0, 0x1.ada0911f09ebcp-55,
- 0x1.3fa4504ac801bp+0, 0x1.417ee03548306p-53,
- 0x1.4160a21f72e29p+0, 0x1.f0864b71e7b6cp-53,
- 0x1.431f5d950a896p+0, 0x1.b8e088728219ap-53,
- 0x1.44e086061892dp+0, 0x1.89b7a04ef80d0p-59,
- 0x1.46a41ed1d0057p+0, 0x1.c944bd1648a76p-54,
- 0x1.486a2b5c13cd0p+0, 0x1.3c1a3b69062f0p-56,
- 0x1.4a32af0d7d3dep+0, 0x1.9cb62f3d1be56p-54,
- 0x1.4bfdad5362a27p+0, 0x1.d4397afec42e2p-56,
- 0x1.4dcb299fddd0dp+0, 0x1.8ecdbbc6a7833p-54,
- 0x1.4f9b2769d2ca6p+0, 0x1.5a67b16d3540ep-53,
- 0x1.516daa2cf6641p+0, 0x1.8225ea5909b04p-53,
- 0x1.5342b569d4f81p+0, 0x1.be1507893b0d5p-53,
- 0x1.551a4ca5d920ep+0, 0x1.8a5d8c4048699p-53,
- 0x1.56f4736b527dap+0, 0x1.9bb2c011d93adp-54,
- 0x1.58d12d497c7fdp+0, 0x1.295e15b9a1de8p-55,
- 0x1.5ab07dd485429p+0, 0x1.6324c054647adp-54,
- 0x1.5c9268a5946b7p+0, 0x1.c4b1b816986a2p-60,
- 0x1.5e76f15ad2148p+0, 0x1.ba6f93080e65ep-54,
- 0x1.605e1b976dc08p+0, 0x1.60edeb25490dcp-53,
- 0x1.6247eb03a5584p+0, 0x1.63e1f40dfa5b5p-53,
- 0x1.6434634ccc31fp+0, 0x1.8edf0e2989db3p-53,
- 0x1.6623882552224p+0, 0x1.224fb3c5371e6p-53,
- 0x1.68155d44ca973p+0, 0x1.038ae44f73e65p-57,
- 0x1.6a09e667f3bccp+0, 0x1.21165f626cdd5p-53,
- 0x1.6c012750bdabep+0, 0x1.daed533001e9ep-53,
- 0x1.6dfb23c651a2ep+0, 0x1.e441c597c3775p-53,
- 0x1.6ff7df9519483p+0, 0x1.9f0fc369e7c42p-53,
- 0x1.71f75e8ec5f73p+0, 0x1.ba46e1e5de15ap-53,
- 0x1.73f9a48a58173p+0, 0x1.7ab9349cd1562p-53,
- 0x1.75feb564267c8p+0, 0x1.7edd354674916p-53,
- 0x1.780694fde5d3fp+0, 0x1.866b80a02162dp-54,
- 0x1.7a11473eb0186p+0, 0x1.afaa2047ed9b4p-53,
- 0x1.7c1ed0130c132p+0, 0x1.f124cd1164dd6p-54,
- 0x1.7e2f336cf4e62p+0, 0x1.05d02ba15797ep-56,
- 0x1.80427543e1a11p+0, 0x1.6c1bccec9346bp-53,
- 0x1.82589994cce12p+0, 0x1.159f115f56694p-53,
- 0x1.8471a4623c7acp+0, 0x1.9ca5ed72f8c81p-53,
- 0x1.868d99b4492ecp+0, 0x1.01c83b21584a3p-53,
- 0x1.88ac7d98a6699p+0, 0x1.994c2f37cb53ap-54,
- 0x1.8ace5422aa0dbp+0, 0x1.6e9f156864b27p-54,
- 0x1.8cf3216b5448bp+0, 0x1.de55439a2c38bp-53,
- 0x1.8f1ae99157736p+0, 0x1.5cc13a2e3976cp-55,
- 0x1.9145b0b91ffc5p+0, 0x1.114c368d3ed6ep-53,
- 0x1.93737b0cdc5e4p+0, 0x1.e8a0387e4a814p-53,
- 0x1.95a44cbc8520ep+0, 0x1.d36906d2b41f9p-53,
- 0x1.97d829fde4e4fp+0, 0x1.173d241f23d18p-53,
- 0x1.9a0f170ca07b9p+0, 0x1.7462137188ce7p-53,
- 0x1.9c49182a3f090p+0, 0x1.c7c46b071f2bep-56,
- 0x1.9e86319e32323p+0, 0x1.824ca78e64c6ep-56,
- 0x1.a0c667b5de564p+0, 0x1.6535b51719567p-53,
- 0x1.a309bec4a2d33p+0, 0x1.6305c7ddc36abp-54,
- 0x1.a5503b23e255cp+0, 0x1.1684892395f0fp-53,
- 0x1.a799e1330b358p+0, 0x1.bcb7ecac563c7p-54,
- 0x1.a9e6b5579fdbfp+0, 0x1.0fac90ef7fd31p-54,
- 0x1.ac36bbfd3f379p+0, 0x1.81b72cd4624ccp-53,
- 0x1.ae89f995ad3adp+0, 0x1.7a1cd345dcc81p-54,
- 0x1.b0e07298db665p+0, 0x1.2108559bf8deep-53,
- 0x1.b33a2b84f15fap+0, 0x1.ed7fa1cf7b290p-53,
- 0x1.b59728de55939p+0, 0x1.1c7102222c90ep-53,
- 0x1.b7f76f2fb5e46p+0, 0x1.d54f610356a79p-53,
- 0x1.ba5b030a10649p+0, 0x1.0819678d5eb69p-53,
- 0x1.bcc1e904bc1d2p+0, 0x1.23dd07a2d9e84p-55,
- 0x1.bf2c25bd71e08p+0, 0x1.0811ae04a31c7p-53,
- 0x1.c199bdd85529cp+0, 0x1.11065895048ddp-55,
- 0x1.c40ab5fffd07ap+0, 0x1.b4537e083c60ap-54,
- 0x1.c67f12e57d14bp+0, 0x1.2884dff483cadp-54,
- 0x1.c8f6d9406e7b5p+0, 0x1.1acbc48805c44p-56,
- 0x1.cb720dcef9069p+0, 0x1.503cbd1e949dbp-56,
- 0x1.cdf0b555dc3f9p+0, 0x1.889f12b1f58a3p-53,
- 0x1.d072d4a07897bp+0, 0x1.1a1e45e4342b2p-53,
- 0x1.d2f87080d89f1p+0, 0x1.15bc247313d44p-53,
- 0x1.d5818dcfba487p+0, 0x1.2ed02d75b3707p-55,
- 0x1.d80e316c98397p+0, 0x1.7709f3a09100cp-53,
- 0x1.da9e603db3285p+0, 0x1.c2300696db532p-54,
- 0x1.dd321f301b460p+0, 0x1.2da5778f018c3p-54,
- 0x1.dfc97337b9b5ep+0, 0x1.72d195873da52p-53,
- 0x1.e264614f5a128p+0, 0x1.424ec3f42f5b5p-53,
- 0x1.e502ee78b3ff6p+0, 0x1.39e8980a9cc8fp-55,
- 0x1.e7a51fbc74c83p+0, 0x1.2d522ca0c8de2p-54,
- 0x1.ea4afa2a490d9p+0, 0x1.0b1ee7431ebb6p-53,
- 0x1.ecf482d8e67f0p+0, 0x1.1b60625f7293ap-53,
- 0x1.efa1bee615a27p+0, 0x1.dc7f486a4b6b0p-54,
- 0x1.f252b376bba97p+0, 0x1.3a1a5bf0d8e43p-54,
- 0x1.f50765b6e4540p+0, 0x1.9d3e12dd8a18bp-54,
- 0x1.f7bfdad9cbe13p+0, 0x1.1227697fce57bp-53,
- 0x1.fa7c1819e90d8p+0, 0x1.74853f3a5931ep-55,
- 0x1.fd3c22b8f71f1p+0, 0x1.2eb74966579e7p-57
+ { 0x1.0163da9fb3335p+0, 0x1.b61299ab8cdb7p-54 },
+ { 0x1.02c9a3e778060p+0, 0x1.dcdef95949ef4p-53 },
+ { 0x1.04315e86e7f84p+0, 0x1.7ae71f3441b49p-53 },
+ { 0x1.059b0d3158574p+0, 0x1.d73e2a475b465p-55 },
+ { 0x1.0706b29ddf6ddp+0, 0x1.8db880753b0f6p-53 },
+ { 0x1.0874518759bc8p+0, 0x1.186be4bb284ffp-57 },
+ { 0x1.09e3ecac6f383p+0, 0x1.1487818316136p-54 },
+ { 0x1.0b5586cf9890fp+0, 0x1.8a62e4adc610bp-54 },
+ { 0x1.0cc922b7247f7p+0, 0x1.01edc16e24f71p-54 },
+ { 0x1.0e3ec32d3d1a2p+0, 0x1.03a1727c57b53p-59 },
+ { 0x1.0fb66affed31ap+0, 0x1.e464123bb1428p-53 },
+ { 0x1.11301d0125b50p+0, 0x1.49d77e35db263p-53 },
+ { 0x1.12abdc06c31cbp+0, 0x1.f72575a649ad2p-53 },
+ { 0x1.1429aaea92ddfp+0, 0x1.66820328764b1p-53 },
+ { 0x1.15a98c8a58e51p+0, 0x1.2406ab9eeab0ap-55 },
+ { 0x1.172b83c7d517ap+0, 0x1.b9bef918a1d63p-53 },
+ { 0x1.18af9388c8de9p+0, 0x1.777ee1734784ap-53 },
+ { 0x1.1a35beb6fcb75p+0, 0x1.e5b4c7b4968e4p-55 },
+ { 0x1.1bbe084045cd3p+0, 0x1.3563ce56884fcp-53 },
+ { 0x1.1d4873168b9aap+0, 0x1.e016e00a2643cp-54 },
+ { 0x1.1ed5022fcd91cp+0, 0x1.71033fec2243ap-53 },
+ { 0x1.2063b88628cd6p+0, 0x1.dc775814a8495p-55 },
+ { 0x1.21f49917ddc96p+0, 0x1.2a97e9494a5eep-55 },
+ { 0x1.2387a6e756238p+0, 0x1.9b07eb6c70573p-54 },
+ { 0x1.251ce4fb2a63fp+0, 0x1.ac155bef4f4a4p-55 },
+ { 0x1.26b4565e27cddp+0, 0x1.2bd339940e9d9p-55 },
+ { 0x1.284dfe1f56380p+0, 0x1.2d9e2b9e07941p-53 },
+ { 0x1.29e9df51fdee1p+0, 0x1.612e8afad1255p-55 },
+ { 0x1.2b87fd0dad98fp+0, 0x1.fbbd48ca71f95p-53 },
+ { 0x1.2d285a6e4030bp+0, 0x1.0024754db41d5p-54 },
+ { 0x1.2ecafa93e2f56p+0, 0x1.1ca0f45d52383p-56 },
+ { 0x1.306fe0a31b715p+0, 0x1.6f46ad23182e4p-55 },
+ { 0x1.32170fc4cd831p+0, 0x1.a9ce78e18047cp-55 },
+ { 0x1.33c08b26416ffp+0, 0x1.32721843659a6p-54 },
+ { 0x1.356c55f929ff0p+0, 0x1.928c468ec6e76p-53 },
+ { 0x1.371a7373aa9cap+0, 0x1.4e28aa05e8a8fp-53 },
+ { 0x1.38cae6d05d865p+0, 0x1.0b53961b37da2p-53 },
+ { 0x1.3a7db34e59ff6p+0, 0x1.d43792533c144p-53 },
+ { 0x1.3c32dc313a8e4p+0, 0x1.08003e4516b1ep-53 },
+ { 0x1.3dea64c123422p+0, 0x1.ada0911f09ebcp-55 },
+ { 0x1.3fa4504ac801bp+0, 0x1.417ee03548306p-53 },
+ { 0x1.4160a21f72e29p+0, 0x1.f0864b71e7b6cp-53 },
+ { 0x1.431f5d950a896p+0, 0x1.b8e088728219ap-53 },
+ { 0x1.44e086061892dp+0, 0x1.89b7a04ef80d0p-59 },
+ { 0x1.46a41ed1d0057p+0, 0x1.c944bd1648a76p-54 },
+ { 0x1.486a2b5c13cd0p+0, 0x1.3c1a3b69062f0p-56 },
+ { 0x1.4a32af0d7d3dep+0, 0x1.9cb62f3d1be56p-54 },
+ { 0x1.4bfdad5362a27p+0, 0x1.d4397afec42e2p-56 },
+ { 0x1.4dcb299fddd0dp+0, 0x1.8ecdbbc6a7833p-54 },
+ { 0x1.4f9b2769d2ca6p+0, 0x1.5a67b16d3540ep-53 },
+ { 0x1.516daa2cf6641p+0, 0x1.8225ea5909b04p-53 },
+ { 0x1.5342b569d4f81p+0, 0x1.be1507893b0d5p-53 },
+ { 0x1.551a4ca5d920ep+0, 0x1.8a5d8c4048699p-53 },
+ { 0x1.56f4736b527dap+0, 0x1.9bb2c011d93adp-54 },
+ { 0x1.58d12d497c7fdp+0, 0x1.295e15b9a1de8p-55 },
+ { 0x1.5ab07dd485429p+0, 0x1.6324c054647adp-54 },
+ { 0x1.5c9268a5946b7p+0, 0x1.c4b1b816986a2p-60 },
+ { 0x1.5e76f15ad2148p+0, 0x1.ba6f93080e65ep-54 },
+ { 0x1.605e1b976dc08p+0, 0x1.60edeb25490dcp-53 },
+ { 0x1.6247eb03a5584p+0, 0x1.63e1f40dfa5b5p-53 },
+ { 0x1.6434634ccc31fp+0, 0x1.8edf0e2989db3p-53 },
+ { 0x1.6623882552224p+0, 0x1.224fb3c5371e6p-53 },
+ { 0x1.68155d44ca973p+0, 0x1.038ae44f73e65p-57 },
+ { 0x1.6a09e667f3bccp+0, 0x1.21165f626cdd5p-53 },
+ { 0x1.6c012750bdabep+0, 0x1.daed533001e9ep-53 },
+ { 0x1.6dfb23c651a2ep+0, 0x1.e441c597c3775p-53 },
+ { 0x1.6ff7df9519483p+0, 0x1.9f0fc369e7c42p-53 },
+ { 0x1.71f75e8ec5f73p+0, 0x1.ba46e1e5de15ap-53 },
+ { 0x1.73f9a48a58173p+0, 0x1.7ab9349cd1562p-53 },
+ { 0x1.75feb564267c8p+0, 0x1.7edd354674916p-53 },
+ { 0x1.780694fde5d3fp+0, 0x1.866b80a02162dp-54 },
+ { 0x1.7a11473eb0186p+0, 0x1.afaa2047ed9b4p-53 },
+ { 0x1.7c1ed0130c132p+0, 0x1.f124cd1164dd6p-54 },
+ { 0x1.7e2f336cf4e62p+0, 0x1.05d02ba15797ep-56 },
+ { 0x1.80427543e1a11p+0, 0x1.6c1bccec9346bp-53 },
+ { 0x1.82589994cce12p+0, 0x1.159f115f56694p-53 },
+ { 0x1.8471a4623c7acp+0, 0x1.9ca5ed72f8c81p-53 },
+ { 0x1.868d99b4492ecp+0, 0x1.01c83b21584a3p-53 },
+ { 0x1.88ac7d98a6699p+0, 0x1.994c2f37cb53ap-54 },
+ { 0x1.8ace5422aa0dbp+0, 0x1.6e9f156864b27p-54 },
+ { 0x1.8cf3216b5448bp+0, 0x1.de55439a2c38bp-53 },
+ { 0x1.8f1ae99157736p+0, 0x1.5cc13a2e3976cp-55 },
+ { 0x1.9145b0b91ffc5p+0, 0x1.114c368d3ed6ep-53 },
+ { 0x1.93737b0cdc5e4p+0, 0x1.e8a0387e4a814p-53 },
+ { 0x1.95a44cbc8520ep+0, 0x1.d36906d2b41f9p-53 },
+ { 0x1.97d829fde4e4fp+0, 0x1.173d241f23d18p-53 },
+ { 0x1.9a0f170ca07b9p+0, 0x1.7462137188ce7p-53 },
+ { 0x1.9c49182a3f090p+0, 0x1.c7c46b071f2bep-56 },
+ { 0x1.9e86319e32323p+0, 0x1.824ca78e64c6ep-56 },
+ { 0x1.a0c667b5de564p+0, 0x1.6535b51719567p-53 },
+ { 0x1.a309bec4a2d33p+0, 0x1.6305c7ddc36abp-54 },
+ { 0x1.a5503b23e255cp+0, 0x1.1684892395f0fp-53 },
+ { 0x1.a799e1330b358p+0, 0x1.bcb7ecac563c7p-54 },
+ { 0x1.a9e6b5579fdbfp+0, 0x1.0fac90ef7fd31p-54 },
+ { 0x1.ac36bbfd3f379p+0, 0x1.81b72cd4624ccp-53 },
+ { 0x1.ae89f995ad3adp+0, 0x1.7a1cd345dcc81p-54 },
+ { 0x1.b0e07298db665p+0, 0x1.2108559bf8deep-53 },
+ { 0x1.b33a2b84f15fap+0, 0x1.ed7fa1cf7b290p-53 },
+ { 0x1.b59728de55939p+0, 0x1.1c7102222c90ep-53 },
+ { 0x1.b7f76f2fb5e46p+0, 0x1.d54f610356a79p-53 },
+ { 0x1.ba5b030a10649p+0, 0x1.0819678d5eb69p-53 },
+ { 0x1.bcc1e904bc1d2p+0, 0x1.23dd07a2d9e84p-55 },
+ { 0x1.bf2c25bd71e08p+0, 0x1.0811ae04a31c7p-53 },
+ { 0x1.c199bdd85529cp+0, 0x1.11065895048ddp-55 },
+ { 0x1.c40ab5fffd07ap+0, 0x1.b4537e083c60ap-54 },
+ { 0x1.c67f12e57d14bp+0, 0x1.2884dff483cadp-54 },
+ { 0x1.c8f6d9406e7b5p+0, 0x1.1acbc48805c44p-56 },
+ { 0x1.cb720dcef9069p+0, 0x1.503cbd1e949dbp-56 },
+ { 0x1.cdf0b555dc3f9p+0, 0x1.889f12b1f58a3p-53 },
+ { 0x1.d072d4a07897bp+0, 0x1.1a1e45e4342b2p-53 },
+ { 0x1.d2f87080d89f1p+0, 0x1.15bc247313d44p-53 },
+ { 0x1.d5818dcfba487p+0, 0x1.2ed02d75b3707p-55 },
+ { 0x1.d80e316c98397p+0, 0x1.7709f3a09100cp-53 },
+ { 0x1.da9e603db3285p+0, 0x1.c2300696db532p-54 },
+ { 0x1.dd321f301b460p+0, 0x1.2da5778f018c3p-54 },
+ { 0x1.dfc97337b9b5ep+0, 0x1.72d195873da52p-53 },
+ { 0x1.e264614f5a128p+0, 0x1.424ec3f42f5b5p-53 },
+ { 0x1.e502ee78b3ff6p+0, 0x1.39e8980a9cc8fp-55 },
+ { 0x1.e7a51fbc74c83p+0, 0x1.2d522ca0c8de2p-54 },
+ { 0x1.ea4afa2a490d9p+0, 0x1.0b1ee7431ebb6p-53 },
+ { 0x1.ecf482d8e67f0p+0, 0x1.1b60625f7293ap-53 },
+ { 0x1.efa1bee615a27p+0, 0x1.dc7f486a4b6b0p-54 },
+ { 0x1.f252b376bba97p+0, 0x1.3a1a5bf0d8e43p-54 },
+ { 0x1.f50765b6e4540p+0, 0x1.9d3e12dd8a18bp-54 },
+ { 0x1.f7bfdad9cbe13p+0, 0x1.1227697fce57bp-53 },
+ { 0x1.fa7c1819e90d8p+0, 0x1.74853f3a5931ep-55 },
+ { 0x1.fd3c22b8f71f1p+0, 0x1.2eb74966579e7p-57 }
};
/*
diff --git a/lib/msun/ld80/s_logl.c b/lib/msun/ld80/s_logl.c
index 3a35753..e0daed7 100644
--- a/lib/msun/ld80/s_logl.c
+++ b/lib/msun/ld80/s_logl.c
@@ -152,135 +152,135 @@ static const struct {
* mainly to minimize the size of the table. Using all 24 bits
* in a float for it automatically satisfies the above constraints.
*/
- 0x800000.0p-23, 0, 0,
- 0xfe0000.0p-24, 0x8080ac.0p-30, -0x14ee431dae6675.0p-84,
- 0xfc0000.0p-24, 0x8102b3.0p-29, -0x1db29ee2d83718.0p-84,
- 0xfa0000.0p-24, 0xc24929.0p-29, 0x1191957d173698.0p-83,
- 0xf80000.0p-24, 0x820aec.0p-28, 0x13ce8888e02e79.0p-82,
- 0xf60000.0p-24, 0xa33577.0p-28, -0x17a4382ce6eb7c.0p-82,
- 0xf48000.0p-24, 0xbc42cb.0p-28, -0x172a21161a1076.0p-83,
- 0xf30000.0p-24, 0xd57797.0p-28, -0x1e09de07cb9589.0p-82,
- 0xf10000.0p-24, 0xf7518e.0p-28, 0x1ae1eec1b036c5.0p-91,
- 0xef0000.0p-24, 0x8cb9df.0p-27, -0x1d7355325d560e.0p-81,
- 0xed8000.0p-24, 0x999ec0.0p-27, -0x1f9f02d256d503.0p-82,
- 0xec0000.0p-24, 0xa6988b.0p-27, -0x16fc0a9d12c17a.0p-83,
- 0xea0000.0p-24, 0xb80698.0p-27, 0x15d581c1e8da9a.0p-81,
- 0xe80000.0p-24, 0xc99af3.0p-27, -0x1535b3ba8f150b.0p-83,
- 0xe70000.0p-24, 0xd273b2.0p-27, 0x163786f5251af0.0p-85,
- 0xe50000.0p-24, 0xe442c0.0p-27, 0x1bc4b2368e32d5.0p-84,
- 0xe38000.0p-24, 0xf1b83f.0p-27, 0x1c6090f684e676.0p-81,
- 0xe20000.0p-24, 0xff448a.0p-27, -0x1890aa69ac9f42.0p-82,
- 0xe08000.0p-24, 0x8673f6.0p-26, 0x1b9985194b6b00.0p-80,
- 0xdf0000.0p-24, 0x8d515c.0p-26, -0x1dc08d61c6ef1e.0p-83,
- 0xdd8000.0p-24, 0x943a9e.0p-26, -0x1f72a2dac729b4.0p-82,
- 0xdc0000.0p-24, 0x9b2fe6.0p-26, -0x1fd4dfd3a0afb9.0p-80,
- 0xda8000.0p-24, 0xa2315d.0p-26, -0x11b26121629c47.0p-82,
- 0xd90000.0p-24, 0xa93f2f.0p-26, 0x1286d633e8e569.0p-81,
- 0xd78000.0p-24, 0xb05988.0p-26, 0x16128eba936770.0p-84,
- 0xd60000.0p-24, 0xb78094.0p-26, 0x16ead577390d32.0p-80,
- 0xd50000.0p-24, 0xbc4c6c.0p-26, 0x151131ccf7c7b7.0p-81,
- 0xd38000.0p-24, 0xc3890a.0p-26, -0x115e2cd714bd06.0p-80,
- 0xd20000.0p-24, 0xcad2d7.0p-26, -0x1847f406ebd3b0.0p-82,
- 0xd10000.0p-24, 0xcfb620.0p-26, 0x1c2259904d6866.0p-81,
- 0xcf8000.0p-24, 0xd71653.0p-26, 0x1ece57a8d5ae55.0p-80,
- 0xce0000.0p-24, 0xde843a.0p-26, -0x1f109d4bc45954.0p-81,
- 0xcd0000.0p-24, 0xe37fde.0p-26, 0x1bc03dc271a74d.0p-81,
- 0xcb8000.0p-24, 0xeb050c.0p-26, -0x1bf2badc0df842.0p-85,
- 0xca0000.0p-24, 0xf29878.0p-26, -0x18efededd89fbe.0p-87,
- 0xc90000.0p-24, 0xf7ad6f.0p-26, 0x1373ff977baa69.0p-81,
- 0xc80000.0p-24, 0xfcc8e3.0p-26, 0x196766f2fb3283.0p-80,
- 0xc68000.0p-24, 0x823f30.0p-25, 0x19bd076f7c434e.0p-79,
- 0xc58000.0p-24, 0x84d52c.0p-25, -0x1a327257af0f46.0p-79,
- 0xc40000.0p-24, 0x88bc74.0p-25, 0x113f23def19c5a.0p-81,
- 0xc30000.0p-24, 0x8b5ae6.0p-25, 0x1759f6e6b37de9.0p-79,
- 0xc20000.0p-24, 0x8dfccb.0p-25, 0x1ad35ca6ed5148.0p-81,
- 0xc10000.0p-24, 0x90a22b.0p-25, 0x1a1d71a87deba4.0p-79,
- 0xbf8000.0p-24, 0x94a0d8.0p-25, -0x139e5210c2b731.0p-80,
- 0xbe8000.0p-24, 0x974f16.0p-25, -0x18f6ebcff3ed73.0p-81,
- 0xbd8000.0p-24, 0x9a00f1.0p-25, -0x1aa268be39aab7.0p-79,
- 0xbc8000.0p-24, 0x9cb672.0p-25, -0x14c8815839c566.0p-79,
- 0xbb0000.0p-24, 0xa0cda1.0p-25, 0x1eaf46390dbb24.0p-81,
- 0xba0000.0p-24, 0xa38c6e.0p-25, 0x138e20d831f698.0p-81,
- 0xb90000.0p-24, 0xa64f05.0p-25, -0x1e8d3c41123616.0p-82,
- 0xb80000.0p-24, 0xa91570.0p-25, 0x1ce28f5f3840b2.0p-80,
- 0xb70000.0p-24, 0xabdfbb.0p-25, -0x186e5c0a424234.0p-79,
- 0xb60000.0p-24, 0xaeadef.0p-25, -0x14d41a0b2a08a4.0p-83,
- 0xb50000.0p-24, 0xb18018.0p-25, 0x16755892770634.0p-79,
- 0xb40000.0p-24, 0xb45642.0p-25, -0x16395ebe59b152.0p-82,
- 0xb30000.0p-24, 0xb73077.0p-25, 0x1abc65c8595f09.0p-80,
- 0xb20000.0p-24, 0xba0ec4.0p-25, -0x1273089d3dad89.0p-79,
- 0xb10000.0p-24, 0xbcf133.0p-25, 0x10f9f67b1f4bbf.0p-79,
- 0xb00000.0p-24, 0xbfd7d2.0p-25, -0x109fab90486409.0p-80,
- 0xaf0000.0p-24, 0xc2c2ac.0p-25, -0x1124680aa43333.0p-79,
- 0xae8000.0p-24, 0xc439b3.0p-25, -0x1f360cc4710fc0.0p-80,
- 0xad8000.0p-24, 0xc72afd.0p-25, -0x132d91f21d89c9.0p-80,
- 0xac8000.0p-24, 0xca20a2.0p-25, -0x16bf9b4d1f8da8.0p-79,
- 0xab8000.0p-24, 0xcd1aae.0p-25, 0x19deb5ce6a6a87.0p-81,
- 0xaa8000.0p-24, 0xd0192f.0p-25, 0x1a29fb48f7d3cb.0p-79,
- 0xaa0000.0p-24, 0xd19a20.0p-25, 0x1127d3c6457f9d.0p-81,
- 0xa90000.0p-24, 0xd49f6a.0p-25, -0x1ba930e486a0ac.0p-81,
- 0xa80000.0p-24, 0xd7a94b.0p-25, -0x1b6e645f31549e.0p-79,
- 0xa70000.0p-24, 0xdab7d0.0p-25, 0x1118a425494b61.0p-80,
- 0xa68000.0p-24, 0xdc40d5.0p-25, 0x1966f24d29d3a3.0p-80,
- 0xa58000.0p-24, 0xdf566d.0p-25, -0x1d8e52eb2248f1.0p-82,
- 0xa48000.0p-24, 0xe270ce.0p-25, -0x1ee370f96e6b68.0p-80,
- 0xa40000.0p-24, 0xe3ffce.0p-25, 0x1d155324911f57.0p-80,
- 0xa30000.0p-24, 0xe72179.0p-25, -0x1fe6e2f2f867d9.0p-80,
- 0xa20000.0p-24, 0xea4812.0p-25, 0x1b7be9add7f4d4.0p-80,
- 0xa18000.0p-24, 0xebdd3d.0p-25, 0x1b3cfb3f7511dd.0p-79,
- 0xa08000.0p-24, 0xef0b5b.0p-25, -0x1220de1f730190.0p-79,
- 0xa00000.0p-24, 0xf0a451.0p-25, -0x176364c9ac81cd.0p-80,
- 0x9f0000.0p-24, 0xf3da16.0p-25, 0x1eed6b9aafac8d.0p-81,
- 0x9e8000.0p-24, 0xf576e9.0p-25, 0x1d593218675af2.0p-79,
- 0x9d8000.0p-24, 0xf8b47c.0p-25, -0x13e8eb7da053e0.0p-84,
- 0x9d0000.0p-24, 0xfa553f.0p-25, 0x1c063259bcade0.0p-79,
- 0x9c0000.0p-24, 0xfd9ac5.0p-25, 0x1ef491085fa3c1.0p-79,
- 0x9b8000.0p-24, 0xff3f8c.0p-25, 0x1d607a7c2b8c53.0p-79,
- 0x9a8000.0p-24, 0x814697.0p-24, -0x12ad3817004f3f.0p-78,
- 0x9a0000.0p-24, 0x821b06.0p-24, -0x189fc53117f9e5.0p-81,
- 0x990000.0p-24, 0x83c5f8.0p-24, 0x14cf15a048907b.0p-79,
- 0x988000.0p-24, 0x849c7d.0p-24, 0x1cbb1d35fb8287.0p-78,
- 0x978000.0p-24, 0x864ba6.0p-24, 0x1128639b814f9c.0p-78,
- 0x970000.0p-24, 0x87244c.0p-24, 0x184733853300f0.0p-79,
- 0x968000.0p-24, 0x87fdaa.0p-24, 0x109d23aef77dd6.0p-80,
- 0x958000.0p-24, 0x89b293.0p-24, -0x1a81ef367a59de.0p-78,
- 0x950000.0p-24, 0x8a8e20.0p-24, -0x121ad3dbb2f452.0p-78,
- 0x948000.0p-24, 0x8b6a6a.0p-24, -0x1cfb981628af72.0p-79,
- 0x938000.0p-24, 0x8d253a.0p-24, -0x1d21730ea76cfe.0p-79,
- 0x930000.0p-24, 0x8e03c2.0p-24, 0x135cc00e566f77.0p-78,
- 0x928000.0p-24, 0x8ee30d.0p-24, -0x10fcb5df257a26.0p-80,
- 0x918000.0p-24, 0x90a3ee.0p-24, -0x16e171b15433d7.0p-79,
- 0x910000.0p-24, 0x918587.0p-24, -0x1d050da07f3237.0p-79,
- 0x908000.0p-24, 0x9267e7.0p-24, 0x1be03669a5268d.0p-79,
- 0x8f8000.0p-24, 0x942f04.0p-24, 0x10b28e0e26c337.0p-79,
- 0x8f0000.0p-24, 0x9513c3.0p-24, 0x1a1d820da57cf3.0p-78,
- 0x8e8000.0p-24, 0x95f950.0p-24, -0x19ef8f13ae3cf1.0p-79,
- 0x8e0000.0p-24, 0x96dfab.0p-24, -0x109e417a6e507c.0p-78,
- 0x8d0000.0p-24, 0x98aed2.0p-24, 0x10d01a2c5b0e98.0p-79,
- 0x8c8000.0p-24, 0x9997a2.0p-24, -0x1d6a50d4b61ea7.0p-78,
- 0x8c0000.0p-24, 0x9a8145.0p-24, 0x1b3b190b83f952.0p-78,
- 0x8b8000.0p-24, 0x9b6bbf.0p-24, 0x13a69fad7e7abe.0p-78,
- 0x8b0000.0p-24, 0x9c5711.0p-24, -0x11cd12316f576b.0p-78,
- 0x8a8000.0p-24, 0x9d433b.0p-24, 0x1c95c444b807a2.0p-79,
- 0x898000.0p-24, 0x9f1e22.0p-24, -0x1b9c224ea698c3.0p-79,
- 0x890000.0p-24, 0xa00ce1.0p-24, 0x125ca93186cf0f.0p-81,
- 0x888000.0p-24, 0xa0fc80.0p-24, -0x1ee38a7bc228b3.0p-79,
- 0x880000.0p-24, 0xa1ed00.0p-24, -0x1a0db876613d20.0p-78,
- 0x878000.0p-24, 0xa2de62.0p-24, 0x193224e8516c01.0p-79,
- 0x870000.0p-24, 0xa3d0a9.0p-24, 0x1fa28b4d2541ad.0p-79,
- 0x868000.0p-24, 0xa4c3d6.0p-24, 0x1c1b5760fb4572.0p-78,
- 0x858000.0p-24, 0xa6acea.0p-24, 0x1fed5d0f65949c.0p-80,
- 0x850000.0p-24, 0xa7a2d4.0p-24, 0x1ad270c9d74936.0p-80,
- 0x848000.0p-24, 0xa899ab.0p-24, 0x199ff15ce53266.0p-79,
- 0x840000.0p-24, 0xa99171.0p-24, 0x1a19e15ccc45d2.0p-79,
- 0x838000.0p-24, 0xaa8a28.0p-24, -0x121a14ec532b36.0p-80,
- 0x830000.0p-24, 0xab83d1.0p-24, 0x1aee319980bff3.0p-79,
- 0x828000.0p-24, 0xac7e6f.0p-24, -0x18ffd9e3900346.0p-80,
- 0x820000.0p-24, 0xad7a03.0p-24, -0x1e4db102ce29f8.0p-80,
- 0x818000.0p-24, 0xae768f.0p-24, 0x17c35c55a04a83.0p-81,
- 0x810000.0p-24, 0xaf7415.0p-24, 0x1448324047019b.0p-78,
- 0x808000.0p-24, 0xb07298.0p-24, -0x1750ee3915a198.0p-78,
- 0x800000.0p-24, 0xb17218.0p-24, -0x105c610ca86c39.0p-81,
+ { 0x800000.0p-23, 0, 0 },
+ { 0xfe0000.0p-24, 0x8080ac.0p-30, -0x14ee431dae6675.0p-84 },
+ { 0xfc0000.0p-24, 0x8102b3.0p-29, -0x1db29ee2d83718.0p-84 },
+ { 0xfa0000.0p-24, 0xc24929.0p-29, 0x1191957d173698.0p-83 },
+ { 0xf80000.0p-24, 0x820aec.0p-28, 0x13ce8888e02e79.0p-82 },
+ { 0xf60000.0p-24, 0xa33577.0p-28, -0x17a4382ce6eb7c.0p-82 },
+ { 0xf48000.0p-24, 0xbc42cb.0p-28, -0x172a21161a1076.0p-83 },
+ { 0xf30000.0p-24, 0xd57797.0p-28, -0x1e09de07cb9589.0p-82 },
+ { 0xf10000.0p-24, 0xf7518e.0p-28, 0x1ae1eec1b036c5.0p-91 },
+ { 0xef0000.0p-24, 0x8cb9df.0p-27, -0x1d7355325d560e.0p-81 },
+ { 0xed8000.0p-24, 0x999ec0.0p-27, -0x1f9f02d256d503.0p-82 },
+ { 0xec0000.0p-24, 0xa6988b.0p-27, -0x16fc0a9d12c17a.0p-83 },
+ { 0xea0000.0p-24, 0xb80698.0p-27, 0x15d581c1e8da9a.0p-81 },
+ { 0xe80000.0p-24, 0xc99af3.0p-27, -0x1535b3ba8f150b.0p-83 },
+ { 0xe70000.0p-24, 0xd273b2.0p-27, 0x163786f5251af0.0p-85 },
+ { 0xe50000.0p-24, 0xe442c0.0p-27, 0x1bc4b2368e32d5.0p-84 },
+ { 0xe38000.0p-24, 0xf1b83f.0p-27, 0x1c6090f684e676.0p-81 },
+ { 0xe20000.0p-24, 0xff448a.0p-27, -0x1890aa69ac9f42.0p-82 },
+ { 0xe08000.0p-24, 0x8673f6.0p-26, 0x1b9985194b6b00.0p-80 },
+ { 0xdf0000.0p-24, 0x8d515c.0p-26, -0x1dc08d61c6ef1e.0p-83 },
+ { 0xdd8000.0p-24, 0x943a9e.0p-26, -0x1f72a2dac729b4.0p-82 },
+ { 0xdc0000.0p-24, 0x9b2fe6.0p-26, -0x1fd4dfd3a0afb9.0p-80 },
+ { 0xda8000.0p-24, 0xa2315d.0p-26, -0x11b26121629c47.0p-82 },
+ { 0xd90000.0p-24, 0xa93f2f.0p-26, 0x1286d633e8e569.0p-81 },
+ { 0xd78000.0p-24, 0xb05988.0p-26, 0x16128eba936770.0p-84 },
+ { 0xd60000.0p-24, 0xb78094.0p-26, 0x16ead577390d32.0p-80 },
+ { 0xd50000.0p-24, 0xbc4c6c.0p-26, 0x151131ccf7c7b7.0p-81 },
+ { 0xd38000.0p-24, 0xc3890a.0p-26, -0x115e2cd714bd06.0p-80 },
+ { 0xd20000.0p-24, 0xcad2d7.0p-26, -0x1847f406ebd3b0.0p-82 },
+ { 0xd10000.0p-24, 0xcfb620.0p-26, 0x1c2259904d6866.0p-81 },
+ { 0xcf8000.0p-24, 0xd71653.0p-26, 0x1ece57a8d5ae55.0p-80 },
+ { 0xce0000.0p-24, 0xde843a.0p-26, -0x1f109d4bc45954.0p-81 },
+ { 0xcd0000.0p-24, 0xe37fde.0p-26, 0x1bc03dc271a74d.0p-81 },
+ { 0xcb8000.0p-24, 0xeb050c.0p-26, -0x1bf2badc0df842.0p-85 },
+ { 0xca0000.0p-24, 0xf29878.0p-26, -0x18efededd89fbe.0p-87 },
+ { 0xc90000.0p-24, 0xf7ad6f.0p-26, 0x1373ff977baa69.0p-81 },
+ { 0xc80000.0p-24, 0xfcc8e3.0p-26, 0x196766f2fb3283.0p-80 },
+ { 0xc68000.0p-24, 0x823f30.0p-25, 0x19bd076f7c434e.0p-79 },
+ { 0xc58000.0p-24, 0x84d52c.0p-25, -0x1a327257af0f46.0p-79 },
+ { 0xc40000.0p-24, 0x88bc74.0p-25, 0x113f23def19c5a.0p-81 },
+ { 0xc30000.0p-24, 0x8b5ae6.0p-25, 0x1759f6e6b37de9.0p-79 },
+ { 0xc20000.0p-24, 0x8dfccb.0p-25, 0x1ad35ca6ed5148.0p-81 },
+ { 0xc10000.0p-24, 0x90a22b.0p-25, 0x1a1d71a87deba4.0p-79 },
+ { 0xbf8000.0p-24, 0x94a0d8.0p-25, -0x139e5210c2b731.0p-80 },
+ { 0xbe8000.0p-24, 0x974f16.0p-25, -0x18f6ebcff3ed73.0p-81 },
+ { 0xbd8000.0p-24, 0x9a00f1.0p-25, -0x1aa268be39aab7.0p-79 },
+ { 0xbc8000.0p-24, 0x9cb672.0p-25, -0x14c8815839c566.0p-79 },
+ { 0xbb0000.0p-24, 0xa0cda1.0p-25, 0x1eaf46390dbb24.0p-81 },
+ { 0xba0000.0p-24, 0xa38c6e.0p-25, 0x138e20d831f698.0p-81 },
+ { 0xb90000.0p-24, 0xa64f05.0p-25, -0x1e8d3c41123616.0p-82 },
+ { 0xb80000.0p-24, 0xa91570.0p-25, 0x1ce28f5f3840b2.0p-80 },
+ { 0xb70000.0p-24, 0xabdfbb.0p-25, -0x186e5c0a424234.0p-79 },
+ { 0xb60000.0p-24, 0xaeadef.0p-25, -0x14d41a0b2a08a4.0p-83 },
+ { 0xb50000.0p-24, 0xb18018.0p-25, 0x16755892770634.0p-79 },
+ { 0xb40000.0p-24, 0xb45642.0p-25, -0x16395ebe59b152.0p-82 },
+ { 0xb30000.0p-24, 0xb73077.0p-25, 0x1abc65c8595f09.0p-80 },
+ { 0xb20000.0p-24, 0xba0ec4.0p-25, -0x1273089d3dad89.0p-79 },
+ { 0xb10000.0p-24, 0xbcf133.0p-25, 0x10f9f67b1f4bbf.0p-79 },
+ { 0xb00000.0p-24, 0xbfd7d2.0p-25, -0x109fab90486409.0p-80 },
+ { 0xaf0000.0p-24, 0xc2c2ac.0p-25, -0x1124680aa43333.0p-79 },
+ { 0xae8000.0p-24, 0xc439b3.0p-25, -0x1f360cc4710fc0.0p-80 },
+ { 0xad8000.0p-24, 0xc72afd.0p-25, -0x132d91f21d89c9.0p-80 },
+ { 0xac8000.0p-24, 0xca20a2.0p-25, -0x16bf9b4d1f8da8.0p-79 },
+ { 0xab8000.0p-24, 0xcd1aae.0p-25, 0x19deb5ce6a6a87.0p-81 },
+ { 0xaa8000.0p-24, 0xd0192f.0p-25, 0x1a29fb48f7d3cb.0p-79 },
+ { 0xaa0000.0p-24, 0xd19a20.0p-25, 0x1127d3c6457f9d.0p-81 },
+ { 0xa90000.0p-24, 0xd49f6a.0p-25, -0x1ba930e486a0ac.0p-81 },
+ { 0xa80000.0p-24, 0xd7a94b.0p-25, -0x1b6e645f31549e.0p-79 },
+ { 0xa70000.0p-24, 0xdab7d0.0p-25, 0x1118a425494b61.0p-80 },
+ { 0xa68000.0p-24, 0xdc40d5.0p-25, 0x1966f24d29d3a3.0p-80 },
+ { 0xa58000.0p-24, 0xdf566d.0p-25, -0x1d8e52eb2248f1.0p-82 },
+ { 0xa48000.0p-24, 0xe270ce.0p-25, -0x1ee370f96e6b68.0p-80 },
+ { 0xa40000.0p-24, 0xe3ffce.0p-25, 0x1d155324911f57.0p-80 },
+ { 0xa30000.0p-24, 0xe72179.0p-25, -0x1fe6e2f2f867d9.0p-80 },
+ { 0xa20000.0p-24, 0xea4812.0p-25, 0x1b7be9add7f4d4.0p-80 },
+ { 0xa18000.0p-24, 0xebdd3d.0p-25, 0x1b3cfb3f7511dd.0p-79 },
+ { 0xa08000.0p-24, 0xef0b5b.0p-25, -0x1220de1f730190.0p-79 },
+ { 0xa00000.0p-24, 0xf0a451.0p-25, -0x176364c9ac81cd.0p-80 },
+ { 0x9f0000.0p-24, 0xf3da16.0p-25, 0x1eed6b9aafac8d.0p-81 },
+ { 0x9e8000.0p-24, 0xf576e9.0p-25, 0x1d593218675af2.0p-79 },
+ { 0x9d8000.0p-24, 0xf8b47c.0p-25, -0x13e8eb7da053e0.0p-84 },
+ { 0x9d0000.0p-24, 0xfa553f.0p-25, 0x1c063259bcade0.0p-79 },
+ { 0x9c0000.0p-24, 0xfd9ac5.0p-25, 0x1ef491085fa3c1.0p-79 },
+ { 0x9b8000.0p-24, 0xff3f8c.0p-25, 0x1d607a7c2b8c53.0p-79 },
+ { 0x9a8000.0p-24, 0x814697.0p-24, -0x12ad3817004f3f.0p-78 },
+ { 0x9a0000.0p-24, 0x821b06.0p-24, -0x189fc53117f9e5.0p-81 },
+ { 0x990000.0p-24, 0x83c5f8.0p-24, 0x14cf15a048907b.0p-79 },
+ { 0x988000.0p-24, 0x849c7d.0p-24, 0x1cbb1d35fb8287.0p-78 },
+ { 0x978000.0p-24, 0x864ba6.0p-24, 0x1128639b814f9c.0p-78 },
+ { 0x970000.0p-24, 0x87244c.0p-24, 0x184733853300f0.0p-79 },
+ { 0x968000.0p-24, 0x87fdaa.0p-24, 0x109d23aef77dd6.0p-80 },
+ { 0x958000.0p-24, 0x89b293.0p-24, -0x1a81ef367a59de.0p-78 },
+ { 0x950000.0p-24, 0x8a8e20.0p-24, -0x121ad3dbb2f452.0p-78 },
+ { 0x948000.0p-24, 0x8b6a6a.0p-24, -0x1cfb981628af72.0p-79 },
+ { 0x938000.0p-24, 0x8d253a.0p-24, -0x1d21730ea76cfe.0p-79 },
+ { 0x930000.0p-24, 0x8e03c2.0p-24, 0x135cc00e566f77.0p-78 },
+ { 0x928000.0p-24, 0x8ee30d.0p-24, -0x10fcb5df257a26.0p-80 },
+ { 0x918000.0p-24, 0x90a3ee.0p-24, -0x16e171b15433d7.0p-79 },
+ { 0x910000.0p-24, 0x918587.0p-24, -0x1d050da07f3237.0p-79 },
+ { 0x908000.0p-24, 0x9267e7.0p-24, 0x1be03669a5268d.0p-79 },
+ { 0x8f8000.0p-24, 0x942f04.0p-24, 0x10b28e0e26c337.0p-79 },
+ { 0x8f0000.0p-24, 0x9513c3.0p-24, 0x1a1d820da57cf3.0p-78 },
+ { 0x8e8000.0p-24, 0x95f950.0p-24, -0x19ef8f13ae3cf1.0p-79 },
+ { 0x8e0000.0p-24, 0x96dfab.0p-24, -0x109e417a6e507c.0p-78 },
+ { 0x8d0000.0p-24, 0x98aed2.0p-24, 0x10d01a2c5b0e98.0p-79 },
+ { 0x8c8000.0p-24, 0x9997a2.0p-24, -0x1d6a50d4b61ea7.0p-78 },
+ { 0x8c0000.0p-24, 0x9a8145.0p-24, 0x1b3b190b83f952.0p-78 },
+ { 0x8b8000.0p-24, 0x9b6bbf.0p-24, 0x13a69fad7e7abe.0p-78 },
+ { 0x8b0000.0p-24, 0x9c5711.0p-24, -0x11cd12316f576b.0p-78 },
+ { 0x8a8000.0p-24, 0x9d433b.0p-24, 0x1c95c444b807a2.0p-79 },
+ { 0x898000.0p-24, 0x9f1e22.0p-24, -0x1b9c224ea698c3.0p-79 },
+ { 0x890000.0p-24, 0xa00ce1.0p-24, 0x125ca93186cf0f.0p-81 },
+ { 0x888000.0p-24, 0xa0fc80.0p-24, -0x1ee38a7bc228b3.0p-79 },
+ { 0x880000.0p-24, 0xa1ed00.0p-24, -0x1a0db876613d20.0p-78 },
+ { 0x878000.0p-24, 0xa2de62.0p-24, 0x193224e8516c01.0p-79 },
+ { 0x870000.0p-24, 0xa3d0a9.0p-24, 0x1fa28b4d2541ad.0p-79 },
+ { 0x868000.0p-24, 0xa4c3d6.0p-24, 0x1c1b5760fb4572.0p-78 },
+ { 0x858000.0p-24, 0xa6acea.0p-24, 0x1fed5d0f65949c.0p-80 },
+ { 0x850000.0p-24, 0xa7a2d4.0p-24, 0x1ad270c9d74936.0p-80 },
+ { 0x848000.0p-24, 0xa899ab.0p-24, 0x199ff15ce53266.0p-79 },
+ { 0x840000.0p-24, 0xa99171.0p-24, 0x1a19e15ccc45d2.0p-79 },
+ { 0x838000.0p-24, 0xaa8a28.0p-24, -0x121a14ec532b36.0p-80 },
+ { 0x830000.0p-24, 0xab83d1.0p-24, 0x1aee319980bff3.0p-79 },
+ { 0x828000.0p-24, 0xac7e6f.0p-24, -0x18ffd9e3900346.0p-80 },
+ { 0x820000.0p-24, 0xad7a03.0p-24, -0x1e4db102ce29f8.0p-80 },
+ { 0x818000.0p-24, 0xae768f.0p-24, 0x17c35c55a04a83.0p-81 },
+ { 0x810000.0p-24, 0xaf7415.0p-24, 0x1448324047019b.0p-78 },
+ { 0x808000.0p-24, 0xb07298.0p-24, -0x1750ee3915a198.0p-78 },
+ { 0x800000.0p-24, 0xb17218.0p-24, -0x105c610ca86c39.0p-81 },
};
#ifdef USE_UTAB
@@ -288,135 +288,135 @@ static const struct {
float H; /* 1 + i/INTERVALS (exact) */
float E; /* H(i) * G(i) - 1 (exact) */
} U[TSIZE] = {
- 0x800000.0p-23, 0,
- 0x810000.0p-23, -0x800000.0p-37,
- 0x820000.0p-23, -0x800000.0p-35,
- 0x830000.0p-23, -0x900000.0p-34,
- 0x840000.0p-23, -0x800000.0p-33,
- 0x850000.0p-23, -0xc80000.0p-33,
- 0x860000.0p-23, -0xa00000.0p-36,
- 0x870000.0p-23, 0x940000.0p-33,
- 0x880000.0p-23, 0x800000.0p-35,
- 0x890000.0p-23, -0xc80000.0p-34,
- 0x8a0000.0p-23, 0xe00000.0p-36,
- 0x8b0000.0p-23, 0x900000.0p-33,
- 0x8c0000.0p-23, -0x800000.0p-35,
- 0x8d0000.0p-23, -0xe00000.0p-33,
- 0x8e0000.0p-23, 0x880000.0p-33,
- 0x8f0000.0p-23, -0xa80000.0p-34,
- 0x900000.0p-23, -0x800000.0p-35,
- 0x910000.0p-23, 0x800000.0p-37,
- 0x920000.0p-23, 0x900000.0p-35,
- 0x930000.0p-23, 0xd00000.0p-35,
- 0x940000.0p-23, 0xe00000.0p-35,
- 0x950000.0p-23, 0xc00000.0p-35,
- 0x960000.0p-23, 0xe00000.0p-36,
- 0x970000.0p-23, -0x800000.0p-38,
- 0x980000.0p-23, -0xc00000.0p-35,
- 0x990000.0p-23, -0xd00000.0p-34,
- 0x9a0000.0p-23, 0x880000.0p-33,
- 0x9b0000.0p-23, 0xe80000.0p-35,
- 0x9c0000.0p-23, -0x800000.0p-35,
- 0x9d0000.0p-23, 0xb40000.0p-33,
- 0x9e0000.0p-23, 0x880000.0p-34,
- 0x9f0000.0p-23, -0xe00000.0p-35,
- 0xa00000.0p-23, 0x800000.0p-33,
- 0xa10000.0p-23, -0x900000.0p-36,
- 0xa20000.0p-23, -0xb00000.0p-33,
- 0xa30000.0p-23, -0xa00000.0p-36,
- 0xa40000.0p-23, 0x800000.0p-33,
- 0xa50000.0p-23, -0xf80000.0p-35,
- 0xa60000.0p-23, 0x880000.0p-34,
- 0xa70000.0p-23, -0x900000.0p-33,
- 0xa80000.0p-23, -0x800000.0p-35,
- 0xa90000.0p-23, 0x900000.0p-34,
- 0xaa0000.0p-23, 0xa80000.0p-33,
- 0xab0000.0p-23, -0xac0000.0p-34,
- 0xac0000.0p-23, -0x800000.0p-37,
- 0xad0000.0p-23, 0xf80000.0p-35,
- 0xae0000.0p-23, 0xf80000.0p-34,
- 0xaf0000.0p-23, -0xac0000.0p-33,
- 0xb00000.0p-23, -0x800000.0p-33,
- 0xb10000.0p-23, -0xb80000.0p-34,
- 0xb20000.0p-23, -0x800000.0p-34,
- 0xb30000.0p-23, -0xb00000.0p-35,
- 0xb40000.0p-23, -0x800000.0p-35,
- 0xb50000.0p-23, -0xe00000.0p-36,
- 0xb60000.0p-23, -0x800000.0p-35,
- 0xb70000.0p-23, -0xb00000.0p-35,
- 0xb80000.0p-23, -0x800000.0p-34,
- 0xb90000.0p-23, -0xb80000.0p-34,
- 0xba0000.0p-23, -0x800000.0p-33,
- 0xbb0000.0p-23, -0xac0000.0p-33,
- 0xbc0000.0p-23, 0x980000.0p-33,
- 0xbd0000.0p-23, 0xbc0000.0p-34,
- 0xbe0000.0p-23, 0xe00000.0p-36,
- 0xbf0000.0p-23, -0xb80000.0p-35,
- 0xc00000.0p-23, -0x800000.0p-33,
- 0xc10000.0p-23, 0xa80000.0p-33,
- 0xc20000.0p-23, 0x900000.0p-34,
- 0xc30000.0p-23, -0x800000.0p-35,
- 0xc40000.0p-23, -0x900000.0p-33,
- 0xc50000.0p-23, 0x820000.0p-33,
- 0xc60000.0p-23, 0x800000.0p-38,
- 0xc70000.0p-23, -0x820000.0p-33,
- 0xc80000.0p-23, 0x800000.0p-33,
- 0xc90000.0p-23, -0xa00000.0p-36,
- 0xca0000.0p-23, -0xb00000.0p-33,
- 0xcb0000.0p-23, 0x840000.0p-34,
- 0xcc0000.0p-23, -0xd00000.0p-34,
- 0xcd0000.0p-23, 0x800000.0p-33,
- 0xce0000.0p-23, -0xe00000.0p-35,
- 0xcf0000.0p-23, 0xa60000.0p-33,
- 0xd00000.0p-23, -0x800000.0p-35,
- 0xd10000.0p-23, 0xb40000.0p-33,
- 0xd20000.0p-23, -0x800000.0p-35,
- 0xd30000.0p-23, 0xaa0000.0p-33,
- 0xd40000.0p-23, -0xe00000.0p-35,
- 0xd50000.0p-23, 0x880000.0p-33,
- 0xd60000.0p-23, -0xd00000.0p-34,
- 0xd70000.0p-23, 0x9c0000.0p-34,
- 0xd80000.0p-23, -0xb00000.0p-33,
- 0xd90000.0p-23, -0x800000.0p-38,
- 0xda0000.0p-23, 0xa40000.0p-33,
- 0xdb0000.0p-23, -0xdc0000.0p-34,
- 0xdc0000.0p-23, 0xc00000.0p-35,
- 0xdd0000.0p-23, 0xca0000.0p-33,
- 0xde0000.0p-23, -0xb80000.0p-34,
- 0xdf0000.0p-23, 0xd00000.0p-35,
- 0xe00000.0p-23, 0xc00000.0p-33,
- 0xe10000.0p-23, -0xf40000.0p-34,
- 0xe20000.0p-23, 0x800000.0p-37,
- 0xe30000.0p-23, 0x860000.0p-33,
- 0xe40000.0p-23, -0xc80000.0p-33,
- 0xe50000.0p-23, -0xa80000.0p-34,
- 0xe60000.0p-23, 0xe00000.0p-36,
- 0xe70000.0p-23, 0x880000.0p-33,
- 0xe80000.0p-23, -0xe00000.0p-33,
- 0xe90000.0p-23, -0xfc0000.0p-34,
- 0xea0000.0p-23, -0x800000.0p-35,
- 0xeb0000.0p-23, 0xe80000.0p-35,
- 0xec0000.0p-23, 0x900000.0p-33,
- 0xed0000.0p-23, 0xe20000.0p-33,
- 0xee0000.0p-23, -0xac0000.0p-33,
- 0xef0000.0p-23, -0xc80000.0p-34,
- 0xf00000.0p-23, -0x800000.0p-35,
- 0xf10000.0p-23, 0x800000.0p-35,
- 0xf20000.0p-23, 0xb80000.0p-34,
- 0xf30000.0p-23, 0x940000.0p-33,
- 0xf40000.0p-23, 0xc80000.0p-33,
- 0xf50000.0p-23, -0xf20000.0p-33,
- 0xf60000.0p-23, -0xc80000.0p-33,
- 0xf70000.0p-23, -0xa20000.0p-33,
- 0xf80000.0p-23, -0x800000.0p-33,
- 0xf90000.0p-23, -0xc40000.0p-34,
- 0xfa0000.0p-23, -0x900000.0p-34,
- 0xfb0000.0p-23, -0xc80000.0p-35,
- 0xfc0000.0p-23, -0x800000.0p-35,
- 0xfd0000.0p-23, -0x900000.0p-36,
- 0xfe0000.0p-23, -0x800000.0p-37,
- 0xff0000.0p-23, -0x800000.0p-39,
- 0x800000.0p-22, 0,
+ { 0x800000.0p-23, 0 },
+ { 0x810000.0p-23, -0x800000.0p-37 },
+ { 0x820000.0p-23, -0x800000.0p-35 },
+ { 0x830000.0p-23, -0x900000.0p-34 },
+ { 0x840000.0p-23, -0x800000.0p-33 },
+ { 0x850000.0p-23, -0xc80000.0p-33 },
+ { 0x860000.0p-23, -0xa00000.0p-36 },
+ { 0x870000.0p-23, 0x940000.0p-33 },
+ { 0x880000.0p-23, 0x800000.0p-35 },
+ { 0x890000.0p-23, -0xc80000.0p-34 },
+ { 0x8a0000.0p-23, 0xe00000.0p-36 },
+ { 0x8b0000.0p-23, 0x900000.0p-33 },
+ { 0x8c0000.0p-23, -0x800000.0p-35 },
+ { 0x8d0000.0p-23, -0xe00000.0p-33 },
+ { 0x8e0000.0p-23, 0x880000.0p-33 },
+ { 0x8f0000.0p-23, -0xa80000.0p-34 },
+ { 0x900000.0p-23, -0x800000.0p-35 },
+ { 0x910000.0p-23, 0x800000.0p-37 },
+ { 0x920000.0p-23, 0x900000.0p-35 },
+ { 0x930000.0p-23, 0xd00000.0p-35 },
+ { 0x940000.0p-23, 0xe00000.0p-35 },
+ { 0x950000.0p-23, 0xc00000.0p-35 },
+ { 0x960000.0p-23, 0xe00000.0p-36 },
+ { 0x970000.0p-23, -0x800000.0p-38 },
+ { 0x980000.0p-23, -0xc00000.0p-35 },
+ { 0x990000.0p-23, -0xd00000.0p-34 },
+ { 0x9a0000.0p-23, 0x880000.0p-33 },
+ { 0x9b0000.0p-23, 0xe80000.0p-35 },
+ { 0x9c0000.0p-23, -0x800000.0p-35 },
+ { 0x9d0000.0p-23, 0xb40000.0p-33 },
+ { 0x9e0000.0p-23, 0x880000.0p-34 },
+ { 0x9f0000.0p-23, -0xe00000.0p-35 },
+ { 0xa00000.0p-23, 0x800000.0p-33 },
+ { 0xa10000.0p-23, -0x900000.0p-36 },
+ { 0xa20000.0p-23, -0xb00000.0p-33 },
+ { 0xa30000.0p-23, -0xa00000.0p-36 },
+ { 0xa40000.0p-23, 0x800000.0p-33 },
+ { 0xa50000.0p-23, -0xf80000.0p-35 },
+ { 0xa60000.0p-23, 0x880000.0p-34 },
+ { 0xa70000.0p-23, -0x900000.0p-33 },
+ { 0xa80000.0p-23, -0x800000.0p-35 },
+ { 0xa90000.0p-23, 0x900000.0p-34 },
+ { 0xaa0000.0p-23, 0xa80000.0p-33 },
+ { 0xab0000.0p-23, -0xac0000.0p-34 },
+ { 0xac0000.0p-23, -0x800000.0p-37 },
+ { 0xad0000.0p-23, 0xf80000.0p-35 },
+ { 0xae0000.0p-23, 0xf80000.0p-34 },
+ { 0xaf0000.0p-23, -0xac0000.0p-33 },
+ { 0xb00000.0p-23, -0x800000.0p-33 },
+ { 0xb10000.0p-23, -0xb80000.0p-34 },
+ { 0xb20000.0p-23, -0x800000.0p-34 },
+ { 0xb30000.0p-23, -0xb00000.0p-35 },
+ { 0xb40000.0p-23, -0x800000.0p-35 },
+ { 0xb50000.0p-23, -0xe00000.0p-36 },
+ { 0xb60000.0p-23, -0x800000.0p-35 },
+ { 0xb70000.0p-23, -0xb00000.0p-35 },
+ { 0xb80000.0p-23, -0x800000.0p-34 },
+ { 0xb90000.0p-23, -0xb80000.0p-34 },
+ { 0xba0000.0p-23, -0x800000.0p-33 },
+ { 0xbb0000.0p-23, -0xac0000.0p-33 },
+ { 0xbc0000.0p-23, 0x980000.0p-33 },
+ { 0xbd0000.0p-23, 0xbc0000.0p-34 },
+ { 0xbe0000.0p-23, 0xe00000.0p-36 },
+ { 0xbf0000.0p-23, -0xb80000.0p-35 },
+ { 0xc00000.0p-23, -0x800000.0p-33 },
+ { 0xc10000.0p-23, 0xa80000.0p-33 },
+ { 0xc20000.0p-23, 0x900000.0p-34 },
+ { 0xc30000.0p-23, -0x800000.0p-35 },
+ { 0xc40000.0p-23, -0x900000.0p-33 },
+ { 0xc50000.0p-23, 0x820000.0p-33 },
+ { 0xc60000.0p-23, 0x800000.0p-38 },
+ { 0xc70000.0p-23, -0x820000.0p-33 },
+ { 0xc80000.0p-23, 0x800000.0p-33 },
+ { 0xc90000.0p-23, -0xa00000.0p-36 },
+ { 0xca0000.0p-23, -0xb00000.0p-33 },
+ { 0xcb0000.0p-23, 0x840000.0p-34 },
+ { 0xcc0000.0p-23, -0xd00000.0p-34 },
+ { 0xcd0000.0p-23, 0x800000.0p-33 },
+ { 0xce0000.0p-23, -0xe00000.0p-35 },
+ { 0xcf0000.0p-23, 0xa60000.0p-33 },
+ { 0xd00000.0p-23, -0x800000.0p-35 },
+ { 0xd10000.0p-23, 0xb40000.0p-33 },
+ { 0xd20000.0p-23, -0x800000.0p-35 },
+ { 0xd30000.0p-23, 0xaa0000.0p-33 },
+ { 0xd40000.0p-23, -0xe00000.0p-35 },
+ { 0xd50000.0p-23, 0x880000.0p-33 },
+ { 0xd60000.0p-23, -0xd00000.0p-34 },
+ { 0xd70000.0p-23, 0x9c0000.0p-34 },
+ { 0xd80000.0p-23, -0xb00000.0p-33 },
+ { 0xd90000.0p-23, -0x800000.0p-38 },
+ { 0xda0000.0p-23, 0xa40000.0p-33 },
+ { 0xdb0000.0p-23, -0xdc0000.0p-34 },
+ { 0xdc0000.0p-23, 0xc00000.0p-35 },
+ { 0xdd0000.0p-23, 0xca0000.0p-33 },
+ { 0xde0000.0p-23, -0xb80000.0p-34 },
+ { 0xdf0000.0p-23, 0xd00000.0p-35 },
+ { 0xe00000.0p-23, 0xc00000.0p-33 },
+ { 0xe10000.0p-23, -0xf40000.0p-34 },
+ { 0xe20000.0p-23, 0x800000.0p-37 },
+ { 0xe30000.0p-23, 0x860000.0p-33 },
+ { 0xe40000.0p-23, -0xc80000.0p-33 },
+ { 0xe50000.0p-23, -0xa80000.0p-34 },
+ { 0xe60000.0p-23, 0xe00000.0p-36 },
+ { 0xe70000.0p-23, 0x880000.0p-33 },
+ { 0xe80000.0p-23, -0xe00000.0p-33 },
+ { 0xe90000.0p-23, -0xfc0000.0p-34 },
+ { 0xea0000.0p-23, -0x800000.0p-35 },
+ { 0xeb0000.0p-23, 0xe80000.0p-35 },
+ { 0xec0000.0p-23, 0x900000.0p-33 },
+ { 0xed0000.0p-23, 0xe20000.0p-33 },
+ { 0xee0000.0p-23, -0xac0000.0p-33 },
+ { 0xef0000.0p-23, -0xc80000.0p-34 },
+ { 0xf00000.0p-23, -0x800000.0p-35 },
+ { 0xf10000.0p-23, 0x800000.0p-35 },
+ { 0xf20000.0p-23, 0xb80000.0p-34 },
+ { 0xf30000.0p-23, 0x940000.0p-33 },
+ { 0xf40000.0p-23, 0xc80000.0p-33 },
+ { 0xf50000.0p-23, -0xf20000.0p-33 },
+ { 0xf60000.0p-23, -0xc80000.0p-33 },
+ { 0xf70000.0p-23, -0xa20000.0p-33 },
+ { 0xf80000.0p-23, -0x800000.0p-33 },
+ { 0xf90000.0p-23, -0xc40000.0p-34 },
+ { 0xfa0000.0p-23, -0x900000.0p-34 },
+ { 0xfb0000.0p-23, -0xc80000.0p-35 },
+ { 0xfc0000.0p-23, -0x800000.0p-35 },
+ { 0xfd0000.0p-23, -0x900000.0p-36 },
+ { 0xfe0000.0p-23, -0x800000.0p-37 },
+ { 0xff0000.0p-23, -0x800000.0p-39 },
+ { 0x800000.0p-22, 0 },
};
#endif /* USE_UTAB */
diff --git a/lib/msun/man/cacos.3 b/lib/msun/man/cacos.3
index 02f3f74..6d9f20a 100644
--- a/lib/msun/man/cacos.3
+++ b/lib/msun/man/cacos.3
@@ -24,23 +24,29 @@
.\"
.\" $FreeBSD$
.\"
-.Dd Jul 14, 2015
+.Dd February 15, 2017
.Dt CACOS 3
.Os
.Sh NAME
.Nm cacos ,
.Nm cacosf ,
+.Nm cacosl ,
.Nm cacosh ,
.Nm cacoshf ,
+.Nm cacoshl ,
.Nm casin ,
-.Nm casinf
+.Nm casinf ,
+.Nm casinl ,
.Nm casinh ,
-.Nm casinhf
-.Nm catan ,
-.Nm catanf
+.Nm casinhf ,
+.Nm casinhl ,
+.Nm catan ,
+.Nm catanf ,
+.Nm catanl ,
.Nm catanh ,
-.Nm catanhf
-.Nd complex arc trigonometric and hyperbolic functions
+.Nm catanhf ,
+.Nm catanhl
+.Nd complex inverse trigonometric and hyperbolic functions
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
@@ -49,26 +55,38 @@
.Fn cacos "double complex z"
.Ft float complex
.Fn cacosf "float complex z"
+.Ft long double complex
+.Fn cacosl "long double complex z"
.Ft double complex
.Fn cacosh "double complex z"
.Ft float complex
.Fn cacoshf "float complex z"
+.Ft long double complex
+.Fn cacoshl "long double complex z"
.Ft double complex
.Fn casin "double complex z"
.Ft float complex
.Fn casinf "float complex z"
+.Ft long double complex
+.Fn casinl "long double complex z"
.Ft double complex
.Fn casinh "double complex z"
.Ft float complex
.Fn casinhf "float complex z"
+.Ft long double complex
+.Fn casinhl "long double complex z"
.Ft double complex
.Fn catan "double complex z"
.Ft float complex
.Fn catanf "float complex z"
+.Ft long double complex
+.Fn catanl "long double complex z"
.Ft double complex
.Fn catanh "double complex z"
.Ft float complex
.Fn catanhf "float complex z"
+.Ft long double complex
+.Fn catanhl "long double complex z"
.Sh DESCRIPTION
The
.Fn cacos ,
@@ -97,10 +115,22 @@ and
functions perform the same operations in
.Fa float
precision.
+The
+.Fn cacosl ,
+.Fn casinl ,
+.Fn catanl
+.Fn cacoshl ,
+.Fn casinhl ,
+and
+.Fn catanhl
+functions perform the same operations in
+.Fa long double
+precision.
.Pp
.ds Un \[cu]
There is no universal convention for defining the principal values of
-these functions. The following table gives the branch cuts, and the
+these functions.
+The following table gives the branch cuts, and the
corresponding ranges for the return values, adopted by the C language.
.Bl -column ".Sy Function" ".Sy (-\*(If*I, -I) \*(Un (I, \*(If*I)" ".Sy [-\*(Pi/2*I, \*(Pi/2*I]"
.It Sy Function Ta Sy Branch Cut(s) Ta Sy Range
diff --git a/lib/msun/man/sincos.3 b/lib/msun/man/sincos.3
new file mode 100644
index 0000000..9c42a96
--- /dev/null
+++ b/lib/msun/man/sincos.3
@@ -0,0 +1,82 @@
+.\" Copyright (c) 2011 Steven G. Kargl.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd March 12, 2011
+.Dt SINCOS 3
+.Os
+.Sh NAME
+.Nm sincos ,
+.Nm sincosf ,
+.Nm sincosl
+.Nd sine and cosine functions
+.Sh LIBRARY
+.Lb libm
+.Sh SYNOPSIS
+.In math.h
+.Ft void
+.Fn sincos "double x" "double *s" "double *c"
+.Ft void
+.Fn sincosf "float x" "float *s" "float *c"
+.Ft void
+.Fn sincosl "long double x" "long double *s" "long double *c"
+.Sh DESCRIPTION
+The
+.Fn sincos ,
+.Fn sincosf ,
+and
+.Fn sincosl
+functions compute the sine and cosine of
+.Fa x .
+Using these functions allows argument reduction to occur only
+once instead of twice with individual invocations of
+.Fn sin
+and
+.Fn cos .
+Like
+.Fn sin
+and
+.Fn cos ,
+a large magnitude argument may yield a result with little
+or no significance.
+.Sh RETURN VALUES
+Upon returning from
+.Fn sincos ,
+.Fn sincosf ,
+and
+.Fn sincosl ,
+the memory pointed to by
+.Ar "*s"
+and
+.Ar "*c"
+are assigned the values of sine and cosine, respectively.
+.Sh SEE ALSO
+.Xr cos 3 ,
+.Xr sin 3 ,
+.Sh HISTORY
+These functions were added to
+.Fx 9.0
+to aid in writing various complex function contained in
+.St -isoC-99 .
+
diff --git a/lib/msun/src/catrig.c b/lib/msun/src/catrig.c
index f392862..ebfe356 100644
--- a/lib/msun/src/catrig.c
+++ b/lib/msun/src/catrig.c
@@ -637,3 +637,12 @@ catan(double complex z)
return (CMPLX(cimag(w), creal(w)));
}
+
+#if LDBL_MANT_DIG == 53
+__weak_reference(cacosh, cacoshl);
+__weak_reference(cacos, cacosl);
+__weak_reference(casinh, casinhl);
+__weak_reference(casin, casinl);
+__weak_reference(catanh, catanhl);
+__weak_reference(catan, catanl);
+#endif
diff --git a/lib/msun/src/catrigl.c b/lib/msun/src/catrigl.c
new file mode 100644
index 0000000..b798570
--- /dev/null
+++ b/lib/msun/src/catrigl.c
@@ -0,0 +1,417 @@
+/*-
+ * Copyright (c) 2012 Stephen Montgomery-Smith <stephen@FreeBSD.ORG>
+ * Copyright (c) 2017 Mahdi Mokhtari <mmokhi@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * The algorithm is very close to that in "Implementing the complex arcsine
+ * and arccosine functions using exception handling" by T. E. Hull, Thomas F.
+ * Fairgrieve, and Ping Tak Peter Tang, published in ACM Transactions on
+ * Mathematical Software, Volume 23 Issue 3, 1997, Pages 299-335,
+ * http://dl.acm.org/citation.cfm?id=275324.
+ *
+ * See catrig.c for complete comments.
+ *
+ * XXX comments were removed automatically, and even short ones on the right
+ * of statements were removed (all of them), contrary to normal style. Only
+ * a few comments on the right of declarations remain.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <complex.h>
+#include <float.h>
+
+#include "invtrig.h"
+#include "math.h"
+#include "math_private.h"
+
+#undef isinf
+#define isinf(x) (fabsl(x) == INFINITY)
+#undef isnan
+#define isnan(x) ((x) != (x))
+#define raise_inexact() do { volatile float junk __unused = 1 + tiny; } while(0)
+#undef signbit
+#define signbit(x) (__builtin_signbitl(x))
+
+#if LDBL_MAX_EXP != 0x4000
+#error "Unsupported long double format"
+#endif
+
+static const long double
+A_crossover = 10,
+B_crossover = 0.6417,
+FOUR_SQRT_MIN = 0x1p-8189L,
+HALF_MAX = 0x1p16383L,
+QUARTER_SQRT_MAX = 0x1p8189L,
+RECIP_EPSILON = 1 / LDBL_EPSILON,
+SQRT_MIN = 0x1p-8191L;
+
+#if LDBL_MANT_DIG == 64
+static const union IEEEl2bits
+um_e = LD80C(0xadf85458a2bb4a9b, 1, 2.71828182845904523536e+0L),
+um_ln2 = LD80C(0xb17217f7d1cf79ac, -1, 6.93147180559945309417e-1L);
+#define m_e um_e.e
+#define m_ln2 um_ln2.e
+static const long double
+/* The next 2 literals for non-i386. Misrounding them on i386 is harmless. */
+SQRT_3_EPSILON = 5.70316273435758915310e-10, /* 0x9cc470a0490973e8.0p-94 */
+SQRT_6_EPSILON = 8.06549008734932771664e-10; /* 0xddb3d742c265539e.0p-94 */
+#elif LDBL_MANT_DIG == 113
+static const long double
+m_e = 2.71828182845904523536028747135266250e0L, /* 0x15bf0a8b1457695355fb8ac404e7a.0p-111 */
+m_ln2 = 6.93147180559945309417232121458176568e-1L, /* 0x162e42fefa39ef35793c7673007e6.0p-113 */
+SQRT_3_EPSILON = 2.40370335797945490975336727199878124e-17, /* 0x1bb67ae8584caa73b25742d7078b8.0p-168 */
+SQRT_6_EPSILON = 3.39934988877629587239082586223300391e-17; /* 0x13988e1409212e7d0321914321a55.0p-167 */
+#else
+#error "Unsupported long double format"
+#endif
+
+static const volatile float
+tiny = 0x1p-100;
+
+static long double complex clog_for_large_values(long double complex z);
+
+static inline long double
+f(long double a, long double b, long double hypot_a_b)
+{
+ if (b < 0)
+ return ((hypot_a_b - b) / 2);
+ if (b == 0)
+ return (a / 2);
+ return (a * a / (hypot_a_b + b) / 2);
+}
+
+static inline void
+do_hard_work(long double x, long double y, long double *rx, int *B_is_usable,
+ long double *B, long double *sqrt_A2my2, long double *new_y)
+{
+ long double R, S, A;
+ long double Am1, Amy;
+
+ R = hypotl(x, y + 1);
+ S = hypotl(x, y - 1);
+
+ A = (R + S) / 2;
+ if (A < 1)
+ A = 1;
+
+ if (A < A_crossover) {
+ if (y == 1 && x < LDBL_EPSILON * LDBL_EPSILON / 128) {
+ *rx = sqrtl(x);
+ } else if (x >= LDBL_EPSILON * fabsl(y - 1)) {
+ Am1 = f(x, 1 + y, R) + f(x, 1 - y, S);
+ *rx = log1pl(Am1 + sqrtl(Am1 * (A + 1)));
+ } else if (y < 1) {
+ *rx = x / sqrtl((1 - y) * (1 + y));
+ } else {
+ *rx = log1pl((y - 1) + sqrtl((y - 1) * (y + 1)));
+ }
+ } else {
+ *rx = logl(A + sqrtl(A * A - 1));
+ }
+
+ *new_y = y;
+
+ if (y < FOUR_SQRT_MIN) {
+ *B_is_usable = 0;
+ *sqrt_A2my2 = A * (2 / LDBL_EPSILON);
+ *new_y = y * (2 / LDBL_EPSILON);
+ return;
+ }
+
+ *B = y / A;
+ *B_is_usable = 1;
+
+ if (*B > B_crossover) {
+ *B_is_usable = 0;
+ if (y == 1 && x < LDBL_EPSILON / 128) {
+ *sqrt_A2my2 = sqrtl(x) * sqrtl((A + y) / 2);
+ } else if (x >= LDBL_EPSILON * fabsl(y - 1)) {
+ Amy = f(x, y + 1, R) + f(x, y - 1, S);
+ *sqrt_A2my2 = sqrtl(Amy * (A + y));
+ } else if (y > 1) {
+ *sqrt_A2my2 = x * (4 / LDBL_EPSILON / LDBL_EPSILON) * y /
+ sqrtl((y + 1) * (y - 1));
+ *new_y = y * (4 / LDBL_EPSILON / LDBL_EPSILON);
+ } else {
+ *sqrt_A2my2 = sqrtl((1 - y) * (1 + y));
+ }
+ }
+}
+
+long double complex
+casinhl(long double complex z)
+{
+ long double x, y, ax, ay, rx, ry, B, sqrt_A2my2, new_y;
+ int B_is_usable;
+ long double complex w;
+
+ x = creall(z);
+ y = cimagl(z);
+ ax = fabsl(x);
+ ay = fabsl(y);
+
+ if (isnan(x) || isnan(y)) {
+ if (isinf(x))
+ return (CMPLXL(x, y + y));
+ if (isinf(y))
+ return (CMPLXL(y, x + x));
+ if (y == 0)
+ return (CMPLXL(x + x, y));
+ return (CMPLXL(x + 0.0L + (y + 0), x + 0.0L + (y + 0)));
+ }
+
+ if (ax > RECIP_EPSILON || ay > RECIP_EPSILON) {
+ if (signbit(x) == 0)
+ w = clog_for_large_values(z) + m_ln2;
+ else
+ w = clog_for_large_values(-z) + m_ln2;
+ return (CMPLXL(copysignl(creall(w), x),
+ copysignl(cimagl(w), y)));
+ }
+
+ if (x == 0 && y == 0)
+ return (z);
+
+ raise_inexact();
+
+ if (ax < SQRT_6_EPSILON / 4 && ay < SQRT_6_EPSILON / 4)
+ return (z);
+
+ do_hard_work(ax, ay, &rx, &B_is_usable, &B, &sqrt_A2my2, &new_y);
+ if (B_is_usable)
+ ry = asinl(B);
+ else
+ ry = atan2l(new_y, sqrt_A2my2);
+ return (CMPLXL(copysignl(rx, x), copysignl(ry, y)));
+}
+
+long double complex
+casinl(long double complex z)
+{
+ long double complex w;
+
+ w = casinhl(CMPLXL(cimagl(z), creall(z)));
+ return (CMPLXL(cimagl(w), creall(w)));
+}
+
+long double complex
+cacosl(long double complex z)
+{
+ long double x, y, ax, ay, rx, ry, B, sqrt_A2mx2, new_x;
+ int sx, sy;
+ int B_is_usable;
+ long double complex w;
+
+ x = creall(z);
+ y = cimagl(z);
+ sx = signbit(x);
+ sy = signbit(y);
+ ax = fabsl(x);
+ ay = fabsl(y);
+
+ if (isnan(x) || isnan(y)) {
+ if (isinf(x))
+ return (CMPLXL(y + y, -INFINITY));
+ if (isinf(y))
+ return (CMPLXL(x + x, -y));
+ if (x == 0)
+ return (CMPLXL(pio2_hi + pio2_lo, y + y));
+ return (CMPLXL(x + 0.0L + (y + 0), x + 0.0L + (y + 0)));
+ }
+
+ if (ax > RECIP_EPSILON || ay > RECIP_EPSILON) {
+ w = clog_for_large_values(z);
+ rx = fabsl(cimagl(w));
+ ry = creall(w) + m_ln2;
+ if (sy == 0)
+ ry = -ry;
+ return (CMPLXL(rx, ry));
+ }
+
+ if (x == 1 && y == 0)
+ return (CMPLXL(0, -y));
+
+ raise_inexact();
+
+ if (ax < SQRT_6_EPSILON / 4 && ay < SQRT_6_EPSILON / 4)
+ return (CMPLXL(pio2_hi - (x - pio2_lo), -y));
+
+ do_hard_work(ay, ax, &ry, &B_is_usable, &B, &sqrt_A2mx2, &new_x);
+ if (B_is_usable) {
+ if (sx == 0)
+ rx = acosl(B);
+ else
+ rx = acosl(-B);
+ } else {
+ if (sx == 0)
+ rx = atan2l(sqrt_A2mx2, new_x);
+ else
+ rx = atan2l(sqrt_A2mx2, -new_x);
+ }
+ if (sy == 0)
+ ry = -ry;
+ return (CMPLXL(rx, ry));
+}
+
+long double complex
+cacoshl(long double complex z)
+{
+ long double complex w;
+ long double rx, ry;
+
+ w = cacosl(z);
+ rx = creall(w);
+ ry = cimagl(w);
+ if (isnan(rx) && isnan(ry))
+ return (CMPLXL(ry, rx));
+ if (isnan(rx))
+ return (CMPLXL(fabsl(ry), rx));
+ if (isnan(ry))
+ return (CMPLXL(ry, ry));
+ return (CMPLXL(fabsl(ry), copysignl(rx, cimagl(z))));
+}
+
+static long double complex
+clog_for_large_values(long double complex z)
+{
+ long double x, y;
+ long double ax, ay, t;
+
+ x = creall(z);
+ y = cimagl(z);
+ ax = fabsl(x);
+ ay = fabsl(y);
+ if (ax < ay) {
+ t = ax;
+ ax = ay;
+ ay = t;
+ }
+
+ if (ax > HALF_MAX)
+ return (CMPLXL(logl(hypotl(x / m_e, y / m_e)) + 1,
+ atan2l(y, x)));
+
+ if (ax > QUARTER_SQRT_MAX || ay < SQRT_MIN)
+ return (CMPLXL(logl(hypotl(x, y)), atan2l(y, x)));
+
+ return (CMPLXL(logl(ax * ax + ay * ay) / 2, atan2l(y, x)));
+}
+
+static inline long double
+sum_squares(long double x, long double y)
+{
+
+ if (y < SQRT_MIN)
+ return (x * x);
+
+ return (x * x + y * y);
+}
+
+static inline long double
+real_part_reciprocal(long double x, long double y)
+{
+ long double scale;
+ uint16_t hx, hy;
+ int16_t ix, iy;
+
+ GET_LDBL_EXPSIGN(hx, x);
+ ix = hx & 0x7fff;
+ GET_LDBL_EXPSIGN(hy, y);
+ iy = hy & 0x7fff;
+#define BIAS (LDBL_MAX_EXP - 1)
+#define CUTOFF (LDBL_MANT_DIG / 2 + 1)
+ if (ix - iy >= CUTOFF || isinf(x))
+ return (1 / x);
+ if (iy - ix >= CUTOFF)
+ return (x / y / y);
+ if (ix <= BIAS + LDBL_MAX_EXP / 2 - CUTOFF)
+ return (x / (x * x + y * y));
+ scale = 1;
+ SET_LDBL_EXPSIGN(scale, 0x7fff - ix);
+ x *= scale;
+ y *= scale;
+ return (x / (x * x + y * y) * scale);
+}
+
+long double complex
+catanhl(long double complex z)
+{
+ long double x, y, ax, ay, rx, ry;
+
+ x = creall(z);
+ y = cimagl(z);
+ ax = fabsl(x);
+ ay = fabsl(y);
+
+ if (y == 0 && ax <= 1)
+ return (CMPLXL(atanhl(x), y));
+
+ if (x == 0)
+ return (CMPLXL(x, atanl(y)));
+
+ if (isnan(x) || isnan(y)) {
+ if (isinf(x))
+ return (CMPLXL(copysignl(0, x), y + y));
+ if (isinf(y))
+ return (CMPLXL(copysignl(0, x),
+ copysignl(pio2_hi + pio2_lo, y)));
+ return (CMPLXL(x + 0.0L + (y + 0), x + 0.0L + (y + 0)));
+ }
+
+ if (ax > RECIP_EPSILON || ay > RECIP_EPSILON)
+ return (CMPLXL(real_part_reciprocal(x, y),
+ copysignl(pio2_hi + pio2_lo, y)));
+
+ if (ax < SQRT_3_EPSILON / 2 && ay < SQRT_3_EPSILON / 2) {
+ raise_inexact();
+ return (z);
+ }
+
+ if (ax == 1 && ay < LDBL_EPSILON)
+ rx = (m_ln2 - logl(ay)) / 2;
+ else
+ rx = log1pl(4 * ax / sum_squares(ax - 1, ay)) / 4;
+
+ if (ax == 1)
+ ry = atan2l(2, -ay) / 2;
+ else if (ay < LDBL_EPSILON)
+ ry = atan2l(2 * ay, (1 - ax) * (1 + ax)) / 2;
+ else
+ ry = atan2l(2 * ay, (1 - ax) * (1 + ax) - ay * ay) / 2;
+
+ return (CMPLXL(copysignl(rx, x), copysignl(ry, y)));
+}
+
+long double complex
+catanl(long double complex z)
+{
+ long double complex w;
+
+ w = catanhl(CMPLXL(cimagl(z), creall(z)));
+ return (CMPLXL(cimagl(w), creall(w)));
+}
diff --git a/lib/msun/src/e_asin.c b/lib/msun/src/e_asin.c
index 27de207..931b270 100644
--- a/lib/msun/src/e_asin.c
+++ b/lib/msun/src/e_asin.c
@@ -6,7 +6,7 @@
*
* Developed at SunSoft, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
diff --git a/lib/msun/src/e_coshl.c b/lib/msun/src/e_coshl.c
index 0a21277..4e3b283 100644
--- a/lib/msun/src/e_coshl.c
+++ b/lib/msun/src/e_coshl.c
@@ -86,7 +86,9 @@ long double
coshl(long double x)
{
long double hi,lo,x2,x4;
+#if LDBL_MANT_DIG == 113
double dx2;
+#endif
uint16_t ix;
GET_LDBL_EXPSIGN(ix,x);
diff --git a/lib/msun/src/e_lgammaf_r.c b/lib/msun/src/e_lgammaf_r.c
index 9084e18..48346c33 100644
--- a/lib/msun/src/e_lgammaf_r.c
+++ b/lib/msun/src/e_lgammaf_r.c
@@ -122,7 +122,7 @@ sin_pif(float x)
float
__ieee754_lgammaf_r(float x, int *signgamp)
{
- float nadj,p,p1,p2,p3,q,r,t,w,y,z;
+ float nadj,p,p1,p2,q,r,t,w,y,z;
int32_t hx;
int i,ix;
diff --git a/lib/msun/src/e_sinhl.c b/lib/msun/src/e_sinhl.c
index ce7e333..38d3df1 100644
--- a/lib/msun/src/e_sinhl.c
+++ b/lib/msun/src/e_sinhl.c
@@ -85,7 +85,10 @@ long double
sinhl(long double x)
{
long double hi,lo,x2,x4;
- double dx2,s;
+#if LDBL_MANT_DIG == 113
+ double dx2;
+#endif
+ double s;
int16_t ix,jx;
GET_LDBL_EXPSIGN(jx,x);
diff --git a/lib/msun/src/k_sincos.h b/lib/msun/src/k_sincos.h
new file mode 100644
index 0000000..6f03be2
--- /dev/null
+++ b/lib/msun/src/k_sincos.h
@@ -0,0 +1,52 @@
+/*-
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ * k_sin.c and k_cos.c merged by Steven G. Kargl.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+static const double
+S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */
+S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */
+S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */
+S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */
+S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
+S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
+
+static const double
+C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */
+C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */
+C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */
+C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */
+C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */
+C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */
+
+static inline void
+__kernel_sincos(double x, double y, int iy, double *sn, double *cs)
+{
+ double hz, r, v, w, z;
+
+ z = x * x;
+ w = z * z;
+ r = S2 + z * (S3 + z * S4) + z * w * (S5 + z * S6);
+ v = z * x;
+
+ if (iy == 0)
+ *sn = x + v * (S1 + z * r);
+ else
+ *sn = x - ((z * (y / 2 - v * r) - y) - v * S1);
+
+ r = z * (C1 + z * (C2 + z * C3)) + w * w * (C4 + z * (C5 + z * C6));
+ hz = z / 2;
+ w = 1 - hz;
+ *cs = w + (((1 - w) - hz) + (z * r - x * y));
+}
diff --git a/lib/msun/src/k_sincosf.h b/lib/msun/src/k_sincosf.h
new file mode 100644
index 0000000..073986d
--- /dev/null
+++ b/lib/msun/src/k_sincosf.h
@@ -0,0 +1,43 @@
+/*-
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ * k_sinf.c and k_cosf.c merged by Steven G. Kargl.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+/* |sin(x)/x - s(x)| < 2**-37.5 (~[-4.89e-12, 4.824e-12]). */
+static const double
+S1 = -0x15555554cbac77.0p-55, /* -0.166666666416265235595 */
+S2 = 0x111110896efbb2.0p-59, /* 0.0083333293858894631756 */
+S3 = -0x1a00f9e2cae774.0p-65, /* -0.000198393348360966317347 */
+S4 = 0x16cd878c3b46a7.0p-71; /* 0.0000027183114939898219064 */
+
+/* |cos(x) - c(x)| < 2**-34.1 (~[-5.37e-11, 5.295e-11]). */
+static const double
+C0 = -0x1ffffffd0c5e81.0p-54, /* -0.499999997251031003120 */
+C1 = 0x155553e1053a42.0p-57, /* 0.0416666233237390631894 */
+C2 = -0x16c087e80f1e27.0p-62, /* -0.00138867637746099294692 */
+C3 = 0x199342e0ee5069.0p-68; /* 0.0000243904487962774090654 */
+
+static inline void
+__kernel_sincosdf(double x, float *sn, float *cs)
+{
+ double r, s, w, z;
+
+ z = x * x;
+ w = z * z;
+ r = S3 + z * S4;
+ s = z * x;
+ *sn = (x + s * (S1 + z * S2)) + s * w * r;
+ r = C2 + z * C3;
+ *cs = ((1 + z * C0) + w * C1) + (w * z) * r;
+}
diff --git a/lib/msun/src/k_sincosl.h b/lib/msun/src/k_sincosl.h
new file mode 100644
index 0000000..3a609bc
--- /dev/null
+++ b/lib/msun/src/k_sincosl.h
@@ -0,0 +1,134 @@
+/*-
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ * Copyright (c) 2008 Steven G. Kargl, David Schultz, Bruce D. Evans.
+ *
+ * Developed at SunSoft, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ * k_sinl.c and k_cosl.c merged by Steven G. Kargl
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#if LDBL_MANT_DIG == 64 /* ld80 version of k_sincosl.c. */
+
+#if defined(__amd64__) || defined(__i386__)
+/* Long double constants are slow on these arches, and broken on i386. */
+static const volatile double
+C1hi = 0.041666666666666664, /* 0x15555555555555.0p-57 */
+C1lo = 2.2598839032744733e-18, /* 0x14d80000000000.0p-111 */
+S1hi = -0.16666666666666666, /* -0x15555555555555.0p-55 */
+S1lo = -9.2563760475949941e-18; /* -0x15580000000000.0p-109 */
+#define S1 ((long double)S1hi + S1lo)
+#define C1 ((long double)C1hi + C1lo)
+#else
+static const long double
+C1 = 0.0416666666666666666136L; /* 0xaaaaaaaaaaaaaa9b.0p-68 */
+S1 = -0.166666666666666666671L, /* -0xaaaaaaaaaaaaaaab.0p-66 */
+#endif
+
+static const double
+C2 = -0.0013888888888888874, /* -0x16c16c16c16c10.0p-62 */
+C3 = 0.000024801587301571716, /* 0x1a01a01a018e22.0p-68 */
+C4 = -0.00000027557319215507120, /* -0x127e4fb7602f22.0p-74 */
+C5 = 0.0000000020876754400407278, /* 0x11eed8caaeccf1.0p-81 */
+C6 = -1.1470297442401303e-11, /* -0x19393412bd1529.0p-89 */
+C7 = 4.7383039476436467e-14, /* 0x1aac9d9af5c43e.0p-97 */
+S2 = 0.0083333333333333332, /* 0x11111111111111.0p-59 */
+S3 = -0.00019841269841269427, /* -0x1a01a01a019f81.0p-65 */
+S4 = 0.0000027557319223597490, /* 0x171de3a55560f7.0p-71 */
+S5 = -0.000000025052108218074604, /* -0x1ae64564f16cad.0p-78 */
+S6 = 1.6059006598854211e-10, /* 0x161242b90243b5.0p-85 */
+S7 = -7.6429779983024564e-13, /* -0x1ae42ebd1b2e00.0p-93 */
+S8 = 2.6174587166648325e-15; /* 0x179372ea0b3f64.0p-101 */
+
+static inline void
+__kernel_sincosl(long double x, long double y, int iy, long double *sn,
+ long double *cs)
+{
+ long double hz, r, v, w, z;
+
+ z = x * x;
+ v = z * x;
+ /*
+ * XXX Replace Horner scheme with an algorithm suitable for CPUs
+ * with more complex pipelines.
+ */
+ r = S2 + z * (S3 + z * (S4 + z * (S5 + z * (S6 + z * (S7 + z * S8)))));
+
+ if (iy == 0)
+ *sn = x + v * (S1 + z * r);
+ else
+ *sn = x - ((z * (y / 2 - v * r) - y) - v * S1);
+
+ hz = z / 2;
+ w = 1 - hz;
+ r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * (C6 +
+ z * C7))))));
+ *cs = w + (((1 - w) - hz) + (z * r - x * y));
+}
+
+#elif LDBL_MANT_DIG == 113 /* ld128 version of k_sincosl.c. */
+
+static const long double
+C1 = 0.04166666666666666666666666666666658424671L,
+C2 = -0.001388888888888888888888888888863490893732L,
+C3 = 0.00002480158730158730158730158600795304914210L,
+C4 = -0.2755731922398589065255474947078934284324e-6L,
+C5 = 0.2087675698786809897659225313136400793948e-8L,
+C6 = -0.1147074559772972315817149986812031204775e-10L,
+C7 = 0.4779477332386808976875457937252120293400e-13L,
+S1 = -0.16666666666666666666666666666666666606732416116558L,
+S2 = 0.0083333333333333333333333333333331135404851288270047L,
+S3 = -0.00019841269841269841269841269839935785325638310428717L,
+S4 = 0.27557319223985890652557316053039946268333231205686e-5L,
+S5 = -0.25052108385441718775048214826384312253862930064745e-7L,
+S6 = 0.16059043836821614596571832194524392581082444805729e-9L,
+S7 = -0.76471637318198151807063387954939213287488216303768e-12L,
+S8 = 0.28114572543451292625024967174638477283187397621303e-14L;
+
+static const double
+C8 = -0.1561920696721507929516718307820958119868e-15,
+C9 = 0.4110317413744594971475941557607804508039e-18,
+C10 = -0.8896592467191938803288521958313920156409e-21,
+C11 = 0.1601061435794535138244346256065192782581e-23,
+S9 = -0.82206352458348947812512122163446202498005154296863e-17,
+S10 = 0.19572940011906109418080609928334380560135358385256e-19,
+S11 = -0.38680813379701966970673724299207480965452616911420e-22,
+S12 = 0.64038150078671872796678569586315881020659912139412e-25;
+
+static inline void
+__kernel_sincosl(long double x, long double y, int iy, long double *sn,
+ long double *cs)
+{
+ long double hz, r, v, w, z;
+
+ z = x * x;
+ v = z * x;
+ /*
+ * XXX Replace Horner scheme with an algorithm suitable for CPUs
+ * with more complex pipelines.
+ */
+ r = S2 + z * (S3 + z * (S4 + z * (S5 + z * (S6 + z * (S7 + z * (S8 +
+ z * (S9 + z * (S10 + z * (S11 + z * S12)))))))));
+
+ if (iy == 0)
+ *sn = x + v * (S1 + z * r);
+ else
+ *cs = x - ((z * (y / 2 - v * r) - y) - v * S1);
+
+ hz = z / 2;
+ w = 1 - hz;
+ r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * (C6 +
+ z * (C7 + z * (C8 + z * (C9 + z * (C10 + z * C11))))))))));
+
+ *cs = w + (((1 - w) - hz) + (z * r - x * y));
+}
+#else
+#error "Unsupported long double format"
+#endif
diff --git a/lib/msun/src/math.h b/lib/msun/src/math.h
index 2214c07..a8f4554 100644
--- a/lib/msun/src/math.h
+++ b/lib/msun/src/math.h
@@ -500,6 +500,9 @@ long double truncl(long double);
#if __BSD_VISIBLE
long double lgammal_r(long double, int *);
+void sincos(double, double *, double *);
+void sincosf(float, float *, float *);
+void sincosl(long double, long double *, long double *);
#endif
__END_DECLS
diff --git a/lib/msun/src/math_private.h b/lib/msun/src/math_private.h
index afaf201..7487902 100644
--- a/lib/msun/src/math_private.h
+++ b/lib/msun/src/math_private.h
@@ -306,9 +306,21 @@ do { \
fpsetprec(__oprec); \
RETURNF(__retval); \
} while (0)
+#define ENTERV() \
+ fp_prec_t __oprec; \
+ \
+ if ((__oprec = fpgetprec()) != FP_PE) \
+ fpsetprec(FP_PE)
+#define RETURNV() do { \
+ if (__oprec != FP_PE) \
+ fpsetprec(__oprec); \
+ return; \
+} while (0)
#else
-#define ENTERI(x)
+#define ENTERI()
#define RETURNI(x) RETURNF(x)
+#define ENTERV()
+#define RETURNV() return
#endif
/* Default return statement if hack*_t() is not used. */
diff --git a/lib/msun/src/s_fabs.c b/lib/msun/src/s_fabs.c
index 15529e5..48aab25 100644
--- a/lib/msun/src/s_fabs.c
+++ b/lib/msun/src/s_fabs.c
@@ -10,9 +10,8 @@
* ====================================================
*/
-#ifndef lint
-static char rcsid[] = "$FreeBSD$";
-#endif
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
/*
* fabs(x) returns the absolute value of x.
diff --git a/lib/msun/src/s_fmax.c b/lib/msun/src/s_fmax.c
index b51b865..77e27be 100644
--- a/lib/msun/src/s_fmax.c
+++ b/lib/msun/src/s_fmax.c
@@ -27,6 +27,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include <float.h>
#include <math.h>
#include "fpmath.h"
@@ -51,3 +52,7 @@ fmax(double x, double y)
return (x > y ? x : y);
}
+
+#if (LDBL_MANT_DIG == 53)
+__weak_reference(fmax, fmaxl);
+#endif
diff --git a/lib/msun/src/s_fmin.c b/lib/msun/src/s_fmin.c
index 3500c84..5545ff2 100644
--- a/lib/msun/src/s_fmin.c
+++ b/lib/msun/src/s_fmin.c
@@ -27,6 +27,7 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include <float.h>
#include <math.h>
#include "fpmath.h"
@@ -51,3 +52,7 @@ fmin(double x, double y)
return (x < y ? x : y);
}
+
+#if (LDBL_MANT_DIG == 53)
+__weak_reference(fmin, fminl);
+#endif
diff --git a/lib/msun/src/s_logbl.c b/lib/msun/src/s_logbl.c
index 7e88e36..ee1a91f 100644
--- a/lib/msun/src/s_logbl.c
+++ b/lib/msun/src/s_logbl.c
@@ -10,9 +10,8 @@
* ====================================================
*/
-#ifndef lint
-static char rcsid[] = "$FreeBSD$";
-#endif
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
#include <float.h>
#include <limits.h>
diff --git a/lib/msun/src/s_scalbn.c b/lib/msun/src/s_scalbn.c
index e7efaab..b048b05 100644
--- a/lib/msun/src/s_scalbn.c
+++ b/lib/msun/src/s_scalbn.c
@@ -10,9 +10,8 @@
* ====================================================
*/
-#ifndef lint
-static char rcsid[] = "$FreeBSD$";
-#endif
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
/*
* scalbn (double x, int n)
@@ -21,7 +20,6 @@ static char rcsid[] = "$FreeBSD$";
* exponentiation or a multiplication.
*/
-#include <sys/cdefs.h>
#include <float.h>
#include "math.h"
@@ -51,10 +49,12 @@ scalbn (double x, int n)
if (k > 0x7fe) return huge*copysign(huge,x); /* overflow */
if (k > 0) /* normal result */
{SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20)); return x;}
- if (k <= -54)
+ if (k <= -54) {
if (n > 50000) /* in case integer overflow in n+k */
return huge*copysign(huge,x); /*overflow*/
- else return tiny*copysign(tiny,x); /*underflow*/
+ else
+ return tiny*copysign(tiny,x); /*underflow*/
+ }
k += 54; /* subnormal result */
SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20));
return x*twom54;
diff --git a/lib/msun/src/s_scalbnf.c b/lib/msun/src/s_scalbnf.c
index 7666c74..21d001c 100644
--- a/lib/msun/src/s_scalbnf.c
+++ b/lib/msun/src/s_scalbnf.c
@@ -13,11 +13,8 @@
* ====================================================
*/
-#ifndef lint
-static char rcsid[] = "$FreeBSD$";
-#endif
-
#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
#include "math.h"
#include "math_private.h"
@@ -46,10 +43,12 @@ scalbnf (float x, int n)
if (k > 0xfe) return huge*copysignf(huge,x); /* overflow */
if (k > 0) /* normal result */
{SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;}
- if (k <= -25)
+ if (k <= -25) {
if (n > 50000) /* in case integer overflow in n+k */
return huge*copysignf(huge,x); /*overflow*/
- else return tiny*copysignf(tiny,x); /*underflow*/
+ else
+ return tiny*copysignf(tiny,x); /*underflow*/
+ }
k += 25; /* subnormal result */
SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23));
return x*twom25;
diff --git a/lib/msun/src/s_scalbnl.c b/lib/msun/src/s_scalbnl.c
index fc89f8d..28b0cf9 100644
--- a/lib/msun/src/s_scalbnl.c
+++ b/lib/msun/src/s_scalbnl.c
@@ -10,9 +10,8 @@
* ====================================================
*/
-#ifndef lint
-static char rcsid[] = "$FreeBSD$";
-#endif
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
/*
* scalbnl (long double x, int n)
@@ -27,7 +26,6 @@ static char rcsid[] = "$FreeBSD$";
* for scalbn(), so we don't use this routine.
*/
-#include <sys/cdefs.h>
#include <float.h>
#include <math.h>
@@ -59,10 +57,12 @@ scalbnl (long double x, int n)
if (k >= 0x7fff) return huge*copysignl(huge,x); /* overflow */
if (k > 0) /* normal result */
{u.bits.exp = k; return u.e;}
- if (k <= -128)
+ if (k <= -128) {
if (n > 50000) /* in case integer overflow in n+k */
return huge*copysign(huge,x); /*overflow*/
- else return tiny*copysign(tiny,x); /*underflow*/
+ else
+ return tiny*copysign(tiny,x); /*underflow*/
+ }
k += 128; /* subnormal result */
u.bits.exp = k;
return u.e*0x1p-128;
diff --git a/lib/msun/src/s_sincos.c b/lib/msun/src/s_sincos.c
new file mode 100644
index 0000000..85e8d74
--- /dev/null
+++ b/lib/msun/src/s_sincos.c
@@ -0,0 +1,80 @@
+/*-
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ *
+ * s_sin.c and s_cos.c merged by Steven G. Kargl. Descriptions of the
+ * algorithms are contained in the original files.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <float.h>
+
+#include "math.h"
+#define INLINE_REM_PIO2
+#include "math_private.h"
+#include "e_rem_pio2.c"
+#include "k_sincos.h"
+
+void
+sincos(double x, double *sn, double *cs)
+{
+ double y[2];
+ int32_t n, ix;
+
+ /* High word of x. */
+ GET_HIGH_WORD(ix, x);
+
+ /* |x| ~< pi/4 */
+ ix &= 0x7fffffff;
+ if (ix <= 0x3fe921fb) {
+ if (ix < 0x3e400000) { /* |x| < 2**-27 */
+ if ((int)x == 0) { /* Generate inexact. */
+ *sn = x;
+ *cs = 1;
+ return;
+ }
+ }
+ __kernel_sincos(x, 0, 0, sn, cs);
+ return;
+ }
+
+ /* If x = Inf or NaN, then sin(x) = NaN and cos(x) = NaN. */
+ if (ix >= 0x7ff00000) {
+ *sn = x - x;
+ *cs = x - x;
+ return;
+ }
+
+ /* Argument reduction. */
+ n = __ieee754_rem_pio2(x, y);
+
+ switch(n & 3) {
+ case 0:
+ __kernel_sincos(y[0], y[1], 1, sn, cs);
+ break;
+ case 1:
+ __kernel_sincos(y[0], y[1], 1, cs, sn);
+ *cs = -*cs;
+ break;
+ case 2:
+ __kernel_sincos(y[0], y[1], 1, sn, cs);
+ *sn = -*sn;
+ *cs = -*cs;
+ break;
+ default:
+ __kernel_sincos(y[0], y[1], 1, cs, sn);
+ *sn = -*sn;
+ }
+}
+
+#if (LDBL_MANT_DIG == 53)
+__weak_reference(sincos, sincosl);
+#endif
diff --git a/lib/msun/src/s_sincosf.c b/lib/msun/src/s_sincosf.c
new file mode 100644
index 0000000..755ff05
--- /dev/null
+++ b/lib/msun/src/s_sincosf.c
@@ -0,0 +1,126 @@
+/*-
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* s_sincosf.c -- float version of s_sincos.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ * Optimized by Bruce D. Evans.
+ * Merged s_sinf.c and s_cosf.c by Steven G. Kargl.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <float.h>
+
+#include "math.h"
+#define INLINE_REM_PIO2F
+#include "math_private.h"
+#include "e_rem_pio2f.c"
+#include "k_sincosf.h"
+
+/* Small multiples of pi/2 rounded to double precision. */
+static const double
+p1pio2 = 1*M_PI_2, /* 0x3FF921FB, 0x54442D18 */
+p2pio2 = 2*M_PI_2, /* 0x400921FB, 0x54442D18 */
+p3pio2 = 3*M_PI_2, /* 0x4012D97C, 0x7F3321D2 */
+p4pio2 = 4*M_PI_2; /* 0x401921FB, 0x54442D18 */
+
+void
+sincosf(float x, float *sn, float *cs)
+{
+ float c, s;
+ double y;
+ int32_t n, hx, ix;
+
+ GET_FLOAT_WORD(hx, x);
+ ix = hx & 0x7fffffff;
+
+ if (ix <= 0x3f490fda) { /* |x| ~<= pi/4 */
+ if (ix < 0x39800000) { /* |x| < 2**-12 */
+ if ((int)x == 0) {
+ *sn = x; /* x with inexact if x != 0 */
+ *cs = 1;
+ return;
+ }
+ }
+ __kernel_sincosdf(x, sn, cs);
+ return;
+ }
+
+ if (ix <= 0x407b53d1) { /* |x| ~<= 5*pi/4 */
+ if (ix <= 0x4016cbe3) { /* |x| ~<= 3pi/4 */
+ if (hx > 0) {
+ __kernel_sincosdf(x - p1pio2, cs, sn);
+ *cs = -*cs;
+ } else {
+ __kernel_sincosdf(x + p1pio2, cs, sn);
+ *sn = -*sn;
+ }
+ } else {
+ if (hx > 0)
+ __kernel_sincosdf(x - p2pio2, sn, cs);
+ else
+ __kernel_sincosdf(x + p2pio2, sn, cs);
+ *sn = -*sn;
+ *cs = -*cs;
+ }
+ return;
+ }
+
+ if (ix <= 0x40e231d5) { /* |x| ~<= 9*pi/4 */
+ if (ix <= 0x40afeddf) { /* |x| ~<= 7*pi/4 */
+ if (hx > 0) {
+ __kernel_sincosdf(x - p3pio2, cs, sn);
+ *sn = -*sn;
+ } else {
+ __kernel_sincosdf(x + p3pio2, cs, sn);
+ *cs = -*cs;
+ }
+ } else {
+ if (hx > 0)
+ __kernel_sincosdf(x - p4pio2, sn, cs);
+ else
+ __kernel_sincosdf(x + p4pio2, sn, cs);
+ }
+ return;
+ }
+
+ /* If x = Inf or NaN, then sin(x) = NaN and cos(x) = NaN. */
+ if (ix >= 0x7f800000) {
+ *sn = x - x;
+ *cs = x - x;
+ return;
+ }
+
+ /* Argument reduction. */
+ n = __ieee754_rem_pio2f(x, &y);
+ __kernel_sincosdf(y, &s, &c);
+
+ switch(n & 3) {
+ case 0:
+ *sn = s;
+ *cs = c;
+ break;
+ case 1:
+ *sn = c;
+ *cs = -s;
+ break;
+ case 2:
+ *sn = -s;
+ *cs = -c;
+ break;
+ default:
+ *sn = -c;
+ *cs = s;
+ }
+}
+
+
diff --git a/lib/msun/src/s_sincosl.c b/lib/msun/src/s_sincosl.c
new file mode 100644
index 0000000..aef36c2
--- /dev/null
+++ b/lib/msun/src/s_sincosl.c
@@ -0,0 +1,105 @@
+/*-
+ * Copyright (c) 2007, 2010-2013 Steven G. Kargl
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice unmodified, this list of conditions, and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * s_sinl.c and s_cosl.c merged by Steven G. Kargl.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <float.h>
+#ifdef __i386__
+#include <ieeefp.h>
+#endif
+
+#include "math.h"
+#include "math_private.h"
+#include "k_sincosl.h"
+
+#if LDBL_MANT_DIG == 64
+#include "../ld80/e_rem_pio2l.h"
+#elif LDBL_MANT_DIG == 113
+#include "../ld128/e_rem_pio2l.h"
+#else
+#error "Unsupported long double format"
+#endif
+
+void
+sincosl(long double x, long double *sn, long double *cs)
+{
+ union IEEEl2bits z;
+ int e0, sgn;
+ long double y[2];
+
+ z.e = x;
+ sgn = z.bits.sign;
+ z.bits.sign = 0;
+
+ ENTERV();
+
+ /* Optimize the case where x is already within range. */
+ if (z.e < M_PI_4) {
+ /*
+ * If x = +-0 or x is a subnormal number, then sin(x) = x and
+ * cos(x) = 1.
+ */
+ if (z.bits.exp == 0) {
+ *sn = x;
+ *cs = 1;
+ } else
+ __kernel_sincosl(x, 0, 0, sn, cs);
+ RETURNV();
+ }
+
+ /* If x = NaN or Inf, then sin(x) and cos(x) are NaN. */
+ if (z.bits.exp == 32767) {
+ *sn = x - x;
+ *cs = x - x;
+ RETURNV();
+ }
+
+ /* Range reduction. */
+ e0 = __ieee754_rem_pio2l(x, y);
+
+ switch (e0 & 3) {
+ case 0:
+ __kernel_sincosl(y[0], y[1], 1, sn, cs);
+ break;
+ case 1:
+ __kernel_sincosl(y[0], y[1], 1, cs, sn);
+ *cs = -*cs;
+ break;
+ case 2:
+ __kernel_sincosl(y[0], y[1], 1, sn, cs);
+ *sn = -*sn;
+ *cs = -*cs;
+ break;
+ default:
+ __kernel_sincosl(y[0], y[1], 1, cs, sn);
+ *sn = -*sn;
+ }
+
+ RETURNV();
+}
diff --git a/lib/msun/src/s_tanhl.c b/lib/msun/src/s_tanhl.c
index 886158b..b753186 100644
--- a/lib/msun/src/s_tanhl.c
+++ b/lib/msun/src/s_tanhl.c
@@ -113,7 +113,9 @@ long double
tanhl(long double x)
{
long double hi,lo,s,x2,x4,z;
+#if LDBL_MANT_DIG == 113
double dx2;
+#endif
int16_t jx,ix;
GET_LDBL_EXPSIGN(jx,x);
diff --git a/lib/msun/tests/ctrig_test.c b/lib/msun/tests/ctrig_test.c
index 18c18f8..45b2b78 100644
--- a/lib/msun/tests/ctrig_test.c
+++ b/lib/msun/tests/ctrig_test.c
@@ -443,10 +443,6 @@ ATF_TC_BODY(test_large_inputs, tc)
{
long double complex z;
-#ifdef __i386__
- atf_tc_expect_fail("test fails on i386 - bug 205446");
-#endif
-
/* tanh() uses a threshold around x=22, so check both sides. */
z = CMPLXL(21, 0.78539816339744830961566084581987572L);
testall_odd_tol(ctanh, z,
OpenPOWER on IntegriCloud