merge in mnc-release history after reset to mnc-dev
diff --git a/Android.mk b/Android.mk
index 6cb93e0..7ea9e94 100644
--- a/Android.mk
+++ b/Android.mk
@@ -51,12 +51,12 @@
   lib/builtins/divdc3.c \
   lib/builtins/divdf3.c \
   lib/builtins/divdi3.c \
-  lib/builtins/divtf3.c \
   lib/builtins/divmoddi4.c \
   lib/builtins/divmodsi4.c \
   lib/builtins/divsc3.c \
   lib/builtins/divsf3.c \
   lib/builtins/divsi3.c \
+  lib/builtins/divtf3.c \
   lib/builtins/divti3.c \
   lib/builtins/divxc3.c \
   lib/builtins/eprintf.c \
@@ -72,12 +72,18 @@
   lib/builtins/fixsfdi.c \
   lib/builtins/fixsfsi.c \
   lib/builtins/fixsfti.c \
+  lib/builtins/fixtfdi.c \
+  lib/builtins/fixtfsi.c \
+  lib/builtins/fixtfti.c \
   lib/builtins/fixunsdfdi.c \
   lib/builtins/fixunsdfsi.c \
   lib/builtins/fixunsdfti.c \
   lib/builtins/fixunssfdi.c \
   lib/builtins/fixunssfsi.c \
   lib/builtins/fixunssfti.c \
+  lib/builtins/fixunstfdi.c \
+  lib/builtins/fixunstfsi.c \
+  lib/builtins/fixunstfti.c \
   lib/builtins/fixunsxfdi.c \
   lib/builtins/fixunsxfsi.c \
   lib/builtins/fixunsxfti.c \
@@ -188,7 +194,42 @@
   lib/builtins/arm/modsi3.S \
   lib/builtins/arm/udivmodsi4.S \
   lib/builtins/arm/udivsi3.S \
-  lib/builtins/arm/umodsi3.S
+  lib/builtins/arm/umodsi3.S \
+  lib/builtins/arm/adddf3vfp.S \
+  lib/builtins/arm/addsf3vfp.S \
+  lib/builtins/arm/divdf3vfp.S \
+  lib/builtins/arm/divsf3vfp.S \
+  lib/builtins/arm/eqdf2vfp.S \
+  lib/builtins/arm/eqsf2vfp.S \
+  lib/builtins/arm/extendsfdf2vfp.S \
+  lib/builtins/arm/fixdfsivfp.S \
+  lib/builtins/arm/fixsfsivfp.S \
+  lib/builtins/arm/fixunsdfsivfp.S \
+  lib/builtins/arm/fixunssfsivfp.S \
+  lib/builtins/arm/floatsidfvfp.S \
+  lib/builtins/arm/floatsisfvfp.S \
+  lib/builtins/arm/floatunssidfvfp.S \
+  lib/builtins/arm/floatunssisfvfp.S \
+  lib/builtins/arm/gedf2vfp.S \
+  lib/builtins/arm/gesf2vfp.S \
+  lib/builtins/arm/gtdf2vfp.S \
+  lib/builtins/arm/gtsf2vfp.S \
+  lib/builtins/arm/ledf2vfp.S \
+  lib/builtins/arm/lesf2vfp.S \
+  lib/builtins/arm/ltdf2vfp.S \
+  lib/builtins/arm/ltsf2vfp.S \
+  lib/builtins/arm/muldf3vfp.S \
+  lib/builtins/arm/mulsf3vfp.S \
+  lib/builtins/arm/nedf2vfp.S \
+  lib/builtins/arm/negdf2vfp.S \
+  lib/builtins/arm/negsf2vfp.S \
+  lib/builtins/arm/nesf2vfp.S \
+  lib/builtins/arm/subdf3vfp.S \
+  lib/builtins/arm/subsf3vfp.S \
+  lib/builtins/arm/truncdfsf2vfp.S \
+  lib/builtins/arm/unorddf2vfp.S \
+  lib/builtins/arm/unordsf2vfp.S
+
 
 # ARM64-specific runtimes
 libcompiler_rt_arm64_SRC_FILES :=
@@ -269,7 +310,7 @@
                                          fixdfsi.c fixsfsi.c fixunsdfsi.c fixunssfsi.c       \
                                          floatsidf.c floatsisf.c floatunsidf.c floatunsisf.c \
                                          muldf3.c mulsf3.c negdf2.c negsf2.c subdf3.c        \
-                                         subsf3.c truncdfsf2.c),$(1)) lib/builtins/arm/vfp_alias.S
+                                         subsf3.c truncdfsf2.c),$(1))
 endef
 
 define get-libcompiler-rt-arm-source-files
@@ -352,6 +393,7 @@
 
 LOCAL_MODULE := libcompiler_rt
 LOCAL_CFLAGS_arm += -D__ARM_EABI__
+LOCAL_CFLAGS_mips64 += -DCRT_HAS_128BIT -DCRT_LDBL_128BIT
 LOCAL_ASFLAGS := -integrated-as
 LOCAL_CLANG := true
 LOCAL_SRC_FILES_arm := $(call get-libcompiler-rt-source-files,arm)
