]> 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.
-   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.
@@ -41,9 +41,9 @@
 #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 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.  */
 #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.  */
 
@@ -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.  */
-END_RELOC_NUMBERS (R_ARM_max)
+
+END_RELOC_NUMBERS (R_ARM_max = 256)
 
 #ifdef BFD_ARCH_SIZE
 /* EABI object attributes.  */
@@ -250,7 +259,7 @@ enum
   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,
@@ -270,7 +279,21 @@ enum
   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