diff options
Diffstat (limited to 'contrib/gcc/config/arm/pe.h')
-rw-r--r-- | contrib/gcc/config/arm/pe.h | 86 |
1 files changed, 35 insertions, 51 deletions
diff --git a/contrib/gcc/config/arm/pe.h b/contrib/gcc/config/arm/pe.h index 38727da..e83f97b 100644 --- a/contrib/gcc/config/arm/pe.h +++ b/contrib/gcc/config/arm/pe.h @@ -1,23 +1,23 @@ /* Definitions of target machine for GNU compiler, for ARM with PE obj format. - Copyright (C) 1995, 1996, 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. Contributed by Doug Evans (dje@cygnus.com). -This file is part of GNU CC. + This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 2, or (at your + option) any later version. -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + GCC is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ /* Enable PE specific code. */ #define ARM_PE 1 @@ -65,34 +65,30 @@ Boston, MA 02111-1307, USA. */ N_("Ignore dllimport attribute for functions") }, \ { "no-nop-fun-dllimport", - TARGET_FLAG_NOP_FUN, "" }, +/* Defaulting to APCS-26 support is a legacy issue. It has been done + that way for a long time, so changing it will probably break some + people's worlds. Support for APCS-32 is now enabled as a multilib, + and at some point in the future APCS-32 may become the default. + Possibly when chips that support APCS-26 are no longer made. */ + #undef TARGET_DEFAULT -#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | TARGET_FLAG_NOP_FUN) +#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | TARGET_FLAG_NOP_FUN | ARM_FLAG_MMU_TRAPS) +#undef MULTILIB_DEFAULTS +#define MULTILIB_DEFAULTS \ + { "marm", "mlittle-endian", "msoft-float", "mapcs-26", "mno-thumb-interwork" } #undef WCHAR_TYPE #define WCHAR_TYPE "short unsigned int" #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE 16 -/* Same as arm.h except r10 is call-saved, not fixed. */ -#undef FIXED_REGISTERS -#define FIXED_REGISTERS \ -{ \ - 0,0,0,0,0,0,0,0, \ - 0,0,0,1,0,1,0,1, \ - 0,0,0,0,0,0,0,0, \ - 1,1,1 \ -} +/* r11 is fixed. */ +#undef SUBTARGET_CONDITIONAL_REGISTER_USAGE +#define SUBTARGET_CONDITIONAL_REGISTER_USAGE \ + fixed_regs [11] = 1; \ + call_used_regs [11] = 1; -/* Same as arm.h except r10 is call-saved, not fixed. */ -#undef CALL_USED_REGISTERS -#define CALL_USED_REGISTERS \ -{ \ - 1,1,1,1,0,0,0,0, \ - 0,0,0,1,1,1,1,1, \ - 1,1,1,1,0,0,0,0, \ - 1,1,1 \ -} /* Define this macro if in some cases global symbols from one translation unit may not be bound to undefined symbols in another translation unit @@ -105,20 +101,10 @@ Boston, MA 02111-1307, USA. */ #define SUPPORTS_ONE_ONLY 1 /* Switch into a generic section. */ -#undef TARGET_ASM_NAMED_SECTION +#undef TARGET_ASM_NAMED_SECTION #define TARGET_ASM_NAMED_SECTION default_pe_asm_named_section -/* This outputs a lot of .req's to define alias for various registers. - Let's try to avoid this. */ -#undef ASM_FILE_START -#define ASM_FILE_START(STREAM) \ - do \ - { \ - asm_fprintf (STREAM, "%@ Generated by gcc %s for ARM/pe\n",\ - version_string); \ - output_file_directive ((STREAM), main_input_filename); \ - } \ - while (0) +#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true /* Output a reference to a label. */ #undef ASM_OUTPUT_LABELREF @@ -160,7 +146,7 @@ Boston, MA 02111-1307, USA. */ fprintf ((STREAM), "\t.comm\t"); \ assemble_name ((STREAM), (NAME)); \ asm_fprintf ((STREAM), ", %d\t%@ %d\n", \ - (ROUNDED), (SIZE)); \ + (int)(ROUNDED), (int)(SIZE)); \ } \ } \ while (0) @@ -201,7 +187,7 @@ Boston, MA 02111-1307, USA. */ #define DRECTVE_SECTION_FUNCTION \ void \ -drectve_section () \ +drectve_section (void) \ { \ if (in_section != in_drectve) \ { \ @@ -217,11 +203,8 @@ drectve_section () \ ASM_DECLARE_OBJECT_NAME and then switch back to the original section afterwards. */ #define SWITCH_TO_SECTION_FUNCTION \ -static void switch_to_section PARAMS ((enum in_section, tree)); \ static void \ -switch_to_section (section, decl) \ - enum in_section section; \ - tree decl; \ +switch_to_section (enum in_section section, tree decl) \ { \ switch (section) \ { \ @@ -235,3 +218,4 @@ switch_to_section (section, decl) \ default: abort (); break; \ } \ } + |