summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Froyd <froydnj@mozilla.com>2018-08-22 13:55:21 +0200
committerNathan Froyd <froydnj@mozilla.com>2018-08-22 13:55:21 +0200
commitdb7d36f11dfc31f757362adb60a5673245ad135e (patch)
treed47ee6861126c07501f77d5eafab206efd5d669f
parent11a1106c261a49777b54d8fa47739bc96082f598 (diff)
downloadnspr-hg-db7d36f11dfc31f757362adb60a5673245ad135e.tar.gz
Bug 1480592 - add aarch64 windows support; r=kaie
-rw-r--r--configure.in4
-rw-r--r--pr/include/md/_win95.cfg49
-rw-r--r--pr/include/md/_win95.h2
3 files changed, 55 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index bd70a7e0..cbd22b42 100644
--- a/configure.in
+++ b/configure.in
@@ -2106,6 +2106,10 @@ tools are selected during the Xcode/Developer Tools installation.])
AC_DEFINE(_AMD64_)
USE_64=1
;;
+ aarch64)
+ AC_DEFINE(_ARM64_)
+ USE_64=1
+ ;;
ia64)
AC_DEFINE(_IA64_)
USE_64=1
diff --git a/pr/include/md/_win95.cfg b/pr/include/md/_win95.cfg
index 1e693cc6..7c379fce 100644
--- a/pr/include/md/_win95.cfg
+++ b/pr/include/md/_win95.cfg
@@ -214,6 +214,55 @@
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
+#elif defined(_M_ARM64) || defined(_ARM64_)
+
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+#define IS_64
+
+#define PR_BYTES_PER_BYTE 1
+#define PR_BYTES_PER_SHORT 2
+#define PR_BYTES_PER_INT 4
+#define PR_BYTES_PER_INT64 8
+#define PR_BYTES_PER_LONG 4
+#define PR_BYTES_PER_FLOAT 4
+#define PR_BYTES_PER_WORD 8
+#define PR_BYTES_PER_DWORD 8
+#define PR_BYTES_PER_DOUBLE 8
+
+#define PR_BITS_PER_BYTE 8
+#define PR_BITS_PER_SHORT 16
+#define PR_BITS_PER_INT 32
+#define PR_BITS_PER_INT64 64
+#define PR_BITS_PER_LONG 32
+#define PR_BITS_PER_FLOAT 32
+#define PR_BITS_PER_WORD 64
+#define PR_BITS_PER_DWORD 64
+#define PR_BITS_PER_DOUBLE 64
+
+#define PR_BITS_PER_BYTE_LOG2 3
+#define PR_BITS_PER_SHORT_LOG2 4
+#define PR_BITS_PER_INT_LOG2 5
+#define PR_BITS_PER_INT64_LOG2 6
+#define PR_BITS_PER_LONG_LOG2 5
+#define PR_BITS_PER_FLOAT_LOG2 5
+#define PR_BITS_PER_WORD_LOG2 6
+#define PR_BITS_PER_DWORD_LOG2 6
+#define PR_BITS_PER_DOUBLE_LOG2 6
+
+#define PR_ALIGN_OF_SHORT 2
+#define PR_ALIGN_OF_INT 4
+#define PR_ALIGN_OF_LONG 4
+#define PR_ALIGN_OF_INT64 8
+#define PR_ALIGN_OF_FLOAT 4
+#define PR_ALIGN_OF_WORD 8
+#define PR_ALIGN_OF_DWORD 8
+#define PR_ALIGN_OF_DOUBLE 8
+#define PR_ALIGN_OF_POINTER 8
+
+#define PR_BYTES_PER_WORD_LOG2 3
+#define PR_BYTES_PER_DWORD_LOG2 3
+
#else /* defined(_M_IX86) || defined(_X86_) */
#error unknown processor architecture
diff --git a/pr/include/md/_win95.h b/pr/include/md/_win95.h
index 04f811d3..24e537bb 100644
--- a/pr/include/md/_win95.h
+++ b/pr/include/md/_win95.h
@@ -26,6 +26,8 @@
#define _PR_SI_ARCHITECTURE "ia64"
#elif defined(_M_ARM) || defined(_ARM_)
#define _PR_SI_ARCHITECTURE "arm"
+#elif defined(_M_ARM64)
+#define _PR_SI_ARCHITECTURE "aarch64"
#else
#error unknown processor architecture
#endif