Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 1 | # 64-bit arm. |
Ying Wang | f25d677 | 2014-01-23 15:17:50 -0800 | [diff] [blame] | 2 | |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 3 | # |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 4 | # Generic arm64 optimizations, may be overriden by CPU variants. |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 5 | # |
| 6 | |
| 7 | libc_bionic_src_files_arm64 += \ |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 8 | arch-arm64/generic/bionic/memchr.S \ |
| 9 | arch-arm64/generic/bionic/memcmp.S \ |
| 10 | arch-arm64/generic/bionic/memcpy.S \ |
| 11 | arch-arm64/generic/bionic/memmove.S \ |
| 12 | arch-arm64/generic/bionic/memset.S \ |
| 13 | arch-arm64/generic/bionic/stpcpy.S \ |
| 14 | arch-arm64/generic/bionic/strchr.S \ |
| 15 | arch-arm64/generic/bionic/strcmp.S \ |
| 16 | arch-arm64/generic/bionic/strcpy.S \ |
| 17 | arch-arm64/generic/bionic/strlen.S \ |
| 18 | arch-arm64/generic/bionic/strncmp.S \ |
| 19 | arch-arm64/generic/bionic/strnlen.S \ |
| 20 | arch-arm64/generic/bionic/wmemmove.S \ |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 21 | |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 22 | libc_bionic_src_files_exclude_arm64 += \ |
| 23 | bionic/__memcpy_chk.cpp \ |
| 24 | bionic/strchr.cpp \ |
| 25 | bionic/strnlen.c \ |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 26 | |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 27 | libc_freebsd_src_files_exclude_arm64 += \ |
| 28 | upstream-freebsd/lib/libc/string/wmemmove.c \ |
| 29 | |
| 30 | libc_openbsd_src_files_exclude_arm64 += \ |
| 31 | upstream-openbsd/lib/libc/string/memchr.c \ |
| 32 | upstream-openbsd/lib/libc/string/memmove.c \ |
| 33 | upstream-openbsd/lib/libc/string/stpcpy.c \ |
| 34 | upstream-openbsd/lib/libc/string/strcpy.c \ |
| 35 | upstream-openbsd/lib/libc/string/strncmp.c \ |
Ying Wang | f25d677 | 2014-01-23 15:17:50 -0800 | [diff] [blame] | 36 | |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 37 | # |
| 38 | # Inherently architecture-specific code. |
| 39 | # |
Ying Wang | f25d677 | 2014-01-23 15:17:50 -0800 | [diff] [blame] | 40 | |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 41 | libc_bionic_src_files_arm64 += \ |
Colin Cross | d1973ca | 2014-01-21 19:50:58 -0800 | [diff] [blame] | 42 | arch-arm64/bionic/__bionic_clone.S \ |
Colin Cross | d1973ca | 2014-01-21 19:50:58 -0800 | [diff] [blame] | 43 | arch-arm64/bionic/_exit_with_stack_teardown.S \ |
Colin Cross | d1973ca | 2014-01-21 19:50:58 -0800 | [diff] [blame] | 44 | arch-arm64/bionic/setjmp.S \ |
| 45 | arch-arm64/bionic/__set_tls.c \ |
Colin Cross | d1973ca | 2014-01-21 19:50:58 -0800 | [diff] [blame] | 46 | arch-arm64/bionic/syscall.S \ |
Dan Albert | 6a91887 | 2014-08-05 20:53:31 +0000 | [diff] [blame] | 47 | arch-arm64/bionic/vfork.S \ |
Ying Wang | f25d677 | 2014-01-23 15:17:50 -0800 | [diff] [blame] | 48 | |
Ying Wang | f25d677 | 2014-01-23 15:17:50 -0800 | [diff] [blame] | 49 | |
Ying Wang | f25d677 | 2014-01-23 15:17:50 -0800 | [diff] [blame] | 50 | libc_crt_target_cflags_arm64 := \ |
| 51 | -I$(LOCAL_PATH)/arch-arm64/include |
| 52 | |
| 53 | libc_crt_target_crtbegin_file_arm64 := \ |
| 54 | $(LOCAL_PATH)/arch-arm64/bionic/crtbegin.c |
| 55 | |
| 56 | libc_crt_target_crtbegin_so_file_arm64 := \ |
| 57 | $(LOCAL_PATH)/arch-common/bionic/crtbegin_so.c |
Bernhard Rosenkraenzer | 7e4fa56 | 2014-03-05 11:40:57 +0100 | [diff] [blame] | 58 | |
Christopher Ferris | 2146d14 | 2014-05-01 18:10:51 -0700 | [diff] [blame] | 59 | ## CPU variant specific source files |
| 60 | ifeq ($(strip $(TARGET_CPU_VARIANT)),) |
| 61 | $(warning TARGET_ARCH is arm64, but TARGET_CPU_VARIANT is not defined) |
| 62 | endif |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 63 | ifneq ($(TARGET_CPU_VARIANT),generic) |
Christopher Ferris | 2146d14 | 2014-05-01 18:10:51 -0700 | [diff] [blame] | 64 | cpu_variant_mk := $(LOCAL_PATH)/arch-arm64/$(TARGET_CPU_VARIANT)/$(TARGET_CPU_VARIANT).mk |
| 65 | ifeq ($(wildcard $(cpu_variant_mk)),) |
Christopher Ferris | 2169e17 | 2014-09-23 18:31:45 -0700 | [diff] [blame] | 66 | $(error "TARGET_CPU_VARIANT not set or set to an unknown value. Possible values are generic, denver64. Use generic for devices that do not have a CPU similar to any of the supported cpu variants.") |
Christopher Ferris | 2146d14 | 2014-05-01 18:10:51 -0700 | [diff] [blame] | 67 | endif |
| 68 | include $(cpu_variant_mk) |
Colin Cross | a6b6ed5 | 2015-02-04 17:38:27 -0800 | [diff] [blame] | 69 | libc_common_additional_dependencies += $(cpu_variant_mk) |
Christopher Ferris | 2146d14 | 2014-05-01 18:10:51 -0700 | [diff] [blame] | 70 | |
| 71 | cpu_variant_mk := |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 72 | endif |