svn commit: r312177 - in vendor/compiler-rt/dist: cmake cmake/Modules lib/asan lib/asan/tests lib/builtins/arm lib/msan/tests lib/sancov lib/sanitizer_common lib/sanitizer_common/tests lib/scudo li...
Dimitry Andric
dim at FreeBSD.org
Sat Jan 14 15:38:53 UTC 2017
Author: dim
Date: Sat Jan 14 15:38:48 2017
New Revision: 312177
URL: https://svnweb.freebsd.org/changeset/base/312177
Log:
Vendor import of compiler-rt release_40 branch r292009:
https://llvm.org/svn/llvm-project/compiler-rt/branches/release_40@292009
Added:
vendor/compiler-rt/dist/lib/sancov/
vendor/compiler-rt/dist/lib/scudo/scudo_crc32.cpp (contents, props changed)
vendor/compiler-rt/dist/lib/scudo/scudo_crc32.h (contents, props changed)
vendor/compiler-rt/dist/test/tsan/Darwin/ignore-noninstrumented.mm
Modified:
vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake
vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake
vendor/compiler-rt/dist/cmake/Modules/CompilerRTLink.cmake
vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake
vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake
vendor/compiler-rt/dist/cmake/config-ix.cmake
vendor/compiler-rt/dist/lib/asan/CMakeLists.txt
vendor/compiler-rt/dist/lib/asan/asan_activation.cc
vendor/compiler-rt/dist/lib/asan/asan_activation_flags.inc
vendor/compiler-rt/dist/lib/asan/asan_allocator.cc
vendor/compiler-rt/dist/lib/asan/asan_flags.cc
vendor/compiler-rt/dist/lib/asan/tests/CMakeLists.txt
vendor/compiler-rt/dist/lib/builtins/arm/adddf3vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/addsf3vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S
vendor/compiler-rt/dist/lib/builtins/arm/divdf3vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/divsf3vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/eqdf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/eqsf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/extendsfdf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/fixdfsivfp.S
vendor/compiler-rt/dist/lib/builtins/arm/fixsfsivfp.S
vendor/compiler-rt/dist/lib/builtins/arm/fixunsdfsivfp.S
vendor/compiler-rt/dist/lib/builtins/arm/fixunssfsivfp.S
vendor/compiler-rt/dist/lib/builtins/arm/floatsidfvfp.S
vendor/compiler-rt/dist/lib/builtins/arm/floatsisfvfp.S
vendor/compiler-rt/dist/lib/builtins/arm/floatunssidfvfp.S
vendor/compiler-rt/dist/lib/builtins/arm/floatunssisfvfp.S
vendor/compiler-rt/dist/lib/builtins/arm/gedf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/gesf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/gtdf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/gtsf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/ledf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/lesf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/ltdf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/ltsf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/muldf3vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/mulsf3vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/nedf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/negdf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/negsf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/nesf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/subdf3vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/subsf3vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/truncdfsf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/unorddf2vfp.S
vendor/compiler-rt/dist/lib/builtins/arm/unordsf2vfp.S
vendor/compiler-rt/dist/lib/msan/tests/CMakeLists.txt
vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.h
vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_libignore.cc
vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_libignore.h
vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_posix.h
vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_quarantine.h
vendor/compiler-rt/dist/lib/sanitizer_common/tests/CMakeLists.txt
vendor/compiler-rt/dist/lib/scudo/CMakeLists.txt
vendor/compiler-rt/dist/lib/scudo/scudo_allocator.cpp
vendor/compiler-rt/dist/lib/scudo/scudo_utils.cpp
vendor/compiler-rt/dist/lib/scudo/scudo_utils.h
vendor/compiler-rt/dist/lib/stats/CMakeLists.txt
vendor/compiler-rt/dist/lib/tsan/CMakeLists.txt
vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.inc
vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors.cc
vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors.h
vendor/compiler-rt/dist/lib/tsan/tests/CMakeLists.txt
vendor/compiler-rt/dist/lib/ubsan/CMakeLists.txt
vendor/compiler-rt/dist/lib/xray/xray_AArch64.cc
vendor/compiler-rt/dist/test/asan/TestCases/Linux/thread_local_quarantine_size_kb.cc
vendor/compiler-rt/dist/test/asan/TestCases/Posix/start-deactivated.cc
vendor/compiler-rt/dist/test/asan/lit.cfg
vendor/compiler-rt/dist/test/profile/Linux/comdat_rename.test
vendor/compiler-rt/dist/test/profile/lit.cfg
vendor/compiler-rt/dist/test/xray/TestCases/Linux/patching-unpatching.cc
Modified: vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Sat Jan 14 15:38:48 2017 (r312177)
@@ -94,7 +94,7 @@ endfunction()
# OS <os list>
# SOURCES <source files>
# CFLAGS <compile flags>
-# LINKFLAGS <linker flags>
+# LINK_FLAGS <linker flags>
# DEFS <compile definitions>
# LINK_LIBS <linked libraries> (only for shared library)
# OBJECT_LIBS <object libraries to use as sources>
@@ -107,7 +107,7 @@ function(add_compiler_rt_runtime name ty
cmake_parse_arguments(LIB
""
"PARENT_TARGET"
- "OS;ARCHS;SOURCES;CFLAGS;LINKFLAGS;DEFS;LINK_LIBS;OBJECT_LIBS"
+ "OS;ARCHS;SOURCES;CFLAGS;LINK_FLAGS;DEFS;LINK_LIBS;OBJECT_LIBS"
${ARGN})
set(libnames)
if(APPLE)
@@ -116,7 +116,7 @@ function(add_compiler_rt_runtime name ty
set(libname "${name}_${os}")
else()
set(libname "${name}_${os}_dynamic")
- set(extra_linkflags_${libname} ${DARWIN_${os}_LINKFLAGS} ${LIB_LINKFLAGS})
+ set(extra_link_flags_${libname} ${DARWIN_${os}_LINK_FLAGS} ${LIB_LINK_FLAGS})
endif()
list_intersect(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS)
if(LIB_ARCHS_${libname})
@@ -139,7 +139,7 @@ function(add_compiler_rt_runtime name ty
else()
set(libname "${name}-dynamic-${arch}")
set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS})
- set(extra_linkflags_${libname} ${TARGET_${arch}_LINKFLAGS} ${LIB_LINKFLAGS})
+ set(extra_link_flags_${libname} ${TARGET_${arch}_LINK_FLAGS} ${LIB_LINK_FLAGS})
if(WIN32)
set(output_name_${libname} ${name}_dynamic-${arch}${COMPILER_RT_OS_SUFFIX})
else()
@@ -188,7 +188,7 @@ function(add_compiler_rt_runtime name ty
add_library(${libname} ${type} ${sources_${libname}})
set_target_compile_flags(${libname} ${extra_cflags_${libname}})
- set_target_link_flags(${libname} ${extra_linkflags_${libname}})
+ set_target_link_flags(${libname} ${extra_link_flags_${libname}})
set_property(TARGET ${libname} APPEND PROPERTY
COMPILE_DEFINITIONS ${LIB_DEFS})
set_target_output_directories(${libname} ${COMPILER_RT_LIBRARY_OUTPUT_DIR})
@@ -243,7 +243,7 @@ endfunction()
# when cross compiling, COMPILER_RT_TEST_COMPILER_CFLAGS help
# in compilation and linking of unittests.
string(REPLACE " " ";" COMPILER_RT_UNITTEST_CFLAGS "${COMPILER_RT_TEST_COMPILER_CFLAGS}")
-set(COMPILER_RT_UNITTEST_LINKFLAGS ${COMPILER_RT_UNITTEST_CFLAGS})
+set(COMPILER_RT_UNITTEST_LINK_FLAGS ${COMPILER_RT_UNITTEST_CFLAGS})
# Unittests support.
set(COMPILER_RT_GTEST_PATH ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest)
Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake Sat Jan 14 15:38:48 2017 (r312177)
@@ -66,7 +66,7 @@ function(darwin_test_archs os valid_arch
file(WRITE ${SIMPLE_C} "#include <stdio.h>\nint main() { printf(__FILE__); return 0; }\n")
set(os_linker_flags)
- foreach(flag ${DARWIN_${os}_LINKFLAGS})
+ foreach(flag ${DARWIN_${os}_LINK_FLAGS})
set(os_linker_flags "${os_linker_flags} ${flag}")
endforeach()
endif()
Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTLink.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/Modules/CompilerRTLink.cmake Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTLink.cmake Sat Jan 14 15:38:48 2017 (r312177)
@@ -1,16 +1,16 @@
# Link a shared library with COMPILER_RT_TEST_COMPILER.
# clang_link_shared(<output.so>
# OBJECTS <list of input objects>
-# LINKFLAGS <list of link flags>
+# LINK_FLAGS <list of link flags>
# DEPS <list of dependencies>)
macro(clang_link_shared so_file)
- cmake_parse_arguments(SOURCE "" "" "OBJECTS;LINKFLAGS;DEPS" ${ARGN})
+ cmake_parse_arguments(SOURCE "" "" "OBJECTS;LINK_FLAGS;DEPS" ${ARGN})
if(NOT COMPILER_RT_STANDALONE_BUILD)
list(APPEND SOURCE_DEPS clang)
endif()
add_custom_command(
OUTPUT ${so_file}
COMMAND ${COMPILER_RT_TEST_COMPILER} -o "${so_file}" -shared
- ${SOURCE_LINKFLAGS} ${SOURCE_OBJECTS}
+ ${SOURCE_LINK_FLAGS} ${SOURCE_OBJECTS}
DEPENDS ${SOURCE_DEPS})
endmacro()
Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Sat Jan 14 15:38:48 2017 (r312177)
@@ -126,7 +126,7 @@ endfunction()
# If successful, saves target flags for this architecture.
macro(test_target_arch arch def)
set(TARGET_${arch}_CFLAGS ${ARGN})
- set(TARGET_${arch}_LINKFLAGS ${ARGN})
+ set(TARGET_${arch}_LINK_FLAGS ${ARGN})
set(argstring "")
foreach(arg ${ARGN})
set(argstring "${argstring} ${arg}")
@@ -219,8 +219,18 @@ macro(load_llvm_config)
set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree")
# Make use of LLVM CMake modules.
- file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE)
- set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
+ # --cmakedir is supported since llvm r291218 (4.0 release)
+ execute_process(
+ COMMAND ${LLVM_CONFIG_PATH} --cmakedir
+ RESULT_VARIABLE HAD_ERROR
+ OUTPUT_VARIABLE CONFIG_OUTPUT)
+ if(NOT HAD_ERROR)
+ string(STRIP "${CONFIG_OUTPUT}" LLVM_CMAKE_PATH)
+ else()
+ file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE)
+ set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
+ endif()
+
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}")
# Get some LLVM variables from LLVMConfig.
include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake")
Modified: vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake Sat Jan 14 15:38:48 2017 (r312177)
@@ -48,13 +48,13 @@ endmacro()
# This function is only used on Darwin, where undefined symbols must be specified
# in the linker invocation.
-function(add_weak_symbols libname linkflags)
+function(add_weak_symbols libname link_flags)
file(STRINGS "${COMPILER_RT_SOURCE_DIR}/lib/${libname}/weak_symbols.txt" WEAK_SYMBOLS)
- set(local_linkflags ${${linkflags}})
+ set(local_link_flags ${${link_flags}})
foreach(SYMBOL ${WEAK_SYMBOLS})
- set(local_linkflags ${local_linkflags} -Wl,-U,${SYMBOL})
+ set(local_link_flags ${local_link_flags} -Wl,-U,${SYMBOL})
endforeach()
- set(${linkflags} ${local_linkflags} PARENT_SCOPE)
+ set(${link_flags} ${local_link_flags} PARENT_SCOPE)
endfunction()
macro(add_sanitizer_rt_version_list name)
Modified: vendor/compiler-rt/dist/cmake/config-ix.cmake
==============================================================================
--- vendor/compiler-rt/dist/cmake/config-ix.cmake Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/cmake/config-ix.cmake Sat Jan 14 15:38:48 2017 (r312177)
@@ -29,6 +29,7 @@ check_cxx_compiler_flag(-std=c++11
check_cxx_compiler_flag(-ftls-model=initial-exec COMPILER_RT_HAS_FTLS_MODEL_INITIAL_EXEC)
check_cxx_compiler_flag(-fno-lto COMPILER_RT_HAS_FNO_LTO_FLAG)
check_cxx_compiler_flag("-Werror -msse3" COMPILER_RT_HAS_MSSE3_FLAG)
+check_cxx_compiler_flag("-Werror -msse4.2" COMPILER_RT_HAS_MSSE4_2_FLAG)
check_cxx_compiler_flag(--sysroot=. COMPILER_RT_HAS_SYSROOT_FLAG)
if(NOT WIN32 AND NOT CYGWIN)
@@ -241,26 +242,26 @@ if(APPLE)
set(CMAKE_OSX_DEPLOYMENT_TARGET "")
set(DARWIN_COMMON_CFLAGS -stdlib=libc++)
- set(DARWIN_COMMON_LINKFLAGS
+ set(DARWIN_COMMON_LINK_FLAGS
-stdlib=libc++
-lc++
-lc++abi)
check_linker_flag("-fapplication-extension" COMPILER_RT_HAS_APP_EXTENSION)
if(COMPILER_RT_HAS_APP_EXTENSION)
- list(APPEND DARWIN_COMMON_LINKFLAGS "-fapplication-extension")
+ list(APPEND DARWIN_COMMON_LINK_FLAGS "-fapplication-extension")
endif()
set(DARWIN_osx_CFLAGS
${DARWIN_COMMON_CFLAGS}
-mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION})
- set(DARWIN_osx_LINKFLAGS
- ${DARWIN_COMMON_LINKFLAGS}
+ set(DARWIN_osx_LINK_FLAGS
+ ${DARWIN_COMMON_LINK_FLAGS}
-mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION})
if(DARWIN_osx_SYSROOT)
list(APPEND DARWIN_osx_CFLAGS -isysroot ${DARWIN_osx_SYSROOT})
- list(APPEND DARWIN_osx_LINKFLAGS -isysroot ${DARWIN_osx_SYSROOT})
+ list(APPEND DARWIN_osx_LINK_FLAGS -isysroot ${DARWIN_osx_SYSROOT})
endif()
# Figure out which arches to use for each OS
@@ -283,8 +284,8 @@ if(APPLE)
${DARWIN_COMMON_CFLAGS}
${DARWIN_${platform}_SANITIZER_MIN_VER_FLAG}
-isysroot ${DARWIN_${platform}sim_SYSROOT})
- set(DARWIN_${platform}sim_LINKFLAGS
- ${DARWIN_COMMON_LINKFLAGS}
+ set(DARWIN_${platform}sim_LINK_FLAGS
+ ${DARWIN_COMMON_LINK_FLAGS}
${DARWIN_${platform}_SANITIZER_MIN_VER_FLAG}
-isysroot ${DARWIN_${platform}sim_SYSROOT})
@@ -311,8 +312,8 @@ if(APPLE)
${DARWIN_COMMON_CFLAGS}
${DARWIN_${platform}_SANITIZER_MIN_VER_FLAG}
-isysroot ${DARWIN_${platform}_SYSROOT})
- set(DARWIN_${platform}_LINKFLAGS
- ${DARWIN_COMMON_LINKFLAGS}
+ set(DARWIN_${platform}_LINK_FLAGS
+ ${DARWIN_COMMON_LINK_FLAGS}
${DARWIN_${platform}_SANITIZER_MIN_VER_FLAG}
-isysroot ${DARWIN_${platform}_SYSROOT})
Modified: vendor/compiler-rt/dist/lib/asan/CMakeLists.txt
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/CMakeLists.txt Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/asan/CMakeLists.txt Sat Jan 14 15:38:48 2017 (r312177)
@@ -106,9 +106,9 @@ endif()
add_compiler_rt_component(asan)
if(APPLE)
- add_weak_symbols("asan" WEAK_SYMBOL_LINKFLAGS)
- add_weak_symbols("ubsan" WEAK_SYMBOL_LINKFLAGS)
- add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINKFLAGS)
+ add_weak_symbols("asan" WEAK_SYMBOL_LINK_FLAGS)
+ add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
+ add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
add_compiler_rt_runtime(clang_rt.asan
SHARED
@@ -121,7 +121,7 @@ if(APPLE)
RTLSanCommon
RTUbsan
CFLAGS ${ASAN_DYNAMIC_CFLAGS}
- LINKFLAGS ${WEAK_SYMBOL_LINKFLAGS}
+ LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
DEFS ${ASAN_DYNAMIC_DEFINITIONS}
PARENT_TARGET asan)
else()
@@ -188,7 +188,7 @@ else()
RTAsan_dynamic_version_script_dummy
RTUbsan_cxx
CFLAGS ${ASAN_DYNAMIC_CFLAGS}
- LINKFLAGS ${ASAN_DYNAMIC_LINK_FLAGS}
+ LINK_FLAGS ${ASAN_DYNAMIC_LINK_FLAGS}
${VERSION_SCRIPT_FLAG}
LINK_LIBS ${ASAN_DYNAMIC_LIBS}
DEFS ${ASAN_DYNAMIC_DEFINITIONS}
Modified: vendor/compiler-rt/dist/lib/asan/asan_activation.cc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_activation.cc Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/asan/asan_activation.cc Sat Jan 14 15:38:48 2017 (r312177)
@@ -77,12 +77,13 @@ static struct AsanDeactivatedFlags {
void Print() {
Report(
- "quarantine_size_mb %d, max_redzone %d, poison_heap %d, "
- "malloc_context_size %d, alloc_dealloc_mismatch %d, "
- "allocator_may_return_null %d, coverage %d, coverage_dir %s, "
- "allocator_release_to_os_interval_ms %d\n",
- allocator_options.quarantine_size_mb, allocator_options.max_redzone,
- poison_heap, malloc_context_size,
+ "quarantine_size_mb %d, thread_local_quarantine_size_kb %d, "
+ "max_redzone %d, poison_heap %d, malloc_context_size %d, "
+ "alloc_dealloc_mismatch %d, allocator_may_return_null %d, coverage %d, "
+ "coverage_dir %s, allocator_release_to_os_interval_ms %d\n",
+ allocator_options.quarantine_size_mb,
+ allocator_options.thread_local_quarantine_size_kb,
+ allocator_options.max_redzone, poison_heap, malloc_context_size,
allocator_options.alloc_dealloc_mismatch,
allocator_options.may_return_null, coverage, coverage_dir,
allocator_options.release_to_os_interval_ms);
@@ -109,6 +110,7 @@ void AsanDeactivate() {
AllocatorOptions disabled = asan_deactivated_flags.allocator_options;
disabled.quarantine_size_mb = 0;
+ disabled.thread_local_quarantine_size_kb = 0;
disabled.min_redzone = 16; // Redzone must be at least 16 bytes long.
disabled.max_redzone = 16;
disabled.alloc_dealloc_mismatch = false;
Modified: vendor/compiler-rt/dist/lib/asan/asan_activation_flags.inc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_activation_flags.inc Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/asan/asan_activation_flags.inc Sat Jan 14 15:38:48 2017 (r312177)
@@ -24,6 +24,7 @@
ASAN_ACTIVATION_FLAG(int, redzone)
ASAN_ACTIVATION_FLAG(int, max_redzone)
ASAN_ACTIVATION_FLAG(int, quarantine_size_mb)
+ASAN_ACTIVATION_FLAG(int, thread_local_quarantine_size_kb)
ASAN_ACTIVATION_FLAG(bool, alloc_dealloc_mismatch)
ASAN_ACTIVATION_FLAG(bool, poison_heap)
Modified: vendor/compiler-rt/dist/lib/asan/asan_allocator.cc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_allocator.cc Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/asan/asan_allocator.cc Sat Jan 14 15:38:48 2017 (r312177)
@@ -269,24 +269,24 @@ struct Allocator {
}
void RePoisonChunk(uptr chunk) {
- // This could a user-facing chunk (with redzones), or some internal
+ // This could be a user-facing chunk (with redzones), or some internal
// housekeeping chunk, like TransferBatch. Start by assuming the former.
AsanChunk *ac = GetAsanChunk((void *)chunk);
uptr allocated_size = allocator.GetActuallyAllocatedSize((void *)ac);
uptr beg = ac->Beg();
uptr end = ac->Beg() + ac->UsedSize(true);
uptr chunk_end = chunk + allocated_size;
- if (chunk < beg && beg < end && end <= chunk_end) {
- // Looks like a valid AsanChunk. Or maybe not. Be conservative and only
- // poison the redzones.
+ if (chunk < beg && beg < end && end <= chunk_end &&
+ ac->chunk_state == CHUNK_ALLOCATED) {
+ // Looks like a valid AsanChunk in use, poison redzones only.
PoisonShadow(chunk, beg - chunk, kAsanHeapLeftRedzoneMagic);
uptr end_aligned_down = RoundDownTo(end, SHADOW_GRANULARITY);
FastPoisonShadowPartialRightRedzone(
end_aligned_down, end - end_aligned_down,
chunk_end - end_aligned_down, kAsanHeapLeftRedzoneMagic);
} else {
- // This can not be an AsanChunk. Poison everything. It may be reused as
- // AsanChunk later.
+ // This is either not an AsanChunk or freed or quarantined AsanChunk.
+ // In either case, poison everything.
PoisonShadow(chunk, allocated_size, kAsanHeapLeftRedzoneMagic);
}
}
Modified: vendor/compiler-rt/dist/lib/asan/asan_flags.cc
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/asan_flags.cc Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/asan/asan_flags.cc Sat Jan 14 15:38:48 2017 (r312177)
@@ -169,6 +169,11 @@ void InitializeFlags() {
(ASAN_LOW_MEMORY) ? 1 << 6 : FIRST_32_SECOND_64(1 << 8, 1 << 10);
f->thread_local_quarantine_size_kb = kDefaultThreadLocalQuarantineSizeKb;
}
+ if (f->thread_local_quarantine_size_kb == 0 && f->quarantine_size_mb > 0) {
+ Report("%s: thread_local_quarantine_size_kb can be set to 0 only when "
+ "quarantine_size_mb is set to 0\n", SanitizerToolName);
+ Die();
+ }
if (!f->replace_str && common_flags()->intercept_strlen) {
Report("WARNING: strlen interceptor is enabled even though replace_str=0. "
"Use intercept_strlen=0 to disable it.");
Modified: vendor/compiler-rt/dist/lib/asan/tests/CMakeLists.txt
==============================================================================
--- vendor/compiler-rt/dist/lib/asan/tests/CMakeLists.txt Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/asan/tests/CMakeLists.txt Sat Jan 14 15:38:48 2017 (r312177)
@@ -36,8 +36,8 @@ append_list_if(COMPILER_RT_HAS_WVARIADIC
# This will ensure the target linker is used
# during cross compilation
-set(ASAN_UNITTEST_COMMON_LINKFLAGS
- ${COMPILER_RT_UNITTEST_LINKFLAGS})
+set(ASAN_UNITTEST_COMMON_LINK_FLAGS
+ ${COMPILER_RT_UNITTEST_LINK_FLAGS})
# -gline-tables-only must be enough for ASan, so use it if possible.
if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang")
@@ -48,7 +48,7 @@ endif()
if(MSVC)
list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -gcodeview)
endif()
-list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS -g)
+list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS -g)
# Use -D instead of definitions to please custom compile command.
list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
@@ -58,12 +58,12 @@ list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
if(APPLE)
list(APPEND ASAN_UNITTEST_COMMON_CFLAGS ${DARWIN_osx_CFLAGS})
- list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS ${DARWIN_osx_LINKFLAGS})
+ list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS ${DARWIN_osx_LINK_FLAGS})
- add_weak_symbols("asan" WEAK_SYMBOL_LINKFLAGS)
- add_weak_symbols("ubsan" WEAK_SYMBOL_LINKFLAGS)
- add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINKFLAGS)
- list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS ${WEAK_SYMBOL_LINKFLAGS})
+ add_weak_symbols("asan" WEAK_SYMBOL_LINK_FLAGS)
+ add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
+ add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
+ list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS})
endif()
if(MSVC)
@@ -82,41 +82,41 @@ if(CAN_TARGET_x86_64 OR CAN_TARGET_i386)
endif()
if(NOT MSVC)
- list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS --driver-mode=g++)
+ list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS --driver-mode=g++)
endif()
# x86_64 FreeBSD 9.2 additionally requires libc++ to build the tests.
if(CMAKE_SYSTEM MATCHES "FreeBSD-9.2-RELEASE")
- list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS "-lc++")
+ list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS "-lc++")
endif()
# Unit tests on Mac depend on Foundation.
if(APPLE)
- list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS -framework Foundation)
+ list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS -framework Foundation)
endif()
if(ANDROID)
- list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS -pie)
+ list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS -pie)
endif()
-set(ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS
- ${ASAN_UNITTEST_COMMON_LINKFLAGS})
-list(APPEND ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS -fsanitize=address)
+set(ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS
+ ${ASAN_UNITTEST_COMMON_LINK_FLAGS})
+list(APPEND ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS -fsanitize=address)
-set(ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS
- ${ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS}
+set(ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS
+ ${ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS}
-shared-libasan)
set(ASAN_UNITTEST_INSTRUMENTED_LIBS)
# NDK r10 requires -latomic almost always.
append_list_if(ANDROID atomic ASAN_UNITTEST_INSTRUMENTED_LIBS)
-set(ASAN_UNITTEST_NOINST_LINKFLAGS ${ASAN_UNITTEST_COMMON_LINKFLAGS})
+set(ASAN_UNITTEST_NOINST_LINK_FLAGS ${ASAN_UNITTEST_COMMON_LINK_FLAGS})
if(NOT APPLE)
- append_list_if(COMPILER_RT_HAS_LIBM -lm ASAN_UNITTEST_NOINST_LINKFLAGS)
- append_list_if(COMPILER_RT_HAS_LIBDL -ldl ASAN_UNITTEST_NOINST_LINKFLAGS)
- append_list_if(COMPILER_RT_HAS_LIBRT -lrt ASAN_UNITTEST_NOINST_LINKFLAGS)
- append_list_if(COMPILER_RT_HAS_LIBPTHREAD -pthread ASAN_UNITTEST_NOINST_LINKFLAGS)
- append_list_if(COMPILER_RT_HAS_LIBPTHREAD -pthread ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS)
+ append_list_if(COMPILER_RT_HAS_LIBM -lm ASAN_UNITTEST_NOINST_LINK_FLAGS)
+ append_list_if(COMPILER_RT_HAS_LIBDL -ldl ASAN_UNITTEST_NOINST_LINK_FLAGS)
+ append_list_if(COMPILER_RT_HAS_LIBRT -lrt ASAN_UNITTEST_NOINST_LINK_FLAGS)
+ append_list_if(COMPILER_RT_HAS_LIBPTHREAD -pthread ASAN_UNITTEST_NOINST_LINK_FLAGS)
+ append_list_if(COMPILER_RT_HAS_LIBPTHREAD -pthread ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS)
endif()
# TODO(eugenis): move all -l flags above to _LIBS?
@@ -148,7 +148,7 @@ endmacro()
# Link ASan unit test for a given architecture from a set
# of objects in with given linker flags.
macro(add_asan_test test_suite test_name arch kind)
- cmake_parse_arguments(TEST "WITH_TEST_RUNTIME" "" "OBJECTS;LINKFLAGS;SUBDIR" ${ARGN})
+ cmake_parse_arguments(TEST "WITH_TEST_RUNTIME" "" "OBJECTS;LINK_FLAGS;SUBDIR" ${ARGN})
get_target_flags_for_arch(${arch} TARGET_LINK_FLAGS)
set(TEST_DEPS ${TEST_OBJECTS})
if(NOT COMPILER_RT_STANDALONE_BUILD)
@@ -172,7 +172,7 @@ macro(add_asan_test test_suite test_name
SUBDIR ${TEST_SUBDIR}
OBJECTS ${TEST_OBJECTS}
DEPS ${TEST_DEPS}
- LINK_FLAGS ${TEST_LINKFLAGS}
+ LINK_FLAGS ${TEST_LINK_FLAGS}
${TARGET_LINK_FLAGS})
endmacro()
@@ -237,8 +237,8 @@ macro(add_asan_tests_for_arch_and_kind a
endforeach()
# Clang links the static CRT by default. Override that to use the dynamic
# CRT.
- set(ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS
- ${ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS}
+ set(ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS
+ ${ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS}
-Wl,-nodefaultlib:libcmt,-defaultlib:msvcrt,-defaultlib:oldnames)
else()
set(ASAN_INST_DYNAMIC_TEST_OBJECTS ${ASAN_INST_TEST_OBJECTS})
@@ -256,7 +256,7 @@ macro(add_asan_tests_for_arch_and_kind a
add_asan_test(AsanUnitTests "Asan-${arch}${kind}-Test"
${arch} ${kind} SUBDIR "default"
OBJECTS ${ASAN_INST_TEST_OBJECTS}
- LINKFLAGS ${ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS})
+ LINK_FLAGS ${ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS})
if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME)
# Create the 'dynamic' folder where ASAN tests are produced.
if(CMAKE_CONFIGURATION_TYPES)
@@ -270,7 +270,7 @@ macro(add_asan_tests_for_arch_and_kind a
add_asan_test(AsanDynamicUnitTests "Asan-${arch}${kind}-Dynamic-Test"
${arch} ${kind} SUBDIR "dynamic"
OBJECTS ${ASAN_INST_DYNAMIC_TEST_OBJECTS}
- LINKFLAGS ${ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS})
+ LINK_FLAGS ${ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS})
endif()
# Add static ASan runtime that will be linked with uninstrumented tests.
@@ -307,7 +307,7 @@ macro(add_asan_tests_for_arch_and_kind a
add_asan_test(AsanUnitTests "Asan-${arch}${kind}-Noinst-Test"
${arch} ${kind} SUBDIR "default"
OBJECTS ${ASAN_NOINST_TEST_OBJECTS}
- LINKFLAGS ${ASAN_UNITTEST_NOINST_LINKFLAGS}
+ LINK_FLAGS ${ASAN_UNITTEST_NOINST_LINK_FLAGS}
WITH_TEST_RUNTIME)
# Benchmarks.
@@ -319,7 +319,7 @@ macro(add_asan_tests_for_arch_and_kind a
add_asan_test(AsanBenchmarks "Asan-${arch}${kind}-Benchmark"
${arch} ${kind} SUBDIR "default"
OBJECTS ${ASAN_BENCHMARKS_OBJECTS}
- LINKFLAGS ${ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS})
+ LINK_FLAGS ${ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS})
endmacro()
if(COMPILER_RT_CAN_EXECUTE_TESTS AND NOT ANDROID)
@@ -347,7 +347,7 @@ if(ANDROID)
${COMPILER_RT_GTEST_SOURCE}
${ASAN_NOINST_TEST_SOURCES})
set_target_compile_flags(AsanNoinstTest ${ASAN_UNITTEST_COMMON_CFLAGS})
- set_target_link_flags(AsanNoinstTest ${ASAN_UNITTEST_NOINST_LINKFLAGS})
+ set_target_link_flags(AsanNoinstTest ${ASAN_UNITTEST_NOINST_LINK_FLAGS})
target_link_libraries(AsanNoinstTest ${ASAN_UNITTEST_NOINST_LIBS})
# Test with ASan instrumentation. Link with ASan dynamic runtime.
@@ -355,7 +355,7 @@ if(ANDROID)
${COMPILER_RT_GTEST_SOURCE}
${ASAN_INST_TEST_SOURCES})
set_target_compile_flags(AsanTest ${ASAN_UNITTEST_INSTRUMENTED_CFLAGS})
- set_target_link_flags(AsanTest ${ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS})
+ set_target_link_flags(AsanTest ${ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS})
target_link_libraries(AsanTest ${ASAN_UNITTEST_INSTRUMENTED_LIBS})
# Setup correct output directory and link flags.
Modified: vendor/compiler-rt/dist/lib/builtins/arm/adddf3vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/adddf3vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/adddf3vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -18,10 +18,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__adddf3vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vadd.f64 d0, d0, d1
+#else
vmov d6, r0, r1 // move first param from r0/r1 pair into d6
vmov d7, r2, r3 // move second param from r2/r3 pair into d7
vadd.f64 d6, d6, d7
vmov r0, r1, d6 // move result back to r0/r1 pair
+#endif
bx lr
END_COMPILERRT_FUNCTION(__adddf3vfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/addsf3vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/addsf3vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/addsf3vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -18,10 +18,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__addsf3vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vadd.f32 s0, s0, s1
+#else
vmov s14, r0 // move first param from r0 into float register
vmov s15, r1 // move second param from r1 into float register
vadd.f32 s14, s14, s15
vmov r0, s14 // move result back to r0
+#endif
bx lr
END_COMPILERRT_FUNCTION(__addsf3vfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -43,8 +43,14 @@
.thumb
#endif
-.p2align 2
+@ int __eqsf2(float a, float b)
+
+ .p2align 2
DEFINE_COMPILERRT_FUNCTION(__eqsf2)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmov r0, s0
+ vmov r1, s1
+#endif
// Make copies of a and b with the sign bit shifted off the top. These will
// be used to detect zeros and NaNs.
#if __ARM_ARCH_ISA_THUMB == 1
@@ -166,16 +172,23 @@ LOCAL_LABEL(CHECK_NAN):
JMP(lr)
#endif
END_COMPILERRT_FUNCTION(__eqsf2)
+
DEFINE_COMPILERRT_FUNCTION_ALIAS(__lesf2, __eqsf2)
DEFINE_COMPILERRT_FUNCTION_ALIAS(__ltsf2, __eqsf2)
DEFINE_COMPILERRT_FUNCTION_ALIAS(__nesf2, __eqsf2)
-.p2align 2
+@ int __gtsf2(float a, float b)
+
+ .p2align 2
DEFINE_COMPILERRT_FUNCTION(__gtsf2)
// Identical to the preceding except in that we return -1 for NaN values.
// Given that the two paths share so much code, one might be tempted to
// unify them; however, the extra code needed to do so makes the code size
// to performance tradeoff very hard to justify for such small functions.
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmov r0, s0
+ vmov r1, s1
+#endif
#if __ARM_ARCH_ISA_THUMB == 1
push {r6, lr}
lsls r2, r0, #1
@@ -215,6 +228,8 @@ LOCAL_LABEL(CHECK_NAN_2):
6:
pop {r6, pc}
#else
+ mov r2, r0, lsl #1
+ mov r3, r1, lsl #1
orrs r12, r2, r3, lsr #1
it ne
eorsne r12, r0, r1
@@ -233,10 +248,17 @@ LOCAL_LABEL(CHECK_NAN_2):
JMP(lr)
#endif
END_COMPILERRT_FUNCTION(__gtsf2)
+
DEFINE_COMPILERRT_FUNCTION_ALIAS(__gesf2, __gtsf2)
-.p2align 2
+@ int __unordsf2(float a, float b)
+
+ .p2align 2
DEFINE_COMPILERRT_FUNCTION(__unordsf2)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmov r0, s0
+ vmov r1, s1
+#endif
// Return 1 for NaN values, 0 otherwise.
lsls r2, r0, #1
lsls r3, r1, #1
@@ -260,7 +282,15 @@ DEFINE_COMPILERRT_FUNCTION(__unordsf2)
JMP(lr)
END_COMPILERRT_FUNCTION(__unordsf2)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+DEFINE_COMPILERRT_FUNCTION(__aeabi_fcmpum):
+ vmov s0, r0
+ vmov s1, r1
+ b SYMBOL_NAME(__unordsf2)
+END_COMPILERRT_FUNCTION(__aeabi_fcmpum)
+#else
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_fcmpun, __unordsf2)
+#endif
NO_EXEC_STACK_DIRECTIVE
Modified: vendor/compiler-rt/dist/lib/builtins/arm/divdf3vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/divdf3vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/divdf3vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -18,10 +18,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__divdf3vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vdiv.f64 d0, d0, d1
+#else
vmov d6, r0, r1 // move first param from r0/r1 pair into d6
vmov d7, r2, r3 // move second param from r2/r3 pair into d7
- vdiv.f64 d5, d6, d7
+ vdiv.f64 d5, d6, d7
vmov r0, r1, d5 // move result back to r0/r1 pair
+#endif
bx lr
END_COMPILERRT_FUNCTION(__divdf3vfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/divsf3vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/divsf3vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/divsf3vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -18,10 +18,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__divsf3vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vdiv.f32 s0, s0, s1
+#else
vmov s14, r0 // move first param from r0 into float register
vmov s15, r1 // move second param from r1 into float register
vdiv.f32 s13, s14, s15
vmov r0, s13 // move result back to r0
+#endif
bx lr
END_COMPILERRT_FUNCTION(__divsf3vfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/eqdf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/eqdf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/eqdf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__eqdf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f64 d0, d1
+#else
vmov d6, r0, r1 // load r0/r1 pair in double register
vmov d7, r2, r3 // load r2/r3 pair in double register
vcmp.f64 d6, d7
+#endif
vmrs apsr_nzcv, fpscr
moveq r0, #1 // set result register to 1 if equal
movne r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/eqsf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/eqsf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/eqsf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__eqsf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f32 s0, s1
+#else
vmov s14, r0 // move from GPR 0 to float register
vmov s15, r1 // move from GPR 1 to float register
vcmp.f32 s14, s15
+#endif
vmrs apsr_nzcv, fpscr
moveq r0, #1 // set result register to 1 if equal
movne r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/extendsfdf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/extendsfdf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/extendsfdf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__extendsfdf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcvt.f64.f32 d0, s0
+#else
vmov s15, r0 // load float register from R0
vcvt.f64.f32 d7, s15 // convert single to double
vmov r0, r1, d7 // return result in r0/r1 pair
+#endif
bx lr
END_COMPILERRT_FUNCTION(__extendsfdf2vfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/fixdfsivfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/fixdfsivfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/fixdfsivfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__fixdfsivfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcvt.s32.f64 s0, d0
+ vmov r0, s0
+#else
vmov d7, r0, r1 // load double register from R0/R1
vcvt.s32.f64 s15, d7 // convert double to 32-bit int into s15
vmov r0, s15 // move s15 to result register
+#endif
bx lr
END_COMPILERRT_FUNCTION(__fixdfsivfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/fixsfsivfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/fixsfsivfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/fixsfsivfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__fixsfsivfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcvt.s32.f32 s0, s0
+ vmov r0, s0
+#else
vmov s15, r0 // load float register from R0
vcvt.s32.f32 s15, s15 // convert single to 32-bit int into s15
vmov r0, s15 // move s15 to result register
+#endif
bx lr
END_COMPILERRT_FUNCTION(__fixsfsivfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/fixunsdfsivfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/fixunsdfsivfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/fixunsdfsivfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -20,9 +20,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__fixunsdfsivfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcvt.u32.f64 s0, d0
+ vmov r0, s0
+#else
vmov d7, r0, r1 // load double register from R0/R1
vcvt.u32.f64 s15, d7 // convert double to 32-bit int into s15
vmov r0, s15 // move s15 to result register
+#endif
bx lr
END_COMPILERRT_FUNCTION(__fixunsdfsivfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/fixunssfsivfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/fixunssfsivfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/fixunssfsivfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -20,9 +20,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__fixunssfsivfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcvt.u32.f32 s0, s0
+ vmov r0, s0
+#else
vmov s15, r0 // load float register from R0
vcvt.u32.f32 s15, s15 // convert single to 32-bit unsigned into s15
vmov r0, s15 // move s15 to result register
+#endif
bx lr
END_COMPILERRT_FUNCTION(__fixunssfsivfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/floatsidfvfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/floatsidfvfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/floatsidfvfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__floatsidfvfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmov s0, r0
+ vcvt.f64.s32 d0, s0
+#else
vmov s15, r0 // move int to float register s15
vcvt.f64.s32 d7, s15 // convert 32-bit int in s15 to double in d7
vmov r0, r1, d7 // move d7 to result register pair r0/r1
+#endif
bx lr
END_COMPILERRT_FUNCTION(__floatsidfvfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/floatsisfvfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/floatsisfvfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/floatsisfvfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__floatsisfvfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmov s0, r0
+ vcvt.f32.s32 s0, s0
+#else
vmov s15, r0 // move int to float register s15
vcvt.f32.s32 s15, s15 // convert 32-bit int in s15 to float in s15
vmov r0, s15 // move s15 to result register
+#endif
bx lr
END_COMPILERRT_FUNCTION(__floatsisfvfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/floatunssidfvfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/floatunssidfvfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/floatunssidfvfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__floatunssidfvfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmov s0, r0
+ vcvt.f64.u32 d0, s0
+#else
vmov s15, r0 // move int to float register s15
vcvt.f64.u32 d7, s15 // convert 32-bit int in s15 to double in d7
vmov r0, r1, d7 // move d7 to result register pair r0/r1
+#endif
bx lr
END_COMPILERRT_FUNCTION(__floatunssidfvfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/floatunssisfvfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/floatunssisfvfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/floatunssisfvfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__floatunssisfvfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmov s0, r0
+ vcvt.f32.u32 s0, s0
+#else
vmov s15, r0 // move int to float register s15
vcvt.f32.u32 s15, s15 // convert 32-bit int in s15 to float in s15
vmov r0, s15 // move s15 to result register
+#endif
bx lr
END_COMPILERRT_FUNCTION(__floatunssisfvfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/gedf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/gedf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/gedf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__gedf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f64 d0, d1
+#else
vmov d6, r0, r1 // load r0/r1 pair in double register
vmov d7, r2, r3 // load r2/r3 pair in double register
vcmp.f64 d6, d7
+#endif
vmrs apsr_nzcv, fpscr
movge r0, #1 // set result register to 1 if greater than or equal
movlt r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/gesf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/gesf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/gesf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__gesf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f32 s0, s1
+#else
vmov s14, r0 // move from GPR 0 to float register
vmov s15, r1 // move from GPR 1 to float register
vcmp.f32 s14, s15
+#endif
vmrs apsr_nzcv, fpscr
movge r0, #1 // set result register to 1 if greater than or equal
movlt r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/gtdf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/gtdf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/gtdf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__gtdf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f64 d0, d1
+#else
vmov d6, r0, r1 // load r0/r1 pair in double register
vmov d7, r2, r3 // load r2/r3 pair in double register
vcmp.f64 d6, d7
+#endif
vmrs apsr_nzcv, fpscr
movgt r0, #1 // set result register to 1 if equal
movle r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/gtsf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/gtsf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/gtsf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__gtsf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f32 s0, s1
+#else
vmov s14, r0 // move from GPR 0 to float register
vmov s15, r1 // move from GPR 1 to float register
vcmp.f32 s14, s15
+#endif
vmrs apsr_nzcv, fpscr
movgt r0, #1 // set result register to 1 if equal
movle r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/ledf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/ledf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/ledf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__ledf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f64 d0, d1
+#else
vmov d6, r0, r1 // load r0/r1 pair in double register
vmov d7, r2, r3 // load r2/r3 pair in double register
vcmp.f64 d6, d7
+#endif
vmrs apsr_nzcv, fpscr
movls r0, #1 // set result register to 1 if equal
movhi r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/lesf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/lesf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/lesf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__lesf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f32 s0, s1
+#else
vmov s14, r0 // move from GPR 0 to float register
vmov s15, r1 // move from GPR 1 to float register
vcmp.f32 s14, s15
+#endif
vmrs apsr_nzcv, fpscr
movls r0, #1 // set result register to 1 if equal
movhi r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/ltdf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/ltdf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/ltdf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__ltdf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f64 d0, d1
+#else
vmov d6, r0, r1 // load r0/r1 pair in double register
vmov d7, r2, r3 // load r2/r3 pair in double register
vcmp.f64 d6, d7
+#endif
vmrs apsr_nzcv, fpscr
movmi r0, #1 // set result register to 1 if equal
movpl r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/ltsf2vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/ltsf2vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/ltsf2vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -19,9 +19,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__ltsf2vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vcmp.f32 s0, s1
+#else
vmov s14, r0 // move from GPR 0 to float register
vmov s15, r1 // move from GPR 1 to float register
vcmp.f32 s14, s15
+#endif
vmrs apsr_nzcv, fpscr
movmi r0, #1 // set result register to 1 if equal
movpl r0, #0
Modified: vendor/compiler-rt/dist/lib/builtins/arm/muldf3vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/muldf3vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/muldf3vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -18,10 +18,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__muldf3vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmul.f64 d0, d0, d1
+#else
vmov d6, r0, r1 // move first param from r0/r1 pair into d6
vmov d7, r2, r3 // move second param from r2/r3 pair into d7
- vmul.f64 d6, d6, d7
+ vmul.f64 d6, d6, d7
vmov r0, r1, d6 // move result back to r0/r1 pair
+#endif
bx lr
END_COMPILERRT_FUNCTION(__muldf3vfp)
Modified: vendor/compiler-rt/dist/lib/builtins/arm/mulsf3vfp.S
==============================================================================
--- vendor/compiler-rt/dist/lib/builtins/arm/mulsf3vfp.S Sat Jan 14 15:38:39 2017 (r312176)
+++ vendor/compiler-rt/dist/lib/builtins/arm/mulsf3vfp.S Sat Jan 14 15:38:48 2017 (r312177)
@@ -18,9 +18,13 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__mulsf3vfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmul.f32 s0, s0, s1
+#else
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-vendor
mailing list