From f170b6928b38a264ce005e5fa80d428364b6f659 Mon Sep 17 00:00:00 2001
From: Ed Schouten
Date: Thu, 17 Mar 2011 19:47:28 +0000
Subject: [PATCH 1/2] Import compiler-rt r127823.
Changes:
- License change; now it's also dual licensed under the MIT licence.
- Addition of divmodsi4 and udivmodsi4.
---
CREDITS.TXT | 3 +
LICENSE.TXT | 47 +++++++++------
README.txt | 8 ++-
lib/absvdi2.c | 4 +-
lib/absvsi2.c | 4 +-
lib/absvti2.c | 4 +-
lib/adddf3.c | 4 +-
lib/addsf3.c | 4 +-
lib/addvdi3.c | 4 +-
lib/addvsi3.c | 4 +-
lib/addvti3.c | 4 +-
lib/apple_versioning.c | 4 +-
lib/arm/adddf3vfp.S | 4 +-
lib/arm/addsf3vfp.S | 4 +-
lib/arm/bswapdi2.S | 4 +-
lib/arm/bswapsi2.S | 4 +-
lib/arm/comparesf2.S | 4 +-
lib/arm/divdf3vfp.S | 4 +-
lib/arm/divsf3vfp.S | 4 +-
lib/arm/eqdf2vfp.S | 4 +-
lib/arm/eqsf2vfp.S | 4 +-
lib/arm/extendsfdf2vfp.S | 4 +-
lib/arm/fixdfsivfp.S | 4 +-
lib/arm/fixsfsivfp.S | 4 +-
lib/arm/fixunsdfsivfp.S | 4 +-
lib/arm/fixunssfsivfp.S | 4 +-
lib/arm/floatsidfvfp.S | 4 +-
lib/arm/floatsisfvfp.S | 4 +-
lib/arm/floatunssidfvfp.S | 4 +-
lib/arm/floatunssisfvfp.S | 4 +-
lib/arm/gedf2vfp.S | 4 +-
lib/arm/gesf2vfp.S | 4 +-
lib/arm/gtdf2vfp.S | 4 +-
lib/arm/gtsf2vfp.S | 4 +-
lib/arm/ledf2vfp.S | 4 +-
lib/arm/lesf2vfp.S | 4 +-
lib/arm/ltdf2vfp.S | 4 +-
lib/arm/ltsf2vfp.S | 4 +-
lib/arm/modsi3.S | 4 +-
lib/arm/muldf3vfp.S | 4 +-
lib/arm/mulsf3vfp.S | 4 +-
lib/arm/nedf2vfp.S | 4 +-
lib/arm/negdf2vfp.S | 4 +-
lib/arm/negsf2vfp.S | 4 +-
lib/arm/nesf2vfp.S | 4 +-
lib/arm/restore_vfp_d8_d15_regs.S | 4 +-
lib/arm/save_vfp_d8_d15_regs.S | 4 +-
lib/arm/softfloat-alias.list | 21 +++++++
lib/arm/subdf3vfp.S | 4 +-
lib/arm/subsf3vfp.S | 4 +-
lib/arm/switch16.S | 4 +-
lib/arm/switch32.S | 4 +-
lib/arm/switch8.S | 4 +-
lib/arm/switchu8.S | 4 +-
lib/arm/sync_synchronize.S | 4 +-
lib/arm/truncdfsf2vfp.S | 4 +-
lib/arm/unorddf2vfp.S | 4 +-
lib/arm/unordsf2vfp.S | 4 +-
lib/ashldi3.c | 4 +-
lib/ashlti3.c | 4 +-
lib/ashrdi3.c | 4 +-
lib/ashrti3.c | 4 +-
lib/assembly.h | 4 +-
lib/clear_cache.c | 4 +-
lib/clzdi2.c | 4 +-
lib/clzsi2.c | 4 +-
lib/clzti2.c | 4 +-
lib/cmpdi2.c | 4 +-
lib/cmpti2.c | 4 +-
lib/comparedf2.c | 4 +-
lib/comparesf2.c | 4 +-
lib/ctzdi2.c | 4 +-
lib/ctzsi2.c | 4 +-
lib/ctzti2.c | 4 +-
lib/divdc3.c | 4 +-
lib/divdf3.c | 4 +-
lib/divdi3.c | 4 +-
lib/divmodsi4.c | 30 ++++++++++
lib/divsc3.c | 4 +-
lib/divsf3.c | 4 +-
lib/divsi3.c | 4 +-
lib/divti3.c | 4 +-
lib/divxc3.c | 4 +-
lib/enable_execute_stack.c | 4 +-
lib/endianness.h | 4 +-
lib/eprintf.c | 4 +-
lib/extendsfdf2.c | 4 +-
lib/ffsdi2.c | 4 +-
lib/ffsti2.c | 4 +-
lib/fixdfdi.c | 4 +-
lib/fixdfsi.c | 4 +-
lib/fixdfti.c | 4 +-
lib/fixsfdi.c | 4 +-
lib/fixsfsi.c | 4 +-
lib/fixsfti.c | 4 +-
lib/fixunsdfdi.c | 4 +-
lib/fixunsdfsi.c | 4 +-
lib/fixunsdfti.c | 4 +-
lib/fixunssfdi.c | 4 +-
lib/fixunssfsi.c | 4 +-
lib/fixunssfti.c | 4 +-
lib/fixunsxfdi.c | 4 +-
lib/fixunsxfsi.c | 4 +-
lib/fixunsxfti.c | 4 +-
lib/fixxfdi.c | 4 +-
lib/fixxfti.c | 4 +-
lib/floatdidf.c | 4 +-
lib/floatdisf.c | 4 +-
lib/floatdixf.c | 4 +-
lib/floatsidf.c | 4 +-
lib/floatsisf.c | 4 +-
lib/floattidf.c | 4 +-
lib/floattisf.c | 4 +-
lib/floattixf.c | 4 +-
lib/floatundidf.c | 4 +-
lib/floatundisf.c | 4 +-
lib/floatundixf.c | 4 +-
lib/floatunsidf.c | 4 +-
lib/floatunsisf.c | 4 +-
lib/floatuntidf.c | 4 +-
lib/floatuntisf.c | 4 +-
lib/floatuntixf.c | 4 +-
lib/fp_lib.h | 4 +-
lib/gcc_personality_v0.c | 4 +-
lib/i386/ashldi3.S | 4 +-
lib/i386/ashrdi3.S | 4 +-
lib/i386/divdi3.S | 4 +-
lib/i386/floatdidf.S | 4 +-
lib/i386/floatdisf.S | 4 +-
lib/i386/floatdixf.S | 4 +-
lib/i386/floatundidf.S | 4 +-
lib/i386/floatundisf.S | 4 +-
lib/i386/floatundixf.S | 4 +-
lib/i386/lshrdi3.S | 4 +-
lib/i386/moddi3.S | 4 +-
lib/i386/muldi3.S | 4 +-
lib/i386/udivdi3.S | 4 +-
lib/i386/umoddi3.S | 4 +-
lib/int_lib.h | 5 +-
lib/lshrdi3.c | 4 +-
lib/lshrti3.c | 4 +-
lib/moddi3.c | 4 +-
lib/modsi3.c | 8 ++-
lib/modti3.c | 4 +-
lib/muldc3.c | 4 +-
lib/muldf3.c | 4 +-
lib/muldi3.c | 4 +-
lib/mulsc3.c | 4 +-
lib/mulsf3.c | 4 +-
lib/multi3.c | 4 +-
lib/mulvdi3.c | 4 +-
lib/mulvsi3.c | 4 +-
lib/mulvti3.c | 4 +-
lib/mulxc3.c | 4 +-
lib/negdf2.c | 4 +-
lib/negdi2.c | 4 +-
lib/negsf2.c | 4 +-
lib/negti2.c | 4 +-
lib/negvdi2.c | 4 +-
lib/negvsi2.c | 4 +-
lib/negvti2.c | 4 +-
lib/paritydi2.c | 4 +-
lib/paritysi2.c | 4 +-
lib/parityti2.c | 4 +-
lib/popcountdi2.c | 4 +-
lib/popcountsi2.c | 4 +-
lib/popcountti2.c | 4 +-
lib/powidf2.c | 4 +-
lib/powisf2.c | 4 +-
lib/powitf2.c | 4 +-
lib/powixf2.c | 4 +-
lib/ppc/restFP.S | 4 +-
lib/ppc/saveFP.S | 4 +-
lib/subvdi3.c | 4 +-
lib/subvsi3.c | 4 +-
lib/subvti3.c | 4 +-
lib/trampoline_setup.c | 4 +-
lib/truncdfsf2.c | 4 +-
lib/ucmpdi2.c | 4 +-
lib/ucmpti2.c | 4 +-
lib/udivdi3.c | 4 +-
lib/udivmoddi4.c | 4 +-
lib/udivmodsi4.c | 30 ++++++++++
lib/udivmodti4.c | 4 +-
lib/udivsi3.c | 4 +-
lib/udivti3.c | 4 +-
lib/umoddi3.c | 4 +-
lib/umodsi3.c | 4 +-
lib/umodti3.c | 4 +-
lib/x86_64/floatundidf.S | 4 +-
lib/x86_64/floatundisf.S | 4 +-
lib/x86_64/floatundixf.S | 4 +-
make/AppleBI.mk | 26 ++++----
make/platform/clang_darwin.mk | 12 ++--
make/platform/darwin_bni.mk | 9 +--
test/Unit/absvdi2_test.c | 4 +-
test/Unit/absvsi2_test.c | 4 +-
test/Unit/absvti2_test.c | 4 +-
test/Unit/adddf3vfp_test.c | 4 +-
test/Unit/addsf3vfp_test.c | 4 +-
test/Unit/addvdi3_test.c | 4 +-
test/Unit/addvsi3_test.c | 4 +-
test/Unit/addvti3_test.c | 4 +-
test/Unit/ashldi3_test.c | 4 +-
test/Unit/ashlti3_test.c | 4 +-
test/Unit/ashrdi3_test.c | 4 +-
test/Unit/ashrti3_test.c | 4 +-
test/Unit/bswapdi2_test.c | 4 +-
test/Unit/bswapsi2_test.c | 4 +-
test/Unit/clear_cache_test.c | 4 +-
test/Unit/clzdi2_test.c | 4 +-
test/Unit/clzsi2_test.c | 4 +-
test/Unit/clzti2_test.c | 4 +-
test/Unit/cmpdi2_test.c | 4 +-
test/Unit/cmpti2_test.c | 4 +-
test/Unit/comparedf2_test.c | 4 +-
test/Unit/comparesf2_test.c | 4 +-
test/Unit/ctzdi2_test.c | 4 +-
test/Unit/ctzsi2_test.c | 4 +-
test/Unit/ctzti2_test.c | 4 +-
test/Unit/divdc3_test.c | 4 +-
test/Unit/divdf3vfp_test.c | 4 +-
test/Unit/divdi3_test.c | 4 +-
test/Unit/divmodsi4_test.c | 73 +++++++++++++++++++++++
test/Unit/divsc3_test.c | 4 +-
test/Unit/divsf3vfp_test.c | 4 +-
test/Unit/divsi3_test.c | 4 +-
test/Unit/divtc3_test.c | 4 +-
test/Unit/divti3_test.c | 4 +-
test/Unit/divxc3_test.c | 4 +-
test/Unit/enable_execute_stack_test.c | 4 +-
test/Unit/endianness.h | 4 +-
test/Unit/eqdf2vfp_test.c | 4 +-
test/Unit/eqsf2vfp_test.c | 4 +-
test/Unit/extebdsfdf2vfp_test.c | 4 +-
test/Unit/ffsdi2_test.c | 4 +-
test/Unit/ffsti2_test.c | 4 +-
test/Unit/fixdfdi_test.c | 4 +-
test/Unit/fixdfsivfp_test.c | 4 +-
test/Unit/fixdfti_test.c | 4 +-
test/Unit/fixsfdi_test.c | 4 +-
test/Unit/fixsfsivfp_test.c | 4 +-
test/Unit/fixsfti_test.c | 4 +-
test/Unit/fixunsdfdi_test.c | 4 +-
test/Unit/fixunsdfsi_test.c | 4 +-
test/Unit/fixunsdfsivfp_test.c | 4 +-
test/Unit/fixunsdfti_test.c | 4 +-
test/Unit/fixunssfdi_test.c | 4 +-
test/Unit/fixunssfsi_test.c | 4 +-
test/Unit/fixunssfsivfp_test.c | 4 +-
test/Unit/fixunssfti_test.c | 4 +-
test/Unit/fixunstfdi_test.c | 4 +-
test/Unit/fixunsxfdi_test.c | 4 +-
test/Unit/fixunsxfsi_test.c | 4 +-
test/Unit/fixunsxfti_test.c | 4 +-
test/Unit/fixxfdi_test.c | 4 +-
test/Unit/fixxfti_test.c | 4 +-
test/Unit/floatdidf_test.c | 4 +-
test/Unit/floatdisf_test.c | 4 +-
test/Unit/floatdixf_test.c | 4 +-
test/Unit/floatsidfvfp_test.c | 4 +-
test/Unit/floatsisfvfp_test.c | 4 +-
test/Unit/floattidf_test.c | 4 +-
test/Unit/floattisf_test.c | 4 +-
test/Unit/floattixf_test.c | 4 +-
test/Unit/floatundidf_test.c | 4 +-
test/Unit/floatundisf_test.c | 4 +-
test/Unit/floatundixf_test.c | 4 +-
test/Unit/floatunssidfvfp_test.c | 4 +-
test/Unit/floatunssisfvfp_test.c | 4 +-
test/Unit/floatuntidf_test.c | 4 +-
test/Unit/floatuntisf_test.c | 4 +-
test/Unit/floatuntixf_test.c | 4 +-
test/Unit/gcc_personality_test.c | 4 +-
test/Unit/gcc_personality_test_helper.cxx | 4 +-
test/Unit/gedf2vfp_test.c | 4 +-
test/Unit/gesf2vfp_test.c | 4 +-
test/Unit/gtdf2vfp_test.c | 4 +-
test/Unit/gtsf2vfp_test.c | 4 +-
test/Unit/ledf2vfp_test.c | 4 +-
test/Unit/lesf2vfp_test.c | 4 +-
test/Unit/lshrdi3_test.c | 4 +-
test/Unit/lshrti3_test.c | 4 +-
test/Unit/ltdf2vfp_test.c | 4 +-
test/Unit/ltsf2vfp_test.c | 4 +-
test/Unit/moddi3_test.c | 4 +-
test/Unit/modsi3_test.c | 4 +-
test/Unit/modti3_test.c | 4 +-
test/Unit/muldc3_test.c | 4 +-
test/Unit/muldf3vfp_test.c | 4 +-
test/Unit/muldi3_test.c | 4 +-
test/Unit/mulsc3_test.c | 4 +-
test/Unit/mulsf3vfp_test.c | 4 +-
test/Unit/multc3_test.c | 4 +-
test/Unit/multi3_test.c | 4 +-
test/Unit/mulvdi3_test.c | 4 +-
test/Unit/mulvsi3_test.c | 4 +-
test/Unit/mulvti3_test.c | 4 +-
test/Unit/mulxc3_test.c | 4 +-
test/Unit/nedf2vfp_test.c | 4 +-
test/Unit/negdf2vfp_test.c | 4 +-
test/Unit/negdi2_test.c | 4 +-
test/Unit/negsf2vfp_test.c | 4 +-
test/Unit/negti2_test.c | 4 +-
test/Unit/negvdi2_test.c | 4 +-
test/Unit/negvsi2_test.c | 4 +-
test/Unit/negvti2_test.c | 4 +-
test/Unit/nesf2vfp_test.c | 4 +-
test/Unit/paritydi2_test.c | 4 +-
test/Unit/paritysi2_test.c | 4 +-
test/Unit/parityti2_test.c | 4 +-
test/Unit/popcountdi2_test.c | 4 +-
test/Unit/popcountsi2_test.c | 4 +-
test/Unit/popcountti2_test.c | 4 +-
test/Unit/powidf2_test.c | 4 +-
test/Unit/powisf2_test.c | 4 +-
test/Unit/powitf2_test.c | 4 +-
test/Unit/powixf2_test.c | 4 +-
test/Unit/subdf3vfp_test.c | 4 +-
test/Unit/subsf3vfp_test.c | 4 +-
test/Unit/subvdi3_test.c | 4 +-
test/Unit/subvsi3_test.c | 4 +-
test/Unit/subvti3_test.c | 4 +-
test/Unit/trampoline_setup_test.c | 4 +-
test/Unit/truncdfsf2vfp_test.c | 4 +-
test/Unit/ucmpdi2_test.c | 4 +-
test/Unit/ucmpti2_test.c | 4 +-
test/Unit/udivdi3_test.c | 4 +-
test/Unit/udivmoddi4_test.c | 4 +-
test/Unit/udivmodsi4_test.c | 59 ++++++++++++++++++
test/Unit/udivmodti4_test.c | 4 +-
test/Unit/udivsi3_test.c | 4 +-
test/Unit/udivti3_test.c | 4 +-
test/Unit/umoddi3_test.c | 4 +-
test/Unit/umodsi3_test.c | 4 +-
test/Unit/umodti3_test.c | 4 +-
test/Unit/unorddf2vfp_test.c | 4 +-
test/Unit/unordsf2vfp_test.c | 4 +-
www/index.html | 6 +-
339 files changed, 937 insertions(+), 700 deletions(-)
create mode 100644 lib/arm/softfloat-alias.list
create mode 100644 lib/divmodsi4.c
create mode 100644 lib/udivmodsi4.c
create mode 100644 test/Unit/divmodsi4_test.c
create mode 100644 test/Unit/udivmodsi4_test.c
diff --git a/CREDITS.TXT b/CREDITS.TXT
index 8b07b82bf87..818f4fa104d 100644
--- a/CREDITS.TXT
+++ b/CREDITS.TXT
@@ -19,3 +19,6 @@ W: http://www.auroraux.org
D: CMake'ify Compiler-RT build system
D: Maintain Solaris & AuroraUX ports of Compiler-RT
+N: Howard Hinnant
+E: hhinnant@apple.com
+D: Architect and primary author of compiler-rt
diff --git a/LICENSE.TXT b/LICENSE.TXT
index a5e1345f673..2552e8c2eb6 100644
--- a/LICENSE.TXT
+++ b/LICENSE.TXT
@@ -1,10 +1,21 @@
==============================================================================
-LLVM Release License
+compiler_rt License
==============================================================================
+
+The compiler_rt library is dual licensed under both the University of Illinois
+"BSD-Like" license and the MIT license. As a user of this code you may choose
+to use it under either license. As a contributor, you agree to allow your code
+to be used under both.
+
+Full text of the relevant licenses is included below.
+
+==============================================================================
+
University of Illinois/NCSA
Open Source License
-Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign.
+Copyright (c) 2009-2010 by the contributors listed in CREDITS.TXT
+
All rights reserved.
Developed by:
@@ -43,21 +54,23 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
SOFTWARE.
==============================================================================
-Copyrights and Licenses for Third Party Software Distributed with LLVM:
-==============================================================================
-The LLVM software contains code written by third parties. Such software will
-have its own individual LICENSE.TXT file in the directory in which it appears.
-This file will describe the copyrights, license, and restrictions which apply
-to that code.
-The disclaimer of warranty in the University of Illinois Open Source License
-applies to all code in the LLVM Distribution, and nothing in any of the
-other licenses gives permission to use the names of the LLVM Team or the
-University of Illinois to endorse or promote products derived from this
-Software.
+Copyright (c) 2009-2010 by the contributors listed in CREDITS.TXT
-The following pieces of software have additional or alternate copyrights,
-licenses, and/or restrictions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
-Program Directory
-------- ---------
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/README.txt b/README.txt
index ab389d2129b..cbeb10cf918 100644
--- a/README.txt
+++ b/README.txt
@@ -77,8 +77,12 @@ ti_int __modti3 (ti_int a, ti_int b); // a % b signed
su_int __umodsi3 (su_int a, su_int b); // a % b unsigned
du_int __umoddi3 (du_int a, du_int b); // a % b unsigned
tu_int __umodti3 (tu_int a, tu_int b); // a % b unsigned
-du_int __udivmoddi4(du_int a, du_int b, du_int* rem); // a / b, *rem = a % b
-tu_int __udivmodti4(tu_int a, tu_int b, tu_int* rem); // a / b, *rem = a % b
+du_int __udivmoddi4(du_int a, du_int b, du_int* rem); // a / b, *rem = a % b unsigned
+tu_int __udivmodti4(tu_int a, tu_int b, tu_int* rem); // a / b, *rem = a % b unsigned
+su_int __udivmodsi4(su_int a, su_int b, su_int* rem); // a / b, *rem = a % b unsigned
+si_int __divmodsi4(si_int a, si_int b, si_int* rem); // a / b, *rem = a % b signed
+
+
// Integral arithmetic with trapping overflow
diff --git a/lib/absvdi2.c b/lib/absvdi2.c
index 919afd1351d..2ba6687daa8 100644
--- a/lib/absvdi2.c
+++ b/lib/absvdi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
*===----------------------------------------------------------------------===
*
diff --git a/lib/absvsi2.c b/lib/absvsi2.c
index a2c8e3f1905..ec5cf69e878 100644
--- a/lib/absvsi2.c
+++ b/lib/absvsi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/absvti2.c b/lib/absvti2.c
index 0978122dcee..9e73a26b68e 100644
--- a/lib/absvti2.c
+++ b/lib/absvti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/adddf3.c b/lib/adddf3.c
index 1ec43dcf58e..c40135613dd 100644
--- a/lib/adddf3.c
+++ b/lib/adddf3.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/addsf3.c b/lib/addsf3.c
index fec14e83851..c0e8d8e70dc 100644
--- a/lib/addsf3.c
+++ b/lib/addsf3.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/addvdi3.c b/lib/addvdi3.c
index 53ab1024bd6..ded023e0729 100644
--- a/lib/addvdi3.c
+++ b/lib/addvdi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/addvsi3.c b/lib/addvsi3.c
index 22cd3154ce6..7bdb39b97fe 100644
--- a/lib/addvsi3.c
+++ b/lib/addvsi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/addvti3.c b/lib/addvti3.c
index 3df1a742ce3..ba220f54809 100644
--- a/lib/addvti3.c
+++ b/lib/addvti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/apple_versioning.c b/lib/apple_versioning.c
index 0360026bcee..bb6302fbb4d 100644
--- a/lib/apple_versioning.c
+++ b/lib/apple_versioning.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*/
diff --git a/lib/arm/adddf3vfp.S b/lib/arm/adddf3vfp.S
index 5e705e3c579..cced1e09a3e 100644
--- a/lib/arm/adddf3vfp.S
+++ b/lib/arm/adddf3vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/addsf3vfp.S b/lib/arm/addsf3vfp.S
index 36d509c1f52..b747528de52 100644
--- a/lib/arm/addsf3vfp.S
+++ b/lib/arm/addsf3vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/bswapdi2.S b/lib/arm/bswapdi2.S
index d3ca33a341c..a0283e14e1e 100644
--- a/lib/arm/bswapdi2.S
+++ b/lib/arm/bswapdi2.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/bswapsi2.S b/lib/arm/bswapsi2.S
index 0a0c073706c..4c3af1f6d04 100644
--- a/lib/arm/bswapsi2.S
+++ b/lib/arm/bswapsi2.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/comparesf2.S b/lib/arm/comparesf2.S
index f21e0bcd13f..ee18203392d 100644
--- a/lib/arm/comparesf2.S
+++ b/lib/arm/comparesf2.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/arm/divdf3vfp.S b/lib/arm/divdf3vfp.S
index e43baa37327..74ef0eabff7 100644
--- a/lib/arm/divdf3vfp.S
+++ b/lib/arm/divdf3vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/divsf3vfp.S b/lib/arm/divsf3vfp.S
index d96c930f835..9eefcf31eba 100644
--- a/lib/arm/divsf3vfp.S
+++ b/lib/arm/divsf3vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/eqdf2vfp.S b/lib/arm/eqdf2vfp.S
index d4384ec0e5e..2998a76e021 100644
--- a/lib/arm/eqdf2vfp.S
+++ b/lib/arm/eqdf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/eqsf2vfp.S b/lib/arm/eqsf2vfp.S
index 07355a3c223..927566edd7a 100644
--- a/lib/arm/eqsf2vfp.S
+++ b/lib/arm/eqsf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/extendsfdf2vfp.S b/lib/arm/extendsfdf2vfp.S
index 4343a7ef1ed..b1aa88e2ae9 100644
--- a/lib/arm/extendsfdf2vfp.S
+++ b/lib/arm/extendsfdf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/fixdfsivfp.S b/lib/arm/fixdfsivfp.S
index 30458ccd59b..0285a17e418 100644
--- a/lib/arm/fixdfsivfp.S
+++ b/lib/arm/fixdfsivfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/fixsfsivfp.S b/lib/arm/fixsfsivfp.S
index ce6f18e1b90..d05ba740aff 100644
--- a/lib/arm/fixsfsivfp.S
+++ b/lib/arm/fixsfsivfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/fixunsdfsivfp.S b/lib/arm/fixunsdfsivfp.S
index 7e766c02a5e..ddb703cdd60 100644
--- a/lib/arm/fixunsdfsivfp.S
+++ b/lib/arm/fixunsdfsivfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/fixunssfsivfp.S b/lib/arm/fixunssfsivfp.S
index ba2344f587e..afbb64f395e 100644
--- a/lib/arm/fixunssfsivfp.S
+++ b/lib/arm/fixunssfsivfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/floatsidfvfp.S b/lib/arm/floatsidfvfp.S
index 5ed4ace9b2c..fe3366a904d 100644
--- a/lib/arm/floatsidfvfp.S
+++ b/lib/arm/floatsidfvfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/floatsisfvfp.S b/lib/arm/floatsisfvfp.S
index 0114c789358..5b416100a49 100644
--- a/lib/arm/floatsisfvfp.S
+++ b/lib/arm/floatsisfvfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/floatunssidfvfp.S b/lib/arm/floatunssidfvfp.S
index d1bfe3af584..9b22a6f760d 100644
--- a/lib/arm/floatunssidfvfp.S
+++ b/lib/arm/floatunssidfvfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/floatunssisfvfp.S b/lib/arm/floatunssisfvfp.S
index 0b73577b106..44d5e938054 100644
--- a/lib/arm/floatunssisfvfp.S
+++ b/lib/arm/floatunssisfvfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/gedf2vfp.S b/lib/arm/gedf2vfp.S
index 6ab856fe6f3..9993f52fb49 100644
--- a/lib/arm/gedf2vfp.S
+++ b/lib/arm/gedf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/gesf2vfp.S b/lib/arm/gesf2vfp.S
index b00d82107dc..9ce168259bb 100644
--- a/lib/arm/gesf2vfp.S
+++ b/lib/arm/gesf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/gtdf2vfp.S b/lib/arm/gtdf2vfp.S
index 65594c7d3f9..8a049c8896f 100644
--- a/lib/arm/gtdf2vfp.S
+++ b/lib/arm/gtdf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/gtsf2vfp.S b/lib/arm/gtsf2vfp.S
index 53ef2a00f80..1ffe1ec52ac 100644
--- a/lib/arm/gtsf2vfp.S
+++ b/lib/arm/gtsf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/ledf2vfp.S b/lib/arm/ledf2vfp.S
index 327a7d5159f..a04d0f2a4ad 100644
--- a/lib/arm/ledf2vfp.S
+++ b/lib/arm/ledf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/lesf2vfp.S b/lib/arm/lesf2vfp.S
index b7e05da9b42..301120047a7 100644
--- a/lib/arm/lesf2vfp.S
+++ b/lib/arm/lesf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/ltdf2vfp.S b/lib/arm/ltdf2vfp.S
index 55dfd808a3b..87144a8c815 100644
--- a/lib/arm/ltdf2vfp.S
+++ b/lib/arm/ltdf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/ltsf2vfp.S b/lib/arm/ltsf2vfp.S
index 3816a7123a6..ca06ae20898 100644
--- a/lib/arm/ltsf2vfp.S
+++ b/lib/arm/ltsf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/modsi3.S b/lib/arm/modsi3.S
index 64a3afd9aa0..40ba856e355 100644
--- a/lib/arm/modsi3.S
+++ b/lib/arm/modsi3.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/muldf3vfp.S b/lib/arm/muldf3vfp.S
index cb503d30912..96bba06c118 100644
--- a/lib/arm/muldf3vfp.S
+++ b/lib/arm/muldf3vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/mulsf3vfp.S b/lib/arm/mulsf3vfp.S
index 49b4d1df946..c56991d62e7 100644
--- a/lib/arm/mulsf3vfp.S
+++ b/lib/arm/mulsf3vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/nedf2vfp.S b/lib/arm/nedf2vfp.S
index 813864e8830..a02b09cc807 100644
--- a/lib/arm/nedf2vfp.S
+++ b/lib/arm/nedf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/negdf2vfp.S b/lib/arm/negdf2vfp.S
index 8013975445a..100f4fd5c82 100644
--- a/lib/arm/negdf2vfp.S
+++ b/lib/arm/negdf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/negsf2vfp.S b/lib/arm/negsf2vfp.S
index 243c0865c8c..f96c8ad2b56 100644
--- a/lib/arm/negsf2vfp.S
+++ b/lib/arm/negsf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/nesf2vfp.S b/lib/arm/nesf2vfp.S
index d470afa0ef7..d6205497ae6 100644
--- a/lib/arm/nesf2vfp.S
+++ b/lib/arm/nesf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/restore_vfp_d8_d15_regs.S b/lib/arm/restore_vfp_d8_d15_regs.S
index 25404cd2507..7f441db5383 100644
--- a/lib/arm/restore_vfp_d8_d15_regs.S
+++ b/lib/arm/restore_vfp_d8_d15_regs.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/save_vfp_d8_d15_regs.S b/lib/arm/save_vfp_d8_d15_regs.S
index 92de61bc6e8..fbd21ba3835 100644
--- a/lib/arm/save_vfp_d8_d15_regs.S
+++ b/lib/arm/save_vfp_d8_d15_regs.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/softfloat-alias.list b/lib/arm/softfloat-alias.list
new file mode 100644
index 00000000000..cc6a4b3cdd2
--- /dev/null
+++ b/lib/arm/softfloat-alias.list
@@ -0,0 +1,21 @@
+#
+# These are soft float functions which can be
+# aliased to the *vfp functions on arm processors
+# that support floating point instructions.
+#
+___adddf3vfp ___adddf3
+___addsf3vfp ___addsf3
+___divdf3vfp ___divdf3
+___divsf3vfp ___divsf3
+___extendsfdf2vfp ___extendsfdf2
+___fixdfsivfp ___fixdfsi
+___fixsfsivfp ___fixsfsi
+___floatsidfvfp ___floatsidf
+___floatsisfvfp ___floatsisf
+___muldf3vfp ___muldf3
+___mulsf3vfp ___mulsf3
+___subdf3vfp ___subdf3
+___subsf3vfp ___subsf3
+___truncdfsf2vfp ___truncdfsf2
+___floatunssidfvfp ___floatunsidf
+___floatunssisfvfp ___floatunsisf
diff --git a/lib/arm/subdf3vfp.S b/lib/arm/subdf3vfp.S
index 88416006a06..ff53b3000d1 100644
--- a/lib/arm/subdf3vfp.S
+++ b/lib/arm/subdf3vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/subsf3vfp.S b/lib/arm/subsf3vfp.S
index 4ead9c23e71..238f3f04745 100644
--- a/lib/arm/subsf3vfp.S
+++ b/lib/arm/subsf3vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/switch16.S b/lib/arm/switch16.S
index 05c7b98b01a..e8f08c49c5d 100644
--- a/lib/arm/switch16.S
+++ b/lib/arm/switch16.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/switch32.S b/lib/arm/switch32.S
index a127cb79f53..7008fccb18e 100644
--- a/lib/arm/switch32.S
+++ b/lib/arm/switch32.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/switch8.S b/lib/arm/switch8.S
index d05f6ac7f06..e784b4082e1 100644
--- a/lib/arm/switch8.S
+++ b/lib/arm/switch8.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/switchu8.S b/lib/arm/switchu8.S
index faffddb50c1..19bed2f664d 100644
--- a/lib/arm/switchu8.S
+++ b/lib/arm/switchu8.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/sync_synchronize.S b/lib/arm/sync_synchronize.S
index 76fdab1fbdb..06dade96472 100644
--- a/lib/arm/sync_synchronize.S
+++ b/lib/arm/sync_synchronize.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/truncdfsf2vfp.S b/lib/arm/truncdfsf2vfp.S
index 5725e25c76a..6e55c7ffb52 100644
--- a/lib/arm/truncdfsf2vfp.S
+++ b/lib/arm/truncdfsf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/unorddf2vfp.S b/lib/arm/unorddf2vfp.S
index de00b07feef..9b52131e4bc 100644
--- a/lib/arm/unorddf2vfp.S
+++ b/lib/arm/unorddf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/arm/unordsf2vfp.S b/lib/arm/unordsf2vfp.S
index ab291a858da..e486533e2ad 100644
--- a/lib/arm/unordsf2vfp.S
+++ b/lib/arm/unordsf2vfp.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/ashldi3.c b/lib/ashldi3.c
index 993f71ca972..1067e6fc61c 100644
--- a/lib/ashldi3.c
+++ b/lib/ashldi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/ashlti3.c b/lib/ashlti3.c
index 317de665595..7042b53b956 100644
--- a/lib/ashlti3.c
+++ b/lib/ashlti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/ashrdi3.c b/lib/ashrdi3.c
index 8e27a11a752..94d46f1b462 100644
--- a/lib/ashrdi3.c
+++ b/lib/ashrdi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/ashrti3.c b/lib/ashrti3.c
index 4eab2475c13..4d16230273d 100644
--- a/lib/ashrti3.c
+++ b/lib/ashrti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/assembly.h b/lib/assembly.h
index c2d5a34fffb..41c24d74ead 100644
--- a/lib/assembly.h
+++ b/lib/assembly.h
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/clear_cache.c b/lib/clear_cache.c
index ddc48bcc56e..099b76ea4e3 100644
--- a/lib/clear_cache.c
+++ b/lib/clear_cache.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*/
diff --git a/lib/clzdi2.c b/lib/clzdi2.c
index ea953961de0..213277712ac 100644
--- a/lib/clzdi2.c
+++ b/lib/clzdi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/clzsi2.c b/lib/clzsi2.c
index 7e14af29370..d99047dec48 100644
--- a/lib/clzsi2.c
+++ b/lib/clzsi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/clzti2.c b/lib/clzti2.c
index 805688fbe22..7a650eb4254 100644
--- a/lib/clzti2.c
+++ b/lib/clzti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/cmpdi2.c b/lib/cmpdi2.c
index 0b8735244ca..04bd7cf6246 100644
--- a/lib/cmpdi2.c
+++ b/lib/cmpdi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/cmpti2.c b/lib/cmpti2.c
index 90b3b75638b..b156fce90bf 100644
--- a/lib/cmpti2.c
+++ b/lib/cmpti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/comparedf2.c b/lib/comparedf2.c
index 5c5ee9d65bf..fe35fd80aad 100644
--- a/lib/comparedf2.c
+++ b/lib/comparedf2.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/comparesf2.c b/lib/comparesf2.c
index fd057240111..3f2e358addb 100644
--- a/lib/comparesf2.c
+++ b/lib/comparesf2.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/ctzdi2.c b/lib/ctzdi2.c
index b49f2c71353..f7ae50fdf09 100644
--- a/lib/ctzdi2.c
+++ b/lib/ctzdi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/ctzsi2.c b/lib/ctzsi2.c
index 30d34c86250..0c738fa591c 100644
--- a/lib/ctzsi2.c
+++ b/lib/ctzsi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/ctzti2.c b/lib/ctzti2.c
index f2d41fee1cb..1c9508fd552 100644
--- a/lib/ctzti2.c
+++ b/lib/ctzti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/divdc3.c b/lib/divdc3.c
index c96aefd0e49..5f6329856bf 100644
--- a/lib/divdc3.c
+++ b/lib/divdc3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/divdf3.c b/lib/divdf3.c
index 21b8f09bacb..217d284bf81 100644
--- a/lib/divdf3.c
+++ b/lib/divdf3.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/divdi3.c b/lib/divdi3.c
index fccfb8b09a0..a1b83ea3ece 100644
--- a/lib/divdi3.c
+++ b/lib/divdi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/divmodsi4.c b/lib/divmodsi4.c
new file mode 100644
index 00000000000..2ec3dd4a7e5
--- /dev/null
+++ b/lib/divmodsi4.c
@@ -0,0 +1,30 @@
+/*===-- divmodsi4.c - Implement __divmodsi4 --------------------------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file implements __divmodsi4 for the compiler_rt library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+
+#include "int_lib.h"
+
+extern si_int __divsi3(si_int a, si_int b);
+
+
+/* Returns: a / b, *rem = a % b */
+
+si_int
+__divmodsi4(si_int a, si_int b, si_int* rem)
+{
+ si_int d = __divsi3(a,b);
+ *rem = a - (d*b);
+ return d;
+}
+
+
diff --git a/lib/divsc3.c b/lib/divsc3.c
index c38c8638efb..a05f42902c0 100644
--- a/lib/divsc3.c
+++ b/lib/divsc3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/divsf3.c b/lib/divsf3.c
index 03b7311788b..b798cfb03c0 100644
--- a/lib/divsf3.c
+++ b/lib/divsf3.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/divsi3.c b/lib/divsi3.c
index 0eff6ef0d73..c48ecf45dbc 100644
--- a/lib/divsi3.c
+++ b/lib/divsi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/divti3.c b/lib/divti3.c
index c752f6cfbe9..4ec3fa35ec5 100644
--- a/lib/divti3.c
+++ b/lib/divti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/divxc3.c b/lib/divxc3.c
index 03357ae552c..f054d402839 100644
--- a/lib/divxc3.c
+++ b/lib/divxc3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/enable_execute_stack.c b/lib/enable_execute_stack.c
index 193e7dbc23b..7ab8e8d4155 100644
--- a/lib/enable_execute_stack.c
+++ b/lib/enable_execute_stack.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*/
diff --git a/lib/endianness.h b/lib/endianness.h
index 6d2587d022e..9b7e7c1f09c 100644
--- a/lib/endianness.h
+++ b/lib/endianness.h
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/eprintf.c b/lib/eprintf.c
index 786fe6aaa67..7c79174fcb5 100644
--- a/lib/eprintf.c
+++ b/lib/eprintf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*/
diff --git a/lib/extendsfdf2.c b/lib/extendsfdf2.c
index 025eb957244..db65acf97b2 100644
--- a/lib/extendsfdf2.c
+++ b/lib/extendsfdf2.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/ffsdi2.c b/lib/ffsdi2.c
index 8c03d19afcc..8a1c68cb323 100644
--- a/lib/ffsdi2.c
+++ b/lib/ffsdi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/ffsti2.c b/lib/ffsti2.c
index 0139eb1f757..948c696b6a1 100644
--- a/lib/ffsti2.c
+++ b/lib/ffsti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixdfdi.c b/lib/fixdfdi.c
index 3d3116c1811..3a760ff2497 100644
--- a/lib/fixdfdi.c
+++ b/lib/fixdfdi.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixdfsi.c b/lib/fixdfsi.c
index 7d17aeddeb4..98062abce4b 100644
--- a/lib/fixdfsi.c
+++ b/lib/fixdfsi.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/fixdfti.c b/lib/fixdfti.c
index 359b84eaece..4140d144618 100644
--- a/lib/fixdfti.c
+++ b/lib/fixdfti.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixsfdi.c b/lib/fixsfdi.c
index 08f1524e152..1a85306520b 100644
--- a/lib/fixsfdi.c
+++ b/lib/fixsfdi.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixsfsi.c b/lib/fixsfsi.c
index ff79377198f..b68471d7c6b 100644
--- a/lib/fixsfsi.c
+++ b/lib/fixsfsi.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/fixsfti.c b/lib/fixsfti.c
index 95992fe3f48..c64e5aea584 100644
--- a/lib/fixsfti.c
+++ b/lib/fixsfti.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixunsdfdi.c b/lib/fixunsdfdi.c
index bdcee13e80b..1c78e2bb136 100644
--- a/lib/fixunsdfdi.c
+++ b/lib/fixunsdfdi.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixunsdfsi.c b/lib/fixunsdfsi.c
index a0cba79aabb..e0298915660 100644
--- a/lib/fixunsdfsi.c
+++ b/lib/fixunsdfsi.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixunsdfti.c b/lib/fixunsdfti.c
index c1cd72deca2..524a2078fa4 100644
--- a/lib/fixunsdfti.c
+++ b/lib/fixunsdfti.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixunssfdi.c b/lib/fixunssfdi.c
index 3837bd890e6..3b1bc4af948 100644
--- a/lib/fixunssfdi.c
+++ b/lib/fixunssfdi.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixunssfsi.c b/lib/fixunssfsi.c
index a001cd48196..023d7b2445d 100644
--- a/lib/fixunssfsi.c
+++ b/lib/fixunssfsi.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixunssfti.c b/lib/fixunssfti.c
index 20b7e760547..b807910177a 100644
--- a/lib/fixunssfti.c
+++ b/lib/fixunssfti.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixunsxfdi.c b/lib/fixunsxfdi.c
index 872727bcd3d..6c817d8e128 100644
--- a/lib/fixunsxfdi.c
+++ b/lib/fixunsxfdi.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixunsxfsi.c b/lib/fixunsxfsi.c
index c9a607ace6d..b9da86c4f8e 100644
--- a/lib/fixunsxfsi.c
+++ b/lib/fixunsxfsi.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixunsxfti.c b/lib/fixunsxfti.c
index d0bd512c4d4..f0e16dbfe4d 100644
--- a/lib/fixunsxfti.c
+++ b/lib/fixunsxfti.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixxfdi.c b/lib/fixxfdi.c
index de6f818b8cd..9592ce43025 100644
--- a/lib/fixxfdi.c
+++ b/lib/fixxfdi.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fixxfti.c b/lib/fixxfti.c
index c2248016c85..1022770f114 100644
--- a/lib/fixxfti.c
+++ b/lib/fixxfti.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floatdidf.c b/lib/floatdidf.c
index a0f501b60ff..cad354a57fc 100644
--- a/lib/floatdidf.c
+++ b/lib/floatdidf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
*===----------------------------------------------------------------------===
*
diff --git a/lib/floatdisf.c b/lib/floatdisf.c
index 1925f1588c5..71d603b568f 100644
--- a/lib/floatdisf.c
+++ b/lib/floatdisf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
*===----------------------------------------------------------------------===
*
diff --git a/lib/floatdixf.c b/lib/floatdixf.c
index bfda367dfec..ebf62dba058 100644
--- a/lib/floatdixf.c
+++ b/lib/floatdixf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floatsidf.c b/lib/floatsidf.c
index a13ab8fbcfb..85facea1632 100644
--- a/lib/floatsidf.c
+++ b/lib/floatsidf.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/floatsisf.c b/lib/floatsisf.c
index 4a629755e78..d1bb4607647 100644
--- a/lib/floatsisf.c
+++ b/lib/floatsisf.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/floattidf.c b/lib/floattidf.c
index 274f58517c4..f61844d5e59 100644
--- a/lib/floattidf.c
+++ b/lib/floattidf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floattisf.c b/lib/floattisf.c
index 72f37481b3a..7eb761d7ab2 100644
--- a/lib/floattisf.c
+++ b/lib/floattisf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floattixf.c b/lib/floattixf.c
index 77d906049be..e4bcb5ff009 100644
--- a/lib/floattixf.c
+++ b/lib/floattixf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floatundidf.c b/lib/floatundidf.c
index 1f304c5c353..506fc3c4be7 100644
--- a/lib/floatundidf.c
+++ b/lib/floatundidf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floatundisf.c b/lib/floatundisf.c
index 79b4b82e3a0..55e40230ecb 100644
--- a/lib/floatundisf.c
+++ b/lib/floatundisf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floatundixf.c b/lib/floatundixf.c
index bc9582f7604..64f7662d952 100644
--- a/lib/floatundixf.c
+++ b/lib/floatundixf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floatunsidf.c b/lib/floatunsidf.c
index 05242c18ab3..0f473aa1aad 100644
--- a/lib/floatunsidf.c
+++ b/lib/floatunsidf.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/floatunsisf.c b/lib/floatunsisf.c
index 31c06443290..48eff93a2fc 100644
--- a/lib/floatunsisf.c
+++ b/lib/floatunsisf.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/floatuntidf.c b/lib/floatuntidf.c
index 51d8b2827a3..bab7483d99e 100644
--- a/lib/floatuntidf.c
+++ b/lib/floatuntidf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floatuntisf.c b/lib/floatuntisf.c
index 328f39bbef7..0ab6d7e56f5 100644
--- a/lib/floatuntisf.c
+++ b/lib/floatuntisf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/floatuntixf.c b/lib/floatuntixf.c
index e82d0c1e6ff..a84709aef60 100644
--- a/lib/floatuntixf.c
+++ b/lib/floatuntixf.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/fp_lib.h b/lib/fp_lib.h
index eac670d7f23..6c9455ace0e 100644
--- a/lib/fp_lib.h
+++ b/lib/fp_lib.h
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/gcc_personality_v0.c b/lib/gcc_personality_v0.c
index 59401900ef8..c840eef4842 100644
--- a/lib/gcc_personality_v0.c
+++ b/lib/gcc_personality_v0.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/i386/ashldi3.S b/lib/i386/ashldi3.S
index af6f98bc7cf..5488ad6e52b 100644
--- a/lib/i386/ashldi3.S
+++ b/lib/i386/ashldi3.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/ashrdi3.S b/lib/i386/ashrdi3.S
index 346f9b1adc1..b1445ddb99c 100644
--- a/lib/i386/ashrdi3.S
+++ b/lib/i386/ashrdi3.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/divdi3.S b/lib/i386/divdi3.S
index 5ad530c34a4..69593e32e9e 100644
--- a/lib/i386/divdi3.S
+++ b/lib/i386/divdi3.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/floatdidf.S b/lib/i386/floatdidf.S
index 3a526eab9f9..a953d26cec0 100644
--- a/lib/i386/floatdidf.S
+++ b/lib/i386/floatdidf.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/floatdisf.S b/lib/i386/floatdisf.S
index 741e4a6607f..a98a46ee33a 100644
--- a/lib/i386/floatdisf.S
+++ b/lib/i386/floatdisf.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/floatdixf.S b/lib/i386/floatdixf.S
index f0271abcbdc..412976fb41b 100644
--- a/lib/i386/floatdixf.S
+++ b/lib/i386/floatdixf.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/floatundidf.S b/lib/i386/floatundidf.S
index 7186a355d96..6bba7e1cf72 100644
--- a/lib/i386/floatundidf.S
+++ b/lib/i386/floatundidf.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/i386/floatundisf.S b/lib/i386/floatundisf.S
index 070820c9d4d..1afd1d4d05b 100644
--- a/lib/i386/floatundisf.S
+++ b/lib/i386/floatundisf.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/floatundixf.S b/lib/i386/floatundixf.S
index 2cf6d5c2a6e..6e6710bd4ac 100644
--- a/lib/i386/floatundixf.S
+++ b/lib/i386/floatundixf.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/lshrdi3.S b/lib/i386/lshrdi3.S
index 74937d2d8c1..cf411f22e0b 100644
--- a/lib/i386/lshrdi3.S
+++ b/lib/i386/lshrdi3.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/moddi3.S b/lib/i386/moddi3.S
index 85f5b3811d5..8839cfc51d9 100644
--- a/lib/i386/moddi3.S
+++ b/lib/i386/moddi3.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/muldi3.S b/lib/i386/muldi3.S
index 5f99f6a9ea8..e56a3553bd3 100644
--- a/lib/i386/muldi3.S
+++ b/lib/i386/muldi3.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/udivdi3.S b/lib/i386/udivdi3.S
index 77936f858ac..5abeaeaaf47 100644
--- a/lib/i386/udivdi3.S
+++ b/lib/i386/udivdi3.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/i386/umoddi3.S b/lib/i386/umoddi3.S
index 3cf8aeb62b2..7fd84853b5b 100644
--- a/lib/i386/umoddi3.S
+++ b/lib/i386/umoddi3.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/int_lib.h b/lib/int_lib.h
index 912a12f5937..e1fd6b73dc7 100644
--- a/lib/int_lib.h
+++ b/lib/int_lib.h
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
@@ -20,6 +20,7 @@
/* Assumption: right shift of signed negative is arithmetic shift */
#include
+#include
#include "endianness.h"
#include
diff --git a/lib/lshrdi3.c b/lib/lshrdi3.c
index 57484ee750a..84525b78a1a 100644
--- a/lib/lshrdi3.c
+++ b/lib/lshrdi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/lshrti3.c b/lib/lshrti3.c
index 3272c9ca831..5fdd99eb770 100644
--- a/lib/lshrti3.c
+++ b/lib/lshrti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/moddi3.c b/lib/moddi3.c
index 45335559682..3b350ddc3fb 100644
--- a/lib/moddi3.c
+++ b/lib/moddi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/modsi3.c b/lib/modsi3.c
index c9214a24f39..70d38a6b5d5 100644
--- a/lib/modsi3.c
+++ b/lib/modsi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
@@ -14,10 +14,12 @@
#include "int_lib.h"
+su_int __divsi3(si_int a, si_int b);
+
/* Returns: a % b */
si_int
__modsi3(si_int a, si_int b)
{
- return a - (a / b) * b;
+ return a - __divsi3(a, b) * b;
}
diff --git a/lib/modti3.c b/lib/modti3.c
index 75d688ef0a6..dbe5e949b9d 100644
--- a/lib/modti3.c
+++ b/lib/modti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/muldc3.c b/lib/muldc3.c
index c048d84faa1..9f9bd2aaa2b 100644
--- a/lib/muldc3.c
+++ b/lib/muldc3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/muldf3.c b/lib/muldf3.c
index 63a473e88d2..85672e58443 100644
--- a/lib/muldf3.c
+++ b/lib/muldf3.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/muldi3.c b/lib/muldi3.c
index 38963b72630..43637324bae 100644
--- a/lib/muldi3.c
+++ b/lib/muldi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/mulsc3.c b/lib/mulsc3.c
index c7b9f641726..a878ba1f39b 100644
--- a/lib/mulsc3.c
+++ b/lib/mulsc3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/mulsf3.c b/lib/mulsf3.c
index 6bd2f9dcae5..dd4ce11a089 100644
--- a/lib/mulsf3.c
+++ b/lib/mulsf3.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/multi3.c b/lib/multi3.c
index 13a386781a9..ad8ab3fcbcb 100644
--- a/lib/multi3.c
+++ b/lib/multi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
diff --git a/lib/mulvdi3.c b/lib/mulvdi3.c
index 295ae18d3c8..fcbb5b3f6ee 100644
--- a/lib/mulvdi3.c
+++ b/lib/mulvdi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/mulvsi3.c b/lib/mulvsi3.c
index b4a509be209..6271cd44a3c 100644
--- a/lib/mulvsi3.c
+++ b/lib/mulvsi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/mulvti3.c b/lib/mulvti3.c
index 778222ee6c9..7da9187ffc7 100644
--- a/lib/mulvti3.c
+++ b/lib/mulvti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/mulxc3.c b/lib/mulxc3.c
index 94895f2551f..b5ae8655480 100644
--- a/lib/mulxc3.c
+++ b/lib/mulxc3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/negdf2.c b/lib/negdf2.c
index 527b068a17a..aeae2e8a344 100644
--- a/lib/negdf2.c
+++ b/lib/negdf2.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/negdi2.c b/lib/negdi2.c
index 707b0dd7825..b000dda3b83 100644
--- a/lib/negdi2.c
+++ b/lib/negdi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/negsf2.c b/lib/negsf2.c
index 5e91e87e988..d211f7cc89b 100644
--- a/lib/negsf2.c
+++ b/lib/negsf2.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/negti2.c b/lib/negti2.c
index 6ce6a0403ac..774e8082945 100644
--- a/lib/negti2.c
+++ b/lib/negti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/negvdi2.c b/lib/negvdi2.c
index 0baf377400e..2851d26f479 100644
--- a/lib/negvdi2.c
+++ b/lib/negvdi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/negvsi2.c b/lib/negvsi2.c
index e5a36a5dacf..1a833476059 100644
--- a/lib/negvsi2.c
+++ b/lib/negvsi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/negvti2.c b/lib/negvti2.c
index d56e1e32ade..d93130542b0 100644
--- a/lib/negvti2.c
+++ b/lib/negvti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
*===----------------------------------------------------------------------===
*
diff --git a/lib/paritydi2.c b/lib/paritydi2.c
index 90e5559bc79..9d349b8c241 100644
--- a/lib/paritydi2.c
+++ b/lib/paritydi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/paritysi2.c b/lib/paritysi2.c
index ba05782a2a7..76de328e1ea 100644
--- a/lib/paritysi2.c
+++ b/lib/paritysi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/parityti2.c b/lib/parityti2.c
index 650d417936a..8f857455a7b 100644
--- a/lib/parityti2.c
+++ b/lib/parityti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/popcountdi2.c b/lib/popcountdi2.c
index 78b6d88d731..0778a66c81d 100644
--- a/lib/popcountdi2.c
+++ b/lib/popcountdi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/popcountsi2.c b/lib/popcountsi2.c
index 4f092ee4017..e425b0b8638 100644
--- a/lib/popcountsi2.c
+++ b/lib/popcountsi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/popcountti2.c b/lib/popcountti2.c
index 16f89b7abab..68d94270792 100644
--- a/lib/popcountti2.c
+++ b/lib/popcountti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/powidf2.c b/lib/powidf2.c
index 37972b68b6e..0200e1eab0b 100644
--- a/lib/powidf2.c
+++ b/lib/powidf2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/powisf2.c b/lib/powisf2.c
index ace08c26675..c834b969695 100644
--- a/lib/powisf2.c
+++ b/lib/powisf2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/powitf2.c b/lib/powitf2.c
index 3dacbf6bfc2..189632cf630 100644
--- a/lib/powitf2.c
+++ b/lib/powitf2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/powixf2.c b/lib/powixf2.c
index 1a816e9131c..f050964d359 100644
--- a/lib/powixf2.c
+++ b/lib/powixf2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/ppc/restFP.S b/lib/ppc/restFP.S
index 00919c8cdce..95032897c0d 100644
--- a/lib/ppc/restFP.S
+++ b/lib/ppc/restFP.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/ppc/saveFP.S b/lib/ppc/saveFP.S
index 302da6e9c59..72bd459f4cc 100644
--- a/lib/ppc/saveFP.S
+++ b/lib/ppc/saveFP.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/lib/subvdi3.c b/lib/subvdi3.c
index e4926b81646..17f55d00059 100644
--- a/lib/subvdi3.c
+++ b/lib/subvdi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/subvsi3.c b/lib/subvsi3.c
index ce39c815b86..51bb454475a 100644
--- a/lib/subvsi3.c
+++ b/lib/subvsi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/subvti3.c b/lib/subvti3.c
index 55b7925a14b..5d693dc9aba 100644
--- a/lib/subvti3.c
+++ b/lib/subvti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/trampoline_setup.c b/lib/trampoline_setup.c
index 8254e362a7d..ced119fb583 100644
--- a/lib/trampoline_setup.c
+++ b/lib/trampoline_setup.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*/
diff --git a/lib/truncdfsf2.c b/lib/truncdfsf2.c
index d289cb98918..92609fb784c 100644
--- a/lib/truncdfsf2.c
+++ b/lib/truncdfsf2.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/ucmpdi2.c b/lib/ucmpdi2.c
index d2900cae436..ead726723aa 100644
--- a/lib/ucmpdi2.c
+++ b/lib/ucmpdi2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/ucmpti2.c b/lib/ucmpti2.c
index 0e7eea3e3d1..11137c5a5ee 100644
--- a/lib/ucmpti2.c
+++ b/lib/ucmpti2.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/udivdi3.c b/lib/udivdi3.c
index 25d1df643c9..642f2fb9c25 100644
--- a/lib/udivdi3.c
+++ b/lib/udivdi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/udivmoddi4.c b/lib/udivmoddi4.c
index 92742302cf6..693736fb8cd 100644
--- a/lib/udivmoddi4.c
+++ b/lib/udivmoddi4.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/udivmodsi4.c b/lib/udivmodsi4.c
new file mode 100644
index 00000000000..38b5bd43de6
--- /dev/null
+++ b/lib/udivmodsi4.c
@@ -0,0 +1,30 @@
+/*===-- udivmodsi4.c - Implement __udivmodsi4 ------------------------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file implements __udivmodsi4 for the compiler_rt library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+
+#include "int_lib.h"
+
+extern su_int __udivsi3(su_int n, su_int d);
+
+
+/* Returns: a / b, *rem = a % b */
+
+su_int
+__udivmodsi4(su_int a, su_int b, su_int* rem)
+{
+ si_int d = __udivsi3(a,b);
+ *rem = a - (d*b);
+ return d;
+}
+
+
diff --git a/lib/udivmodti4.c b/lib/udivmodti4.c
index 53b407256e6..d1e19edd4c3 100644
--- a/lib/udivmodti4.c
+++ b/lib/udivmodti4.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/udivsi3.c b/lib/udivsi3.c
index 70528b66e2b..476f2bc310b 100644
--- a/lib/udivsi3.c
+++ b/lib/udivsi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/udivti3.c b/lib/udivti3.c
index fb810fda5fa..7405a0f9865 100644
--- a/lib/udivti3.c
+++ b/lib/udivti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/umoddi3.c b/lib/umoddi3.c
index 807bb5cec62..adb4b0e75df 100644
--- a/lib/umoddi3.c
+++ b/lib/umoddi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/umodsi3.c b/lib/umodsi3.c
index ead7737587a..d3aaaeae000 100644
--- a/lib/umodsi3.c
+++ b/lib/umodsi3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/umodti3.c b/lib/umodti3.c
index 6c8a7581aee..8f20c5fe35b 100644
--- a/lib/umodti3.c
+++ b/lib/umodti3.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/lib/x86_64/floatundidf.S b/lib/x86_64/floatundidf.S
index 6e684b2a4ca..1be553b7d1e 100644
--- a/lib/x86_64/floatundidf.S
+++ b/lib/x86_64/floatundidf.S
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/lib/x86_64/floatundisf.S b/lib/x86_64/floatundisf.S
index fe209632a38..89d3f07dfcc 100644
--- a/lib/x86_64/floatundisf.S
+++ b/lib/x86_64/floatundisf.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/lib/x86_64/floatundixf.S b/lib/x86_64/floatundixf.S
index 246f0266c8a..a7243f2c545 100644
--- a/lib/x86_64/floatundixf.S
+++ b/lib/x86_64/floatundixf.S
@@ -1,5 +1,5 @@
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
#include "../assembly.h"
diff --git a/make/AppleBI.mk b/make/AppleBI.mk
index 8cbce5fbaf5..184c16ad84e 100644
--- a/make/AppleBI.mk
+++ b/make/AppleBI.mk
@@ -14,8 +14,14 @@ endif
ifeq (,$(SDKROOT))
INSTALL_TARGET = install-MacOSX
+ LD_OTHER_FLAGS =
else
INSTALL_TARGET = install-iOS
+ CFLAGS.Release.armv6 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
+ CFLAGS.Release.armv7 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
+ CFLAGS.Static.armv6 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
+ CFLAGS.Static.armv7 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
+ LD_OTHER_FLAGS = -Wl,-alias_list,$(SRCROOT)/lib/arm/softfloat-alias.list -isysroot $(SDKROOT)
endif
@@ -48,11 +54,11 @@ install-MacOSX : $(SYMROOT)/libcompiler_rt.dylib
# Rule to make each dylib slice
$(OBJROOT)/libcompiler_rt-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_rt.a
echo "const char vers[] = \"@(#) $(RC_ProjectName)-$(RC_ProjectSourceVersion)\"; " > $(OBJROOT)/version.c
- cc $(OBJROOT)/version.c -arch $* -dynamiclib \
+ $(CC.Release) $(OBJROOT)/version.c -arch $* -dynamiclib \
-install_name /usr/lib/system/libcompiler_rt.dylib \
-compatibility_version 1 -current_version $(RC_ProjectSourceVersion) \
-nodefaultlibs -lSystem -umbrella System -dead_strip \
- -Wl,-force_load,$^ -o $@
+ $(LD_OTHER_FLAGS) -Wl,-force_load,$^ -o $@
# Rule to make fat dylib
$(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(RC_ARCHS), \
@@ -63,19 +69,15 @@ $(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(RC_ARCHS), \
# Copy results to DSTROOT.
-install-iOS: $(SYMROOT)/libcompiler_rt.a $(SYMROOT)/libcompiler_rt-static.a
- mkdir -p $(DSTROOT)/usr/local/lib/libgcc
- cp $(SYMROOT)/libcompiler_rt.a \
- $(DSTROOT)/usr/local/lib/libgcc/libcompiler_rt.a
- mkdir -p $(DSTROOT)/usr/local/
+install-iOS: $(SYMROOT)/libcompiler_rt-static.a \
+ $(SYMROOT)/libcompiler_rt.dylib
+ mkdir -p $(DSTROOT)/usr/local/lib
cp $(SYMROOT)/libcompiler_rt-static.a \
$(DSTROOT)/usr/local/lib/libcompiler_rt-static.a
+ mkdir -p $(DSTROOT)/usr/lib/system
+ strip -S $(SYMROOT)/libcompiler_rt.dylib \
+ -o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib
-
-# Rule to make fat archive
-$(SYMROOT)/libcompiler_rt.a : $(foreach arch,$(RC_ARCHS), \
- $(OBJROOT)/darwin_bni/Release/$(arch)/libcompiler_rt.a)
- lipo -create $^ -o $@
# Rule to make fat archive
$(SYMROOT)/libcompiler_rt-static.a : $(foreach arch,$(RC_ARCHS), \
diff --git a/make/platform/clang_darwin.mk b/make/platform/clang_darwin.mk
index 23cd3a42f86..a29793991eb 100644
--- a/make/platform/clang_darwin.mk
+++ b/make/platform/clang_darwin.mk
@@ -28,11 +28,7 @@ UniversalArchs.armv6 := armv6
# Configuration for use with kernel/kexts.
Configs += cc_kext
-UniversalArchs.cc_kext := armv6 i386 x86_64
-
-# FIXME: Don't build an armv7 slice currently, they have the same functions.
-#
-#UniversalArchs.cc_kext := armv6 armv7 i386 x86_64
+UniversalArchs.cc_kext := armv6 armv7 i386 x86_64
###
@@ -58,7 +54,6 @@ CCKEXT_COMMON_FUNCTIONS := \
ashrdi3 \
bswapdi2 \
bswapsi2 \
- clear_cache \
clzdi2 \
clzsi2 \
cmpdi2 \
@@ -105,7 +100,7 @@ CCKEXT_COMMON_FUNCTIONS := \
udivmoddi4 \
umoddi3
-CCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTONS) \
+CCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \
adddf3 \
addsf3 \
aeabi_cdcmpeq \
@@ -164,6 +159,9 @@ CCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTONS) \
FUNCTIONS.cc_kext.armv6 := $(CCKEXT_ARM_FUNCTIONS)
FUNCTIONS.cc_kext.armv7 := $(CCKEXT_ARM_FUNCTIONS)
+CFLAGS.cc_kext.armv6 := $(CFLAGS) -mthumb
+CFLAGS.cc_kext.armv7 := $(CFLAGS) -mthumb
+
CCKEXT_X86_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \
divxc3 \
fixunsxfdi \
diff --git a/make/platform/darwin_bni.mk b/make/platform/darwin_bni.mk
index ec859f3b5d6..f15334f3194 100644
--- a/make/platform/darwin_bni.mk
+++ b/make/platform/darwin_bni.mk
@@ -61,10 +61,10 @@ FUNCTIONS.armv5 := $(FUNCTIONS) \
muldf3 mulsf3 \
negdf2 negsf2 \
truncdfsf2 \
- modsi3 umodsi3 udivsi3 divsi3 \
+ modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4 \
switch8 switchu8 switch16 switch32 \
sync_synchronize
-
+
FUNCTIONS.armv6 := $(FUNCTIONS) \
comparedf2 comparesf2 \
adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \
@@ -76,10 +76,11 @@ FUNCTIONS.armv6 := $(FUNCTIONS) \
muldf3vfp mulsf3vfp \
nedf2vfp nesf2vfp \
subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
- modsi3 umodsi3 udivsi3 divsi3 \
+ modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4 \
switch8 switchu8 switch16 switch32 \
restore_vfp_d8_d15_regs save_vfp_d8_d15_regs \
sync_synchronize
+
FUNCTIONS.armv7 := $(FUNCTIONS) \
comparedf2 comparesf2 \
adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \
@@ -91,5 +92,5 @@ FUNCTIONS.armv7 := $(FUNCTIONS) \
muldf3vfp mulsf3vfp \
nedf2vfp nesf2vfp \
subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
- modsi3 umodsi3 udivsi3 divsi3
+ modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4
diff --git a/test/Unit/absvdi2_test.c b/test/Unit/absvdi2_test.c
index 5974f9ca764..f0bf560681e 100644
--- a/test/Unit/absvdi2_test.c
+++ b/test/Unit/absvdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/absvsi2_test.c b/test/Unit/absvsi2_test.c
index d7406a0f62c..3b88078dfb4 100644
--- a/test/Unit/absvsi2_test.c
+++ b/test/Unit/absvsi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/absvti2_test.c b/test/Unit/absvti2_test.c
index 1ab4f5f6dd4..0a1db6a5650 100644
--- a/test/Unit/absvti2_test.c
+++ b/test/Unit/absvti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/adddf3vfp_test.c b/test/Unit/adddf3vfp_test.c
index c5bec05ca39..6ead2341abf 100644
--- a/test/Unit/adddf3vfp_test.c
+++ b/test/Unit/adddf3vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/addsf3vfp_test.c b/test/Unit/addsf3vfp_test.c
index 0a731a9be5d..ddfe39f9627 100644
--- a/test/Unit/addsf3vfp_test.c
+++ b/test/Unit/addsf3vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/addvdi3_test.c b/test/Unit/addvdi3_test.c
index b4247bd417e..0d7271d5a4a 100644
--- a/test/Unit/addvdi3_test.c
+++ b/test/Unit/addvdi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/addvsi3_test.c b/test/Unit/addvsi3_test.c
index f6acde1add5..59fd9d2ae15 100644
--- a/test/Unit/addvsi3_test.c
+++ b/test/Unit/addvsi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/addvti3_test.c b/test/Unit/addvti3_test.c
index 17a8864947a..33cfbc98529 100644
--- a/test/Unit/addvti3_test.c
+++ b/test/Unit/addvti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ashldi3_test.c b/test/Unit/ashldi3_test.c
index 8afe3d70840..fb80c6f77e4 100644
--- a/test/Unit/ashldi3_test.c
+++ b/test/Unit/ashldi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ashlti3_test.c b/test/Unit/ashlti3_test.c
index 2921a6aaa66..4b6c6ca0164 100644
--- a/test/Unit/ashlti3_test.c
+++ b/test/Unit/ashlti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ashrdi3_test.c b/test/Unit/ashrdi3_test.c
index 487fa25f920..ac517e19188 100644
--- a/test/Unit/ashrdi3_test.c
+++ b/test/Unit/ashrdi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ashrti3_test.c b/test/Unit/ashrti3_test.c
index aaef120ac8d..bfa34cbe967 100644
--- a/test/Unit/ashrti3_test.c
+++ b/test/Unit/ashrti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/bswapdi2_test.c b/test/Unit/bswapdi2_test.c
index 177032d07d4..634c2f9b1d4 100644
--- a/test/Unit/bswapdi2_test.c
+++ b/test/Unit/bswapdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/bswapsi2_test.c b/test/Unit/bswapsi2_test.c
index 8ca4874a13c..4fb756008b4 100644
--- a/test/Unit/bswapsi2_test.c
+++ b/test/Unit/bswapsi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/clear_cache_test.c b/test/Unit/clear_cache_test.c
index 63ca66e8780..52672395417 100644
--- a/test/Unit/clear_cache_test.c
+++ b/test/Unit/clear_cache_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/test/Unit/clzdi2_test.c b/test/Unit/clzdi2_test.c
index 24b85d8b774..58403f091f4 100644
--- a/test/Unit/clzdi2_test.c
+++ b/test/Unit/clzdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/clzsi2_test.c b/test/Unit/clzsi2_test.c
index c4555d756ca..cc1da64b03e 100644
--- a/test/Unit/clzsi2_test.c
+++ b/test/Unit/clzsi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/clzti2_test.c b/test/Unit/clzti2_test.c
index e1229f1c4ad..668c790b4d5 100644
--- a/test/Unit/clzti2_test.c
+++ b/test/Unit/clzti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/cmpdi2_test.c b/test/Unit/cmpdi2_test.c
index 459a5d50baf..609ab1a63a6 100644
--- a/test/Unit/cmpdi2_test.c
+++ b/test/Unit/cmpdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/cmpti2_test.c b/test/Unit/cmpti2_test.c
index f590ddfe5f6..2f5828ededa 100644
--- a/test/Unit/cmpti2_test.c
+++ b/test/Unit/cmpti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/comparedf2_test.c b/test/Unit/comparedf2_test.c
index 7bbf0a3f1aa..66237229029 100644
--- a/test/Unit/comparedf2_test.c
+++ b/test/Unit/comparedf2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/comparesf2_test.c b/test/Unit/comparesf2_test.c
index c6d142466b0..026e90053bc 100644
--- a/test/Unit/comparesf2_test.c
+++ b/test/Unit/comparesf2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ctzdi2_test.c b/test/Unit/ctzdi2_test.c
index b72fdb30750..1f2d101a194 100644
--- a/test/Unit/ctzdi2_test.c
+++ b/test/Unit/ctzdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ctzsi2_test.c b/test/Unit/ctzsi2_test.c
index 2c6fd0e9169..36f221595b6 100644
--- a/test/Unit/ctzsi2_test.c
+++ b/test/Unit/ctzsi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ctzti2_test.c b/test/Unit/ctzti2_test.c
index ad18b44ebab..485a88d70a9 100644
--- a/test/Unit/ctzti2_test.c
+++ b/test/Unit/ctzti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/divdc3_test.c b/test/Unit/divdc3_test.c
index c44eb5c4a9c..9224cddceeb 100644
--- a/test/Unit/divdc3_test.c
+++ b/test/Unit/divdc3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/divdf3vfp_test.c b/test/Unit/divdf3vfp_test.c
index 2ca382a5e9d..ce5b2585811 100644
--- a/test/Unit/divdf3vfp_test.c
+++ b/test/Unit/divdf3vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/divdi3_test.c b/test/Unit/divdi3_test.c
index 0566a785095..c25f917a419 100644
--- a/test/Unit/divdi3_test.c
+++ b/test/Unit/divdi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/divmodsi4_test.c b/test/Unit/divmodsi4_test.c
new file mode 100644
index 00000000000..bea31ea9a44
--- /dev/null
+++ b/test/Unit/divmodsi4_test.c
@@ -0,0 +1,73 @@
+//===-- divmodsi4_test.c - Test __divmodsi4 -------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file tests __divmodsi4 for the compiler_rt library.
+//
+//===----------------------------------------------------------------------===//
+
+#include "int_lib.h"
+#include
+
+// Returns: a / b
+
+extern si_int __divmodsi4(si_int a, si_int b, si_int* rem);
+
+
+int test__divmodsi4(si_int a, si_int b,
+ si_int expected_result, si_int expected_rem)
+{
+ si_int rem;
+ si_int result = __divmodsi4(a, b, &rem);
+ if (result != expected_result) {
+ printf("error in __divmodsi4: %d / %d = %d, expected %d\n",
+ a, b, result, expected_result);
+ return 1;
+ }
+ if (rem != expected_rem) {
+ printf("error in __divmodsi4: %d mod %d = %d, expected %d\n",
+ a, b, rem, expected_rem);
+ return 1;
+ }
+
+ return 0;
+}
+
+
+int main()
+{
+ if (test__divmodsi4(0, 1, 0, 0))
+ return 1;
+ if (test__divmodsi4(0, -1, 0, 0))
+ return 1;
+
+ if (test__divmodsi4(2, 1, 2, 0))
+ return 1;
+ if (test__divmodsi4(2, -1, -2, 0))
+ return 1;
+ if (test__divmodsi4(-2, 1, -2, 0))
+ return 1;
+ if (test__divmodsi4(-2, -1, 2, 0))
+ return 1;
+
+ if (test__divmodsi4(7, 5, 1, 2))
+ return 1;
+ if (test__divmodsi4(-7, 5, -1, -2))
+ return 1;
+ if (test__divmodsi4(19, 5, 3, 4))
+ return 1;
+ if (test__divmodsi4(19, -5, -3, 4))
+ return 1;
+
+ if (test__divmodsi4(0x80000000, 8, 0xf0000000, 0))
+ return 1;
+ if (test__divmodsi4(0x80000007, 8, 0xf0000001, -1))
+ return 1;
+
+ return 0;
+}
diff --git a/test/Unit/divsc3_test.c b/test/Unit/divsc3_test.c
index 50979abf29f..9d060a2d148 100644
--- a/test/Unit/divsc3_test.c
+++ b/test/Unit/divsc3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/divsf3vfp_test.c b/test/Unit/divsf3vfp_test.c
index 0dbae2fc086..6248ca0c66e 100644
--- a/test/Unit/divsf3vfp_test.c
+++ b/test/Unit/divsf3vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/divsi3_test.c b/test/Unit/divsi3_test.c
index 425c5798f1a..6fda54ff37e 100644
--- a/test/Unit/divsi3_test.c
+++ b/test/Unit/divsi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/divtc3_test.c b/test/Unit/divtc3_test.c
index 3fa6085002a..815c10bcd06 100644
--- a/test/Unit/divtc3_test.c
+++ b/test/Unit/divtc3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/divti3_test.c b/test/Unit/divti3_test.c
index b5546caf3c6..c9eceedd40c 100644
--- a/test/Unit/divti3_test.c
+++ b/test/Unit/divti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/divxc3_test.c b/test/Unit/divxc3_test.c
index 6c64d342e03..c93db67d875 100644
--- a/test/Unit/divxc3_test.c
+++ b/test/Unit/divxc3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/enable_execute_stack_test.c b/test/Unit/enable_execute_stack_test.c
index a0e97bb7d0b..ae4c320adb8 100644
--- a/test/Unit/enable_execute_stack_test.c
+++ b/test/Unit/enable_execute_stack_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/test/Unit/endianness.h b/test/Unit/endianness.h
index 28b0ace6157..6f9f77b52e5 100644
--- a/test/Unit/endianness.h
+++ b/test/Unit/endianness.h
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/test/Unit/eqdf2vfp_test.c b/test/Unit/eqdf2vfp_test.c
index 36b77ad783e..6babd249858 100644
--- a/test/Unit/eqdf2vfp_test.c
+++ b/test/Unit/eqdf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/eqsf2vfp_test.c b/test/Unit/eqsf2vfp_test.c
index ebcdbc4309d..4a292bc2151 100644
--- a/test/Unit/eqsf2vfp_test.c
+++ b/test/Unit/eqsf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/extebdsfdf2vfp_test.c b/test/Unit/extebdsfdf2vfp_test.c
index f2cf682e03e..9bbe5729ed3 100644
--- a/test/Unit/extebdsfdf2vfp_test.c
+++ b/test/Unit/extebdsfdf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ffsdi2_test.c b/test/Unit/ffsdi2_test.c
index 8713c4f6a2f..9041127d1a6 100644
--- a/test/Unit/ffsdi2_test.c
+++ b/test/Unit/ffsdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ffsti2_test.c b/test/Unit/ffsti2_test.c
index 19da16a436e..b679ab20fe7 100644
--- a/test/Unit/ffsti2_test.c
+++ b/test/Unit/ffsti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixdfdi_test.c b/test/Unit/fixdfdi_test.c
index d84d26d4b72..d08afe3a533 100644
--- a/test/Unit/fixdfdi_test.c
+++ b/test/Unit/fixdfdi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixdfsivfp_test.c b/test/Unit/fixdfsivfp_test.c
index 00d24fb121e..a9f012c4441 100644
--- a/test/Unit/fixdfsivfp_test.c
+++ b/test/Unit/fixdfsivfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixdfti_test.c b/test/Unit/fixdfti_test.c
index 976196380b9..5ea33172d68 100644
--- a/test/Unit/fixdfti_test.c
+++ b/test/Unit/fixdfti_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixsfdi_test.c b/test/Unit/fixsfdi_test.c
index 434e1a9e0ef..d3e934a5c02 100644
--- a/test/Unit/fixsfdi_test.c
+++ b/test/Unit/fixsfdi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixsfsivfp_test.c b/test/Unit/fixsfsivfp_test.c
index 19d70b1e3fd..c10152255b4 100644
--- a/test/Unit/fixsfsivfp_test.c
+++ b/test/Unit/fixsfsivfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixsfti_test.c b/test/Unit/fixsfti_test.c
index 06853072b9d..325659e0eb9 100644
--- a/test/Unit/fixsfti_test.c
+++ b/test/Unit/fixsfti_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunsdfdi_test.c b/test/Unit/fixunsdfdi_test.c
index fbdf3682f0c..0803fd28f5b 100644
--- a/test/Unit/fixunsdfdi_test.c
+++ b/test/Unit/fixunsdfdi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunsdfsi_test.c b/test/Unit/fixunsdfsi_test.c
index 9e6b95d5550..54fe35b5c35 100644
--- a/test/Unit/fixunsdfsi_test.c
+++ b/test/Unit/fixunsdfsi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunsdfsivfp_test.c b/test/Unit/fixunsdfsivfp_test.c
index 7c968f29345..991506f8ac1 100644
--- a/test/Unit/fixunsdfsivfp_test.c
+++ b/test/Unit/fixunsdfsivfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunsdfti_test.c b/test/Unit/fixunsdfti_test.c
index 5b524666f15..1e44b82660c 100644
--- a/test/Unit/fixunsdfti_test.c
+++ b/test/Unit/fixunsdfti_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunssfdi_test.c b/test/Unit/fixunssfdi_test.c
index cde3c22a702..ac89be7bbb2 100644
--- a/test/Unit/fixunssfdi_test.c
+++ b/test/Unit/fixunssfdi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunssfsi_test.c b/test/Unit/fixunssfsi_test.c
index c8995b08abd..ce6a9287515 100644
--- a/test/Unit/fixunssfsi_test.c
+++ b/test/Unit/fixunssfsi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunssfsivfp_test.c b/test/Unit/fixunssfsivfp_test.c
index 9653175f080..08e0e8ee9bc 100644
--- a/test/Unit/fixunssfsivfp_test.c
+++ b/test/Unit/fixunssfsivfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunssfti_test.c b/test/Unit/fixunssfti_test.c
index 33f0596c1b1..cc5e44ba59e 100644
--- a/test/Unit/fixunssfti_test.c
+++ b/test/Unit/fixunssfti_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunstfdi_test.c b/test/Unit/fixunstfdi_test.c
index d96b0ea2955..a7cc9be2fcf 100644
--- a/test/Unit/fixunstfdi_test.c
+++ b/test/Unit/fixunstfdi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunsxfdi_test.c b/test/Unit/fixunsxfdi_test.c
index f8c8945117a..6d0f8d3fb65 100644
--- a/test/Unit/fixunsxfdi_test.c
+++ b/test/Unit/fixunsxfdi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunsxfsi_test.c b/test/Unit/fixunsxfsi_test.c
index 0353b6bf3cc..cb2a7f48721 100644
--- a/test/Unit/fixunsxfsi_test.c
+++ b/test/Unit/fixunsxfsi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixunsxfti_test.c b/test/Unit/fixunsxfti_test.c
index ae5ba08ed91..f1f6087009d 100644
--- a/test/Unit/fixunsxfti_test.c
+++ b/test/Unit/fixunsxfti_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixxfdi_test.c b/test/Unit/fixxfdi_test.c
index 47820c35b5a..1facd36494d 100644
--- a/test/Unit/fixxfdi_test.c
+++ b/test/Unit/fixxfdi_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/fixxfti_test.c b/test/Unit/fixxfti_test.c
index 0d3d182b430..85c15a20c2c 100644
--- a/test/Unit/fixxfti_test.c
+++ b/test/Unit/fixxfti_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatdidf_test.c b/test/Unit/floatdidf_test.c
index d207f5584a3..af3dacd4f38 100644
--- a/test/Unit/floatdidf_test.c
+++ b/test/Unit/floatdidf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatdisf_test.c b/test/Unit/floatdisf_test.c
index 91e098dafd9..3e71df7b222 100644
--- a/test/Unit/floatdisf_test.c
+++ b/test/Unit/floatdisf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatdixf_test.c b/test/Unit/floatdixf_test.c
index d96c7e8e41c..8d049fdb898 100644
--- a/test/Unit/floatdixf_test.c
+++ b/test/Unit/floatdixf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatsidfvfp_test.c b/test/Unit/floatsidfvfp_test.c
index 956fe86232c..79e87b3211c 100644
--- a/test/Unit/floatsidfvfp_test.c
+++ b/test/Unit/floatsidfvfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatsisfvfp_test.c b/test/Unit/floatsisfvfp_test.c
index 5642e9baf48..00f4ac298d3 100644
--- a/test/Unit/floatsisfvfp_test.c
+++ b/test/Unit/floatsisfvfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floattidf_test.c b/test/Unit/floattidf_test.c
index fff51aee228..4fcf272d828 100644
--- a/test/Unit/floattidf_test.c
+++ b/test/Unit/floattidf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floattisf_test.c b/test/Unit/floattisf_test.c
index e4c99801a34..7e43aa10523 100644
--- a/test/Unit/floattisf_test.c
+++ b/test/Unit/floattisf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floattixf_test.c b/test/Unit/floattixf_test.c
index ada9594c664..5ba17f1beb2 100644
--- a/test/Unit/floattixf_test.c
+++ b/test/Unit/floattixf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatundidf_test.c b/test/Unit/floatundidf_test.c
index 5a8dcbfe129..ae91ac374eb 100644
--- a/test/Unit/floatundidf_test.c
+++ b/test/Unit/floatundidf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatundisf_test.c b/test/Unit/floatundisf_test.c
index 782db6d40e1..394c945a391 100644
--- a/test/Unit/floatundisf_test.c
+++ b/test/Unit/floatundisf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatundixf_test.c b/test/Unit/floatundixf_test.c
index 40e1d720efc..43ac85f7a80 100644
--- a/test/Unit/floatundixf_test.c
+++ b/test/Unit/floatundixf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatunssidfvfp_test.c b/test/Unit/floatunssidfvfp_test.c
index be0bd07864d..fa174ef18ad 100644
--- a/test/Unit/floatunssidfvfp_test.c
+++ b/test/Unit/floatunssidfvfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatunssisfvfp_test.c b/test/Unit/floatunssisfvfp_test.c
index 13cee2f4570..099f4e39a3e 100644
--- a/test/Unit/floatunssisfvfp_test.c
+++ b/test/Unit/floatunssisfvfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatuntidf_test.c b/test/Unit/floatuntidf_test.c
index dff3ca6762d..3b630f5c76a 100644
--- a/test/Unit/floatuntidf_test.c
+++ b/test/Unit/floatuntidf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatuntisf_test.c b/test/Unit/floatuntisf_test.c
index 668e727e89c..e80403b4991 100644
--- a/test/Unit/floatuntisf_test.c
+++ b/test/Unit/floatuntisf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/floatuntixf_test.c b/test/Unit/floatuntixf_test.c
index ec4c3ead6cb..9d7f974f06c 100644
--- a/test/Unit/floatuntixf_test.c
+++ b/test/Unit/floatuntixf_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/gcc_personality_test.c b/test/Unit/gcc_personality_test.c
index 7fe661b3219..f9598c697eb 100644
--- a/test/Unit/gcc_personality_test.c
+++ b/test/Unit/gcc_personality_test.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*/
diff --git a/test/Unit/gcc_personality_test_helper.cxx b/test/Unit/gcc_personality_test_helper.cxx
index eb64d82e612..7d1ddfb5d96 100644
--- a/test/Unit/gcc_personality_test_helper.cxx
+++ b/test/Unit/gcc_personality_test_helper.cxx
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
diff --git a/test/Unit/gedf2vfp_test.c b/test/Unit/gedf2vfp_test.c
index 93df4c770c0..4731d3ffc3c 100644
--- a/test/Unit/gedf2vfp_test.c
+++ b/test/Unit/gedf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/gesf2vfp_test.c b/test/Unit/gesf2vfp_test.c
index af67c70e735..9f1c7568c0a 100644
--- a/test/Unit/gesf2vfp_test.c
+++ b/test/Unit/gesf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/gtdf2vfp_test.c b/test/Unit/gtdf2vfp_test.c
index d39ad820661..f28297974f1 100644
--- a/test/Unit/gtdf2vfp_test.c
+++ b/test/Unit/gtdf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/gtsf2vfp_test.c b/test/Unit/gtsf2vfp_test.c
index 40c37f2bfa7..03fb00e1993 100644
--- a/test/Unit/gtsf2vfp_test.c
+++ b/test/Unit/gtsf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ledf2vfp_test.c b/test/Unit/ledf2vfp_test.c
index 87455c38f3a..e7ed522ab4b 100644
--- a/test/Unit/ledf2vfp_test.c
+++ b/test/Unit/ledf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/lesf2vfp_test.c b/test/Unit/lesf2vfp_test.c
index 03cb02a5969..dc5576b9e27 100644
--- a/test/Unit/lesf2vfp_test.c
+++ b/test/Unit/lesf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/lshrdi3_test.c b/test/Unit/lshrdi3_test.c
index 90ad06b1733..ffc6a69d0e9 100644
--- a/test/Unit/lshrdi3_test.c
+++ b/test/Unit/lshrdi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/lshrti3_test.c b/test/Unit/lshrti3_test.c
index 5d68c52532e..093a6a2eb88 100644
--- a/test/Unit/lshrti3_test.c
+++ b/test/Unit/lshrti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ltdf2vfp_test.c b/test/Unit/ltdf2vfp_test.c
index 615785ec1a8..5051e4833a9 100644
--- a/test/Unit/ltdf2vfp_test.c
+++ b/test/Unit/ltdf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ltsf2vfp_test.c b/test/Unit/ltsf2vfp_test.c
index 73df39f12ff..78d2c1a3ae3 100644
--- a/test/Unit/ltsf2vfp_test.c
+++ b/test/Unit/ltsf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/moddi3_test.c b/test/Unit/moddi3_test.c
index ab84c49aac7..9f6801d6f41 100644
--- a/test/Unit/moddi3_test.c
+++ b/test/Unit/moddi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/modsi3_test.c b/test/Unit/modsi3_test.c
index 82a0fab75ca..52ec9a0ae36 100644
--- a/test/Unit/modsi3_test.c
+++ b/test/Unit/modsi3_test.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
diff --git a/test/Unit/modti3_test.c b/test/Unit/modti3_test.c
index 3cbccbe3255..3be071495ad 100644
--- a/test/Unit/modti3_test.c
+++ b/test/Unit/modti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/muldc3_test.c b/test/Unit/muldc3_test.c
index 1d7fe4233c2..112b6120358 100644
--- a/test/Unit/muldc3_test.c
+++ b/test/Unit/muldc3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/muldf3vfp_test.c b/test/Unit/muldf3vfp_test.c
index a99d8e9a709..7ca5559c3aa 100644
--- a/test/Unit/muldf3vfp_test.c
+++ b/test/Unit/muldf3vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/muldi3_test.c b/test/Unit/muldi3_test.c
index 915befa4d29..83b52559264 100644
--- a/test/Unit/muldi3_test.c
+++ b/test/Unit/muldi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/mulsc3_test.c b/test/Unit/mulsc3_test.c
index fa817a6d1ee..7a1b3ae0092 100644
--- a/test/Unit/mulsc3_test.c
+++ b/test/Unit/mulsc3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/mulsf3vfp_test.c b/test/Unit/mulsf3vfp_test.c
index f706c47e6c2..fcb124c9471 100644
--- a/test/Unit/mulsf3vfp_test.c
+++ b/test/Unit/mulsf3vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/multc3_test.c b/test/Unit/multc3_test.c
index 72adb93cbae..40505f217f7 100644
--- a/test/Unit/multc3_test.c
+++ b/test/Unit/multc3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/multi3_test.c b/test/Unit/multi3_test.c
index 4fa27965c3b..a4c0b7dbdf5 100644
--- a/test/Unit/multi3_test.c
+++ b/test/Unit/multi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/mulvdi3_test.c b/test/Unit/mulvdi3_test.c
index 1c73e64c68a..a023bf61127 100644
--- a/test/Unit/mulvdi3_test.c
+++ b/test/Unit/mulvdi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/mulvsi3_test.c b/test/Unit/mulvsi3_test.c
index c9e239a0dbb..1eb53a5d5da 100644
--- a/test/Unit/mulvsi3_test.c
+++ b/test/Unit/mulvsi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/mulvti3_test.c b/test/Unit/mulvti3_test.c
index 509b26739e1..dfe09ffc86b 100644
--- a/test/Unit/mulvti3_test.c
+++ b/test/Unit/mulvti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/mulxc3_test.c b/test/Unit/mulxc3_test.c
index 0390d3436c8..771d19ab273 100644
--- a/test/Unit/mulxc3_test.c
+++ b/test/Unit/mulxc3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/nedf2vfp_test.c b/test/Unit/nedf2vfp_test.c
index f2983fc0e9c..8fdac1a0372 100644
--- a/test/Unit/nedf2vfp_test.c
+++ b/test/Unit/nedf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/negdf2vfp_test.c b/test/Unit/negdf2vfp_test.c
index d019bd3aadb..7bdf155d392 100644
--- a/test/Unit/negdf2vfp_test.c
+++ b/test/Unit/negdf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/negdi2_test.c b/test/Unit/negdi2_test.c
index 4de9ab61d1d..510b3b046b5 100644
--- a/test/Unit/negdi2_test.c
+++ b/test/Unit/negdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/negsf2vfp_test.c b/test/Unit/negsf2vfp_test.c
index 0c75fdf29fc..419b32d726a 100644
--- a/test/Unit/negsf2vfp_test.c
+++ b/test/Unit/negsf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/negti2_test.c b/test/Unit/negti2_test.c
index 13c28e6a181..6ecc8628d77 100644
--- a/test/Unit/negti2_test.c
+++ b/test/Unit/negti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/negvdi2_test.c b/test/Unit/negvdi2_test.c
index 7fef4d97c94..9617b95ff10 100644
--- a/test/Unit/negvdi2_test.c
+++ b/test/Unit/negvdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/negvsi2_test.c b/test/Unit/negvsi2_test.c
index 0480528c849..5ea0e2e86c2 100644
--- a/test/Unit/negvsi2_test.c
+++ b/test/Unit/negvsi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/negvti2_test.c b/test/Unit/negvti2_test.c
index 7772c08ff06..1dc904e10ab 100644
--- a/test/Unit/negvti2_test.c
+++ b/test/Unit/negvti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/nesf2vfp_test.c b/test/Unit/nesf2vfp_test.c
index dcbc483869d..507b42ec3c4 100644
--- a/test/Unit/nesf2vfp_test.c
+++ b/test/Unit/nesf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/paritydi2_test.c b/test/Unit/paritydi2_test.c
index 297de8f9b7d..5360e374d43 100644
--- a/test/Unit/paritydi2_test.c
+++ b/test/Unit/paritydi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/paritysi2_test.c b/test/Unit/paritysi2_test.c
index f15f90eb9f5..3ea8473aad5 100644
--- a/test/Unit/paritysi2_test.c
+++ b/test/Unit/paritysi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/parityti2_test.c b/test/Unit/parityti2_test.c
index 6fe1cf65a45..c2f8d3d28a5 100644
--- a/test/Unit/parityti2_test.c
+++ b/test/Unit/parityti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/popcountdi2_test.c b/test/Unit/popcountdi2_test.c
index 6d555ce99d4..4c561179643 100644
--- a/test/Unit/popcountdi2_test.c
+++ b/test/Unit/popcountdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/popcountsi2_test.c b/test/Unit/popcountsi2_test.c
index 3d91cde638c..d0a05c45e54 100644
--- a/test/Unit/popcountsi2_test.c
+++ b/test/Unit/popcountsi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/popcountti2_test.c b/test/Unit/popcountti2_test.c
index 917b5cb7fbf..53fee3b52a5 100644
--- a/test/Unit/popcountti2_test.c
+++ b/test/Unit/popcountti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/powidf2_test.c b/test/Unit/powidf2_test.c
index 48cb4bbaccd..2abc84de767 100644
--- a/test/Unit/powidf2_test.c
+++ b/test/Unit/powidf2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/powisf2_test.c b/test/Unit/powisf2_test.c
index 789bb37de5c..98409f432e6 100644
--- a/test/Unit/powisf2_test.c
+++ b/test/Unit/powisf2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/powitf2_test.c b/test/Unit/powitf2_test.c
index 4258ce21c87..ca690fd103a 100644
--- a/test/Unit/powitf2_test.c
+++ b/test/Unit/powitf2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/powixf2_test.c b/test/Unit/powixf2_test.c
index 74403aa06a4..67d2463ca83 100644
--- a/test/Unit/powixf2_test.c
+++ b/test/Unit/powixf2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/subdf3vfp_test.c b/test/Unit/subdf3vfp_test.c
index ee5a492018e..d1517ec51e3 100644
--- a/test/Unit/subdf3vfp_test.c
+++ b/test/Unit/subdf3vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/subsf3vfp_test.c b/test/Unit/subsf3vfp_test.c
index f6853e3dbb1..aabd01d749f 100644
--- a/test/Unit/subsf3vfp_test.c
+++ b/test/Unit/subsf3vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/subvdi3_test.c b/test/Unit/subvdi3_test.c
index 8af79288fa9..0fb8f515689 100644
--- a/test/Unit/subvdi3_test.c
+++ b/test/Unit/subvdi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/subvsi3_test.c b/test/Unit/subvsi3_test.c
index c37b4b215bd..14e6ce19390 100644
--- a/test/Unit/subvsi3_test.c
+++ b/test/Unit/subvsi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/subvti3_test.c b/test/Unit/subvti3_test.c
index 11d81750f0c..a579a1fc188 100644
--- a/test/Unit/subvti3_test.c
+++ b/test/Unit/subvti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/trampoline_setup_test.c b/test/Unit/trampoline_setup_test.c
index 8d1c968b274..c6dbe70e020 100644
--- a/test/Unit/trampoline_setup_test.c
+++ b/test/Unit/trampoline_setup_test.c
@@ -2,8 +2,8 @@
*
* The LLVM Compiler Infrastructure
*
- * This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*/
diff --git a/test/Unit/truncdfsf2vfp_test.c b/test/Unit/truncdfsf2vfp_test.c
index f02b8362ec2..4a44dc7919f 100644
--- a/test/Unit/truncdfsf2vfp_test.c
+++ b/test/Unit/truncdfsf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ucmpdi2_test.c b/test/Unit/ucmpdi2_test.c
index eab958931a8..22059077c79 100644
--- a/test/Unit/ucmpdi2_test.c
+++ b/test/Unit/ucmpdi2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/ucmpti2_test.c b/test/Unit/ucmpti2_test.c
index cb6b4b746ba..d17fbb24578 100644
--- a/test/Unit/ucmpti2_test.c
+++ b/test/Unit/ucmpti2_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/udivdi3_test.c b/test/Unit/udivdi3_test.c
index 115453b4dd3..24843f8bde6 100644
--- a/test/Unit/udivdi3_test.c
+++ b/test/Unit/udivdi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/udivmoddi4_test.c b/test/Unit/udivmoddi4_test.c
index 3ac48092081..43bf1a11f34 100644
--- a/test/Unit/udivmoddi4_test.c
+++ b/test/Unit/udivmoddi4_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/udivmodsi4_test.c b/test/Unit/udivmodsi4_test.c
new file mode 100644
index 00000000000..d734cd1fdf7
--- /dev/null
+++ b/test/Unit/udivmodsi4_test.c
@@ -0,0 +1,59 @@
+//===-- udivmodsi4_test.c - Test __udivmodsi4 -----------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file tests __udivmodsi4 for the compiler_rt library.
+//
+//===----------------------------------------------------------------------===//
+
+#include "int_lib.h"
+#include
+
+// Returns: a / b
+
+extern su_int __udivmodsi4(su_int a, su_int b, su_int* rem);
+
+int test__udivmodsi4(su_int a, su_int b,
+ su_int expected_result, su_int expected_rem)
+{
+ su_int rem;
+ su_int result = __udivmodsi4(a, b, &rem);
+ if (result != expected_result) {
+ printf("error in __udivmodsi4: %u / %u = %u, expected %u\n",
+ a, b, result, expected_result);
+ return 1;
+ }
+ if (rem != expected_rem) {
+ printf("error in __udivmodsi4: %u mod %u = %u, expected %u\n",
+ a, b, rem, expected_rem);
+ return 1;
+ }
+
+ return 0;
+}
+
+
+int main()
+{
+ if (test__udivmodsi4(0, 1, 0, 0))
+ return 1;
+
+ if (test__udivmodsi4(2, 1, 2, 0))
+ return 1;
+
+ if (test__udivmodsi4(19, 5, 3, 4))
+ return 1;
+
+ if (test__udivmodsi4(0x80000000, 8, 0x10000000, 0))
+ return 1;
+
+ if (test__udivmodsi4(0x80000003, 8, 0x10000000, 3))
+ return 1;
+
+ return 0;
+}
diff --git a/test/Unit/udivmodti4_test.c b/test/Unit/udivmodti4_test.c
index d16002c7bc1..620929ae061 100644
--- a/test/Unit/udivmodti4_test.c
+++ b/test/Unit/udivmodti4_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/udivsi3_test.c b/test/Unit/udivsi3_test.c
index 0fdf714768b..325e4e6e885 100644
--- a/test/Unit/udivsi3_test.c
+++ b/test/Unit/udivsi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/udivti3_test.c b/test/Unit/udivti3_test.c
index 3b7846eaa6e..a94739a7c18 100644
--- a/test/Unit/udivti3_test.c
+++ b/test/Unit/udivti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/umoddi3_test.c b/test/Unit/umoddi3_test.c
index 3ffa0be847e..a8f39b41550 100644
--- a/test/Unit/umoddi3_test.c
+++ b/test/Unit/umoddi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/umodsi3_test.c b/test/Unit/umodsi3_test.c
index 89c7c23bc0e..66da695ffd9 100644
--- a/test/Unit/umodsi3_test.c
+++ b/test/Unit/umodsi3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/umodti3_test.c b/test/Unit/umodti3_test.c
index 3f6696ac245..d75a1b3f956 100644
--- a/test/Unit/umodti3_test.c
+++ b/test/Unit/umodti3_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/unorddf2vfp_test.c b/test/Unit/unorddf2vfp_test.c
index a08c06c39bc..1031138ae4b 100644
--- a/test/Unit/unorddf2vfp_test.c
+++ b/test/Unit/unorddf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/test/Unit/unordsf2vfp_test.c b/test/Unit/unordsf2vfp_test.c
index cf513969c20..dedd7ecdd8c 100644
--- a/test/Unit/unordsf2vfp_test.c
+++ b/test/Unit/unordsf2vfp_test.c
@@ -2,8 +2,8 @@
//
// The LLVM Compiler Infrastructure
//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
diff --git a/www/index.html b/www/index.html
index f8863f8c3bf..7a7ef7c9ee2 100644
--- a/www/index.html
+++ b/www/index.html
@@ -23,9 +23,9 @@
call to the "__fixunsdfdi" function. The compiler-rt library provides
optimized implementations of this and other low-level routines.
- All of the code in the compiler-rt project is available under the standard
- LLVM
- License, a "BSD-style" license.
+ All of the code in the compiler-rt project is dual licensed
+ under the MIT license and the UIUC License (a BSD-like license).
Goals
From b0a04aaa595ba76468e521f12727a872d144d6d0 Mon Sep 17 00:00:00 2001
From: Ed Schouten
Date: Thu, 2 Jun 2011 20:02:42 +0000
Subject: [PATCH 2/2] Import compiler-rt r132478.
---
lib/abi.h | 23 +++++
lib/absvdi2.c | 3 +-
lib/absvsi2.c | 5 +-
lib/adddf3.c | 18 ++--
lib/addsf3.c | 25 ++----
lib/addvdi3.c | 3 +-
lib/addvsi3.c | 3 +-
lib/apple_versioning.c | 141 ++++++++++++++++++++++++++++++
lib/arm/divmodsi4.S | 47 ++++++++++
lib/arm/divsi3.S | 41 +++++++++
lib/arm/modsi3.S | 67 +++++++-------
lib/arm/udivmodsi4.S | 80 +++++++++++++++++
lib/arm/udivsi3.S | 80 +++++++++++++++++
lib/arm/umodsi3.S | 58 ++++++++++++
lib/ashldi3.c | 5 +-
lib/ashrdi3.c | 5 +-
lib/assembly.h | 43 ++++++---
lib/clzdi2.c | 5 +-
lib/clzsi2.c | 5 +-
lib/cmpdi2.c | 7 +-
lib/ctzdi2.c | 3 +-
lib/ctzsi2.c | 3 +-
lib/divdf3.c | 3 +
lib/divdi3.c | 5 +-
lib/divmoddi4.c | 30 +++++++
lib/divmodsi4.c | 5 +-
lib/divsf3.c | 3 +
lib/divsi3.c | 7 +-
lib/extendsfdf2.c | 4 +
lib/ffsdi2.c | 3 +-
lib/fixdfdi.c | 3 +
lib/fixdfsi.c | 5 ++
lib/fixsfdi.c | 5 +-
lib/fixsfsi.c | 7 +-
lib/fixunsdfdi.c | 5 +-
lib/fixunsdfsi.c | 5 +-
lib/fixunssfdi.c | 6 +-
lib/fixunssfsi.c | 5 +-
lib/floatdidf.c | 7 +-
lib/floatdisf.c | 8 +-
lib/floatsidf.c | 5 ++
lib/floatsisf.c | 5 ++
lib/floatundidf.c | 10 ++-
lib/floatundisf.c | 8 +-
lib/floatunsidf.c | 5 ++
lib/floatunsisf.c | 5 ++
lib/lshrdi3.c | 5 +-
lib/moddi3.c | 5 +-
lib/modsi3.c | 5 +-
lib/muldf3.c | 6 +-
lib/muldi3.c | 7 +-
lib/mulsf3.c | 6 +-
lib/negdf2.c | 3 +
lib/negsf2.c | 6 +-
lib/negvdi2.c | 3 +-
lib/negvsi2.c | 3 +-
lib/paritydi2.c | 5 +-
lib/paritysi2.c | 3 +-
lib/popcountdi2.c | 3 +-
lib/popcountsi2.c | 3 +-
lib/powidf2.c | 3 +-
lib/powisf2.c | 3 +-
lib/subdf3.c | 30 +++++++
lib/subsf3.c | 29 ++++++
lib/subvdi3.c | 5 +-
lib/subvsi3.c | 5 +-
lib/truncdfsf2.c | 7 +-
lib/ucmpdi2.c | 3 +-
lib/udivdi3.c | 5 +-
lib/udivmoddi4.c | 5 +-
lib/udivmodsi4.c | 7 +-
lib/udivsi3.c | 5 +-
lib/umoddi3.c | 5 +-
lib/umodsi3.c | 5 +-
make/AppleBI.mk | 27 +++++-
make/platform/clang_darwin.mk | 84 +++++++++++++-----
make/platform/darwin_bni.mk | 2 +
test/Unit/absvti2_test.c | 2 +
test/Unit/adddf3vfp_test.c | 2 +
test/Unit/addsf3vfp_test.c | 2 +
test/Unit/addvti3_test.c | 2 +
test/Unit/ashlti3_test.c | 2 +
test/Unit/ashrti3_test.c | 2 +
test/Unit/bswapdi2_test.c | 2 +
test/Unit/bswapsi2_test.c | 2 +
test/Unit/clzti2_test.c | 2 +
test/Unit/cmpti2_test.c | 2 +
test/Unit/ctzti2_test.c | 2 +
test/Unit/divdf3vfp_test.c | 2 +
test/Unit/divsf3vfp_test.c | 2 +
test/Unit/divtc3_test.c | 2 +
test/Unit/divti3_test.c | 2 +
test/Unit/divxc3_test.c | 2 +
test/Unit/eqdf2vfp_test.c | 2 +
test/Unit/eqsf2vfp_test.c | 2 +
test/Unit/extebdsfdf2vfp_test.c | 2 +
test/Unit/ffsti2_test.c | 2 +
test/Unit/fixdfsivfp_test.c | 2 +
test/Unit/fixdfti_test.c | 2 +
test/Unit/fixsfsivfp_test.c | 2 +
test/Unit/fixsfti_test.c | 2 +
test/Unit/fixunsdfsivfp_test.c | 2 +
test/Unit/fixunssfsivfp_test.c | 2 +
test/Unit/fixunstfdi_test.c | 2 +
test/Unit/fixunsxfdi_test.c | 2 +
test/Unit/fixunsxfti_test.c | 2 +
test/Unit/fixxfdi_test.c | 2 +
test/Unit/fixxfti_test.c | 2 +
test/Unit/floatdixf_test.c | 2 +
test/Unit/floatsidfvfp_test.c | 2 +
test/Unit/floatsisfvfp_test.c | 2 +
test/Unit/floattidf_test.c | 2 +
test/Unit/floattisf_test.c | 2 +
test/Unit/floattixf_test.c | 2 +
test/Unit/floatundixf_test.c | 2 +
test/Unit/floatunssidfvfp_test.c | 2 +
test/Unit/floatunssisfvfp_test.c | 2 +
test/Unit/floatuntidf_test.c | 2 +
test/Unit/floatuntisf_test.c | 2 +
test/Unit/floatuntixf_test.c | 2 +
test/Unit/gedf2vfp_test.c | 2 +
test/Unit/gesf2vfp_test.c | 2 +
test/Unit/gtdf2vfp_test.c | 2 +
test/Unit/gtsf2vfp_test.c | 2 +
test/Unit/ledf2vfp_test.c | 2 +
test/Unit/lesf2vfp_test.c | 2 +
test/Unit/lshrti3_test.c | 2 +
test/Unit/ltdf2vfp_test.c | 2 +
test/Unit/ltsf2vfp_test.c | 2 +
test/Unit/modti3_test.c | 2 +
test/Unit/muldf3vfp_test.c | 2 +
test/Unit/mulsf3vfp_test.c | 2 +
test/Unit/multc3_test.c | 3 +-
test/Unit/multi3_test.c | 2 +
test/Unit/mulvti3_test.c | 2 +
test/Unit/mulxc3_test.c | 2 +
test/Unit/nedf2vfp_test.c | 2 +
test/Unit/negdf2vfp_test.c | 2 +
test/Unit/negsf2vfp_test.c | 2 +
test/Unit/negti2_test.c | 2 +
test/Unit/negvti2_test.c | 2 +
test/Unit/nesf2vfp_test.c | 2 +
test/Unit/parityti2_test.c | 2 +
test/Unit/popcountti2_test.c | 2 +
test/Unit/powitf2_test.c | 2 +
test/Unit/powixf2_test.c | 2 +
test/Unit/subdf3vfp_test.c | 2 +
test/Unit/subsf3vfp_test.c | 2 +
test/Unit/subvti3_test.c | 2 +
test/Unit/trampoline_setup_test.c | 3 +-
test/Unit/truncdfsf2vfp_test.c | 2 +
test/Unit/ucmpti2_test.c | 2 +
test/Unit/udivmodti4_test.c | 2 +
test/Unit/udivti3_test.c | 2 +
test/Unit/umodti3_test.c | 2 +
test/Unit/unorddf2vfp_test.c | 2 +
test/Unit/unordsf2vfp_test.c | 2 +
157 files changed, 1104 insertions(+), 175 deletions(-)
create mode 100644 lib/abi.h
create mode 100644 lib/arm/divmodsi4.S
create mode 100644 lib/arm/divsi3.S
create mode 100644 lib/arm/udivmodsi4.S
create mode 100644 lib/arm/udivsi3.S
create mode 100644 lib/arm/umodsi3.S
create mode 100644 lib/divmoddi4.c
create mode 100644 lib/subdf3.c
create mode 100644 lib/subsf3.c
diff --git a/lib/abi.h b/lib/abi.h
new file mode 100644
index 00000000000..2534317ac8f
--- /dev/null
+++ b/lib/abi.h
@@ -0,0 +1,23 @@
+/* ===------ abi.h - configuration header for compiler-rt -----------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file is a configuration header for compiler-rt.
+ * This file is not part of the interface of this library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+
+#if __ARM_EABI__
+# define ARM_EABI_FNALIAS(aeabi_name, name) \
+ void __aeabi_##aeabi_name() __attribute__((alias("__" #name)));
+# define COMPILER_RT_ABI __attribute__((pcs("aapcs")))
+#else
+# define ARM_EABI_FNALIAS(aeabi_name, name)
+# define COMPILER_RT_ABI
+#endif
diff --git a/lib/absvdi2.c b/lib/absvdi2.c
index 2ba6687daa8..9c5d4a299ba 100644
--- a/lib/absvdi2.c
+++ b/lib/absvdi2.c
@@ -11,6 +11,7 @@
*
*===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
#include
@@ -19,7 +20,7 @@
/* Effects: aborts if abs(x) < 0 */
-di_int
+COMPILER_RT_ABI di_int
__absvdi2(di_int a)
{
const int N = (int)(sizeof(di_int) * CHAR_BIT);
diff --git a/lib/absvsi2.c b/lib/absvsi2.c
index ec5cf69e878..80a1a78984a 100644
--- a/lib/absvsi2.c
+++ b/lib/absvsi2.c
@@ -10,7 +10,8 @@
* This file implements __absvsi2 for the compiler_rt library.
*
* ===----------------------------------------------------------------------===
- */
+ */
+#include "abi.h"
#include "int_lib.h"
#include
@@ -19,7 +20,7 @@
/* Effects: aborts if abs(x) < 0 */
-si_int
+COMPILER_RT_ABI si_int
__absvsi2(si_int a)
{
const int N = (int)(sizeof(si_int) * CHAR_BIT);
diff --git a/lib/adddf3.c b/lib/adddf3.c
index c40135613dd..3cc997b71a3 100644
--- a/lib/adddf3.c
+++ b/lib/adddf3.c
@@ -1,4 +1,4 @@
-//===-- lib/adddf3.c - Double-precision addition and subtraction --*- C -*-===//
+//===-- lib/adddf3.c - Double-precision addition ------------------*- C -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -7,15 +7,20 @@
//
//===----------------------------------------------------------------------===//
//
-// This file implements double-precision soft-float addition and subtraction
-// with the IEEE-754 default rounding (to nearest, ties to even).
+// This file implements double-precision soft-float addition with the IEEE-754
+// default rounding (to nearest, ties to even).
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
+
#define DOUBLE_PRECISION
#include "fp_lib.h"
-fp_t __adddf3(fp_t a, fp_t b) {
+ARM_EABI_FNALIAS(dadd, adddf3);
+
+COMPILER_RT_ABI fp_t
+__adddf3(fp_t a, fp_t b) {
rep_t aRep = toRep(a);
rep_t bRep = toRep(b);
@@ -147,8 +152,3 @@ fp_t __adddf3(fp_t a, fp_t b) {
if (roundGuardSticky == 0x4) result += result & 1;
return fromRep(result);
}
-
-// Subtraction; flip the sign bit of b and add.
-fp_t __subdf3(fp_t a, fp_t b) {
- return __adddf3(a, fromRep(toRep(b) ^ signBit));
-}
diff --git a/lib/addsf3.c b/lib/addsf3.c
index c0e8d8e70dc..20610ef31fa 100644
--- a/lib/addsf3.c
+++ b/lib/addsf3.c
@@ -1,4 +1,4 @@
-//===-- lib/addsf3.c - Single-precision addition and subtraction --*- C -*-===//
+//===-- lib/addsf3.c - Single-precision addition ------------------*- C -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -7,14 +7,18 @@
//
//===----------------------------------------------------------------------===//
//
-// This file implements single-precision soft-float addition and subtraction
-// with the IEEE-754 default rounding (to nearest, ties to even).
+// This file implements single-precision soft-float addition with the IEEE-754
+// default rounding (to nearest, ties to even).
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
+
#define SINGLE_PRECISION
#include "fp_lib.h"
+ARM_EABI_FNALIAS(fadd, addsf3);
+
fp_t __addsf3(fp_t a, fp_t b) {
rep_t aRep = toRep(a);
@@ -147,18 +151,3 @@ fp_t __addsf3(fp_t a, fp_t b) {
if (roundGuardSticky == 0x4) result += result & 1;
return fromRep(result);
}
-
-// Subtraction; flip the sign bit of b and add.
-fp_t __subsf3(fp_t a, fp_t b) {
- return __addsf3(a, fromRep(toRep(b) ^ signBit));
-}
-
-
-
-
-
-
-
-
-
-
diff --git a/lib/addvdi3.c b/lib/addvdi3.c
index ded023e0729..51ad397f571 100644
--- a/lib/addvdi3.c
+++ b/lib/addvdi3.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
#include
@@ -19,7 +20,7 @@
/* Effects: aborts if a + b overflows */
-di_int
+COMPILER_RT_ABI di_int
__addvdi3(di_int a, di_int b)
{
di_int s = a + b;
diff --git a/lib/addvsi3.c b/lib/addvsi3.c
index 7bdb39b97fe..c18f7bd4598 100644
--- a/lib/addvsi3.c
+++ b/lib/addvsi3.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
#include
@@ -19,7 +20,7 @@
/* Effects: aborts if a + b overflows */
-si_int
+COMPILER_RT_ABI si_int
__addvsi3(si_int a, si_int b)
{
si_int s = a + b;
diff --git a/lib/apple_versioning.c b/lib/apple_versioning.c
index bb6302fbb4d..e838d726fbb 100644
--- a/lib/apple_versioning.c
+++ b/lib/apple_versioning.c
@@ -143,6 +143,147 @@ NOT_HERE_BEFORE_10_6(__gcc_qsub)
NOT_HERE_BEFORE_10_6(__trampoline_setup)
#endif /* __ppc__ */
+#if __arm__ && __DYNAMIC__
+ #define NOT_HERE_UNTIL_AFTER_4_3(sym) \
+ extern const char sym##_tmp1 __asm("$ld$hide$os3.0$_" #sym ); \
+ __attribute__((visibility("default"))) const char sym##_tmp1 = 0; \
+ extern const char sym##_tmp2 __asm("$ld$hide$os3.1$_" #sym ); \
+ __attribute__((visibility("default"))) const char sym##_tmp2 = 0; \
+ extern const char sym##_tmp3 __asm("$ld$hide$os3.2$_" #sym ); \
+ __attribute__((visibility("default"))) const char sym##_tmp3 = 0; \
+ extern const char sym##_tmp4 __asm("$ld$hide$os4.0$_" #sym ); \
+ __attribute__((visibility("default"))) const char sym##_tmp4 = 0; \
+ extern const char sym##_tmp5 __asm("$ld$hide$os4.1$_" #sym ); \
+ __attribute__((visibility("default"))) const char sym##_tmp5 = 0; \
+ extern const char sym##_tmp6 __asm("$ld$hide$os4.2$_" #sym ); \
+ __attribute__((visibility("default"))) const char sym##_tmp6 = 0; \
+ extern const char sym##_tmp7 __asm("$ld$hide$os4.3$_" #sym ); \
+ __attribute__((visibility("default"))) const char sym##_tmp7 = 0;
+
+NOT_HERE_UNTIL_AFTER_4_3(__absvdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__absvsi2)
+NOT_HERE_UNTIL_AFTER_4_3(__adddf3)
+NOT_HERE_UNTIL_AFTER_4_3(__adddf3vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__addsf3)
+NOT_HERE_UNTIL_AFTER_4_3(__addsf3vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__addvdi3)
+NOT_HERE_UNTIL_AFTER_4_3(__addvsi3)
+NOT_HERE_UNTIL_AFTER_4_3(__ashldi3)
+NOT_HERE_UNTIL_AFTER_4_3(__ashrdi3)
+NOT_HERE_UNTIL_AFTER_4_3(__bswapdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__bswapsi2)
+NOT_HERE_UNTIL_AFTER_4_3(__clzdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__clzsi2)
+NOT_HERE_UNTIL_AFTER_4_3(__cmpdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__ctzdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__ctzsi2)
+NOT_HERE_UNTIL_AFTER_4_3(__divdc3)
+NOT_HERE_UNTIL_AFTER_4_3(__divdf3)
+NOT_HERE_UNTIL_AFTER_4_3(__divdf3vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__divdi3)
+NOT_HERE_UNTIL_AFTER_4_3(__divsc3)
+NOT_HERE_UNTIL_AFTER_4_3(__divsf3)
+NOT_HERE_UNTIL_AFTER_4_3(__divsf3vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__divsi3)
+NOT_HERE_UNTIL_AFTER_4_3(__eqdf2)
+NOT_HERE_UNTIL_AFTER_4_3(__eqdf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__eqsf2)
+NOT_HERE_UNTIL_AFTER_4_3(__eqsf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__extendsfdf2)
+NOT_HERE_UNTIL_AFTER_4_3(__extendsfdf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__ffsdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__fixdfdi)
+NOT_HERE_UNTIL_AFTER_4_3(__fixdfsi)
+NOT_HERE_UNTIL_AFTER_4_3(__fixdfsivfp)
+NOT_HERE_UNTIL_AFTER_4_3(__fixsfdi)
+NOT_HERE_UNTIL_AFTER_4_3(__fixsfsi)
+NOT_HERE_UNTIL_AFTER_4_3(__fixsfsivfp)
+NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfdi)
+NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfsi)
+NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfsivfp)
+NOT_HERE_UNTIL_AFTER_4_3(__fixunssfdi)
+NOT_HERE_UNTIL_AFTER_4_3(__fixunssfsi)
+NOT_HERE_UNTIL_AFTER_4_3(__fixunssfsivfp)
+NOT_HERE_UNTIL_AFTER_4_3(__floatdidf)
+NOT_HERE_UNTIL_AFTER_4_3(__floatdisf)
+NOT_HERE_UNTIL_AFTER_4_3(__floatsidf)
+NOT_HERE_UNTIL_AFTER_4_3(__floatsidfvfp)
+NOT_HERE_UNTIL_AFTER_4_3(__floatsisf)
+NOT_HERE_UNTIL_AFTER_4_3(__floatsisfvfp)
+NOT_HERE_UNTIL_AFTER_4_3(__floatundidf)
+NOT_HERE_UNTIL_AFTER_4_3(__floatundisf)
+NOT_HERE_UNTIL_AFTER_4_3(__floatunsidf)
+NOT_HERE_UNTIL_AFTER_4_3(__floatunsisf)
+NOT_HERE_UNTIL_AFTER_4_3(__floatunssidfvfp)
+NOT_HERE_UNTIL_AFTER_4_3(__floatunssisfvfp)
+NOT_HERE_UNTIL_AFTER_4_3(__gedf2)
+NOT_HERE_UNTIL_AFTER_4_3(__gedf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__gesf2)
+NOT_HERE_UNTIL_AFTER_4_3(__gesf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__gtdf2)
+NOT_HERE_UNTIL_AFTER_4_3(__gtdf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__gtsf2)
+NOT_HERE_UNTIL_AFTER_4_3(__gtsf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__ledf2)
+NOT_HERE_UNTIL_AFTER_4_3(__ledf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__lesf2)
+NOT_HERE_UNTIL_AFTER_4_3(__lesf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__lshrdi3)
+NOT_HERE_UNTIL_AFTER_4_3(__ltdf2)
+NOT_HERE_UNTIL_AFTER_4_3(__ltdf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__ltsf2)
+NOT_HERE_UNTIL_AFTER_4_3(__ltsf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__moddi3)
+NOT_HERE_UNTIL_AFTER_4_3(__modsi3)
+NOT_HERE_UNTIL_AFTER_4_3(__muldc3)
+NOT_HERE_UNTIL_AFTER_4_3(__muldf3)
+NOT_HERE_UNTIL_AFTER_4_3(__muldf3vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__muldi3)
+NOT_HERE_UNTIL_AFTER_4_3(__mulsc3)
+NOT_HERE_UNTIL_AFTER_4_3(__mulsf3)
+NOT_HERE_UNTIL_AFTER_4_3(__mulsf3vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__mulvdi3)
+NOT_HERE_UNTIL_AFTER_4_3(__mulvsi3)
+NOT_HERE_UNTIL_AFTER_4_3(__nedf2)
+NOT_HERE_UNTIL_AFTER_4_3(__nedf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__negdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__negvdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__negvsi2)
+NOT_HERE_UNTIL_AFTER_4_3(__nesf2)
+NOT_HERE_UNTIL_AFTER_4_3(__nesf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__paritydi2)
+NOT_HERE_UNTIL_AFTER_4_3(__paritysi2)
+NOT_HERE_UNTIL_AFTER_4_3(__popcountdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__popcountsi2)
+NOT_HERE_UNTIL_AFTER_4_3(__powidf2)
+NOT_HERE_UNTIL_AFTER_4_3(__powisf2)
+NOT_HERE_UNTIL_AFTER_4_3(__subdf3)
+NOT_HERE_UNTIL_AFTER_4_3(__subdf3vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__subsf3)
+NOT_HERE_UNTIL_AFTER_4_3(__subsf3vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__subvdi3)
+NOT_HERE_UNTIL_AFTER_4_3(__subvsi3)
+NOT_HERE_UNTIL_AFTER_4_3(__truncdfsf2)
+NOT_HERE_UNTIL_AFTER_4_3(__truncdfsf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__ucmpdi2)
+NOT_HERE_UNTIL_AFTER_4_3(__udivdi3)
+NOT_HERE_UNTIL_AFTER_4_3(__udivmoddi4)
+NOT_HERE_UNTIL_AFTER_4_3(__udivsi3)
+NOT_HERE_UNTIL_AFTER_4_3(__umoddi3)
+NOT_HERE_UNTIL_AFTER_4_3(__umodsi3)
+NOT_HERE_UNTIL_AFTER_4_3(__unorddf2)
+NOT_HERE_UNTIL_AFTER_4_3(__unorddf2vfp)
+NOT_HERE_UNTIL_AFTER_4_3(__unordsf2)
+NOT_HERE_UNTIL_AFTER_4_3(__unordsf2vfp)
+
+NOT_HERE_UNTIL_AFTER_4_3(__divmodsi4)
+NOT_HERE_UNTIL_AFTER_4_3(__udivmodsi4)
+#endif // __arm__ && __DYNAMIC__
+
+
+
+
+
#else /* !__APPLE__ */
extern int avoid_empty_file;
diff --git a/lib/arm/divmodsi4.S b/lib/arm/divmodsi4.S
new file mode 100644
index 00000000000..cec39a7926f
--- /dev/null
+++ b/lib/arm/divmodsi4.S
@@ -0,0 +1,47 @@
+/*===-- divmodsi4.S - 32-bit signed integer divide and modulus ------------===//
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ *===----------------------------------------------------------------------===//
+ *
+ * This file implements the __divmodsi4 (32-bit signed integer divide and
+ * modulus) function for the ARM architecture. A naive digit-by-digit
+ * computation is employed for simplicity.
+ *
+ *===----------------------------------------------------------------------===*/
+
+#include "../assembly.h"
+
+#define ESTABLISH_FRAME \
+ push {r4-r7, lr} ;\
+ add r7, sp, #12
+#define CLEAR_FRAME_AND_RETURN \
+ pop {r4-r7, pc}
+
+.syntax unified
+.align 3
+DEFINE_COMPILERRT_FUNCTION(__divmodsi4)
+ ESTABLISH_FRAME
+// Set aside the sign of the quotient and modulus, and the address for the
+// modulus.
+ eor r4, r0, r1
+ mov r5, r0
+ mov r6, r2
+// Take the absolute value of a and b via abs(x) = (x^(x >> 31)) - (x >> 31).
+ eor ip, r0, r0, asr #31
+ eor lr, r1, r1, asr #31
+ sub r0, ip, r0, asr #31
+ sub r1, lr, r1, asr #31
+// Unsigned divmod:
+ bl SYMBOL_NAME(__udivmodsi4)
+// Apply the sign of quotient and modulus
+ ldr r1, [r6]
+ eor r0, r0, r4, asr #31
+ eor r1, r1, r5, asr #31
+ sub r0, r0, r4, asr #31
+ sub r1, r1, r5, asr #31
+ str r1, [r6]
+ CLEAR_FRAME_AND_RETURN
diff --git a/lib/arm/divsi3.S b/lib/arm/divsi3.S
new file mode 100644
index 00000000000..00e61815ab4
--- /dev/null
+++ b/lib/arm/divsi3.S
@@ -0,0 +1,41 @@
+/*===-- divsi3.S - 32-bit signed integer divide ---------------------------===//
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ *===----------------------------------------------------------------------===//
+ *
+ * This file implements the __divsi3 (32-bit signed integer divide) function
+ * for the ARM architecture as a wrapper around the unsigned routine.
+ *
+ *===----------------------------------------------------------------------===*/
+
+#include "../assembly.h"
+
+#define ESTABLISH_FRAME \
+ push {r4, r7, lr} ;\
+ add r7, sp, #4
+#define CLEAR_FRAME_AND_RETURN \
+ pop {r4, r7, pc}
+
+.syntax unified
+.align 3
+// Ok, APCS and AAPCS agree on 32 bit args, so it's safe to use the same routine.
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_idiv, __divsi3)
+DEFINE_COMPILERRT_FUNCTION(__divsi3)
+ ESTABLISH_FRAME
+// Set aside the sign of the quotient.
+ eor r4, r0, r1
+// Take absolute value of a and b via abs(x) = (x^(x >> 31)) - (x >> 31).
+ eor r2, r0, r0, asr #31
+ eor r3, r1, r1, asr #31
+ sub r0, r2, r0, asr #31
+ sub r1, r3, r1, asr #31
+// abs(a) / abs(b)
+ bl SYMBOL_NAME(__udivsi3)
+// Apply sign of quotient to result and return.
+ eor r0, r0, r4, asr #31
+ sub r0, r0, r4, asr #31
+ CLEAR_FRAME_AND_RETURN
diff --git a/lib/arm/modsi3.S b/lib/arm/modsi3.S
index 40ba856e355..a4cd2ee54e7 100644
--- a/lib/arm/modsi3.S
+++ b/lib/arm/modsi3.S
@@ -1,36 +1,39 @@
-//===-------- modsi3.S - Implement modsi3 ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
+/*===-- modsi3.S - 32-bit signed integer modulus --------------------------===//
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ *===----------------------------------------------------------------------===//
+ *
+ * This file implements the __modsi3 (32-bit signed integer modulus) function
+ * for the ARM architecture as a wrapper around the unsigned routine.
+ *
+ *===----------------------------------------------------------------------===*/
#include "../assembly.h"
-//
-// extern int32_t __modsi3(int32_t a, int32_t b);
-//
-// Returns the remainder when dividing two 32-bit signed integers.
-// Conceptually, the function is: { return a - (a / b) * b; }
-// But if you write that in C, llvm compiles it to a call to __modsi3...
-//
- .align 2
+#define ESTABLISH_FRAME \
+ push {r4, r7, lr} ;\
+ add r7, sp, #4
+#define CLEAR_FRAME_AND_RETURN \
+ pop {r4, r7, pc}
+
+.syntax unified
+.align 3
DEFINE_COMPILERRT_FUNCTION(__modsi3)
- push {r4, r5, r7, lr}
- add r7, sp, #8 // set stack frame
- mov r5, r0 // save a
- mov r4, r1 // save b
- bl ___divsi3 // compute a/b
-#if __ARM_ARCH_7A__
- mls r0, r4, r0, r5 // mulitple result * b and subtract from a
-#else
- // before armv7, does not have "mls" instruction
- mul r3, r0, r4 // multiple result * b
- sub r0, r5, r3 // a - result
-#endif
- pop {r4, r5, r7, pc}
-
-
-
+ ESTABLISH_FRAME
+ // Set aside the sign of the dividend.
+ mov r4, r0
+ // Take absolute value of a and b via abs(x) = (x^(x >> 31)) - (x >> 31).
+ eor r2, r0, r0, asr #31
+ eor r3, r1, r1, asr #31
+ sub r0, r2, r0, asr #31
+ sub r1, r3, r1, asr #31
+ // abs(a) % abs(b)
+ bl SYMBOL_NAME(__umodsi3)
+ // Apply sign of dividend to result and return.
+ eor r0, r0, r4, asr #31
+ sub r0, r0, r4, asr #31
+ CLEAR_FRAME_AND_RETURN
diff --git a/lib/arm/udivmodsi4.S b/lib/arm/udivmodsi4.S
new file mode 100644
index 00000000000..d164a751d08
--- /dev/null
+++ b/lib/arm/udivmodsi4.S
@@ -0,0 +1,80 @@
+/*===-- udivmodsi4.S - 32-bit unsigned integer divide and modulus ---------===//
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ *===----------------------------------------------------------------------===//
+ *
+ * This file implements the __udivmodsi4 (32-bit unsigned integer divide and
+ * modulus) function for the ARM architecture. A naive digit-by-digit
+ * computation is employed for simplicity.
+ *
+ *===----------------------------------------------------------------------===*/
+
+#include "../assembly.h"
+
+#define ESTABLISH_FRAME \
+ push {r4, r7, lr} ;\
+ add r7, sp, #4
+#define CLEAR_FRAME_AND_RETURN \
+ pop {r4, r7, pc}
+
+#define a r0
+#define b r1
+#define i r3
+#define r r4
+#define q ip
+#define one lr
+
+.syntax unified
+.align 3
+DEFINE_COMPILERRT_FUNCTION(__udivmodsi4)
+// We use a simple digit by digit algorithm; before we get into the actual
+// divide loop, we must calculate the left-shift amount necessary to align
+// the MSB of the divisor with that of the dividend (If this shift is
+// negative, then the result is zero, and we early out). We also conjure a
+// bit mask of 1 to use in constructing the quotient, and initialize the
+// quotient to zero.
+ ESTABLISH_FRAME
+ clz r4, a
+ tst b, b // detect divide-by-zero
+ clz r3, b
+ mov q, #0
+ beq LOCAL_LABEL(return) // return 0 if b is zero.
+ mov one, #1
+ subs i, r3, r4
+ blt LOCAL_LABEL(return) // return 0 if MSB(a) < MSB(b)
+
+LOCAL_LABEL(mainLoop):
+// This loop basically implements the following:
+//
+// do {
+// if (a >= b << i) {
+// a -= b << i;
+// q |= 1 << i;
+// if (a == 0) break;
+// }
+// } while (--i)
+//
+// Note that this does not perform the final iteration (i == 0); by doing it
+// this way, we can merge the two branches which is a substantial win for
+// such a tight loop on current ARM architectures.
+ subs r, a, b, lsl i
+ orrhs q, q,one, lsl i
+ movhs a, r
+ subsne i, i, #1
+ bhi LOCAL_LABEL(mainLoop)
+
+// Do the final test subtraction and update of quotient (i == 0), as it is
+// not performed in the main loop.
+ subs r, a, b
+ orrhs q, #1
+ movhs a, r
+
+LOCAL_LABEL(return):
+// Store the remainder, and move the quotient to r0, then return.
+ str a, [r2]
+ mov r0, q
+ CLEAR_FRAME_AND_RETURN
diff --git a/lib/arm/udivsi3.S b/lib/arm/udivsi3.S
new file mode 100644
index 00000000000..6d8966539c7
--- /dev/null
+++ b/lib/arm/udivsi3.S
@@ -0,0 +1,80 @@
+/*===-- udivsi3.S - 32-bit unsigned integer divide ------------------------===//
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ *===----------------------------------------------------------------------===//
+ *
+ * This file implements the __udivsi3 (32-bit unsigned integer divide)
+ * function for the ARM architecture. A naive digit-by-digit computation is
+ * employed for simplicity.
+ *
+ *===----------------------------------------------------------------------===*/
+
+#include "../assembly.h"
+
+#define ESTABLISH_FRAME \
+ push {r7, lr} ;\
+ mov r7, sp
+#define CLEAR_FRAME_AND_RETURN \
+ pop {r7, pc}
+
+#define a r0
+#define b r1
+#define r r2
+#define i r3
+#define q ip
+#define one lr
+
+.syntax unified
+.align 3
+// Ok, APCS and AAPCS agree on 32 bit args, so it's safe to use the same routine.
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_uidiv, __udivsi3)
+DEFINE_COMPILERRT_FUNCTION(__udivsi3)
+// We use a simple digit by digit algorithm; before we get into the actual
+// divide loop, we must calculate the left-shift amount necessary to align
+// the MSB of the divisor with that of the dividend (If this shift is
+// negative, then the result is zero, and we early out). We also conjure a
+// bit mask of 1 to use in constructing the quotient, and initialize the
+// quotient to zero.
+ ESTABLISH_FRAME
+ clz r2, a
+ tst b, b // detect divide-by-zero
+ clz r3, b
+ mov q, #0
+ beq LOCAL_LABEL(return) // return 0 if b is zero.
+ mov one, #1
+ subs i, r3, r2
+ blt LOCAL_LABEL(return) // return 0 if MSB(a) < MSB(b)
+
+LOCAL_LABEL(mainLoop):
+// This loop basically implements the following:
+//
+// do {
+// if (a >= b << i) {
+// a -= b << i;
+// q |= 1 << i;
+// if (a == 0) break;
+// }
+// } while (--i)
+//
+// Note that this does not perform the final iteration (i == 0); by doing it
+// this way, we can merge the two branches which is a substantial win for
+// such a tight loop on current ARM architectures.
+ subs r, a, b, lsl i
+ orrhs q, q,one, lsl i
+ movhs a, r
+ subsne i, i, #1
+ bhi LOCAL_LABEL(mainLoop)
+
+// Do the final test subtraction and update of quotient (i == 0), as it is
+// not performed in the main loop.
+ subs r, a, b
+ orrhs q, #1
+
+LOCAL_LABEL(return):
+// Move the quotient to r0 and return.
+ mov r0, q
+ CLEAR_FRAME_AND_RETURN
diff --git a/lib/arm/umodsi3.S b/lib/arm/umodsi3.S
new file mode 100644
index 00000000000..3a2ab2b8775
--- /dev/null
+++ b/lib/arm/umodsi3.S
@@ -0,0 +1,58 @@
+/*===-- umodsi3.S - 32-bit unsigned integer modulus -----------------------===//
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ *===----------------------------------------------------------------------===//
+ *
+ * This file implements the __umodsi3 (32-bit unsigned integer modulus)
+ * function for the ARM architecture. A naive digit-by-digit computation is
+ * employed for simplicity.
+ *
+ *===----------------------------------------------------------------------===*/
+
+#include "../assembly.h"
+
+#define a r0
+#define b r1
+#define r r2
+#define i r3
+
+.syntax unified
+.align 3
+DEFINE_COMPILERRT_FUNCTION(__umodsi3)
+// We use a simple digit by digit algorithm; before we get into the actual
+// divide loop, we must calculate the left-shift amount necessary to align
+// the MSB of the divisor with that of the dividend.
+ clz r2, a
+ tst b, b // detect b == 0
+ clz r3, b
+ bxeq lr // return a if b == 0
+ subs i, r3, r2
+ bxlt lr // return a if MSB(a) < MSB(b)
+
+LOCAL_LABEL(mainLoop):
+// This loop basically implements the following:
+//
+// do {
+// if (a >= b << i) {
+// a -= b << i;
+// if (a == 0) break;
+// }
+// } while (--i)
+//
+// Note that this does not perform the final iteration (i == 0); by doing it
+// this way, we can merge the two branches which is a substantial win for
+// such a tight loop on current ARM architectures.
+ subs r, a, b, lsl i
+ movhs a, r
+ subsne i, i, #1
+ bhi LOCAL_LABEL(mainLoop)
+
+// Do the final test subtraction and update of remainder (i == 0), as it is
+// not performed in the main loop.
+ subs r, a, b
+ movhs a, r
+ bx lr
diff --git a/lib/ashldi3.c b/lib/ashldi3.c
index 1067e6fc61c..adce4e2cb75 100644
--- a/lib/ashldi3.c
+++ b/lib/ashldi3.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -18,7 +19,9 @@
/* Precondition: 0 <= b < bits_in_dword */
-di_int
+ARM_EABI_FNALIAS(llsl, ashldi3);
+
+COMPILER_RT_ABI di_int
__ashldi3(di_int a, si_int b)
{
const int bits_in_word = (int)(sizeof(si_int) * CHAR_BIT);
diff --git a/lib/ashrdi3.c b/lib/ashrdi3.c
index 94d46f1b462..03692a31d82 100644
--- a/lib/ashrdi3.c
+++ b/lib/ashrdi3.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -18,7 +19,9 @@
/* Precondition: 0 <= b < bits_in_dword */
-di_int
+ARM_EABI_FNALIAS(lasr, ashrdi3);
+
+COMPILER_RT_ABI di_int
__ashrdi3(di_int a, si_int b)
{
const int bits_in_word = (int)(sizeof(si_int) * CHAR_BIT);
diff --git a/lib/assembly.h b/lib/assembly.h
index 41c24d74ead..0ce83ac294c 100644
--- a/lib/assembly.h
+++ b/lib/assembly.h
@@ -22,33 +22,48 @@
#define SEPARATOR ;
#endif
-/* We can't use __USER_LABEL_PREFIX__ here, it isn't possible to concatenate the
- *values* of two macros. This is quite brittle, though. */
#if defined(__APPLE__)
-#define SYMBOL_NAME(name) _##name
+#define HIDDEN_DIRECTIVE .private_extern
+#define LOCAL_LABEL(name) L_##name
#else
-#define SYMBOL_NAME(name) name
+#define HIDDEN_DIRECTIVE .hidden
+#define LOCAL_LABEL(name) .L_##name
#endif
+#define GLUE2(a, b) a ## b
+#define GLUE(a, b) GLUE2(a, b)
+#define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name)
+
#ifdef VISIBILITY_HIDDEN
-#define DEFINE_COMPILERRT_FUNCTION(name) \
- .globl SYMBOL_NAME(name) SEPARATOR \
- .private_extern SYMBOL_NAME(name) SEPARATOR \
+#define DEFINE_COMPILERRT_FUNCTION(name) \
+ .globl SYMBOL_NAME(name) SEPARATOR \
+ HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR \
SYMBOL_NAME(name):
#else
-#define DEFINE_COMPILERRT_FUNCTION(name) \
- .globl SYMBOL_NAME(name) SEPARATOR \
+#define DEFINE_COMPILERRT_FUNCTION(name) \
+ .globl SYMBOL_NAME(name) SEPARATOR \
SYMBOL_NAME(name):
#endif
-#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name) \
- .globl SYMBOL_NAME(name) SEPARATOR \
- .private_extern SYMBOL_NAME(name) SEPARATOR \
+#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name) \
+ .globl SYMBOL_NAME(name) SEPARATOR \
+ HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR \
SYMBOL_NAME(name):
#define DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(name) \
- .globl name SEPARATOR \
- .private_extern name SEPARATOR \
+ .globl name SEPARATOR \
+ HIDDEN_DIRECTIVE name SEPARATOR \
name:
+#define DEFINE_COMPILERRT_FUNCTION_ALIAS(name, target) \
+ .globl SYMBOL_NAME(name) SEPARATOR \
+ .set SYMBOL_NAME(name), SYMBOL_NAME(target) SEPARATOR
+
+#if defined (__ARM_EABI__)
+# define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name) \
+ DEFINE_COMPILERRT_FUNCTION_ALIAS(aeabi_name, name)
+#else
+# define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name)
+#endif
+
#endif /* COMPILERRT_ASSEMBLY_H */
diff --git a/lib/clzdi2.c b/lib/clzdi2.c
index 213277712ac..c281945ffdf 100644
--- a/lib/clzdi2.c
+++ b/lib/clzdi2.c
@@ -1,6 +1,6 @@
/* ===-- clzdi2.c - Implement __clzdi2 -------------------------------------===
*
- * The LLVM Compiler Infrastructure
+ * The LLVM Compiler Infrastructure
*
* This file is dual licensed under the MIT and the University of Illinois Open
* Source Licenses. See LICENSE.TXT for details.
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -18,7 +19,7 @@
/* Precondition: a != 0 */
-si_int
+COMPILER_RT_ABI si_int
__clzdi2(di_int a)
{
dwords x;
diff --git a/lib/clzsi2.c b/lib/clzsi2.c
index d99047dec48..d0a6aeabcb3 100644
--- a/lib/clzsi2.c
+++ b/lib/clzsi2.c
@@ -1,6 +1,6 @@
/* ===-- clzsi2.c - Implement __clzsi2 -------------------------------------===
*
- * The LLVM Compiler Infrastructure
+ * The LLVM Compiler Infrastructure
*
* This file is dual licensed under the MIT and the University of Illinois Open
* Source Licenses. See LICENSE.TXT for details.
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -18,7 +19,7 @@
/* Precondition: a != 0 */
-si_int
+COMPILER_RT_ABI si_int
__clzsi2(si_int a)
{
su_int x = (su_int)a;
diff --git a/lib/cmpdi2.c b/lib/cmpdi2.c
index 04bd7cf6246..999c3d2a662 100644
--- a/lib/cmpdi2.c
+++ b/lib/cmpdi2.c
@@ -6,20 +6,21 @@
* Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
- *
+ *
* This file implements __cmpdi2 for the compiler_rt library.
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-/* Returns: if (a < b) returns 0
+/* Returns: if (a < b) returns 0
* if (a == b) returns 1
* if (a > b) returns 2
*/
-si_int
+COMPILER_RT_ABI si_int
__cmpdi2(di_int a, di_int b)
{
dwords x;
diff --git a/lib/ctzdi2.c b/lib/ctzdi2.c
index f7ae50fdf09..b3d37d01b0c 100644
--- a/lib/ctzdi2.c
+++ b/lib/ctzdi2.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -18,7 +19,7 @@
/* Precondition: a != 0 */
-si_int
+COMPILER_RT_ABI si_int
__ctzdi2(di_int a)
{
dwords x;
diff --git a/lib/ctzsi2.c b/lib/ctzsi2.c
index 0c738fa591c..2ff0e5d7655 100644
--- a/lib/ctzsi2.c
+++ b/lib/ctzsi2.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -18,7 +19,7 @@
/* Precondition: a != 0 */
-si_int
+COMPILER_RT_ABI si_int
__ctzsi2(si_int a)
{
su_int x = (su_int)a;
diff --git a/lib/divdf3.c b/lib/divdf3.c
index 217d284bf81..925abd509e1 100644
--- a/lib/divdf3.c
+++ b/lib/divdf3.c
@@ -15,10 +15,13 @@
// underflow with correct rounding.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define DOUBLE_PRECISION
#include "fp_lib.h"
+ARM_EABI_FNALIAS(ddiv, divdf3);
+
fp_t __divdf3(fp_t a, fp_t b) {
const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;
diff --git a/lib/divdi3.c b/lib/divdi3.c
index a1b83ea3ece..d62df56f678 100644
--- a/lib/divdi3.c
+++ b/lib/divdi3.c
@@ -11,14 +11,15 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-du_int __udivmoddi4(du_int a, du_int b, du_int* rem);
+du_int COMPILER_RT_ABI __udivmoddi4(du_int a, du_int b, du_int* rem);
/* Returns: a / b */
-di_int
+COMPILER_RT_ABI di_int
__divdi3(di_int a, di_int b)
{
const int bits_in_dword_m1 = (int)(sizeof(di_int) * CHAR_BIT) - 1;
diff --git a/lib/divmoddi4.c b/lib/divmoddi4.c
new file mode 100644
index 00000000000..d3ca745ac69
--- /dev/null
+++ b/lib/divmoddi4.c
@@ -0,0 +1,30 @@
+/*===-- divmoddi4.c - Implement __divmoddi4 --------------------------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file implements __divmoddi4 for the compiler_rt library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+#include "abi.h"
+
+#include "int_lib.h"
+
+extern COMPILER_RT_ABI di_int __divdi3(di_int a, di_int b);
+
+ARM_EABI_FNALIAS(ldivmod, divmoddi4);
+
+/* Returns: a / b, *rem = a % b */
+
+COMPILER_RT_ABI di_int
+__divmoddi4(di_int a, di_int b, di_int* rem)
+{
+ di_int d = __divdi3(a,b);
+ *rem = a - (d*b);
+ return d;
+}
diff --git a/lib/divmodsi4.c b/lib/divmodsi4.c
index 2ec3dd4a7e5..4dc1978282a 100644
--- a/lib/divmodsi4.c
+++ b/lib/divmodsi4.c
@@ -11,15 +11,16 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-extern si_int __divsi3(si_int a, si_int b);
+extern COMPILER_RT_ABI si_int __divsi3(si_int a, si_int b);
/* Returns: a / b, *rem = a % b */
-si_int
+COMPILER_RT_ABI si_int
__divmodsi4(si_int a, si_int b, si_int* rem)
{
si_int d = __divsi3(a,b);
diff --git a/lib/divsf3.c b/lib/divsf3.c
index b798cfb03c0..b73330793a0 100644
--- a/lib/divsf3.c
+++ b/lib/divsf3.c
@@ -15,10 +15,13 @@
// underflow with correct rounding.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define SINGLE_PRECISION
#include "fp_lib.h"
+ARM_EABI_FNALIAS(fdiv, divsf3);
+
fp_t __divsf3(fp_t a, fp_t b) {
const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;
diff --git a/lib/divsi3.c b/lib/divsi3.c
index c48ecf45dbc..01ef2747300 100644
--- a/lib/divsi3.c
+++ b/lib/divsi3.c
@@ -11,14 +11,17 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-su_int __udivsi3(su_int n, su_int d);
+su_int COMPILER_RT_ABI __udivsi3(su_int n, su_int d);
/* Returns: a / b */
-si_int
+ARM_EABI_FNALIAS(idiv, divsi3);
+
+COMPILER_RT_ABI si_int
__divsi3(si_int a, si_int b)
{
const int bits_in_word_m1 = (int)(sizeof(si_int) * CHAR_BIT) - 1;
diff --git a/lib/extendsfdf2.c b/lib/extendsfdf2.c
index db65acf97b2..c0b628dffcd 100644
--- a/lib/extendsfdf2.c
+++ b/lib/extendsfdf2.c
@@ -41,6 +41,8 @@
#include
#include
+#include "abi.h"
+
typedef float src_t;
typedef uint32_t src_rep_t;
#define SRC_REP_C UINT32_C
@@ -67,6 +69,8 @@ static inline dst_t dstFromRep(dst_rep_t x) {
// End helper routines. Conversion implementation follows.
+ARM_EABI_FNALIAS(f2d, extendsfdf2);
+
dst_t __extendsfdf2(src_t a) {
// Various constants whose values follow from the type parameters.
diff --git a/lib/ffsdi2.c b/lib/ffsdi2.c
index 8a1c68cb323..89f1b7bf478 100644
--- a/lib/ffsdi2.c
+++ b/lib/ffsdi2.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -18,7 +19,7 @@
* the value zero if a is zero. The least significant bit is index one.
*/
-si_int
+COMPILER_RT_ABI si_int
__ffsdi2(di_int a)
{
dwords x;
diff --git a/lib/fixdfdi.c b/lib/fixdfdi.c
index 3a760ff2497..85a456d1122 100644
--- a/lib/fixdfdi.c
+++ b/lib/fixdfdi.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -23,6 +24,8 @@
/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
+ARM_EABI_FNALIAS(d2lz, fixdfdi);
+
di_int
__fixdfdi(double a)
{
diff --git a/lib/fixdfsi.c b/lib/fixdfsi.c
index 98062abce4b..fbcf1470b71 100644
--- a/lib/fixdfsi.c
+++ b/lib/fixdfsi.c
@@ -12,10 +12,15 @@
// conversion is undefined for out of range values in the C standard.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define DOUBLE_PRECISION
#include "fp_lib.h"
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(d2iz, fixdfsi);
+
int __fixdfsi(fp_t a) {
// Break a into sign, exponent, significand
diff --git a/lib/fixsfdi.c b/lib/fixsfdi.c
index 1a85306520b..d80e33eb74c 100644
--- a/lib/fixsfdi.c
+++ b/lib/fixsfdi.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -23,7 +24,9 @@
/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-di_int
+ARM_EABI_FNALIAS(d2lz, fixsfdi);
+
+COMPILER_RT_ABI di_int
__fixsfdi(float a)
{
float_bits fb;
diff --git a/lib/fixsfsi.c b/lib/fixsfsi.c
index b68471d7c6b..67749a56778 100644
--- a/lib/fixsfsi.c
+++ b/lib/fixsfsi.c
@@ -12,12 +12,15 @@
// conversion is undefined for out of range values in the C standard.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define SINGLE_PRECISION
#include "fp_lib.h"
-int __fixsfsi(fp_t a) {
-
+ARM_EABI_FNALIAS(f2iz, fixsfsi);
+
+COMPILER_RT_ABI int
+__fixsfsi(fp_t a) {
// Break a into sign, exponent, significand
const rep_t aRep = toRep(a);
const rep_t aAbs = aRep & absMask;
diff --git a/lib/fixunsdfdi.c b/lib/fixunsdfdi.c
index 1c78e2bb136..d80b84a8d66 100644
--- a/lib/fixunsdfdi.c
+++ b/lib/fixunsdfdi.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -26,7 +27,9 @@
/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
-du_int
+ARM_EABI_FNALIAS(d2ulz, fixunsdfdi);
+
+COMPILER_RT_ABI du_int
__fixunsdfdi(double a)
{
double_bits fb;
diff --git a/lib/fixunsdfsi.c b/lib/fixunsdfsi.c
index e0298915660..ecdfb5d622e 100644
--- a/lib/fixunsdfsi.c
+++ b/lib/fixunsdfsi.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -26,7 +27,9 @@
/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
-su_int
+ARM_EABI_FNALIAS(d2uiz, fixunsdfsi);
+
+COMPILER_RT_ABI su_int
__fixunsdfsi(double a)
{
double_bits fb;
diff --git a/lib/fixunssfdi.c b/lib/fixunssfdi.c
index 3b1bc4af948..150642045bd 100644
--- a/lib/fixunssfdi.c
+++ b/lib/fixunssfdi.c
@@ -11,9 +11,9 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-
/* Returns: convert a to a unsigned long long, rounding toward zero.
* Negative values all become zero.
*/
@@ -26,7 +26,9 @@
/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-du_int
+ARM_EABI_FNALIAS(f2ulz, fixunssfdi);
+
+COMPILER_RT_ABI du_int
__fixunssfdi(float a)
{
float_bits fb;
diff --git a/lib/fixunssfsi.c b/lib/fixunssfsi.c
index 023d7b2445d..dbaa5115b2b 100644
--- a/lib/fixunssfsi.c
+++ b/lib/fixunssfsi.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -26,7 +27,9 @@
/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-su_int
+ARM_EABI_FNALIAS(f2uiz, fixunssfsi);
+
+COMPILER_RT_ABI su_int
__fixunssfsi(float a)
{
float_bits fb;
diff --git a/lib/floatdidf.c b/lib/floatdidf.c
index cad354a57fc..5ba95263503 100644
--- a/lib/floatdidf.c
+++ b/lib/floatdidf.c
@@ -11,6 +11,7 @@
*
*===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
#include
@@ -23,13 +24,15 @@
/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
+ARM_EABI_FNALIAS(l2d, floatdidf);
+
#ifndef __SOFT_FP__
/* Support for systems that have hardware floating-point; we'll set the inexact flag
* as a side-effect of this computation.
*/
#include
-double
+COMPILER_RT_ABI double
__floatdidf(di_int a)
{
static const double twop52 = 0x1.0p52;
@@ -49,7 +52,7 @@ __floatdidf(di_int a)
* set, and we don't want to code-gen to an unknown soft-float implementation.
*/
-double
+COMPILER_RT_ABI double
__floatdidf(di_int a)
{
if (a == 0)
diff --git a/lib/floatdisf.c b/lib/floatdisf.c
index 71d603b568f..4dc13cab477 100644
--- a/lib/floatdisf.c
+++ b/lib/floatdisf.c
@@ -12,7 +12,7 @@
*===----------------------------------------------------------------------===
*/
-#include "int_lib.h"
+#include "abi.h"
#include
/* Returns: convert a to a float, rounding toward even.*/
@@ -23,7 +23,11 @@
/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-float
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(l2f, floatdisf);
+
+COMPILER_RT_ABI float
__floatdisf(di_int a)
{
if (a == 0)
diff --git a/lib/floatsidf.c b/lib/floatsidf.c
index 85facea1632..72273353ac5 100644
--- a/lib/floatsidf.c
+++ b/lib/floatsidf.c
@@ -12,10 +12,15 @@
// mode.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define DOUBLE_PRECISION
#include "fp_lib.h"
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(i2d, floatsidf);
+
fp_t __floatsidf(int a) {
const int aWidth = sizeof a * CHAR_BIT;
diff --git a/lib/floatsisf.c b/lib/floatsisf.c
index d1bb4607647..e5250ffd602 100644
--- a/lib/floatsisf.c
+++ b/lib/floatsisf.c
@@ -12,10 +12,15 @@
// mode.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define SINGLE_PRECISION
#include "fp_lib.h"
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(i2f, floatsisf);
+
fp_t __floatsisf(int a) {
const int aWidth = sizeof a * CHAR_BIT;
diff --git a/lib/floatundidf.c b/lib/floatundidf.c
index 506fc3c4be7..e74e9d8d2fd 100644
--- a/lib/floatundidf.c
+++ b/lib/floatundidf.c
@@ -12,7 +12,7 @@
* ===----------------------------------------------------------------------===
*/
-#include "int_lib.h"
+#include "abi.h"
#include
/* Returns: convert a to a double, rounding toward even. */
@@ -23,6 +23,10 @@
/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(ul2d, floatundidf);
+
#ifndef __SOFT_FP__
/* Support for systems that have hardware floating-point; we'll set the inexact flag
* as a side-effect of this computation.
@@ -30,7 +34,7 @@
#include
-double
+COMPILER_RT_ABI double
__floatundidf(du_int a)
{
static const double twop52 = 0x1.0p52;
@@ -52,7 +56,7 @@ __floatundidf(du_int a)
* set, and we don't want to code-gen to an unknown soft-float implementation.
*/
-double
+COMPILER_RT_ABI double
__floatundidf(du_int a)
{
if (a == 0)
diff --git a/lib/floatundisf.c b/lib/floatundisf.c
index 55e40230ecb..eea45a74594 100644
--- a/lib/floatundisf.c
+++ b/lib/floatundisf.c
@@ -12,7 +12,7 @@
*===----------------------------------------------------------------------===
*/
-#include "int_lib.h"
+#include "abi.h"
#include
/* Returns: convert a to a float, rounding toward even. */
@@ -23,7 +23,11 @@
/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-float
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(ul2f, floatundisf);
+
+COMPILER_RT_ABI float
__floatundisf(du_int a)
{
if (a == 0)
diff --git a/lib/floatunsidf.c b/lib/floatunsidf.c
index 0f473aa1aad..37562996a41 100644
--- a/lib/floatunsidf.c
+++ b/lib/floatunsidf.c
@@ -12,10 +12,15 @@
// mode.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define DOUBLE_PRECISION
#include "fp_lib.h"
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(ui2d, floatunsidf);
+
fp_t __floatunsidf(unsigned int a) {
const int aWidth = sizeof a * CHAR_BIT;
diff --git a/lib/floatunsisf.c b/lib/floatunsisf.c
index 48eff93a2fc..14ef10307f7 100644
--- a/lib/floatunsisf.c
+++ b/lib/floatunsisf.c
@@ -12,10 +12,15 @@
// mode.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define SINGLE_PRECISION
#include "fp_lib.h"
+#include "int_lib.h"
+
+ARM_EABI_FNALIAS(ui2f, floatunsisf);
+
fp_t __floatunsisf(unsigned int a) {
const int aWidth = sizeof a * CHAR_BIT;
diff --git a/lib/lshrdi3.c b/lib/lshrdi3.c
index 84525b78a1a..911edb19142 100644
--- a/lib/lshrdi3.c
+++ b/lib/lshrdi3.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -18,7 +19,9 @@
/* Precondition: 0 <= b < bits_in_dword */
-di_int
+ARM_EABI_FNALIAS(llsr, lshrdi3);
+
+COMPILER_RT_ABI di_int
__lshrdi3(di_int a, si_int b)
{
const int bits_in_word = (int)(sizeof(si_int) * CHAR_BIT);
diff --git a/lib/moddi3.c b/lib/moddi3.c
index 3b350ddc3fb..af0a80832ae 100644
--- a/lib/moddi3.c
+++ b/lib/moddi3.c
@@ -11,14 +11,15 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-du_int __udivmoddi4(du_int a, du_int b, du_int* rem);
+COMPILER_RT_ABI du_int __udivmoddi4(du_int a, du_int b, du_int* rem);
/* Returns: a % b */
-di_int
+COMPILER_RT_ABI di_int
__moddi3(di_int a, di_int b)
{
const int bits_in_dword_m1 = (int)(sizeof(di_int) * CHAR_BIT) - 1;
diff --git a/lib/modsi3.c b/lib/modsi3.c
index 70d38a6b5d5..05ce806f710 100644
--- a/lib/modsi3.c
+++ b/lib/modsi3.c
@@ -11,14 +11,15 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-su_int __divsi3(si_int a, si_int b);
+su_int COMPILER_RT_ABI __divsi3(si_int a, si_int b);
/* Returns: a % b */
-si_int
+COMPILER_RT_ABI si_int
__modsi3(si_int a, si_int b)
{
return a - __divsi3(a, b) * b;
diff --git a/lib/muldf3.c b/lib/muldf3.c
index 85672e58443..f402cfb39d3 100644
--- a/lib/muldf3.c
+++ b/lib/muldf3.c
@@ -11,11 +11,15 @@
// with the IEEE-754 default rounding (to nearest, ties to even).
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define DOUBLE_PRECISION
#include "fp_lib.h"
-fp_t __muldf3(fp_t a, fp_t b) {
+ARM_EABI_FNALIAS(dmul, muldf3);
+
+COMPILER_RT_ABI fp_t
+__muldf3(fp_t a, fp_t b) {
const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;
const unsigned int bExponent = toRep(b) >> significandBits & maxExponent;
diff --git a/lib/muldi3.c b/lib/muldi3.c
index 43637324bae..e6322bf5df8 100644
--- a/lib/muldi3.c
+++ b/lib/muldi3.c
@@ -10,7 +10,8 @@
* This file implements __muldi3 for the compiler_rt library.
*
* ===----------------------------------------------------------------------===
- */
+ */
+#include "abi.h"
#include "int_lib.h"
@@ -40,7 +41,9 @@ __muldsi3(su_int a, su_int b)
/* Returns: a * b */
-di_int
+ARM_EABI_FNALIAS(lmul, muldi3);
+
+COMPILER_RT_ABI di_int
__muldi3(di_int a, di_int b)
{
dwords x;
diff --git a/lib/mulsf3.c b/lib/mulsf3.c
index dd4ce11a089..bf46e148167 100644
--- a/lib/mulsf3.c
+++ b/lib/mulsf3.c
@@ -11,11 +11,15 @@
// with the IEEE-754 default rounding (to nearest, ties to even).
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define SINGLE_PRECISION
#include "fp_lib.h"
-fp_t __mulsf3(fp_t a, fp_t b) {
+ARM_EABI_FNALIAS(fmul, mulsf3);
+
+COMPILER_RT_ABI fp_t
+__mulsf3(fp_t a, fp_t b) {
const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;
const unsigned int bExponent = toRep(b) >> significandBits & maxExponent;
diff --git a/lib/negdf2.c b/lib/negdf2.c
index aeae2e8a344..b47f3978b41 100644
--- a/lib/negdf2.c
+++ b/lib/negdf2.c
@@ -10,10 +10,13 @@
// This file implements double-precision soft-float negation.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define DOUBLE_PRECISION
#include "fp_lib.h"
+ARM_EABI_FNALIAS(dneg, negdf2);
+
fp_t __negdf2(fp_t a) {
return fromRep(toRep(a) ^ signBit);
}
diff --git a/lib/negsf2.c b/lib/negsf2.c
index d211f7cc89b..98f9fc0c0a3 100644
--- a/lib/negsf2.c
+++ b/lib/negsf2.c
@@ -10,10 +10,14 @@
// This file implements single-precision soft-float negation.
//
//===----------------------------------------------------------------------===//
+#include "abi.h"
#define SINGLE_PRECISION
#include "fp_lib.h"
-fp_t __negsf2(fp_t a) {
+ARM_EABI_FNALIAS(fneg, negsf2);
+
+COMPILER_RT_ABI fp_t
+__negsf2(fp_t a) {
return fromRep(toRep(a) ^ signBit);
}
diff --git a/lib/negvdi2.c b/lib/negvdi2.c
index 2851d26f479..aafaa9dc5ea 100644
--- a/lib/negvdi2.c
+++ b/lib/negvdi2.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
#include
@@ -19,7 +20,7 @@
/* Effects: aborts if -a overflows */
-di_int
+COMPILER_RT_ABI di_int
__negvdi2(di_int a)
{
const di_int MIN = (di_int)1 << ((int)(sizeof(di_int) * CHAR_BIT)-1);
diff --git a/lib/negvsi2.c b/lib/negvsi2.c
index 1a833476059..559ea18e48b 100644
--- a/lib/negvsi2.c
+++ b/lib/negvsi2.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
#include
@@ -19,7 +20,7 @@
/* Effects: aborts if -a overflows */
-si_int
+COMPILER_RT_ABI si_int
__negvsi2(si_int a)
{
const si_int MIN = (si_int)1 << ((int)(sizeof(si_int) * CHAR_BIT)-1);
diff --git a/lib/paritydi2.c b/lib/paritydi2.c
index 9d349b8c241..e7bebf68524 100644
--- a/lib/paritydi2.c
+++ b/lib/paritydi2.c
@@ -11,14 +11,15 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
/* Returns: 1 if number of bits is odd else returns 0 */
-si_int __paritysi2(si_int a);
+si_int COMPILER_RT_ABI __paritysi2(si_int a);
-si_int
+COMPILER_RT_ABI si_int
__paritydi2(di_int a)
{
dwords x;
diff --git a/lib/paritysi2.c b/lib/paritysi2.c
index 76de328e1ea..64d509fa795 100644
--- a/lib/paritysi2.c
+++ b/lib/paritysi2.c
@@ -11,12 +11,13 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
/* Returns: 1 if number of bits is odd else returns 0 */
-si_int
+COMPILER_RT_ABI si_int
__paritysi2(si_int a)
{
su_int x = (su_int)a;
diff --git a/lib/popcountdi2.c b/lib/popcountdi2.c
index 0778a66c81d..136fc0486fd 100644
--- a/lib/popcountdi2.c
+++ b/lib/popcountdi2.c
@@ -11,12 +11,13 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
/* Returns: count of 1 bits */
-si_int
+COMPILER_RT_ABI si_int
__popcountdi2(di_int a)
{
du_int x2 = (du_int)a;
diff --git a/lib/popcountsi2.c b/lib/popcountsi2.c
index e425b0b8638..bfaa3fff2ee 100644
--- a/lib/popcountsi2.c
+++ b/lib/popcountsi2.c
@@ -11,12 +11,13 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
/* Returns: count of 1 bits */
-si_int
+COMPILER_RT_ABI si_int
__popcountsi2(si_int a)
{
su_int x = (su_int)a;
diff --git a/lib/powidf2.c b/lib/powidf2.c
index 0200e1eab0b..2e211eb3dcb 100644
--- a/lib/powidf2.c
+++ b/lib/powidf2.c
@@ -11,12 +11,13 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
/* Returns: a ^ b */
-double
+COMPILER_RT_ABI double
__powidf2(double a, si_int b)
{
const int recip = b < 0;
diff --git a/lib/powisf2.c b/lib/powisf2.c
index c834b969695..e6b43b3a3cc 100644
--- a/lib/powisf2.c
+++ b/lib/powisf2.c
@@ -11,12 +11,13 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
/* Returns: a ^ b */
-float
+COMPILER_RT_ABI float
__powisf2(float a, si_int b)
{
const int recip = b < 0;
diff --git a/lib/subdf3.c b/lib/subdf3.c
new file mode 100644
index 00000000000..825e3c66297
--- /dev/null
+++ b/lib/subdf3.c
@@ -0,0 +1,30 @@
+//===-- lib/adddf3.c - Double-precision subtraction ---------------*- C -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements double-precision soft-float subtraction with the
+// IEEE-754 default rounding (to nearest, ties to even).
+//
+//===----------------------------------------------------------------------===//
+#include "abi.h"
+
+#define DOUBLE_PRECISION
+#include "fp_lib.h"
+
+fp_t COMPILER_RT_ABI __adddf3(fp_t a, fp_t b);
+
+
+ARM_EABI_FNALIAS(dsub, subdf3);
+
+// Subtraction; flip the sign bit of b and add.
+COMPILER_RT_ABI fp_t
+__subdf3(fp_t a, fp_t b) {
+ return __adddf3(a, fromRep(toRep(b) ^ signBit));
+}
+
+/* FIXME: rsub for ARM EABI */
diff --git a/lib/subsf3.c b/lib/subsf3.c
new file mode 100644
index 00000000000..625376acc37
--- /dev/null
+++ b/lib/subsf3.c
@@ -0,0 +1,29 @@
+//===-- lib/subsf3.c - Single-precision subtraction ---------------*- C -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements single-precision soft-float subtraction with the
+// IEEE-754 default rounding (to nearest, ties to even).
+//
+//===----------------------------------------------------------------------===//
+#include "abi.h"
+
+#define SINGLE_PRECISION
+#include "fp_lib.h"
+
+fp_t COMPILER_RT_ABI __addsf3(fp_t a, fp_t b);
+
+ARM_EABI_FNALIAS(fsub, subsf3);
+
+// Subtraction; flip the sign bit of b and add.
+COMPILER_RT_ABI fp_t
+__subsf3(fp_t a, fp_t b) {
+ return __addsf3(a, fromRep(toRep(b) ^ signBit));
+}
+
+/* FIXME: rsub for ARM EABI */
diff --git a/lib/subvdi3.c b/lib/subvdi3.c
index 17f55d00059..36b51ad979a 100644
--- a/lib/subvdi3.c
+++ b/lib/subvdi3.c
@@ -1,6 +1,6 @@
/* ===-- subvdi3.c - Implement __subvdi3 -----------------------------------===
*
- * The LLVM Compiler Infrastructure
+ * The LLVM Compiler Infrastructure
*
* This file is dual licensed under the MIT and the University of Illinois Open
* Source Licenses. See LICENSE.TXT for details.
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
#include
@@ -19,7 +20,7 @@
/* Effects: aborts if a - b overflows */
-di_int
+COMPILER_RT_ABI di_int
__subvdi3(di_int a, di_int b)
{
di_int s = a - b;
diff --git a/lib/subvsi3.c b/lib/subvsi3.c
index 51bb454475a..03983f747e4 100644
--- a/lib/subvsi3.c
+++ b/lib/subvsi3.c
@@ -1,6 +1,6 @@
/* ===-- subvsi3.c - Implement __subvsi3 -----------------------------------===
*
- * The LLVM Compiler Infrastructure
+ * The LLVM Compiler Infrastructure
*
* This file is dual licensed under the MIT and the University of Illinois Open
* Source Licenses. See LICENSE.TXT for details.
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
#include
@@ -19,7 +20,7 @@
/* Effects: aborts if a - b overflows */
-si_int
+COMPILER_RT_ABI si_int
__subvsi3(si_int a, si_int b)
{
si_int s = a - b;
diff --git a/lib/truncdfsf2.c b/lib/truncdfsf2.c
index 92609fb784c..1dbf02f5ef6 100644
--- a/lib/truncdfsf2.c
+++ b/lib/truncdfsf2.c
@@ -41,6 +41,8 @@
#include
#include
+#include "abi.h"
+
typedef double src_t;
typedef uint64_t src_rep_t;
#define SRC_REP_C UINT64_C
@@ -66,7 +68,10 @@ static inline dst_t dstFromRep(dst_rep_t x) {
// End helper routines. Conversion implementation follows.
-dst_t __truncdfsf2(src_t a) {
+ARM_EABI_FNALIAS(d2f, truncdfsf2);
+
+COMPILER_RT_ABI dst_t
+__truncdfsf2(src_t a) {
// Various constants whose values follow from the type parameters.
// Any reasonable optimizer will fold and propagate all of these.
diff --git a/lib/ucmpdi2.c b/lib/ucmpdi2.c
index ead726723aa..f2d3f99f880 100644
--- a/lib/ucmpdi2.c
+++ b/lib/ucmpdi2.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -19,7 +20,7 @@
* if (a > b) returns 2
*/
-si_int
+COMPILER_RT_ABI si_int
__ucmpdi2(du_int a, du_int b)
{
udwords x;
diff --git a/lib/udivdi3.c b/lib/udivdi3.c
index 642f2fb9c25..bbd551ac711 100644
--- a/lib/udivdi3.c
+++ b/lib/udivdi3.c
@@ -11,14 +11,15 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-du_int __udivmoddi4(du_int a, du_int b, du_int* rem);
+du_int COMPILER_RT_ABI __udivmoddi4(du_int a, du_int b, du_int* rem);
/* Returns: a / b */
-du_int
+COMPILER_RT_ABI du_int
__udivdi3(du_int a, du_int b)
{
return __udivmoddi4(a, b, 0);
diff --git a/lib/udivmoddi4.c b/lib/udivmoddi4.c
index 693736fb8cd..c5db21cf0c8 100644
--- a/lib/udivmoddi4.c
+++ b/lib/udivmoddi4.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -20,7 +21,9 @@
/* Translated from Figure 3-40 of The PowerPC Compiler Writer's Guide */
-du_int
+ARM_EABI_FNALIAS(uldivmod, udivmoddi4);
+
+COMPILER_RT_ABI du_int
__udivmoddi4(du_int a, du_int b, du_int* rem)
{
const unsigned n_uword_bits = sizeof(su_int) * CHAR_BIT;
diff --git a/lib/udivmodsi4.c b/lib/udivmodsi4.c
index 38b5bd43de6..2a3ee27f8dc 100644
--- a/lib/udivmodsi4.c
+++ b/lib/udivmodsi4.c
@@ -11,20 +11,21 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-extern su_int __udivsi3(su_int n, su_int d);
+extern su_int COMPILER_RT_ABI __udivsi3(su_int n, su_int d);
/* Returns: a / b, *rem = a % b */
-su_int
+COMPILER_RT_ABI su_int
__udivmodsi4(su_int a, su_int b, su_int* rem)
{
si_int d = __udivsi3(a,b);
*rem = a - (d*b);
- return d;
+ return d;
}
diff --git a/lib/udivsi3.c b/lib/udivsi3.c
index 476f2bc310b..721ae89e4bf 100644
--- a/lib/udivsi3.c
+++ b/lib/udivsi3.c
@@ -11,6 +11,7 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
@@ -18,7 +19,9 @@
/* Translated from Figure 3-40 of The PowerPC Compiler Writer's Guide */
-su_int
+ARM_EABI_FNALIAS(uidiv, udivsi3);
+
+COMPILER_RT_ABI su_int
__udivsi3(su_int n, su_int d)
{
const unsigned n_uword_bits = sizeof(su_int) * CHAR_BIT;
diff --git a/lib/umoddi3.c b/lib/umoddi3.c
index adb4b0e75df..9de1a64fdad 100644
--- a/lib/umoddi3.c
+++ b/lib/umoddi3.c
@@ -11,14 +11,15 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
-du_int __udivmoddi4(du_int a, du_int b, du_int* rem);
+du_int COMPILER_RT_ABI __udivmoddi4(du_int a, du_int b, du_int* rem);
/* Returns: a % b */
-du_int
+COMPILER_RT_ABI du_int
__umoddi3(du_int a, du_int b)
{
du_int r;
diff --git a/lib/umodsi3.c b/lib/umodsi3.c
index d3aaaeae000..569b7fcb168 100644
--- a/lib/umodsi3.c
+++ b/lib/umodsi3.c
@@ -11,14 +11,15 @@
*
* ===----------------------------------------------------------------------===
*/
+#include "abi.h"
#include "int_lib.h"
/* Returns: a % b */
-su_int __udivsi3(su_int a, su_int b);
+su_int COMPILER_RT_ABI __udivsi3(su_int a, su_int b);
-su_int
+COMPILER_RT_ABI su_int
__umodsi3(su_int a, su_int b)
{
return a - __udivsi3(a, b) * b;
diff --git a/make/AppleBI.mk b/make/AppleBI.mk
index 184c16ad84e..0e3473d516c 100644
--- a/make/AppleBI.mk
+++ b/make/AppleBI.mk
@@ -19,8 +19,8 @@ else
INSTALL_TARGET = install-iOS
CFLAGS.Release.armv6 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
CFLAGS.Release.armv7 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
- CFLAGS.Static.armv6 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
- CFLAGS.Static.armv7 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
+ CFLAGS.Static.armv6 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT) -static
+ CFLAGS.Static.armv7 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT) -static
LD_OTHER_FLAGS = -Wl,-alias_list,$(SRCROOT)/lib/arm/softfloat-alias.list -isysroot $(SDKROOT)
endif
@@ -43,7 +43,11 @@ installsrc:
install: $(INSTALL_TARGET)
# Copy results to DSTROOT.
-install-MacOSX : $(SYMROOT)/libcompiler_rt.dylib
+install-MacOSX : $(SYMROOT)/libcompiler_rt.dylib \
+ $(SYMROOT)/libcompiler_rt-dyld.a
+ mkdir -p $(DSTROOT)/usr/local/lib/dyld
+ cp $(SYMROOT)/libcompiler_rt-dyld.a \
+ $(DSTROOT)/usr/local/lib/dyld/libcompiler_rt.a
mkdir -p $(DSTROOT)/usr/lib/system
strip -S $(SYMROOT)/libcompiler_rt.dylib \
-o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib
@@ -70,10 +74,14 @@ $(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(RC_ARCHS), \
# Copy results to DSTROOT.
install-iOS: $(SYMROOT)/libcompiler_rt-static.a \
+ $(SYMROOT)/libcompiler_rt-dyld.a \
$(SYMROOT)/libcompiler_rt.dylib
mkdir -p $(DSTROOT)/usr/local/lib
cp $(SYMROOT)/libcompiler_rt-static.a \
$(DSTROOT)/usr/local/lib/libcompiler_rt-static.a
+ mkdir -p $(DSTROOT)/usr/local/lib/dyld
+ cp $(SYMROOT)/libcompiler_rt-dyld.a \
+ $(DSTROOT)/usr/local/lib/dyld/libcompiler_rt.a
mkdir -p $(DSTROOT)/usr/lib/system
strip -S $(SYMROOT)/libcompiler_rt.dylib \
-o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib
@@ -84,3 +92,16 @@ $(SYMROOT)/libcompiler_rt-static.a : $(foreach arch,$(RC_ARCHS), \
$(OBJROOT)/darwin_bni/Static/$(arch)/libcompiler_rt.a)
lipo -create $^ -o $@
+# rule to make each archive slice for dyld
+$(OBJROOT)/libcompiler_rt-dyld-%.a : $(OBJROOT)/darwin_bni/Release/%/libcompiler_rt.a
+ cp $^ $@
+ ar -d $@ apple_versioning.o
+ ar -d $@ gcc_personality_v0.o
+ ar -d $@ eprintf.o
+ ranlib $@
+
+# rule to make make archive for dyld
+$(SYMROOT)/libcompiler_rt-dyld.a : $(foreach arch,$(RC_ARCHS), \
+ $(OBJROOT)/libcompiler_rt-dyld-$(arch).a)
+ lipo -create $^ -o $@
+
diff --git a/make/platform/clang_darwin.mk b/make/platform/clang_darwin.mk
index a29793991eb..6eb10c82267 100644
--- a/make/platform/clang_darwin.mk
+++ b/make/platform/clang_darwin.mk
@@ -6,6 +6,20 @@
Description := Static runtime libraries for clang/Darwin.
+# A function that ensures we don't try to build for architectures that we
+# don't have working toolchains for.
+CheckArches = \
+ $(shell \
+ result=""; \
+ for arch in $(1); do \
+ if $(CC) -arch $$arch -dumpversion > /dev/null; then \
+ result="$$result$$arch "; \
+ fi; \
+ done; \
+ echo $$result)
+
+###
+
Configs :=
UniversalArchs :=
@@ -13,22 +27,23 @@ UniversalArchs :=
# still be referenced from Darwin system headers. This symbol is only ever
# needed on i386.
Configs += eprintf
-UniversalArchs.eprintf := i386
+UniversalArchs.eprintf := $(call CheckArches,i386)
# Configuration for targetting 10.4. We need a few functions missing from
# libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really
# support targetting PowerPC.
Configs += 10.4
-UniversalArchs.10.4 := i386 x86_64
+UniversalArchs.10.4 := $(call CheckArches,i386 x86_64)
-# Configuration for targetting armv6. We need a few additional functions which
-# must be in the same linkage unit.
-Configs += armv6
-UniversalArchs.armv6 := armv6
+# Configuration for targetting iOS, for some ARMv6 functions, which must be
+# in the same linkage unit, and for a couple of other functions that didn't
+# make it into libSystem.
+Configs += ios
+UniversalArchs.ios := $(call CheckArches,i386 x86_64 armv6 armv7)
# Configuration for use with kernel/kexts.
Configs += cc_kext
-UniversalArchs.cc_kext := armv6 armv7 i386 x86_64
+UniversalArchs.cc_kext := $(call CheckArches,armv6 armv7 i386 x86_64)
###
@@ -40,10 +55,42 @@ override CC := $(patsubst -arch_%,,$(CC))
CFLAGS := -Wall -Werror -O3 -fomit-frame-pointer
+# Always set deployment target arguments for every build, these libraries should
+# never depend on the environmental overrides. We simply set them to minimum
+# supported deployment target -- nothing in the compiler-rt libraries should
+# actually depend on the deployment target.
+X86_DEPLOYMENT_ARGS := -mmacosx-version-min=10.4
+ARM_DEPLOYMENT_ARGS := -miphoneos-version-min=1.0
+
+# If an explicit ARM_SDK build variable is set, use that as the isysroot.
+ifneq ($(ARM_SDK),)
+ARM_DEPLOYMENT_ARGS += -isysroot $(ARM_SDK)
+endif
+
+CFLAGS.eprintf := $(CFLAGS) $(X86_DEPLOYMENT_ARGS)
+CFLAGS.10.4 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS)
+CFLAGS.ios.i386 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS)
+CFLAGS.ios.x86_64 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS)
+CFLAGS.ios.armv6 := $(CFLAGS) $(ARM_DEPLOYMENT_ARGS)
+CFLAGS.ios.armv7 := $(CFLAGS) $(ARM_DEPLOYMENT_ARGS)
+CFLAGS.cc_kext.i386 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS)
+CFLAGS.cc_kext.x86_64 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS)
+CFLAGS.cc_kext.armv6 := $(CFLAGS) $(ARM_DEPLOYMENT_ARGS) -mthumb
+CFLAGS.cc_kext.armv7 := $(CFLAGS) $(ARM_DEPLOYMENT_ARGS) -mthumb
+
FUNCTIONS.eprintf := eprintf
FUNCTIONS.10.4 := eprintf floatundidf floatundisf floatundixf
-FUNCTIONS.armv6 := switch16 switch32 switch8 switchu8 \
- save_vfp_d8_d15_regs restore_vfp_d8_d15_regs
+
+FUNCTIONS.ios := divmodsi4 udivmodsi4
+# On x86, the divmod functions reference divsi.
+FUNCTIONS.ios.i386 := $(FUNCTIONS.ios) \
+ divsi3 udivsi3
+FUNCTIONS.ios.x86_64 := $(FUNCTIONS.ios) \
+ divsi3 udivsi3
+FUNCTIONS.ios.armv6 := $(FUNCTIONS.ios) \
+ sync_synchronize \
+ switch16 switch32 switch8 switchu8 \
+ save_vfp_d8_d15_regs restore_vfp_d8_d15_regs
CCKEXT_COMMON_FUNCTIONS := \
absvdi2 \
@@ -62,6 +109,8 @@ CCKEXT_COMMON_FUNCTIONS := \
divdc3 \
divdi3 \
divsc3 \
+ divmodsi4 \
+ udivmodsi4 \
do_global_dtors \
eprintf \
ffsdi2 \
@@ -135,10 +184,8 @@ CCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \
floatsisf \
floatunsidf \
floatunsisf \
- gtdf2 \
- gtsf2 \
- ltdf2 \
- ltsf2 \
+ comparedf2 \
+ comparesf2 \
modsi3 \
muldf3 \
mulsf3 \
@@ -159,9 +206,6 @@ CCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \
FUNCTIONS.cc_kext.armv6 := $(CCKEXT_ARM_FUNCTIONS)
FUNCTIONS.cc_kext.armv7 := $(CCKEXT_ARM_FUNCTIONS)
-CFLAGS.cc_kext.armv6 := $(CFLAGS) -mthumb
-CFLAGS.cc_kext.armv7 := $(CFLAGS) -mthumb
-
CCKEXT_X86_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \
divxc3 \
fixunsxfdi \
@@ -221,11 +265,9 @@ FUNCTIONS.cc_kext.x86_64 := $(CCKEXT_X86_FUNCTIONS) \
# FIXME: Currently, compiler-rt is missing implementations for a number of the
# functions that need to go into libcc_kext.a. Filter them out for now.
CCKEXT_MISSING_FUNCTIONS := \
- adddf3 addsf3 cmpdf2 cmpsf2 div0 divdf3 divsf3 \
- extendsfdf2 ffssi2 fixdfsi fixsfsi floatsidf floatsisf \
- floatunsidf floatunsisf gtdf2 gtsf2 ltdf2 ltsf2 \
- muldf3 mulsf3 negdf2 negsf2 subdf3 subsf3 \
- truncdfsf2 udiv_w_sdiv unorddf2 unordsf2 bswapdi2 \
+ cmpdf2 cmpsf2 div0 \
+ ffssi2 \
+ udiv_w_sdiv unorddf2 unordsf2 bswapdi2 \
bswapsi2 \
gcc_bcmp \
do_global_dtors \
diff --git a/make/platform/darwin_bni.mk b/make/platform/darwin_bni.mk
index f15334f3194..14a1c197ec4 100644
--- a/make/platform/darwin_bni.mk
+++ b/make/platform/darwin_bni.mk
@@ -9,6 +9,8 @@ Configs := Debug Release Profile Static
UniversalArchs := $(RC_ARCHS)
ifeq (,$(SDKROOT))
+ CC.Release := $(CC)
+ CC.Static := $(CC)
else
CC.Release := /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cc
CC.Static := /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cc
diff --git a/test/Unit/absvti2_test.c b/test/Unit/absvti2_test.c
index 0a1db6a5650..8233c18ff09 100644
--- a/test/Unit/absvti2_test.c
+++ b/test/Unit/absvti2_test.c
@@ -77,6 +77,8 @@ int main()
if (test__absvti2(make_ti(((ti_int)rand() << 32) | rand(),
((ti_int)rand() << 32) | rand())))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/adddf3vfp_test.c b/test/Unit/adddf3vfp_test.c
index 6ead2341abf..5ad42f7b3a6 100644
--- a/test/Unit/adddf3vfp_test.c
+++ b/test/Unit/adddf3vfp_test.c
@@ -41,6 +41,8 @@ int main()
return 1;
if (test__adddf3vfp(0.0, -0.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/addsf3vfp_test.c b/test/Unit/addsf3vfp_test.c
index ddfe39f9627..95e057c3630 100644
--- a/test/Unit/addsf3vfp_test.c
+++ b/test/Unit/addsf3vfp_test.c
@@ -41,6 +41,8 @@ int main()
return 1;
if (test__addsf3vfp(0.0, -0.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/addvti3_test.c b/test/Unit/addvti3_test.c
index 33cfbc98529..1cf066c4891 100644
--- a/test/Unit/addvti3_test.c
+++ b/test/Unit/addvti3_test.c
@@ -87,6 +87,8 @@ int main()
make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/ashlti3_test.c b/test/Unit/ashlti3_test.c
index 4b6c6ca0164..b9f4dcc0a8c 100644
--- a/test/Unit/ashlti3_test.c
+++ b/test/Unit/ashlti3_test.c
@@ -168,6 +168,8 @@ int main()
if (test__ashlti3(make_ti(0xFEDCBA9876543215LL, 0xFEDCBA9876543215LL), 127,
make_ti(0x8000000000000000LL, 0x0000000000000000LL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/ashrti3_test.c b/test/Unit/ashrti3_test.c
index bfa34cbe967..3abee36b6b7 100644
--- a/test/Unit/ashrti3_test.c
+++ b/test/Unit/ashrti3_test.c
@@ -166,6 +166,8 @@ int main()
if (test__ashrti3(make_ti(0xFEDCBA9876543215LL, 0xFEDCBA9876543215LL), 127,
make_ti(0xFFFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/bswapdi2_test.c b/test/Unit/bswapdi2_test.c
index 634c2f9b1d4..2d830cf5e41 100644
--- a/test/Unit/bswapdi2_test.c
+++ b/test/Unit/bswapdi2_test.c
@@ -37,6 +37,8 @@ int main()
return 1;
if (test__bswapdi2(0x0000000100000002LL, 0x0200000001000000LL))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/bswapsi2_test.c b/test/Unit/bswapsi2_test.c
index 4fb756008b4..4488a888e1e 100644
--- a/test/Unit/bswapsi2_test.c
+++ b/test/Unit/bswapsi2_test.c
@@ -37,6 +37,8 @@ int main()
return 1;
if (test__bswapsi2(0x00000001, 0x01000000))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/clzti2_test.c b/test/Unit/clzti2_test.c
index 668c790b4d5..d2ca1645dd1 100644
--- a/test/Unit/clzti2_test.c
+++ b/test/Unit/clzti2_test.c
@@ -83,6 +83,8 @@ int main()
return 1;
if (test__clzti2(make_ti(0x8000000100000000LL, 0x8000000800000000LL), 0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/cmpti2_test.c b/test/Unit/cmpti2_test.c
index 2f5828ededa..4339e0abb5e 100644
--- a/test/Unit/cmpti2_test.c
+++ b/test/Unit/cmpti2_test.c
@@ -105,6 +105,8 @@ int main()
if (test__cmpti2(make_ti(2, 2), make_ti(2, 3), 0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/ctzti2_test.c b/test/Unit/ctzti2_test.c
index 485a88d70a9..c4934bd254b 100644
--- a/test/Unit/ctzti2_test.c
+++ b/test/Unit/ctzti2_test.c
@@ -76,6 +76,8 @@ int main()
return 1;
if (test__ctzti2(make_ti(0x8000000000000000LL, 0x0000000000000000LL), 127))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
diff --git a/test/Unit/divdf3vfp_test.c b/test/Unit/divdf3vfp_test.c
index ce5b2585811..e13822ffcaa 100644
--- a/test/Unit/divdf3vfp_test.c
+++ b/test/Unit/divdf3vfp_test.c
@@ -41,6 +41,8 @@ int main()
return 1;
if (test__divdf3vfp(10.0, -2.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/divsf3vfp_test.c b/test/Unit/divsf3vfp_test.c
index 6248ca0c66e..8382558412c 100644
--- a/test/Unit/divsf3vfp_test.c
+++ b/test/Unit/divsf3vfp_test.c
@@ -41,6 +41,8 @@ int main()
return 1;
if (test__divsf3vfp(10.0, -2.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/divtc3_test.c b/test/Unit/divtc3_test.c
index 815c10bcd06..7bb74d75514 100644
--- a/test/Unit/divtc3_test.c
+++ b/test/Unit/divtc3_test.c
@@ -375,6 +375,8 @@ int main()
// printf("No errors found.\n");
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/divti3_test.c b/test/Unit/divti3_test.c
index c9eceedd40c..7c8e2970fa6 100644
--- a/test/Unit/divti3_test.c
+++ b/test/Unit/divti3_test.c
@@ -71,6 +71,8 @@ int main()
if (test__divti3(make_ti(0x8000000000000000LL, 0), 2, make_ti(0xC000000000000000LL, 0)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/divxc3_test.c b/test/Unit/divxc3_test.c
index c93db67d875..aa8a7625d13 100644
--- a/test/Unit/divxc3_test.c
+++ b/test/Unit/divxc3_test.c
@@ -372,6 +372,8 @@ int main()
}
}
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/eqdf2vfp_test.c b/test/Unit/eqdf2vfp_test.c
index 6babd249858..585bd08e978 100644
--- a/test/Unit/eqdf2vfp_test.c
+++ b/test/Unit/eqdf2vfp_test.c
@@ -48,6 +48,8 @@ int main()
return 1;
if (test__eqdf2vfp(1.0, HUGE_VAL))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/eqsf2vfp_test.c b/test/Unit/eqsf2vfp_test.c
index 4a292bc2151..b0eed9402a3 100644
--- a/test/Unit/eqsf2vfp_test.c
+++ b/test/Unit/eqsf2vfp_test.c
@@ -44,6 +44,8 @@ int main()
return 1;
if (test__eqsf2vfp(1.0, HUGE_VALF))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/extebdsfdf2vfp_test.c b/test/Unit/extebdsfdf2vfp_test.c
index 9bbe5729ed3..3a009cf2d7f 100644
--- a/test/Unit/extebdsfdf2vfp_test.c
+++ b/test/Unit/extebdsfdf2vfp_test.c
@@ -41,6 +41,8 @@ int main()
return 1;
if (test__extendsfdf2vfp(3.1415926535))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/ffsti2_test.c b/test/Unit/ffsti2_test.c
index b679ab20fe7..fcb5c2725f2 100644
--- a/test/Unit/ffsti2_test.c
+++ b/test/Unit/ffsti2_test.c
@@ -76,6 +76,8 @@ int main()
if (test__ffsti2(make_ti(0x8000000000000000uLL, 0), 128))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixdfsivfp_test.c b/test/Unit/fixdfsivfp_test.c
index a9f012c4441..c6102e274ee 100644
--- a/test/Unit/fixdfsivfp_test.c
+++ b/test/Unit/fixdfsivfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__fixdfsivfp(-2147483648.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixdfti_test.c b/test/Unit/fixdfti_test.c
index 5ea33172d68..98a5628eddd 100644
--- a/test/Unit/fixdfti_test.c
+++ b/test/Unit/fixdfti_test.c
@@ -116,6 +116,8 @@ int main()
if (test__fixdfti(-0x1.FFFFFFFFFFFFEp+126, make_ti(0x8000000000000800LL, 0)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixsfsivfp_test.c b/test/Unit/fixsfsivfp_test.c
index c10152255b4..9abf5e85647 100644
--- a/test/Unit/fixsfsivfp_test.c
+++ b/test/Unit/fixsfsivfp_test.c
@@ -45,6 +45,8 @@ int main()
return 1;
if (test__fixsfsivfp(65536.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixsfti_test.c b/test/Unit/fixsfti_test.c
index 325659e0eb9..5fdd0057852 100644
--- a/test/Unit/fixsfti_test.c
+++ b/test/Unit/fixsfti_test.c
@@ -104,6 +104,8 @@ int main()
if (test__fixsfti(-0x1.FFFFFCp+126F, make_ti(0x8000010000000000LL, 0)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixunsdfsivfp_test.c b/test/Unit/fixunsdfsivfp_test.c
index 991506f8ac1..3727cf7b02f 100644
--- a/test/Unit/fixunsdfsivfp_test.c
+++ b/test/Unit/fixunsdfsivfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__fixunsdfsivfp(65536.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixunssfsivfp_test.c b/test/Unit/fixunssfsivfp_test.c
index 08e0e8ee9bc..c8e45f408b6 100644
--- a/test/Unit/fixunssfsivfp_test.c
+++ b/test/Unit/fixunssfsivfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__fixunssfsivfp(65536.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixunstfdi_test.c b/test/Unit/fixunstfdi_test.c
index a7cc9be2fcf..d0a5db7a9c9 100644
--- a/test/Unit/fixunstfdi_test.c
+++ b/test/Unit/fixunstfdi_test.c
@@ -114,6 +114,8 @@ int main()
if (test__fixunstfdi(-0x1.FFFFFFFFFFFFFFF8p+62L, 0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixunsxfdi_test.c b/test/Unit/fixunsxfdi_test.c
index 6d0f8d3fb65..4308f6f4ef1 100644
--- a/test/Unit/fixunsxfdi_test.c
+++ b/test/Unit/fixunsxfdi_test.c
@@ -117,6 +117,8 @@ int main()
if (test__fixunsxfdi(-0x1.FFFFFFFFFFFFFFF8p+62L, 0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixunsxfti_test.c b/test/Unit/fixunsxfti_test.c
index f1f6087009d..0e3c842bc02 100644
--- a/test/Unit/fixunsxfti_test.c
+++ b/test/Unit/fixunsxfti_test.c
@@ -134,6 +134,8 @@ int main()
if (test__fixunsxfti(0x1.FFFFFFFFFFFFFFF8p+126L, make_ti(0x7FFFFFFFFFFFFFFELL, 0)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixxfdi_test.c b/test/Unit/fixxfdi_test.c
index 1facd36494d..43ac0f8aaa3 100644
--- a/test/Unit/fixxfdi_test.c
+++ b/test/Unit/fixxfdi_test.c
@@ -108,6 +108,8 @@ int main()
if (test__fixxfdi(-0x1.FFFFFFFFFFFFFFF8p+62L, 0x8000000000000002LL))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/fixxfti_test.c b/test/Unit/fixxfti_test.c
index 85c15a20c2c..11296b03687 100644
--- a/test/Unit/fixxfti_test.c
+++ b/test/Unit/fixxfti_test.c
@@ -139,6 +139,8 @@ int main()
if (test__fixxfti(-0x1.FFFFFFFFFFFFFFFCp+126L, make_ti(0x8000000000000001LL,
0x0000000000000000LL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floatdixf_test.c b/test/Unit/floatdixf_test.c
index 8d049fdb898..33766642631 100644
--- a/test/Unit/floatdixf_test.c
+++ b/test/Unit/floatdixf_test.c
@@ -137,6 +137,8 @@ int main()
if (test__floatdixf(0x023479FD0E092DE0LL, 0x1.1A3CFE870496Fp+57))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floatsidfvfp_test.c b/test/Unit/floatsidfvfp_test.c
index 79e87b3211c..e21ecda5994 100644
--- a/test/Unit/floatsidfvfp_test.c
+++ b/test/Unit/floatsidfvfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__floatsidfvfp(0x80000000))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floatsisfvfp_test.c b/test/Unit/floatsisfvfp_test.c
index 00f4ac298d3..d20905bd91e 100644
--- a/test/Unit/floatsisfvfp_test.c
+++ b/test/Unit/floatsisfvfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__floatsisfvfp(0x80000000))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floattidf_test.c b/test/Unit/floattidf_test.c
index 4fcf272d828..cfe40849960 100644
--- a/test/Unit/floattidf_test.c
+++ b/test/Unit/floattidf_test.c
@@ -173,6 +173,8 @@ int main()
return 1;
if (test__floattidf(make_ti(0x023479FD0E092DE0LL, 14), 0x1.1A3CFE870496Fp+121))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floattisf_test.c b/test/Unit/floattisf_test.c
index 7e43aa10523..a83ec63a25c 100644
--- a/test/Unit/floattisf_test.c
+++ b/test/Unit/floattisf_test.c
@@ -129,6 +129,8 @@ int main()
if (test__floattisf(make_ti(0x0007FB72E4000000LL, 0), 0x1.FEDCB8p+114F))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floattixf_test.c b/test/Unit/floattixf_test.c
index 5ba17f1beb2..4a9dfb56ac9 100644
--- a/test/Unit/floattixf_test.c
+++ b/test/Unit/floattixf_test.c
@@ -205,6 +205,8 @@ int main()
if (test__floattixf(make_ti(0x0000123456789012LL, 0x34566FFFFFFFFFFFLL),
0x1.2345678901234566p+108L))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floatundixf_test.c b/test/Unit/floatundixf_test.c
index 43ac85f7a80..1974fa01012 100644
--- a/test/Unit/floatundixf_test.c
+++ b/test/Unit/floatundixf_test.c
@@ -138,6 +138,8 @@ int main()
if (test__floatundixf(0x023479FD0E092DE0ULL, 0x1.1A3CFE870496Fp+57))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floatunssidfvfp_test.c b/test/Unit/floatunssidfvfp_test.c
index fa174ef18ad..4883af1cf5f 100644
--- a/test/Unit/floatunssidfvfp_test.c
+++ b/test/Unit/floatunssidfvfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__floatunssidfvfp(0xFFFFFFFF))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floatunssisfvfp_test.c b/test/Unit/floatunssisfvfp_test.c
index 099f4e39a3e..917061a91b1 100644
--- a/test/Unit/floatunssisfvfp_test.c
+++ b/test/Unit/floatunssisfvfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__floatunssisfvfp(0xFFFFFFFF))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floatuntidf_test.c b/test/Unit/floatuntidf_test.c
index 3b630f5c76a..caad5d435e1 100644
--- a/test/Unit/floatuntidf_test.c
+++ b/test/Unit/floatuntidf_test.c
@@ -167,6 +167,8 @@ int main()
return 1;
if (test__floatuntidf(make_ti(0x023479FD0E092DE0LL, 14), 0x1.1A3CFE870496Fp+121))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floatuntisf_test.c b/test/Unit/floatuntisf_test.c
index e80403b4991..85c0727ce13 100644
--- a/test/Unit/floatuntisf_test.c
+++ b/test/Unit/floatuntisf_test.c
@@ -158,6 +158,8 @@ int main()
0x1.FEDCBEp+76F))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/floatuntixf_test.c b/test/Unit/floatuntixf_test.c
index 9d7f974f06c..fc7531a9c82 100644
--- a/test/Unit/floatuntixf_test.c
+++ b/test/Unit/floatuntixf_test.c
@@ -212,6 +212,8 @@ int main()
if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x34566FFFFFFFFFFFLL),
0x1.2345678901234566p+108L))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/gedf2vfp_test.c b/test/Unit/gedf2vfp_test.c
index 4731d3ffc3c..e280ce0780a 100644
--- a/test/Unit/gedf2vfp_test.c
+++ b/test/Unit/gedf2vfp_test.c
@@ -46,6 +46,8 @@ int main()
return 1;
if (test__gedf2vfp(1.0, HUGE_VAL))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/gesf2vfp_test.c b/test/Unit/gesf2vfp_test.c
index 9f1c7568c0a..aa53eb73997 100644
--- a/test/Unit/gesf2vfp_test.c
+++ b/test/Unit/gesf2vfp_test.c
@@ -46,6 +46,8 @@ int main()
return 1;
if (test__gesf2vfp(1.0, HUGE_VALF))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/gtdf2vfp_test.c b/test/Unit/gtdf2vfp_test.c
index f28297974f1..fd54e0b4e59 100644
--- a/test/Unit/gtdf2vfp_test.c
+++ b/test/Unit/gtdf2vfp_test.c
@@ -46,6 +46,8 @@ int main()
return 1;
if (test__gtdf2vfp(1.0, HUGE_VALF))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/gtsf2vfp_test.c b/test/Unit/gtsf2vfp_test.c
index 03fb00e1993..2f4ad99a63d 100644
--- a/test/Unit/gtsf2vfp_test.c
+++ b/test/Unit/gtsf2vfp_test.c
@@ -46,6 +46,8 @@ int main()
return 1;
if (test__gtsf2vfp(1.0, HUGE_VALF))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/ledf2vfp_test.c b/test/Unit/ledf2vfp_test.c
index e7ed522ab4b..5683590778c 100644
--- a/test/Unit/ledf2vfp_test.c
+++ b/test/Unit/ledf2vfp_test.c
@@ -46,6 +46,8 @@ int main()
return 1;
if (test__ledf2vfp(1.0, HUGE_VAL))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/lesf2vfp_test.c b/test/Unit/lesf2vfp_test.c
index dc5576b9e27..b5c20f61e8a 100644
--- a/test/Unit/lesf2vfp_test.c
+++ b/test/Unit/lesf2vfp_test.c
@@ -46,6 +46,8 @@ int main()
return 1;
if (test__lesf2vfp(1.0, HUGE_VALF))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/lshrti3_test.c b/test/Unit/lshrti3_test.c
index 093a6a2eb88..f266b54f63c 100644
--- a/test/Unit/lshrti3_test.c
+++ b/test/Unit/lshrti3_test.c
@@ -166,6 +166,8 @@ int main()
if (test__lshrti3(make_ti(0xFEDCBA9876543215LL, 0xFEDCBA9876543215LL), 127,
make_ti(0x0000000000000000LL, 0x0000000000000001LL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/ltdf2vfp_test.c b/test/Unit/ltdf2vfp_test.c
index 5051e4833a9..7319397c5e4 100644
--- a/test/Unit/ltdf2vfp_test.c
+++ b/test/Unit/ltdf2vfp_test.c
@@ -44,6 +44,8 @@ int main()
return 1;
if (test__ltdf2vfp(1.0, HUGE_VAL))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/ltsf2vfp_test.c b/test/Unit/ltsf2vfp_test.c
index 78d2c1a3ae3..2d920c95932 100644
--- a/test/Unit/ltsf2vfp_test.c
+++ b/test/Unit/ltsf2vfp_test.c
@@ -46,6 +46,8 @@ int main()
return 1;
if (test__ltsf2vfp(1.0, HUGE_VALF))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/modti3_test.c b/test/Unit/modti3_test.c
index 3be071495ad..bd05c7237d2 100644
--- a/test/Unit/modti3_test.c
+++ b/test/Unit/modti3_test.c
@@ -88,6 +88,8 @@ int main()
if (test__modti3(make_ti(0x8000000000000000LL, 0), -3, -2))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/muldf3vfp_test.c b/test/Unit/muldf3vfp_test.c
index 7ca5559c3aa..73454bf290a 100644
--- a/test/Unit/muldf3vfp_test.c
+++ b/test/Unit/muldf3vfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__muldf3vfp(0.0, -0.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/mulsf3vfp_test.c b/test/Unit/mulsf3vfp_test.c
index fcb124c9471..92cf1f12849 100644
--- a/test/Unit/mulsf3vfp_test.c
+++ b/test/Unit/mulsf3vfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__mulsf3vfp(0.0, -0.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/multc3_test.c b/test/Unit/multc3_test.c
index 40505f217f7..f8c66c0e426 100644
--- a/test/Unit/multc3_test.c
+++ b/test/Unit/multc3_test.c
@@ -367,7 +367,8 @@ int main()
return 1;
}
}
-
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/multi3_test.c b/test/Unit/multi3_test.c
index a4c0b7dbdf5..f8c6605eb25 100644
--- a/test/Unit/multi3_test.c
+++ b/test/Unit/multi3_test.c
@@ -127,6 +127,8 @@ int main()
make_ti(0x0000000000000000LL, 0x00B504F333F9DE5BLL),
make_ti(0x7FFFFFFFFFFFF328LL, 0xDF915DA296E8A000LL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/mulvti3_test.c b/test/Unit/mulvti3_test.c
index dfe09ffc86b..be1aa2d331c 100644
--- a/test/Unit/mulvti3_test.c
+++ b/test/Unit/mulvti3_test.c
@@ -253,6 +253,8 @@ int main()
// make_ti(0x8000000000000000LL, 0x0000000000000000LL))) // abort
// return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/mulxc3_test.c b/test/Unit/mulxc3_test.c
index 771d19ab273..4297c162bd8 100644
--- a/test/Unit/mulxc3_test.c
+++ b/test/Unit/mulxc3_test.c
@@ -368,6 +368,8 @@ int main()
}
}
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/nedf2vfp_test.c b/test/Unit/nedf2vfp_test.c
index 8fdac1a0372..2c440439963 100644
--- a/test/Unit/nedf2vfp_test.c
+++ b/test/Unit/nedf2vfp_test.c
@@ -44,6 +44,8 @@ int main()
return 1;
if (test__nedf2vfp(1.0, HUGE_VAL))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/negdf2vfp_test.c b/test/Unit/negdf2vfp_test.c
index 7bdf155d392..dc55428d678 100644
--- a/test/Unit/negdf2vfp_test.c
+++ b/test/Unit/negdf2vfp_test.c
@@ -41,6 +41,8 @@ int main()
return 1;
if (test__negdf2vfp(-1.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/negsf2vfp_test.c b/test/Unit/negsf2vfp_test.c
index 419b32d726a..ef54cee1dbe 100644
--- a/test/Unit/negsf2vfp_test.c
+++ b/test/Unit/negsf2vfp_test.c
@@ -41,6 +41,8 @@ int main()
return 1;
if (test__negsf2vfp(-1.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/negti2_test.c b/test/Unit/negti2_test.c
index 6ecc8628d77..1945accfa95 100644
--- a/test/Unit/negti2_test.c
+++ b/test/Unit/negti2_test.c
@@ -120,6 +120,8 @@ int main()
make_ti(0x8000000000000000LL, 0x0000000000000001LL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/negvti2_test.c b/test/Unit/negvti2_test.c
index 1dc904e10ab..772840989ad 100644
--- a/test/Unit/negvti2_test.c
+++ b/test/Unit/negvti2_test.c
@@ -102,6 +102,8 @@ int main()
if (test__negvti2(make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/nesf2vfp_test.c b/test/Unit/nesf2vfp_test.c
index 507b42ec3c4..c085bf8b41f 100644
--- a/test/Unit/nesf2vfp_test.c
+++ b/test/Unit/nesf2vfp_test.c
@@ -44,6 +44,8 @@ int main()
return 1;
if (test__nesf2vfp(1.0, HUGE_VALF))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/parityti2_test.c b/test/Unit/parityti2_test.c
index c2f8d3d28a5..ac67b35669a 100644
--- a/test/Unit/parityti2_test.c
+++ b/test/Unit/parityti2_test.c
@@ -57,6 +57,8 @@ int main()
((ti_int)rand() << 32) + rand()))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/popcountti2_test.c b/test/Unit/popcountti2_test.c
index 53fee3b52a5..1b94a0c6aa5 100644
--- a/test/Unit/popcountti2_test.c
+++ b/test/Unit/popcountti2_test.c
@@ -75,6 +75,8 @@ int main()
((ti_int)rand() << 32) | rand()))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/powitf2_test.c b/test/Unit/powitf2_test.c
index ca690fd103a..817cb1130de 100644
--- a/test/Unit/powitf2_test.c
+++ b/test/Unit/powitf2_test.c
@@ -225,6 +225,8 @@ int main()
if (test__powitf2(-2, -31, -1/2147483648.))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/powixf2_test.c b/test/Unit/powixf2_test.c
index 67d2463ca83..201870b37f1 100644
--- a/test/Unit/powixf2_test.c
+++ b/test/Unit/powixf2_test.c
@@ -225,6 +225,8 @@ int main()
if (test__powixf2(-2, -31, -1/2147483648.))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/subdf3vfp_test.c b/test/Unit/subdf3vfp_test.c
index d1517ec51e3..86d6f2fef22 100644
--- a/test/Unit/subdf3vfp_test.c
+++ b/test/Unit/subdf3vfp_test.c
@@ -41,6 +41,8 @@ int main()
return 1;
if (test__subdf3vfp(0.0, -0.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/subsf3vfp_test.c b/test/Unit/subsf3vfp_test.c
index aabd01d749f..223e7f8f393 100644
--- a/test/Unit/subsf3vfp_test.c
+++ b/test/Unit/subsf3vfp_test.c
@@ -41,6 +41,8 @@ int main()
return 1;
if (test__subsf3vfp(0.0, -0.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/subvti3_test.c b/test/Unit/subvti3_test.c
index a579a1fc188..6176bdfda97 100644
--- a/test/Unit/subvti3_test.c
+++ b/test/Unit/subvti3_test.c
@@ -73,6 +73,8 @@ int main()
if (test__subvti3(-1, make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/trampoline_setup_test.c b/test/Unit/trampoline_setup_test.c
index c6dbe70e020..dc30fb6df60 100644
--- a/test/Unit/trampoline_setup_test.c
+++ b/test/Unit/trampoline_setup_test.c
@@ -57,7 +57,8 @@ int main() {
#else
int main() {
- return 0;
+ printf("skipped\n");
+ return 0;
}
#endif
diff --git a/test/Unit/truncdfsf2vfp_test.c b/test/Unit/truncdfsf2vfp_test.c
index 4a44dc7919f..afc7868b0de 100644
--- a/test/Unit/truncdfsf2vfp_test.c
+++ b/test/Unit/truncdfsf2vfp_test.c
@@ -43,6 +43,8 @@ int main()
return 1;
if (test__truncdfsf2vfp(123.456))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/ucmpti2_test.c b/test/Unit/ucmpti2_test.c
index d17fbb24578..55f820b89f2 100644
--- a/test/Unit/ucmpti2_test.c
+++ b/test/Unit/ucmpti2_test.c
@@ -109,6 +109,8 @@ int main()
if (test__ucmpti2(make_tu(0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL),
make_tu(0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL), 1))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/udivmodti4_test.c b/test/Unit/udivmodti4_test.c
index 620929ae061..e0cae35ea7a 100644
--- a/test/Unit/udivmodti4_test.c
+++ b/test/Unit/udivmodti4_test.c
@@ -65346,6 +65346,8 @@ int main()
if (test__udivmodti4(tests[i][0], tests[i][1], tests[i][2], tests[i][3]))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/udivti3_test.c b/test/Unit/udivti3_test.c
index a94739a7c18..09e0e1cf70d 100644
--- a/test/Unit/udivti3_test.c
+++ b/test/Unit/udivti3_test.c
@@ -60,6 +60,8 @@ int main()
make_tu(0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL)))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/umodti3_test.c b/test/Unit/umodti3_test.c
index d75a1b3f956..5eac2d834fb 100644
--- a/test/Unit/umodti3_test.c
+++ b/test/Unit/umodti3_test.c
@@ -58,6 +58,8 @@ int main()
2, 0x1uLL))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/unorddf2vfp_test.c b/test/Unit/unorddf2vfp_test.c
index 1031138ae4b..d49d567896a 100644
--- a/test/Unit/unorddf2vfp_test.c
+++ b/test/Unit/unorddf2vfp_test.c
@@ -42,6 +42,8 @@ int main()
return 1;
if (test__unorddf2vfp(1.0, 1.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}
diff --git a/test/Unit/unordsf2vfp_test.c b/test/Unit/unordsf2vfp_test.c
index dedd7ecdd8c..3cadc81c708 100644
--- a/test/Unit/unordsf2vfp_test.c
+++ b/test/Unit/unordsf2vfp_test.c
@@ -42,6 +42,8 @@ int main()
return 1;
if (test__unordsf2vfp(1.0, 1.0))
return 1;
+#else
+ printf("skipped\n");
#endif
return 0;
}