X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Farchures.c;h=e8873d49687a786b3f6b31302ef77f05c2a248b1;hb=5b660084e26050d2e7f1fda06daec1e83311c188;hp=aaf2e112cf9413aebd16484b0ab9fda87ea438c2;hpb=031254f2111f945ce6a1b8827e1a58ed7141fefe;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/archures.c b/bfd/archures.c index aaf2e112cf..e8873d4968 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -355,7 +355,6 @@ DESCRIPTION .#define bfd_mach_tic4x 40 . bfd_arch_tic54x, {* Texas Instruments TMS320C54X. *} . bfd_arch_tic6x, {* Texas Instruments TMS320C6X. *} -. bfd_arch_tic80, {* TI TMS320c80 (MVP). *} . bfd_arch_v850, {* NEC V850. *} . bfd_arch_v850_rh850,{* NEC V850 (using RH850 ABI). *} .#define bfd_mach_v850 1 @@ -415,6 +414,8 @@ DESCRIPTION . bfd_arch_iq2000, {* Vitesse IQ2000. *} .#define bfd_mach_iq2000 1 .#define bfd_mach_iq10 2 +. bfd_arch_bpf, {* Linux eBPF. *} +.#define bfd_mach_bpf 1 . bfd_arch_epiphany, {* Adapteva EPIPHANY. *} .#define bfd_mach_epiphany16 1 .#define bfd_mach_epiphany32 2 @@ -446,8 +447,6 @@ DESCRIPTION .#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. *} @@ -582,6 +581,16 @@ DESCRIPTION . bfd_boolean code); . . const struct bfd_arch_info *next; +. +. {* On some architectures the offset for a relocation can point into +. the middle of an instruction. This field specifies the maximum +. offset such a relocation can have (in octets). This affects the +. behaviour of the disassembler, since a value greater than zero +. means that it may need to disassemble an instruction twice, once +. to get its length and then a second time to display it. If the +. value is negative then this has to be done for every single +. instruction, regardless of the offset of the reloc. *} +. signed int max_reloc_offset_into_insn; .} .bfd_arch_info_type; . @@ -594,13 +603,13 @@ extern const bfd_arch_info_type bfd_arm_arch; extern const bfd_arch_info_type bfd_avr_arch; extern const bfd_arch_info_type bfd_bfin_arch; extern const bfd_arch_info_type bfd_cr16_arch; -extern const bfd_arch_info_type bfd_cr16c_arch; extern const bfd_arch_info_type bfd_cris_arch; extern const bfd_arch_info_type bfd_crx_arch; extern const bfd_arch_info_type bfd_csky_arch; extern const bfd_arch_info_type bfd_d10v_arch; extern const bfd_arch_info_type bfd_d30v_arch; extern const bfd_arch_info_type bfd_dlx_arch; +extern const bfd_arch_info_type bfd_bpf_arch; extern const bfd_arch_info_type bfd_epiphany_arch; extern const bfd_arch_info_type bfd_fr30_arch; extern const bfd_arch_info_type bfd_frv_arch; @@ -658,7 +667,6 @@ extern const bfd_arch_info_type bfd_tic30_arch; extern const bfd_arch_info_type bfd_tic4x_arch; extern const bfd_arch_info_type bfd_tic54x_arch; extern const bfd_arch_info_type bfd_tic6x_arch; -extern const bfd_arch_info_type bfd_tic80_arch; extern const bfd_arch_info_type bfd_tilegx_arch; extern const bfd_arch_info_type bfd_tilepro_arch; extern const bfd_arch_info_type bfd_v850_arch; @@ -685,13 +693,13 @@ static const bfd_arch_info_type * const bfd_archures_list[] = &bfd_avr_arch, &bfd_bfin_arch, &bfd_cr16_arch, - &bfd_cr16c_arch, &bfd_cris_arch, &bfd_crx_arch, &bfd_csky_arch, &bfd_d10v_arch, &bfd_d30v_arch, &bfd_dlx_arch, + &bfd_bpf_arch, &bfd_epiphany_arch, &bfd_fr30_arch, &bfd_frv_arch, @@ -746,7 +754,6 @@ static const bfd_arch_info_type * const bfd_archures_list[] = &bfd_tic4x_arch, &bfd_tic54x_arch, &bfd_tic6x_arch, - &bfd_tic80_arch, &bfd_tilegx_arch, &bfd_tilepro_arch, &bfd_v850_arch, @@ -925,12 +932,13 @@ DESCRIPTION .extern const bfd_arch_info_type bfd_default_arch_struct; */ -const bfd_arch_info_type bfd_default_arch_struct = { +const bfd_arch_info_type bfd_default_arch_struct = +{ 32, 32, 8, bfd_arch_unknown, 0, "unknown", "unknown", 2, TRUE, bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, - 0, + 0, 0 }; /* @@ -984,7 +992,7 @@ FUNCTION bfd_get_arch SYNOPSIS - enum bfd_architecture bfd_get_arch (bfd *abfd); + enum bfd_architecture bfd_get_arch (const bfd *abfd); DESCRIPTION Return the enumerated type which describes the BFD @var{abfd}'s @@ -992,7 +1000,7 @@ DESCRIPTION */ enum bfd_architecture -bfd_get_arch (bfd *abfd) +bfd_get_arch (const bfd *abfd) { return abfd->arch_info->arch; } @@ -1002,7 +1010,7 @@ FUNCTION bfd_get_mach SYNOPSIS - unsigned long bfd_get_mach (bfd *abfd); + unsigned long bfd_get_mach (const bfd *abfd); DESCRIPTION Return the long type which describes the BFD @var{abfd}'s @@ -1010,7 +1018,7 @@ DESCRIPTION */ unsigned long -bfd_get_mach (bfd *abfd) +bfd_get_mach (const bfd *abfd) { return abfd->arch_info->mach; } @@ -1020,7 +1028,7 @@ FUNCTION bfd_arch_bits_per_byte SYNOPSIS - unsigned int bfd_arch_bits_per_byte (bfd *abfd); + unsigned int bfd_arch_bits_per_byte (const bfd *abfd); DESCRIPTION Return the number of bits in one of the BFD @var{abfd}'s @@ -1028,7 +1036,7 @@ DESCRIPTION */ unsigned int -bfd_arch_bits_per_byte (bfd *abfd) +bfd_arch_bits_per_byte (const bfd *abfd) { return abfd->arch_info->bits_per_byte; } @@ -1038,7 +1046,7 @@ FUNCTION bfd_arch_bits_per_address SYNOPSIS - unsigned int bfd_arch_bits_per_address (bfd *abfd); + unsigned int bfd_arch_bits_per_address (const bfd *abfd); DESCRIPTION Return the number of bits in one of the BFD @var{abfd}'s @@ -1046,7 +1054,7 @@ DESCRIPTION */ unsigned int -bfd_arch_bits_per_address (bfd *abfd) +bfd_arch_bits_per_address (const bfd *abfd) { return abfd->arch_info->bits_per_address; } @@ -1368,7 +1376,8 @@ FUNCTION bfd_octets_per_byte SYNOPSIS - unsigned int bfd_octets_per_byte (bfd *abfd); + unsigned int bfd_octets_per_byte (const bfd *abfd, + const asection *sec); DESCRIPTION Return the number of octets (8-bit quantities) per target byte @@ -1377,8 +1386,13 @@ DESCRIPTION */ unsigned int -bfd_octets_per_byte (bfd *abfd) +bfd_octets_per_byte (const bfd *abfd, const asection *sec) { + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour + && sec != NULL + && (sec->flags & SEC_ELF_OCTETS) != 0) + return 1; + return bfd_arch_mach_octets_per_byte (bfd_get_arch (abfd), bfd_get_mach (abfd)); }