Blob Blame History Raw
--- 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"
     ;;