* commit 'e953f3cf985e810071d707bcc296b20ec6e2e8dd': libm: arm: add arm specific sqrt and sqrtf
This commit is contained in:
		@@ -252,8 +252,6 @@ LOCAL_SRC_FILES += \
 | 
				
			|||||||
# -----------------------------------------------------------------------------
 | 
					# -----------------------------------------------------------------------------
 | 
				
			||||||
LOCAL_SRC_FILES_arm += \
 | 
					LOCAL_SRC_FILES_arm += \
 | 
				
			||||||
    arm/fenv.c \
 | 
					    arm/fenv.c \
 | 
				
			||||||
    upstream-freebsd/lib/msun/src/e_sqrt.c \
 | 
					 | 
				
			||||||
    upstream-freebsd/lib/msun/src/e_sqrtf.c \
 | 
					 | 
				
			||||||
    upstream-freebsd/lib/msun/src/s_ceil.c \
 | 
					    upstream-freebsd/lib/msun/src/s_ceil.c \
 | 
				
			||||||
    upstream-freebsd/lib/msun/src/s_ceilf.c \
 | 
					    upstream-freebsd/lib/msun/src/s_ceilf.c \
 | 
				
			||||||
    upstream-freebsd/lib/msun/src/s_fma.c \
 | 
					    upstream-freebsd/lib/msun/src/s_fma.c \
 | 
				
			||||||
@@ -277,9 +275,17 @@ endif
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Use the C version on armv7-a since it doesn't support neon instructions.
 | 
					# Use the C version on armv7-a since it doesn't support neon instructions.
 | 
				
			||||||
ifeq ($(arch_variant),armv7-a)
 | 
					ifeq ($(arch_variant),armv7-a)
 | 
				
			||||||
LOCAL_SRC_FILES_arm += upstream-freebsd/lib/msun/src/s_floor.c
 | 
					LOCAL_SRC_FILES_arm += \
 | 
				
			||||||
 | 
					    upstream-freebsd/lib/msun/src/e_sqrt.c \
 | 
				
			||||||
 | 
					    upstream-freebsd/lib/msun/src/e_sqrtf.c \
 | 
				
			||||||
 | 
					    upstream-freebsd/lib/msun/src/s_floor.c \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
LOCAL_SRC_FILES_arm += arm/s_floor.S
 | 
					LOCAL_SRC_FILES_arm += \
 | 
				
			||||||
 | 
					    arm/e_sqrt.S \
 | 
				
			||||||
 | 
					    arm/e_sqrtf.S \
 | 
				
			||||||
 | 
					    arm/s_floor.S \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# -----------------------------------------------------------------------------
 | 
					# -----------------------------------------------------------------------------
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										45
									
								
								libm/arm/e_sqrt.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								libm/arm/e_sqrt.S
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2013-2014, NVIDIA Corporation.  All rights reserved.
 | 
				
			||||||
 | 
					 * Johnny Qiu <joqiu@nvidia.com>
 | 
				
			||||||
 | 
					 * Shu Zhang <chazhang@nvidia.com>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions are
 | 
				
			||||||
 | 
					 * met:
 | 
				
			||||||
 | 
					 *     * Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *       notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 *     * Redistributions in binary form must reproduce the above
 | 
				
			||||||
 | 
					 *       copyright notice, this list of conditions and the following
 | 
				
			||||||
 | 
					 *       disclaimer in the documentation and/or other materials provided
 | 
				
			||||||
 | 
					 *       with the distribution.
 | 
				
			||||||
 | 
					 *     * Neither the name of The Linux Foundation nor the names of its
 | 
				
			||||||
 | 
					 *       contributors may be used to endorse or promote products derived
 | 
				
			||||||
 | 
					 *       from this software without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
 | 
				
			||||||
 | 
					 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 | 
				
			||||||
 | 
					 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 | 
				
			||||||
 | 
					 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 | 
				
			||||||
 | 
					 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 | 
				
			||||||
 | 
					 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 | 
				
			||||||
 | 
					 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 | 
				
			||||||
 | 
					 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <float.h>
 | 
				
			||||||
 | 
					#include <private/bionic_asm.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENTRY(sqrt)
 | 
				
			||||||
 | 
					    vmov.f64    d0, r0, r1
 | 
				
			||||||
 | 
					    vsqrt.f64   d0, d0
 | 
				
			||||||
 | 
					    vmov.f64    r0, r1, d0
 | 
				
			||||||
 | 
					    bx          lr
 | 
				
			||||||
 | 
					END(sqrt)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if LDBL_MANT_DIG == 53
 | 
				
			||||||
 | 
					    .weak       sqrtl
 | 
				
			||||||
 | 
					    .equ        sqrtl, sqrt
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										39
									
								
								libm/arm/e_sqrtf.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								libm/arm/e_sqrtf.S
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2013-2014, NVIDIA Corporation.  All rights reserved.
 | 
				
			||||||
 | 
					 * Johhnny Qiu <joqiu@nvidia.com>
 | 
				
			||||||
 | 
					 * Shu Zhang <chazhang@nvidia.com>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions are
 | 
				
			||||||
 | 
					 * met:
 | 
				
			||||||
 | 
					 *     * Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *       notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 *     * Redistributions in binary form must reproduce the above
 | 
				
			||||||
 | 
					 *       copyright notice, this list of conditions and the following
 | 
				
			||||||
 | 
					 *       disclaimer in the documentation and/or other materials provided
 | 
				
			||||||
 | 
					 *       with the distribution.
 | 
				
			||||||
 | 
					 *     * Neither the name of The Linux Foundation nor the names of its
 | 
				
			||||||
 | 
					 *       contributors may be used to endorse or promote products derived
 | 
				
			||||||
 | 
					 *       from this software without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 | 
				
			||||||
 | 
					 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
 | 
				
			||||||
 | 
					 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 | 
				
			||||||
 | 
					 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 | 
				
			||||||
 | 
					 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 | 
				
			||||||
 | 
					 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 | 
				
			||||||
 | 
					 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 | 
				
			||||||
 | 
					 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 | 
				
			||||||
 | 
					 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <private/bionic_asm.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENTRY(sqrtf)
 | 
				
			||||||
 | 
					    vmov.f32    s0, r0
 | 
				
			||||||
 | 
					    vsqrt.f32   s0, s0
 | 
				
			||||||
 | 
					    vmov.f32    r0, s0
 | 
				
			||||||
 | 
					    bx          lr
 | 
				
			||||||
 | 
					END(sqrtf)
 | 
				
			||||||
		Reference in New Issue
	
	Block a user