summaryrefslogtreecommitdiff
path: root/boehm-gc
diff options
context:
space:
mode:
authorclyon <clyon@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-11 12:06:04 +0000
committerclyon <clyon@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-11 12:06:04 +0000
commit507e8f275ff72338dd8078e550df463be86dd7c7 (patch)
tree9f02e321f385d2668fd21b16d70b252206be17ba /boehm-gc
parent6046367ed6454dad372c86b823064ae929bbd861 (diff)
downloadgcc-507e8f275ff72338dd8078e550df463be86dd7c7.tar.gz
2013-03-16 Yvan Roux <yvan.roux@linaro.org>
* 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
Diffstat (limited to 'boehm-gc')
-rw-r--r--boehm-gc/include/private/gcconfig.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h
index 9420c7caf8f..475bb2c191a 100644
--- a/boehm-gc/include/private/gcconfig.h
+++ b/boehm-gc/include/private/gcconfig.h
@@ -60,6 +60,13 @@
# 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)
@@ -239,6 +246,10 @@
# 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
@@ -500,6 +511,7 @@
/* running Amdahl UTS4 */
/* S390 ==> 390-like machine */
/* running LINUX */
+ /* AARCH64 ==> ARM AArch64 */
/* ARM32 ==> Intel StrongARM */
/* IA64 ==> Intel IPF */
/* (e.g. Itanium) */
@@ -1833,6 +1845,32 @@
# 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"