Mercurial > hg > CbC > CbC_gcc
diff gcc/config/i386/vxworks.h @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/gcc/config/i386/vxworks.h Sun Aug 21 07:07:55 2011 +0900 +++ b/gcc/config/i386/vxworks.h Fri Oct 27 22:46:09 2017 +0900 @@ -1,5 +1,5 @@ /* IA32 VxWorks target definitions for GNU compiler. - Copyright (C) 2003, 2004, 2005, 2007, 2010 Free Software Foundation, Inc. + Copyright (C) 2003-2017 Free Software Foundation, Inc. Updated by CodeSourcery, LLC. This file is part of GCC. @@ -18,11 +18,33 @@ along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (80586, VxWorks syntax)"); +#undef ASM_OUTPUT_ALIGNED_BSS +#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ + asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) + +/* VxWorks uses the same ABI as Solaris 2, so use i386/sol2.h version. */ + +#undef TARGET_SUBTARGET_DEFAULT +#define TARGET_SUBTARGET_DEFAULT \ + (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_VECT8_RETURNS) + +/* Provide our target specific DBX_REGISTER_NUMBER. VxWorks relies on + the SVR4 numbering. */ -#undef ASM_SPEC -#define ASM_SPEC "" +#undef DBX_REGISTER_NUMBER +#define DBX_REGISTER_NUMBER(n) \ + (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n]) + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE (TARGET_LP64 ? "long int" : "int") + +#undef SIZE_TYPE +#define SIZE_TYPE (TARGET_LP64 ? "long unsigned int" : "unsigned int") + +#if TARGET_64BIT_DEFAULT +#undef VXWORKS_SYSCALL_LIBS_RTP +#define VXWORKS_SYSCALL_LIBS_RTP "-lsyscall" +#endif #define TARGET_OS_CPP_BUILTINS() \ do \ @@ -47,7 +69,11 @@ builtin_define ("CPU=PENTIUM4"); \ builtin_define ("CPU_VARIANT=PENTIUM4"); \ } \ - } \ + else if (TARGET_64BIT) \ + builtin_define ("CPU=X86_64"); \ + else \ + builtin_define ("CPU=I80386"); \ + } \ while (0) #undef CPP_SPEC @@ -74,3 +100,15 @@ /* We cannot use PC-relative accesses for VxWorks PIC because there is no fixed gap between segments. */ #undef ASM_PREFERRED_EH_DATA_FORMAT + +/* Define this to be nonzero if static stack checking is supported. */ +#define STACK_CHECK_STATIC_BUILTIN 1 + +/* This platform supports the probing method of stack checking (RTP mode). + 8K is reserved in the stack to propagate exceptions in case of overflow. + On 64-bit targets, we double that size. */ +#if TARGET_64BIT_DEFAULT +#define STACK_CHECK_PROTECT 16384 +#else +#define STACK_CHECK_PROTECT 8192 +#endif