@@ -360,6 +402,7 @@
 LOCAL_SRC_FILES_mips64 := $(call get-libcompiler-rt-source-files,mips64)
 LOCAL_SRC_FILES_x86 := $(call get-libcompiler-rt-source-files,x86)
 LOCAL_SRC_FILES_x86_64 := $(call get-libcompiler-rt-source-files,x86_64)
+LOCAL_SRC_FILES_x86_64 += lib/builtins/ppc/floatditf.c
 LOCAL_MODULE_TARGET_ARCH := arm arm64 mips mips64 x86 x86_64
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
 LOCAL_ADDRESS_SANITIZER := false
@@ -432,6 +475,7 @@
 LOCAL_MODULE_TARGET_ARCH := arm arm64 mips mips64 x86 x86_64
 LOCAL_ADDRESS_SANITIZER := false
 LOCAL_CXX_STL := none
+LOCAL_NO_LIBGCC := true
 
 include $(BUILD_SHARED_LIBRARY)
 
@@ -455,6 +499,7 @@
 LOCAL_MULTILIB := both
 LOCAL_ADDRESS_SANITIZER := false
 LOCAL_CXX_STL := none
+LOCAL_NO_LIBGCC := true
 
 include $(BUILD_HOST_SHARED_LIBRARY)
 
diff --git a/lib/builtins/arm/vfp_alias.S b/lib/builtins/arm/vfp_alias.S
deleted file mode 100644
index 6bdae15..0000000
--- a/lib/builtins/arm/vfp_alias.S
+++ /dev/null
@@ -1,93 +0,0 @@
-//===-- vfp_alias.S - Override generic runtimes with VFP version ----------===//
-//
-//                     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.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-#include "adddf3vfp.S"
-#include "addsf3vfp.S"
-#include "divdf3vfp.S"
-#include "divsf3vfp.S"
-#include "eqdf2vfp.S"
-#include "eqsf2vfp.S"
-#include "extendsfdf2vfp.S"
-#include "fixdfsivfp.S"
-#include "fixsfsivfp.S"
-#include "fixunsdfsivfp.S"
-#include "fixunssfsivfp.S"
-#include "floatsidfvfp.S"
-#include "floatsisfvfp.S"
-#include "floatunssidfvfp.S"
-#include "floatunssisfvfp.S"
-#include "gedf2vfp.S"
-#include "gesf2vfp.S"
-#include "gtdf2vfp.S"
-#include "gtsf2vfp.S"
-#include "ledf2vfp.S"
-#include "lesf2vfp.S"
-#include "ltdf2vfp.S"
-#include "ltsf2vfp.S"
-#include "muldf3vfp.S"
-#include "mulsf3vfp.S"
-#include "nedf2vfp.S"
-#include "negdf2vfp.S"
-#include "negsf2vfp.S"
-#include "nesf2vfp.S"
-#include "subdf3vfp.S"
-#include "subsf3vfp.S"
-#include "truncdfsf2vfp.S"
-#include "unorddf2vfp.S"
-#include "unordsf2vfp.S"
-
-#define DEFINE_VFP_FUNCTION_ALIAS(name)              \
-  DEFINE_COMPILERRT_FUNCTION_ALIAS(name, name ## vfp)
-
-#define DEFINE_VFP_AND_AEABI_ALIAS(aeabi_name, name) \
-  DEFINE_VFP_FUNCTION_ALIAS(name)                    \
-  DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name)
-
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dadd, __adddf3)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fadd, __addsf3)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_ddiv, __divdf3)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fdiv, __divsf3)
-DEFINE_VFP_FUNCTION_ALIAS(__eqdf2)
-DEFINE_VFP_FUNCTION_ALIAS(__eqsf2)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2d, __extendsfdf2)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2iz, __fixdfsi)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2iz, __fixsfsi)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2uiz, __fixunsdfsi)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2uiz, __fixunssfsi)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_i2d, __floatsidf)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_i2f, __floatsisf)
-DEFINE_VFP_FUNCTION_ALIAS(__gedf2)
-DEFINE_VFP_FUNCTION_ALIAS(__gesf2)
-DEFINE_VFP_FUNCTION_ALIAS(__gtdf2)
-DEFINE_VFP_FUNCTION_ALIAS(__gtsf2)
-DEFINE_VFP_FUNCTION_ALIAS(__ledf2)
-DEFINE_VFP_FUNCTION_ALIAS(__lesf2)
-DEFINE_VFP_FUNCTION_ALIAS(__ltdf2)
-DEFINE_VFP_FUNCTION_ALIAS(__ltsf2)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dmul, __muldf3)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fmul, __mulsf3)
-DEFINE_VFP_FUNCTION_ALIAS(__nedf2)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dneg, __negdf2)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fneg, __negsf2)
-DEFINE_VFP_FUNCTION_ALIAS(__nesf2)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dsub, __subdf3)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fsub, __subsf3)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2f, __truncdfsf2)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dcmpun, __unorddf2)
-DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fcmpun, __unordsf2)
-
-// Alias __floatunsidf to __floatunssidfvfp
-DEFINE_COMPILERRT_FUNCTION_ALIAS(__floatunsidf, __floatunssidfvfp)
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_ui2d, __floatunsidf)
-
-// Alias __floatunsisf to __floatunsisfvfp
-DEFINE_COMPILERRT_FUNCTION_ALIAS(__floatunsisf, __floatunssisfvfp)
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_ui2f, __floatunsisf)