]> granicus.if.org Git - gc/commitdiff
2013-03-16 Yvan Roux <yvan.roux@linaro.org>
authorclyon <clyon@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Apr 2013 12:06:04 +0000 (12:06 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Sun, 15 Sep 2013 09:13:12 +0000 (13:13 +0400)
        * include/private/gcconfig.h (AARCH64): New macro (defined only if
__aarch64__).
* include/private/gcconfig.h (mach_type_known):
Update comment adding ARM AArch64 target.
* include/private/gcconfig.h (NOSYS, mach_type_known,CPP_WORDSZ,
MACH_TYPE, ALIGNMENT, HBLKSIZE, OS_TYPE, LINUX_STACKBOTTOM,
USE_GENERIC_PUSH_REGS, DYNAMIC_LOADING, DATASTART, DATAEND,
STACKBOTTOM): Define for AArch64.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197770 138bc75d-0d04-0410-961f-82ee72b054a4

include/private/gcconfig.h

index 9420c7caf8f4de914ba9fb53ec24af3cd43dd475..475bb2c191adae72ac0e6babd120a7873882fa58 100644 (file)
 # endif
 
 /* Determine the machine type: */
+#if defined(__aarch64__)
+#    define AARCH64
+#    if !defined(LINUX)
+#      define NOSYS
+#      define mach_type_known
+#    endif
+# endif
 # if defined(__arm__) || defined(__thumb__)
 #    define ARM32
 #    if !defined(LINUX) && !defined(NETBSD)
 #    define IA64
 #    define mach_type_known
 # endif
+# if defined(LINUX) && defined(__aarch64__)
+#    define AARCH64
+#    define mach_type_known
+# endif
 # if defined(LINUX) && defined(__arm__)
 #    define ARM32
 #    define mach_type_known
                    /*                  running Amdahl UTS4             */
                     /*             S390       ==> 390-like machine      */
                    /*                  running LINUX                   */
+                    /*             AARCH64    ==> ARM AArch64           */
                    /*             ARM32      ==> Intel StrongARM       */
                    /*             IA64       ==> Intel IPF             */
                    /*                            (e.g. Itanium)        */
 #   define HEURISTIC1
 # endif
 
+# ifdef AARCH64
+#   define CPP_WORDSZ 64
+#   define MACH_TYPE "AARCH64"
+#   define ALIGNMENT 8
+#   ifndef HBLKSIZE
+#     define HBLKSIZE 4096
+#   endif
+#   ifdef LINUX
+#     define OS_TYPE "LINUX"
+#     define LINUX_STACKBOTTOM
+#     define USE_GENERIC_PUSH_REGS
+#     define DYNAMIC_LOADING
+      extern int __data_start[];
+#     define DATASTART ((ptr_t)__data_start)
+      extern char _end[];
+#     define DATAEND ((ptr_t)(&_end))
+#   endif
+#   ifdef NOSYS
+      /* __data_start is usually defined in the target linker script.   */
+      extern int __data_start[];
+#     define DATASTART ((ptr_t)__data_start)
+      extern void *__stack_base__;
+#     define STACKBOTTOM ((ptr_t)__stack_base__)
+#   endif
+# endif
+
 # ifdef ARM32
 #   define CPP_WORDSZ 32
 #   define MACH_TYPE "ARM32"