]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - include/elf/arm.h
Imported binutils-2.20
[msp430-binutils.git] / include / elf / arm.h
index e701883387863a19cc6ad4e46dd5301cb07ce1e4..61328c3c8695b70af4fb9dd37cd81a9617b95b79 100644 (file)
@@ -1,5 +1,5 @@
 /* ARM ELF support for BFD.
 /* ARM ELF support for BFD.
-   Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
+   Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2009
    Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
    Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -41,9 +41,9 @@
 #define PT_ARM_EXIDX (PT_LOPROC + 1)
 
 /* Other constants defined in the ARM ELF spec. version B-01.  */
 #define PT_ARM_EXIDX (PT_LOPROC + 1)
 
 /* Other constants defined in the ARM ELF spec. version B-01.  */
-#define EF_ARM_SYMSARESORTED 0x04      /* NB conflicts with EF_INTERWORK */
-#define EF_ARM_DYNSYMSUSESEGIDX 0x08   /* NB conflicts with EF_APCS26 */
-#define EF_ARM_MAPSYMSFIRST 0x10       /* NB conflicts with EF_APCS_FLOAT */
+#define EF_ARM_SYMSARESORTED 0x04      /* NB conflicts with EF_INTERWORK */
+#define EF_ARM_DYNSYMSUSESEGIDX 0x08   /* NB conflicts with EF_APCS26 */
+#define EF_ARM_MAPSYMSFIRST 0x10       /* NB conflicts with EF_APCS_FLOAT */
 #define EF_ARM_EABIMASK      0xFF000000
 
 /* Constants defined in AAELF.  */
 #define EF_ARM_EABIMASK      0xFF000000
 
 /* Constants defined in AAELF.  */
 #define STT_ARM_16BIT      STT_HIPROC   /* A Thumb label.  */
 
 /* Additional section types.  */
 #define STT_ARM_16BIT      STT_HIPROC   /* A Thumb label.  */
 
 /* Additional section types.  */
-#define SHT_ARM_EXIDX     0x70000001   /* Section holds ARM unwind info.  */
-#define SHT_ARM_PREEMPTMAP 0x70000002  /* Section pre-emption details.  */
-#define SHT_ARM_ATTRIBUTES 0x70000003  /* Section holds attributes.  */
+#define SHT_ARM_EXIDX         0x70000001       /* Section holds ARM unwind info.  */
+#define SHT_ARM_PREEMPTMAP     0x70000002      /* Section pre-emption details.  */
+#define SHT_ARM_ATTRIBUTES     0x70000003      /* Section holds attributes.  */
+#define SHT_ARM_DEBUGOVERLAY   0x70000004      /* Section holds overlay debug info.  */
+#define SHT_ARM_OVERLAYSECTION 0x70000005      /* Section holds GDB and overlay integration info.  */
 
 /* ARM-specific values for sh_flags.  */
 #define SHF_ENTRYSECT      0x10000000   /* Section contains an entry point.  */
 
 /* ARM-specific values for sh_flags.  */
 #define SHF_ENTRYSECT      0x10000000   /* Section contains an entry point.  */
 #define PF_ARM_ABS         0x40000000   /* Segment must be loaded at its base address.  */
 
 /* Values for the Tag_CPU_arch EABI attribute.  */
 #define PF_ARM_ABS         0x40000000   /* Segment must be loaded at its base address.  */
 
 /* Values for the Tag_CPU_arch EABI attribute.  */
