Basic suport for AArch64 (64bit ARM) architecture. This is enough to get things
to build. Hardware is not yet available for testing, so a more thorough port
will be needed once hardware does become available.

Signed-off-by: Mark Salter <[email protected]>
---
 configure.ac                 |  3 +++
 fb/fb.h                      |  2 +-
 hw/xfree86/common/compiler.h |  2 +-
 include/servermd.h           | 15 ++++++++++++++-
 4 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index b31559d..13d279f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -317,6 +317,9 @@ DEFAULT_INT10="x86emu"
 dnl Override defaults as needed for specific platforms:
 
 case $host_cpu in
+  aarch64*)
+       GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
+       ;;
   alpha*)
        ALPHA_VIDEO=yes
        case $host_os in
diff --git a/fb/fb.h b/fb/fb.h
index b869d12..af509a7 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -114,7 +114,7 @@ typedef unsigned __int64 FbBits;
       defined(__sparc64__) || defined(_LP64) || \
       defined(__s390x__) || \
       defined(amd64) || defined (__amd64__) || \
-      defined (__powerpc64__)
+      defined (__powerpc64__) || defined (__aarch64__)
 typedef unsigned long FbBits;
 #else
 typedef unsigned long long FbBits;
diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index c980bee..3a57186 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -1351,7 +1351,7 @@ stl_u(unsigned long val, unsigned int *p)
 #else                           /* ix86 */
 
 #if !defined(__SUNPRO_C)
-#if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && 
!defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && 
!defined(__m32r__)
+#if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && 
!defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && 
!defined(__m32r__) && !defined(__aarch64__)
 #ifdef GCCUSESGAS
 
 /*
diff --git a/include/servermd.h b/include/servermd.h
index d6a9a3a..b65d410 100644
--- a/include/servermd.h
+++ b/include/servermd.h
@@ -245,10 +245,16 @@ SOFTWARE.
 /* ???? */
 #endif                          /* AMD64 */
 
+#if defined(__aarch64__)
+#define IMAGE_BYTE_ORDER       LSBFirst
+#define BITMAP_BIT_ORDER       LSBFirst
+#define GLYPHPADBYTES         4
+#endif                          /* AArch64 */
+
 #if    defined(SVR4) && (defined(__i386__) || defined(__i386) ) ||     \
        defined(__alpha__) || defined(__alpha) || \
        defined(__i386__) || \
-       defined(__s390x__) || defined(__s390__)
+       defined(__s390x__) || defined(__s390__) || defined(__aarch64__)
 
 #ifndef IMAGE_BYTE_ORDER
 #define IMAGE_BYTE_ORDER       LSBFirst
@@ -286,6 +292,13 @@ SOFTWARE.
 #define GLYPHPADBYTES          4
 #endif                          /* linux/s390 */
 
+/* linux on AArch64 */
+#if defined(linux) && defined(__aarch64__)
+#define IMAGE_BYTE_ORDER       LSBFirst
+#define BITMAP_BIT_ORDER       LSBFirst
+#define GLYPHPADBYTES          4
+#endif
+
 /* size of buffer to use with GetImage, measured in bytes. There's obviously
  * a trade-off between the amount of heap used and the number of times the
  * ddx routine has to be called.
-- 
1.8.1.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to