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 | # |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 6 | libc_bionic_src_files_arm64 += \ |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 7 | arch-arm64/generic/bionic/memchr.S \ |
| 8 | arch-arm64/generic/bionic/memcmp.S \ |
| 9 | arch-arm64/generic/bionic/memcpy.S \ |
| 10 | arch-arm64/generic/bionic/memmove.S \ |
| 11 | arch-arm64/generic/bionic/memset.S \ |
| 12 | arch-arm64/generic/bionic/stpcpy.S \ |
| 13 | arch-arm64/generic/bionic/strchr.S \ |
| 14 | arch-arm64/generic/bionic/strcmp.S \ |
| 15 | arch-arm64/generic/bionic/strcpy.S \ |
| 16 | arch-arm64/generic/bionic/strlen.S \ |
| 17 | arch-arm64/generic/bionic/strncmp.S \ |
| 18 | arch-arm64/generic/bionic/strnlen.S \ |
Richard Earnshaw | 1e90552 | 2014-12-08 15:21:00 +0000 | [diff] [blame] | 19 | arch-arm64/generic/bionic/strrchr.S \ |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 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 \ |
Richard Earnshaw | 1e90552 | 2014-12-08 15:21:00 +0000 | [diff] [blame] | 26 | bionic/strrchr.cpp \ |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 27 | |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 28 | libc_freebsd_src_files_exclude_arm64 += \ |
| 29 | upstream-freebsd/lib/libc/string/wmemmove.c \ |
| 30 | |
| 31 | libc_openbsd_src_files_exclude_arm64 += \ |
| 32 | upstream-openbsd/lib/libc/string/memchr.c \ |
| 33 | upstream-openbsd/lib/libc/string/memmove.c \ |
| 34 | upstream-openbsd/lib/libc/string/stpcpy.c \ |
| 35 | upstream-openbsd/lib/libc/string/strcpy.c \ |
| 36 | upstream-openbsd/lib/libc/string/strncmp.c \ |
Ying Wang | f25d677 | 2014-01-23 15:17:50 -0800 | [diff] [blame] | 37 | |
Richard Earnshaw | 1e90552 | 2014-12-08 15:21:00 +0000 | [diff] [blame] | 38 | |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 39 | # |
| 40 | # Inherently architecture-specific code. |
| 41 | # |
Ying Wang | f25d677 | 2014-01-23 15:17:50 -0800 | [diff] [blame] | 42 | |
Elliott Hughes | 7c02d94 | 2014-09-16 19:06:31 -0700 | [diff] [blame] | 43 | libc_bionic_src_files_arm64 += \ |
Colin Cross | d1973ca | 2014-01-21 19:50:58 -0800 | [diff] [blame] | 44 | arch-arm64/bionic/__bionic_clone.S \ |
Colin Cross | d1973ca | 2014-01-21 19:50:58 -0800 | [diff] [blame] | 45 | arch-arm64/bionic/_exit_with_stack_teardown.S \ |
Colin Cross | d1973ca | 2014-01-21 19:50:58 -0800 | [diff] [blame] | 46 | arch-arm64/bionic/setjmp.S \ |
Colin Cross | d1973ca | 2014-01-21 19:50:58 -0800 | [diff] [blame] | 47 | arch-arm64/bionic/syscall.S \ |
Dan Albert | 6a91887 | 2014-08-05 20:53:31 +0000 | [diff] [blame] | 48 | arch-arm64/bionic/vfork.S \ |
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 | |
Ying Wang | f25d677 | 2014-01-23 15:17:50 -0800 | [diff] [blame] | 51 | libc_crt_target_cflags_arm64 := \ |
| 52 | -I$(LOCAL_PATH)/arch-arm64/include |
| 53 | |
| 54 | libc_crt_target_crtbegin_file_arm64 := \ |
| 55 | $(LOCAL_PATH)/arch-arm64/bionic/crtbegin.c |
| 56 | |
| 57 | libc_crt_target_crtbegin_so_file_arm64 := \ |
| 58 | $(LOCAL_PATH)/arch-common/bionic/crtbegin_so.c |
Bernhard Rosenkraenzer | 7e4fa56 | 2014-03-05 11:40:57 +0100 | [diff] [blame] | 59 | |
Christopher Ferris | 2146d14 | 2014-05-01 18:10:51 -0700 | [diff] [blame] | 60 | ## CPU variant specific source files |
| 61 | ifeq ($(strip $(TARGET_CPU_VARIANT)),) |
| 62 | $(warning TARGET_ARCH is arm64, but TARGET_CPU_VARIANT is not defined) |
| 63 | endif |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 64 | ifneq ($(TARGET_CPU_VARIANT),generic) |
Christopher Ferris | 2146d14 | 2014-05-01 18:10:51 -0700 | [diff] [blame] | 65 | cpu_variant_mk := $(LOCAL_PATH)/arch-arm64/$(TARGET_CPU_VARIANT)/$(TARGET_CPU_VARIANT).mk |
| 66 | ifeq ($(wildcard $(cpu_variant_mk)),) |
Christopher Ferris | 2169e17 | 2014-09-23 18:31:45 -0700 | [diff] [blame] | 67 | $(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] | 68 | endif |
| 69 | include $(cpu_variant_mk) |
Colin Cross | a6b6ed5 | 2015-02-04 17:38:27 -0800 | [diff] [blame] | 70 | libc_common_additional_dependencies += $(cpu_variant_mk) |
Christopher Ferris | 2146d14 | 2014-05-01 18:10:51 -0700 | [diff] [blame] | 71 | |
| 72 | cpu_variant_mk := |
Dan Willemsen | 268a673 | 2015-10-15 14:49:45 -0700 | [diff] [blame] | 73 | endif |