-#define TAG_CPU_ARCH_PRE_V4    0
-#define TAG_CPU_ARCH_V4                1
-#define TAG_CPU_ARCH_V4T       2
-#define TAG_CPU_ARCH_V5T       3
-#define TAG_CPU_ARCH_V5TE      4
-#define TAG_CPU_ARCH_V5TEJ     5
-#define TAG_CPU_ARCH_V6                6
-#define TAG_CPU_ARCH_V6KZ      7
-#define TAG_CPU_ARCH_V6T2      8
-#define TAG_CPU_ARCH_V6K       9
-#define TAG_CPU_ARCH_V7                10
+#define TAG_CPU_ARCH_PRE_V4    0
+#define TAG_CPU_ARCH_V4                1
+#define TAG_CPU_ARCH_V4T       2
+#define TAG_CPU_ARCH_V5T       3
+#define TAG_CPU_ARCH_V5TE      4
+#define TAG_CPU_ARCH_V5TEJ     5
+#define TAG_CPU_ARCH_V6                6
+#define TAG_CPU_ARCH_V6KZ      7
+#define TAG_CPU_ARCH_V6T2      8
+#define TAG_CPU_ARCH_V6K       9
+#define TAG_CPU_ARCH_V7                10
+#define TAG_CPU_ARCH_V6_M      11
+#define TAG_CPU_ARCH_V6S_M     12
+#define MAX_TAG_CPU_ARCH       12
+/* Pseudo-architecture to allow objects to be compatible with the subset of
+   armv4t and armv6-m.  This value should never be stored in object files.  */
+#define TAG_CPU_ARCH_V4T_PLUS_V6_M (MAX_TAG_CPU_ARCH + 1)
 
 /* Relocation types.  */
 
 
 /* Relocation types.  */
 
@@ -234,7 +242,8 @@ START_RELOC_NUMBERS (elf_arm_reloc_type)
   FAKE_RELOC (R_ARM_GOT32,              R_ARM_GOT_BREL)   /* 32 bit GOT entry.  */
   FAKE_RELOC (R_ARM_ROSEGREL32,         R_ARM_SBREL31)    /* ??? */
   FAKE_RELOC (R_ARM_AMP_VCALL9,         R_ARM_BREL_ADJ)   /* Thumb-something.  Not used.  */
   FAKE_RELOC (R_ARM_GOT32,              R_ARM_GOT_BREL)   /* 32 bit GOT entry.  */
   FAKE_RELOC (R_ARM_ROSEGREL32,         R_ARM_SBREL31)    /* ??? */
   FAKE_RELOC (R_ARM_AMP_VCALL9,         R_ARM_BREL_ADJ)   /* Thumb-something.  Not used.  */
-END_RELOC_NUMBERS (R_ARM_max)
+
+END_RELOC_NUMBERS (R_ARM_max = 256)
 
 #ifdef BFD_ARCH_SIZE
 /* EABI object attributes.  */
 
 #ifdef BFD_ARCH_SIZE
 /* EABI object attributes.  */
@@ -250,7 +259,7 @@ enum
   Tag_THUMB_ISA_use,
   Tag_VFP_arch,
   Tag_WMMX_arch,
   Tag_THUMB_ISA_use,
   Tag_VFP_arch,
   Tag_WMMX_arch,
-  Tag_NEON_arch,
+  Tag_Advanced_SIMD_arch,
   Tag_PCS_config,
   Tag_ABI_PCS_R9_use,
   Tag_ABI_PCS_RW_data,
   Tag_PCS_config,
   Tag_ABI_PCS_R9_use,
   Tag_ABI_PCS_RW_data,
@@ -270,7 +279,21 @@ enum
   Tag_ABI_WMMX_args,
   Tag_ABI_optimization_goals,
   Tag_ABI_FP_optimization_goals,
   Tag_ABI_WMMX_args,
   Tag_ABI_optimization_goals,
   Tag_ABI_FP_optimization_goals,
-  /* 32 is generic.  */
+  /* 32 is generic (Tag_compatibility).  */
+  Tag_undefined33 = 33,
+  Tag_CPU_unaligned_access,
+  Tag_undefined35,
+  Tag_VFP_HP_extension,
+  Tag_undefined37,
+  Tag_ABI_FP_16bit_format,
+  Tag_undefined39,
+  Tag_nodefaults = 64,
+  Tag_also_compatible_with,
+  Tag_T2EE_use,
+  Tag_conformance,
+  Tag_Virtualization_use,
+  Tag_undefined69,
+  Tag_MPextension_use
 };
 
 #endif
 };
 
 #endif