/* Main header file for the bfd library -- portable access to object files.
Copyright (C) 1990-2019 Free Software Foundation, Inc.
+ Copyright (C) 2019 Advanced Micro Devices, Inc. All rights reserved.
Contributed by Cygnus Support.
#define bfd_put_signed_8 \
bfd_put_8
#define bfd_get_8(abfd, ptr) \
- (*(const unsigned char *) (ptr) & 0xff)
+ ((bfd_vma) *(const unsigned char *) (ptr) & 0xff)
#define bfd_get_signed_8(abfd, ptr) \
- (((*(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
+ ((((bfd_signed_vma) *(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
#define bfd_put_16(abfd, val, ptr) \
BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
#define bfd_get(bits, abfd, ptr) \
- ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
+ ((bits) == 8 ? bfd_get_8 (abfd, ptr) \
: (bits) == 16 ? bfd_get_16 (abfd, ptr) \
: (bits) == 32 ? bfd_get_32 (abfd, ptr) \
: (bits) == 64 ? bfd_get_64 (abfd, ptr) \
/* This section contains vliw code. This is for Toshiba MeP only. */
#define SEC_MEP_VLIW 0x20000000
+ /* All symbols, sizes and relocations in this section are octets
+ instead of bytes. Required for DWARF debug sections as DWARF
+ information is organized in octets, not bytes. */
+#define SEC_ELF_OCTETS 0x40000000
+
/* Indicate that section has the no read flag set. This happens
when memory read flag isn't set. */
#define SEC_COFF_NOREAD 0x40000000
#define bfd_mach_bfin 1
bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
#define bfd_mach_cr16 1
- bfd_arch_cr16c, /* National Semiconductor CompactRISC. */
-#define bfd_mach_cr16c 1
bfd_arch_crx, /* National Semiconductor CRX. */
#define bfd_mach_crx 1
bfd_arch_cris, /* Axis CRIS. */
#define bfd_mach_ck803 5
#define bfd_mach_ck807 6
#define bfd_mach_ck810 7
+ bfd_arch_amdgcn, /* AMD GPU Architecture. Must match EF_AMDGPU_MACH_* */
+#define bfd_mach_amdgcn_unknown 0x000
+#define bfd_mach_amdgcn_gfx801 0x028
+#define bfd_mach_amdgcn_gfx802 0x029
+#define bfd_mach_amdgcn_gfx803 0x02a
+#define bfd_mach_amdgcn_gfx810 0x02b
+#define bfd_mach_amdgcn_gfx900 0x02c
+#define bfd_mach_amdgcn_gfx902 0x02d
+#define bfd_mach_amdgcn_gfx904 0x02e
+#define bfd_mach_amdgcn_gfx906 0x02f
+#define bfd_mach_amdgcn_gfx908 0x030
+#define bfd_mach_amdgcn_gfx909 0x031
bfd_arch_last
};
const char *bfd_printable_arch_mach
(enum bfd_architecture arch, unsigned long machine);
-unsigned int bfd_octets_per_byte (const bfd *abfd);
+unsigned int bfd_octets_per_byte (const bfd *abfd,
+ const asection *sec);
unsigned int bfd_arch_mach_octets_per_byte
(enum bfd_architecture arch, unsigned long machine);
then it may be truncated to 8 bits. */
BFD_RELOC_S12Z_15_PCREL,
-/* NS CR16C Relocations. */
- BFD_RELOC_16C_NUM08,
- BFD_RELOC_16C_NUM08_C,
- BFD_RELOC_16C_NUM16,
- BFD_RELOC_16C_NUM16_C,
- BFD_RELOC_16C_NUM32,
- BFD_RELOC_16C_NUM32_C,
- BFD_RELOC_16C_DISP04,
- BFD_RELOC_16C_DISP04_C,
- BFD_RELOC_16C_DISP08,
- BFD_RELOC_16C_DISP08_C,
- BFD_RELOC_16C_DISP16,
- BFD_RELOC_16C_DISP16_C,
- BFD_RELOC_16C_DISP24,
- BFD_RELOC_16C_DISP24_C,
- BFD_RELOC_16C_DISP24a,
- BFD_RELOC_16C_DISP24a_C,
- BFD_RELOC_16C_REG04,
- BFD_RELOC_16C_REG04_C,
- BFD_RELOC_16C_REG04a,
- BFD_RELOC_16C_REG04a_C,
- BFD_RELOC_16C_REG14,
- BFD_RELOC_16C_REG14_C,
- BFD_RELOC_16C_REG16,
- BFD_RELOC_16C_REG16_C,
- BFD_RELOC_16C_REG20,
- BFD_RELOC_16C_REG20_C,
- BFD_RELOC_16C_ABS20,
- BFD_RELOC_16C_ABS20_C,
- BFD_RELOC_16C_ABS24,
- BFD_RELOC_16C_ABS24_C,
- BFD_RELOC_16C_IMM04,
- BFD_RELOC_16C_IMM04_C,
- BFD_RELOC_16C_IMM16,
- BFD_RELOC_16C_IMM16_C,
- BFD_RELOC_16C_IMM20,
- BFD_RELOC_16C_IMM20_C,
- BFD_RELOC_16C_IMM24,
- BFD_RELOC_16C_IMM24_C,
- BFD_RELOC_16C_IMM32,
- BFD_RELOC_16C_IMM32_C,
-
/* NS CR16 Relocations. */
BFD_RELOC_CR16_NUM8,
BFD_RELOC_CR16_NUM16,
static inline bfd_size_type
bfd_get_section_limit (const bfd *abfd, const asection *sec)
{
- return bfd_get_section_limit_octets (abfd, sec) / bfd_octets_per_byte (abfd);
+ return (bfd_get_section_limit_octets (abfd, sec)
+ / bfd_octets_per_byte (abfd, sec));
}
/* Functions to handle insertion and deletion of a bfd's sections. These
bfd_error_bad_value,
bfd_error_file_truncated,
bfd_error_file_too_big,
+ bfd_error_sorry,
bfd_error_on_input,
bfd_error_invalid_error_code
}