Move free_all_objfiles to program_space
[deliverable/binutils-gdb.git] / elfcpp / arm.h
index cb85eeb42ed729b6e53ec0f8ea1da7e027d54d4a..aa573440c28035701b5ea0c265de38b800c63fa0 100644 (file)
@@ -1,6 +1,6 @@
 // arm.h -- ELF definitions specific to EM_ARM  -*- C++ -*-
 
-// Copyright 2009, Free Software Foundation, Inc.
+// Copyright (C) 2009-2019 Free Software Foundation, Inc.
 // Written by Doug Kwan <dougkwan@google.com>.
 
 // This file is part of elfcpp.
@@ -192,11 +192,17 @@ enum
   R_ARM_PRIVATE_14 = 126,
   R_ARM_PRIVATE_15 = 127,
   R_ARM_ME_TOO = 128,          // Obsolete
-  R_ARM_THM_TLS_DESCSEQ16 = 129,// Static      Thumb16 
+  R_ARM_THM_TLS_DESCSEQ16 = 129,// Static      Thumb16
   R_ARM_THM_TLS_DESCSEQ32 = 130,// Static      Thumb32
-  // 131 - 139                 Unallocated
+  // 131 - 135                 Unallocated
+  // Relocations for Armv8.1-M Mainline (BF/BFL)
+  R_ARM_THM_BF16 = 136,                // Static       Thumb32 ((S + A) | T) – P
+  R_ARM_THM_BF12 = 137,                // Static       Thumb32 ((S + A) | T) – P
+  R_ARM_THM_BF18 = 138,                // Static       Thumb32 ((S + A) | T) – P
+  // 139                       Unallocated
   // 140 - 159                 Dynamic         Reserved for future allocation
-  // 160 - 255                 Unallocated
+  R_ARM_IRELATIVE = 160,       // Dynamic
+  // 161 - 255                 Unallocated
 };
 
 // e_flags values used for ARM.  We only support flags defined in AAELF.
@@ -222,6 +228,14 @@ inline Elf_Word
 arm_eabi_version(Elf_Word flags)
 { return flags & EF_ARM_EABIMASK; }
 
+// EABI_VER5 e_flags values for identifying soft- and hard-float ABI
+// choice.
+enum
+{
+  EF_ARM_ABI_FLOAT_SOFT = 0x200,
+  EF_ARM_ABI_FLOAT_HARD = 0x400,
+};
+
 // Values for the Tag_CPU_arch EABI attribute.
 enum
 {
@@ -239,7 +253,8 @@ enum
   TAG_CPU_ARCH_V6_M,
   TAG_CPU_ARCH_V6S_M,
   TAG_CPU_ARCH_V7E_M,
-  MAX_TAG_CPU_ARCH = TAG_CPU_ARCH_V7E_M,
+  TAG_CPU_ARCH_V8,
+  MAX_TAG_CPU_ARCH = TAG_CPU_ARCH_V8,
   // 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.
   TAG_CPU_ARCH_V4T_PLUS_V6_M = (MAX_TAG_CPU_ARCH + 1)
@@ -290,6 +305,7 @@ enum
   Tag_MPextension_use = 42,
   Tag_undefined43 = 43,
   Tag_DIV_use = 44,
+  Tag_MVE_arch = 48,
   Tag_nodefaults = 64,
   Tag_also_compatible_with = 65,
   Tag_T2EE_use = 66,
@@ -332,6 +348,24 @@ enum
   AEABI_enum_forced_wide = 3
 };
 
+// Values for Tag_ABI_FP_number_model.
+enum
+{
+  AEABI_FP_number_model_none = 0,
+  AEABI_FP_number_model_ieee754_number = 1,
+  AEABI_FP_number_model_rtabi = 2,
+  AEABI_FP_number_model_ieee754_all = 3
+};
+
+// Values for Tag_ABI_VFP_args.
+enum
+{
+  AEABI_VFP_args_base = 0,
+  AEABI_VFP_args_vfp = 1,
+  AEABI_VFP_args_toolchain = 2,
+  AEABI_VFP_args_compatible = 3
+};
+
 // For Exception Index Table. (Exception handling ABI for the ARM
 // architectue, Section 5)
 enum
This page took 0.027927 seconds and 4 git commands to generate.