--- a/js/src/Makefile.in
+++ a/js/src/Makefile.in
@@ -382,7 +382,7 @@ CPPSRCS += checks.cc \
# END enclude sources for V8 dtoa
#############################################
-ifeq (,$(filter-out powerpc powerpc64 sparc sparc64 s390 s390x,$(TARGET_CPU)))
+ifeq (,$(filter-out aarch64 powerpc powerpc64 sparc sparc64 s390 s390x,$(TARGET_CPU)))
VPATH += $(srcdir)/assembler \
$(srcdir)/assembler/wtf \
--- a/js/src/assembler/jit/ExecutableAllocator.h
+++ a/js/src/assembler/jit/ExecutableAllocator.h
@@ -391,6 +391,12 @@ public:
{
CacheRangeFlush(code, size, CACHE_SYNC_ALL);
}
+#elif WTF_CPU_AARCH64 && WTF_PLATFORM_LINUX
+ static void cacheFlush(void* code, size_t size)
+ {
+ intptr_t end = reinterpret_cast<intptr_t>(code) + size;
+ __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end));
+ }
#else
#error "The cacheFlush support is missing on this platform."
#endif
--- a/js/src/assembler/wtf/Platform.h
+++ a/js/src/assembler/wtf/Platform.h
@@ -292,6 +292,10 @@
#endif /* ARM */
+/* CPU(AArch64) - 64-bit ARM */
+#if defined(__aarch64__)
+#define WTF_CPU_AARCH64 1
+#endif
/* Operating systems - low-level dependencies */
--- a/js/src/configure.in
+++ a/js/src/configure.in
@@ -1534,6 +1534,10 @@ arm*)
CPU_ARCH=arm
;;
+aarch64)
+ CPU_ARCH=aarch64
+ ;;
+
mips|mipsel)
CPU_ARCH="mips"
;;