mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-26 19:44:11 +08:00
Revert "2.41 Release sources"
This reverts commit 675b9d612c
.
See https://sourceware.org/pipermail/binutils/2023-August/128761.html.
This commit is contained in:
parent
675b9d612c
commit
b5c37946cc
@ -1,9 +1,3 @@
|
||||
2023-07-30 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
This is the 2.41 release.
|
||||
* src-release.sh: Add Changelog.git.
|
||||
* ChangeLog.git: New file.
|
||||
|
||||
2023-07-03 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
2.41 Branch Point.
|
||||
|
142648
ChangeLog.git
142648
ChangeLog.git
File diff suppressed because one or more lines are too long
@ -1,26 +1,26 @@
|
||||
2023-07-30 Nick Clifton <nickc@redhat.com>
|
||||
2023-07-24 Johannes Schauer Marin Rodrigues <josch@debian.org>
|
||||
|
||||
This is the 2.41 release.
|
||||
* configure: Regenerate.
|
||||
* development.sh: Set variables to false.
|
||||
* po/bfd.pot: Regenerate.
|
||||
* version.m4: Set version number to 2.41.
|
||||
* peXXigen.c (_bfd_XXi_only_swap_filehdr_out): If inserting a
|
||||
timestamp, use the value held in the SOURCE_DATE_EPOCH environment
|
||||
variable, if it is defined.
|
||||
|
||||
2023-07-24 Nick Clifton <nickc@redhat.com>
|
||||
2023-07-24 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
Import from mainline:
|
||||
* elfnn-loongarch.c (RELOCATE_CALC_PC32_HI20): Redefined.
|
||||
(RELOCATE_CALC_PC64_HI32): Redefined.
|
||||
* reloc.c: New reloc BFD_RELOC_BPF_DISPCALL32.
|
||||
* elf64-bpf.c (bpf_reloc_type_lookup): Handle the new reloc.
|
||||
* libbfd.h (bfd_reloc_code_real_names): Regenerate.
|
||||
|
||||
* elfxx-loongarch.c (reloc_bits_pcrel20_s2): Delete.
|
||||
(reloc_bits_b16): Delete.
|
||||
(reloc_bits_b21): Delete.
|
||||
(reloc_bits_b26): Delete.
|
||||
(reloc_sign_bits): New.
|
||||
2023-07-09 Fangrui Song <maskray@google.com>
|
||||
|
||||
PR 30592
|
||||
* section.c: Define SEC_ELF_LARGE.
|
||||
* bfd-in2.h: Regenerate.
|
||||
* elf64-x86-64.c (elf_x86_64_section_flags, elf_x86_64_fake_sections,
|
||||
elf_x86_64_copy_private_section_data): New.
|
||||
|
||||
2023-07-03 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* version.m4: Update version number to 2.40.90.
|
||||
* version.m4: Update version number to 2.41.50.
|
||||
* configure: Regenerate.
|
||||
* bfd/po/bfd.pot: Regenerate.
|
||||
|
||||
|
@ -625,6 +625,9 @@ typedef struct bfd_section
|
||||
TMS320C54X only. */
|
||||
#define SEC_TIC54X_BLOCK 0x10000000
|
||||
|
||||
/* This section has the SHF_X86_64_LARGE flag. This is ELF x86-64 only. */
|
||||
#define SEC_ELF_LARGE 0x10000000
|
||||
|
||||
/* Conditionally link this section; do not link if there are no
|
||||
references found to any symbol in the section. This is for TI
|
||||
TMS320C54X only. */
|
||||
@ -7145,6 +7148,8 @@ assembler and not (currently) written to any object files. */
|
||||
/* Linux eBPF relocations. */
|
||||
BFD_RELOC_BPF_64,
|
||||
BFD_RELOC_BPF_DISP32,
|
||||
BFD_RELOC_BPF_DISPCALL32,
|
||||
BFD_RELOC_BPF_DISP16,
|
||||
|
||||
/* Adapteva EPIPHANY - 8 bit signed pc-relative displacement */
|
||||
BFD_RELOC_EPIPHANY_SIMM8,
|
||||
|
@ -72,3 +72,18 @@
|
||||
0xffffffff, /* src_mask */
|
||||
0xffffffff, /* dst_mask */
|
||||
true) /* pcrel_offset */
|
||||
|
||||
/* 16-bit PC-relative address in load instructions. */
|
||||
BPF_HOWTO (R_BPF_GNU_64_16, /* type */
|
||||
0, /* rightshift */
|
||||
2, /* size */
|
||||
16, /* bitsize */
|
||||
true, /* pc_relative */
|
||||
16, /* bitpos */
|
||||
complain_overflow_signed, /* complain_on_overflow */
|
||||
bpf_elf_generic_reloc, /* special_function */
|
||||
"R_BPF_GNU_64_16", /* name */
|
||||
true, /* partial_inplace */
|
||||
0xffff, /* src_mask */
|
||||
0xffff, /* dst_mask */
|
||||
true) /* pcrel_offset */
|
||||
|
@ -3176,8 +3176,9 @@ coff_compute_section_file_positions (bfd * abfd)
|
||||
created and not just improve performances with gdb.
|
||||
*/
|
||||
|
||||
if ((!strcmp (current->name, _TEXT)
|
||||
|| !strcmp (current->name, _DATA))
|
||||
if ((current->flags & SEC_LOAD) != 0
|
||||
&& (!strcmp (current->name, _TEXT)
|
||||
|| !strcmp (current->name, _DATA))
|
||||
&& (previous == NULL || strcmp(previous->name, _TDATA)))
|
||||
{
|
||||
bfd_vma align = 4096;
|
||||
@ -3190,7 +3191,8 @@ coff_compute_section_file_positions (bfd * abfd)
|
||||
sofar += align + vma_off - sofar_off;
|
||||
}
|
||||
#endif
|
||||
if (previous != NULL)
|
||||
if (previous != NULL
|
||||
&& (previous->flags & SEC_LOAD) != 0)
|
||||
previous->size += sofar - old_sofar;
|
||||
}
|
||||
|
||||
@ -4695,7 +4697,7 @@ coff_slurp_symbol_table (bfd * abfd)
|
||||
#endif
|
||||
#ifdef RS6000COFF_C
|
||||
case C_HIDEXT:
|
||||
#if ! defined _AIX52 && ! defined AIX_WEAK_SUPPORT
|
||||
#ifndef AIX_WEAK_SUPPORT
|
||||
case C_AIX_WEAKEXT:
|
||||
#endif
|
||||
#endif
|
||||
@ -5021,7 +5023,7 @@ coff_classify_symbol (bfd *abfd,
|
||||
#endif
|
||||
#ifdef RS6000COFF_C
|
||||
case C_HIDEXT:
|
||||
#if ! defined _AIX52 && ! defined AIX_WEAK_SUPPORT
|
||||
#ifndef AIX_WEAK_SUPPORT
|
||||
case C_AIX_WEAKEXT:
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1098,18 +1098,6 @@ case "${targ}" in
|
||||
targ_selvecs="rs6000_xcoff64_aix_vec"
|
||||
want64=true
|
||||
;;
|
||||
powerpc-*-haiku*)
|
||||
targ_defvec=powerpc_elf32_vec
|
||||
targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec pef_vec pef_xlib_vec powerpc_xcoff_vec powerpc_boot_vec"
|
||||
targ_cflags=-D__HAIKU_TARGET__
|
||||
;;
|
||||
#ifdef BFD64
|
||||
powerpc64-*-aix5.[01])
|
||||
targ_defvec=rs6000_xcoff64_aix_vec
|
||||
targ_selvecs="rs6000_xcoff_vec"
|
||||
want64=true
|
||||
;;
|
||||
#endif
|
||||
powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*)
|
||||
targ_cflags=-DAIX_WEAK_SUPPORT
|
||||
targ_defvec=rs6000_xcoff_vec
|
||||
@ -1117,6 +1105,11 @@ case "${targ}" in
|
||||
want64=true
|
||||
;;
|
||||
#ifdef BFD64
|
||||
powerpc64-*-aix5.[01])
|
||||
targ_defvec=rs6000_xcoff64_aix_vec
|
||||
targ_selvecs="rs6000_xcoff_vec"
|
||||
want64=true
|
||||
;;
|
||||
powerpc64-*-aix[5-9]*)
|
||||
targ_cflags=-DAIX_WEAK_SUPPORT
|
||||
targ_defvec=rs6000_xcoff64_aix_vec
|
||||
@ -1176,6 +1169,11 @@ case "${targ}" in
|
||||
targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
|
||||
targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
|
||||
;;
|
||||
powerpc-*-haiku*)
|
||||
targ_defvec=powerpc_elf32_vec
|
||||
targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec pef_vec pef_xlib_vec powerpc_xcoff_vec powerpc_boot_vec"
|
||||
targ_cflags=-D__HAIKU_TARGET__
|
||||
;;
|
||||
powerpc-*-kaos*)
|
||||
targ_defvec=powerpc_elf32_vec
|
||||
targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec"
|
||||
|
20
bfd/configure
vendored
20
bfd/configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for bfd 2.41.
|
||||
# Generated by GNU Autoconf 2.69 for bfd 2.41.50.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||
@ -587,8 +587,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='bfd'
|
||||
PACKAGE_TARNAME='bfd'
|
||||
PACKAGE_VERSION='2.41'
|
||||
PACKAGE_STRING='bfd 2.41'
|
||||
PACKAGE_VERSION='2.41.50'
|
||||
PACKAGE_STRING='bfd 2.41.50'
|
||||
PACKAGE_BUGREPORT=''
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -1400,7 +1400,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures bfd 2.41 to adapt to many kinds of systems.
|
||||
\`configure' configures bfd 2.41.50 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1471,7 +1471,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of bfd 2.41:";;
|
||||
short | recursive ) echo "Configuration of bfd 2.41.50:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1608,7 +1608,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
bfd configure 2.41
|
||||
bfd configure 2.41.50
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -2202,7 +2202,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by bfd $as_me 2.41, which was
|
||||
It was created by bfd $as_me 2.41.50, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -3184,7 +3184,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='bfd'
|
||||
VERSION='2.41'
|
||||
VERSION='2.41.50'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -16103,7 +16103,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by bfd $as_me 2.41, which was
|
||||
This file was extended by bfd $as_me 2.41.50, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -16169,7 +16169,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
bfd config.status 2.41
|
||||
bfd config.status 2.41.50
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Controls whether to enable development-mode features by default.
|
||||
development=false
|
||||
development=true
|
||||
|
||||
# Indicate whether this is a release branch.
|
||||
experimental=false
|
||||
experimental=true
|
||||
|
@ -88,7 +88,10 @@ bpf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
|
||||
case BFD_RELOC_BPF_64:
|
||||
return &bpf_elf_howto_table[ (int) R_BPF_64_64_IDX];
|
||||
case BFD_RELOC_BPF_DISP32:
|
||||
case BFD_RELOC_BPF_DISPCALL32:
|
||||
return &bpf_elf_howto_table[ (int) R_BPF_64_32_IDX];
|
||||
case BFD_RELOC_BPF_DISP16:
|
||||
return &bpf_elf_howto_table[ (int) R_BPF_GNU_64_16_IDX];
|
||||
|
||||
default:
|
||||
/* Pacify gcc -Wall. */
|
||||
|
@ -5281,6 +5281,39 @@ elf_x86_64_merge_symbol (struct elf_link_hash_entry *h,
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
elf_x86_64_section_flags (const Elf_Internal_Shdr *hdr)
|
||||
{
|
||||
if ((hdr->sh_flags & SHF_X86_64_LARGE) != 0)
|
||||
hdr->bfd_section->flags |= SEC_ELF_LARGE;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
elf_x86_64_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
|
||||
Elf_Internal_Shdr *hdr, asection *sec)
|
||||
{
|
||||
if (sec->flags & SEC_ELF_LARGE)
|
||||
hdr->sh_flags |= SHF_X86_64_LARGE;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
elf_x86_64_copy_private_section_data (bfd *ibfd, asection *isec,
|
||||
bfd *obfd, asection *osec)
|
||||
{
|
||||
if (!_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec))
|
||||
return false;
|
||||
|
||||
/* objcopy --set-section-flags without "large" drops SHF_X86_64_LARGE. */
|
||||
if (ibfd != obfd)
|
||||
elf_section_flags (osec) &= ~SHF_X86_64_LARGE;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static int
|
||||
elf_x86_64_additional_program_headers (bfd *abfd,
|
||||
struct bfd_link_info *info ATTRIBUTE_UNUSED)
|
||||
@ -5408,6 +5441,8 @@ elf_x86_64_special_sections[]=
|
||||
|
||||
#define elf_info_to_howto elf_x86_64_info_to_howto
|
||||
|
||||
#define bfd_elf64_bfd_copy_private_section_data \
|
||||
elf_x86_64_copy_private_section_data
|
||||
#define bfd_elf64_bfd_reloc_type_lookup elf_x86_64_reloc_type_lookup
|
||||
#define bfd_elf64_bfd_reloc_name_lookup \
|
||||
elf_x86_64_reloc_name_lookup
|
||||
@ -5448,6 +5483,8 @@ elf_x86_64_special_sections[]=
|
||||
elf_x86_64_merge_symbol
|
||||
#define elf_backend_special_sections \
|
||||
elf_x86_64_special_sections
|
||||
#define elf_backend_section_flags elf_x86_64_section_flags
|
||||
#define elf_backend_fake_sections elf_x86_64_fake_sections
|
||||
#define elf_backend_additional_program_headers \
|
||||
elf_x86_64_additional_program_headers
|
||||
#define elf_backend_setup_gnu_properties \
|
||||
@ -5564,6 +5601,8 @@ elf64_x86_64_copy_solaris_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUS
|
||||
#undef ELF_TARGET_OS
|
||||
#undef ELF_OSABI
|
||||
|
||||
#define bfd_elf32_bfd_copy_private_section_data \
|
||||
elf_x86_64_copy_private_section_data
|
||||
#define bfd_elf32_bfd_reloc_type_lookup \
|
||||
elf_x86_64_reloc_type_lookup
|
||||
#define bfd_elf32_bfd_reloc_name_lookup \
|
||||
|
@ -1538,7 +1538,7 @@ elfNN_allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, void *inf)
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
ifunc dynamic relocs. */
|
||||
|
||||
static bool
|
||||
static int
|
||||
elfNN_allocate_local_ifunc_dynrelocs (void **slot, void *inf)
|
||||
{
|
||||
struct elf_link_hash_entry *h = (struct elf_link_hash_entry *) *slot;
|
||||
@ -1700,7 +1700,7 @@ loongarch_elf_size_dynamic_sections (bfd *output_bfd,
|
||||
|
||||
/* Allocate .plt and .got entries, and space for local ifunc symbols. */
|
||||
htab_traverse (htab->loc_hash_table,
|
||||
(void *) elfNN_allocate_local_ifunc_dynrelocs, info);
|
||||
elfNN_allocate_local_ifunc_dynrelocs, info);
|
||||
|
||||
/* Don't allocate .got.plt section if there are no PLT. */
|
||||
if (htab->elf.sgotplt && htab->elf.sgotplt->size == GOTPLT_HEADER_SIZE
|
||||
@ -4040,12 +4040,6 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
|
||||
{
|
||||
struct loongarch_elf_link_hash_table *htab = loongarch_elf_hash_table (info);
|
||||
const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
|
||||
asection *rela_dyn = bfd_get_section_by_name (output_bfd, ".rela.dyn");
|
||||
struct bfd_link_order *lo = NULL;
|
||||
Elf_Internal_Rela *slot = NULL, *last_slot = NULL;
|
||||
|
||||
if (rela_dyn)
|
||||
lo = rela_dyn->map_head.link_order;
|
||||
|
||||
if (h->plt.offset != MINUS_ONE)
|
||||
{
|
||||
@ -4055,7 +4049,6 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
|
||||
uint32_t plt_entry[PLT_ENTRY_INSNS];
|
||||
bfd_byte *loc;
|
||||
Elf_Internal_Rela rela;
|
||||
asection *rela_sec = NULL;
|
||||
|
||||
if (htab->elf.splt)
|
||||
{
|
||||
@ -4113,26 +4106,7 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
|
||||
+ h->root.u.def.section->output_section->vma
|
||||
+ h->root.u.def.section->output_offset);
|
||||
|
||||
/* Find the space after dyn sort. */
|
||||
while (slot == last_slot || slot->r_offset != 0)
|
||||
{
|
||||
if (slot != last_slot)
|
||||
{
|
||||
slot++;
|
||||
continue;
|
||||
}
|
||||
|
||||
BFD_ASSERT (lo != NULL);
|
||||
rela_sec = lo->u.indirect.section;
|
||||
lo = lo->next;
|
||||
|
||||
slot = (Elf_Internal_Rela *)rela_sec->contents;
|
||||
last_slot = (Elf_Internal_Rela *)(rela_sec->contents +
|
||||
rela_sec->size);
|
||||
}
|
||||
|
||||
bed->s->swap_reloca_out (output_bfd, &rela, (bfd_byte *)slot);
|
||||
rela_sec->reloc_count++;
|
||||
loongarch_elf_append_rela (output_bfd, relplt, &rela);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4299,7 +4273,7 @@ loongarch_finish_dyn (bfd *output_bfd, struct bfd_link_info *info, bfd *dynobj,
|
||||
/* Finish up local dynamic symbol handling. We set the contents of
|
||||
various dynamic sections here. */
|
||||
|
||||
static bool
|
||||
static int
|
||||
elfNN_loongarch_finish_local_dynamic_symbol (void **slot, void *inf)
|
||||
{
|
||||
struct elf_link_hash_entry *h = (struct elf_link_hash_entry *) *slot;
|
||||
@ -4308,6 +4282,33 @@ elfNN_loongarch_finish_local_dynamic_symbol (void **slot, void *inf)
|
||||
return loongarch_elf_finish_dynamic_symbol (info->output_bfd, info, h, NULL);
|
||||
}
|
||||
|
||||
/* Value of struct elf_backend_data->elf_backend_output_arch_local_syms,
|
||||
this function is called before elf_link_sort_relocs.
|
||||
So relocation R_LARCH_IRELATIVE for local ifunc can be append to
|
||||
.rela.dyn (.rela.got) by loongarch_elf_append_rela. */
|
||||
|
||||
static bool
|
||||
elf_loongarch_output_arch_local_syms
|
||||
(bfd *output_bfd ATTRIBUTE_UNUSED,
|
||||
struct bfd_link_info *info,
|
||||
void *flaginfo ATTRIBUTE_UNUSED,
|
||||
int (*func) (void *, const char *,
|
||||
Elf_Internal_Sym *,
|
||||
asection *,
|
||||
struct elf_link_hash_entry *) ATTRIBUTE_UNUSED)
|
||||
{
|
||||
struct loongarch_elf_link_hash_table *htab = loongarch_elf_hash_table (info);
|
||||
if (htab == NULL)
|
||||
return false;
|
||||
|
||||
/* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols. */
|
||||
htab_traverse (htab->loc_hash_table,
|
||||
elfNN_loongarch_finish_local_dynamic_symbol,
|
||||
info);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
loongarch_elf_finish_dynamic_sections (bfd *output_bfd,
|
||||
struct bfd_link_info *info)
|
||||
@ -4386,10 +4387,6 @@ loongarch_elf_finish_dynamic_sections (bfd *output_bfd,
|
||||
elf_section_data (output_section)->this_hdr.sh_entsize = GOT_ENTRY_SIZE;
|
||||
}
|
||||
|
||||
/* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols. */
|
||||
htab_traverse (htab->loc_hash_table,
|
||||
(void *) elfNN_loongarch_finish_local_dynamic_symbol, info);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -4654,6 +4651,8 @@ elf_loongarch64_hash_symbol (struct elf_link_hash_entry *h)
|
||||
#define elf_backend_size_dynamic_sections loongarch_elf_size_dynamic_sections
|
||||
#define elf_backend_relocate_section loongarch_elf_relocate_section
|
||||
#define elf_backend_finish_dynamic_symbol loongarch_elf_finish_dynamic_symbol
|
||||
#define elf_backend_output_arch_local_syms \
|
||||
elf_loongarch_output_arch_local_syms
|
||||
#define elf_backend_finish_dynamic_sections \
|
||||
loongarch_elf_finish_dynamic_sections
|
||||
#define elf_backend_object_p loongarch_elf_object_p
|
||||
|
@ -1711,10 +1711,12 @@ reloc_sign_bits (bfd *abfd, reloc_howto_type *howto, bfd_vma *fix_val)
|
||||
{
|
||||
case R_LARCH_SOP_POP_32_S_0_10_10_16_S2:
|
||||
case R_LARCH_B26:
|
||||
/* Perform insn bits field. 25:16>>16, 15:0<<10. */
|
||||
/* Perform insn bits field. 15:0<<10, 25:16>>16. */
|
||||
val = ((val & 0xffff) << 10) | ((val >> 16) & 0x3ff);
|
||||
break;
|
||||
case R_LARCH_SOP_POP_32_S_0_5_10_16_S2:
|
||||
case R_LARCH_B21:
|
||||
/* Perform insn bits field. 15:0<<10, 20:16>>16. */
|
||||
val = ((val & 0xffff) << 10) | ((val >> 16) & 0x1f);
|
||||
break;
|
||||
default:
|
||||
|
@ -1132,6 +1132,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
|
||||
{"zvl256b", "zvl128b", check_implicit_always},
|
||||
{"zvl128b", "zvl64b", check_implicit_always},
|
||||
{"zvl64b", "zvl32b", check_implicit_always},
|
||||
{"zcd", "d", check_implicit_always},
|
||||
{"zcf", "f", check_implicit_always},
|
||||
{"zfa", "f", check_implicit_always},
|
||||
{"d", "f", check_implicit_always},
|
||||
{"zfh", "zfhmin", check_implicit_always},
|
||||
@ -1173,6 +1175,9 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
|
||||
{"zvksg", "zvkg", check_implicit_always},
|
||||
{"zvksc", "zvks", check_implicit_always},
|
||||
{"zvksc", "zvbc", check_implicit_always},
|
||||
{"zcf", "zca", check_implicit_always},
|
||||
{"zcd", "zca", check_implicit_always},
|
||||
{"zcb", "zca", check_implicit_always},
|
||||
{"smaia", "ssaia", check_implicit_always},
|
||||
{"smstateen", "ssstateen", check_implicit_always},
|
||||
{"smepmp", "zicsr", check_implicit_always},
|
||||
@ -1307,6 +1312,10 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
|
||||
{"zvl32768b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
|
||||
{"zvl65536b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
|
||||
{"ztso", ISA_SPEC_CLASS_DRAFT, 0, 1, 0 },
|
||||
{"zca", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
|
||||
{"zcb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
|
||||
{"zcf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
|
||||
{"zcd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
|
||||
{NULL, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
@ -1942,6 +1951,13 @@ riscv_parse_check_conflicts (riscv_parse_subset_t *rps)
|
||||
rps->error_handler (_("rv%d does not support the `q' extension"), xlen);
|
||||
no_conflict = false;
|
||||
}
|
||||
if (riscv_lookup_subset (rps->subset_list, "zcf", &subset)
|
||||
&& xlen > 32)
|
||||
{
|
||||
rps->error_handler
|
||||
(_("rv%d does not support the `zcf' extension"), xlen);
|
||||
no_conflict = false;
|
||||
}
|
||||
if (riscv_lookup_subset (rps->subset_list, "zfinx", &subset)
|
||||
&& riscv_lookup_subset (rps->subset_list, "f", &subset))
|
||||
{
|
||||
@ -2387,13 +2403,16 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
|
||||
case INSN_CLASS_Q:
|
||||
return riscv_subset_supports (rps, "q");
|
||||
case INSN_CLASS_C:
|
||||
return riscv_subset_supports (rps, "c");
|
||||
return (riscv_subset_supports (rps, "c")
|
||||
|| riscv_subset_supports (rps, "zca"));
|
||||
case INSN_CLASS_F_AND_C:
|
||||
return (riscv_subset_supports (rps, "f")
|
||||
&& riscv_subset_supports (rps, "c"));
|
||||
&& (riscv_subset_supports (rps, "c")
|
||||
|| riscv_subset_supports (rps, "zcf")));
|
||||
case INSN_CLASS_D_AND_C:
|
||||
return (riscv_subset_supports (rps, "d")
|
||||
&& riscv_subset_supports (rps, "c"));
|
||||
&& (riscv_subset_supports (rps, "c")
|
||||
|| riscv_subset_supports (rps, "zcd")));
|
||||
case INSN_CLASS_F_INX:
|
||||
return (riscv_subset_supports (rps, "f")
|
||||
|| riscv_subset_supports (rps, "zfinx"));
|
||||
@ -2482,10 +2501,6 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
|
||||
return riscv_subset_supports (rps, "zvkg");
|
||||
case INSN_CLASS_ZVKNED:
|
||||
return riscv_subset_supports (rps, "zvkned");
|
||||
case INSN_CLASS_ZVKNHA:
|
||||
return riscv_subset_supports (rps, "zvknha");
|
||||
case INSN_CLASS_ZVKNHB:
|
||||
return riscv_subset_supports (rps, "zvknhb");
|
||||
case INSN_CLASS_ZVKNHA_OR_ZVKNHB:
|
||||
return (riscv_subset_supports (rps, "zvknha")
|
||||
|| riscv_subset_supports (rps, "zvknhb"));
|
||||
@ -2493,6 +2508,17 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
|
||||
return riscv_subset_supports (rps, "zvksed");
|
||||
case INSN_CLASS_ZVKSH:
|
||||
return riscv_subset_supports (rps, "zvksh");
|
||||
case INSN_CLASS_ZCB:
|
||||
return riscv_subset_supports (rps, "zcb");
|
||||
case INSN_CLASS_ZCB_AND_ZBB:
|
||||
return (riscv_subset_supports (rps, "zcb")
|
||||
&& riscv_subset_supports (rps, "zbb"));
|
||||
case INSN_CLASS_ZCB_AND_ZBA:
|
||||
return (riscv_subset_supports (rps, "zcb")
|
||||
&& riscv_subset_supports (rps, "zba"));
|
||||
case INSN_CLASS_ZCB_AND_ZMMUL:
|
||||
return (riscv_subset_supports (rps, "zcb")
|
||||
&& riscv_subset_supports (rps, "zmmul"));
|
||||
case INSN_CLASS_SVINVAL:
|
||||
return riscv_subset_supports (rps, "svinval");
|
||||
case INSN_CLASS_H:
|
||||
@ -2572,21 +2598,27 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
|
||||
case INSN_CLASS_C:
|
||||
return "c";
|
||||
case INSN_CLASS_F_AND_C:
|
||||
if (!riscv_subset_supports (rps, "f")
|
||||
&& !riscv_subset_supports (rps, "c"))
|
||||
return _("f' and `c");
|
||||
else if (!riscv_subset_supports (rps, "f"))
|
||||
return "f";
|
||||
if (!riscv_subset_supports (rps, "f"))
|
||||
{
|
||||
if (!riscv_subset_supports (rps, "c")
|
||||
&& !riscv_subset_supports (rps, "zcf"))
|
||||
return _("f' and `c', or `f' and `zcf");
|
||||
else
|
||||
return "f";
|
||||
}
|
||||
else
|
||||
return "c";
|
||||
return _("c' or `zcf");
|
||||
case INSN_CLASS_D_AND_C:
|
||||
if (!riscv_subset_supports (rps, "d")
|
||||
&& !riscv_subset_supports (rps, "c"))
|
||||
return _("d' and `c");
|
||||
else if (!riscv_subset_supports (rps, "d"))
|
||||
return "d";
|
||||
if (!riscv_subset_supports (rps, "d"))
|
||||
{
|
||||
if (!riscv_subset_supports (rps, "c")
|
||||
&& !riscv_subset_supports (rps, "zcd"))
|
||||
return _("d' and `c', or `d' and `zcd");
|
||||
else
|
||||
return "d";
|
||||
}
|
||||
else
|
||||
return "c";
|
||||
return _("c' or `zcd");
|
||||
case INSN_CLASS_F_INX:
|
||||
return _("f' or `zfinx");
|
||||
case INSN_CLASS_D_INX:
|
||||
@ -2689,14 +2721,20 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
|
||||
return _("zvkg");
|
||||
case INSN_CLASS_ZVKNED:
|
||||
return _("zvkned");
|
||||
case INSN_CLASS_ZVKNHA:
|
||||
return _("zvknha");
|
||||
case INSN_CLASS_ZVKNHB:
|
||||
return _("zvknhb");
|
||||
case INSN_CLASS_ZVKNHA_OR_ZVKNHB:
|
||||
return _("zvknha' or `zvknhb");
|
||||
case INSN_CLASS_ZVKSED:
|
||||
return _("zvksed");
|
||||
case INSN_CLASS_ZVKSH:
|
||||
return _("zvksh");
|
||||
case INSN_CLASS_ZCB:
|
||||
return "zcb";
|
||||
case INSN_CLASS_ZCB_AND_ZBA:
|
||||
return _("zcb' and `zba");
|
||||
case INSN_CLASS_ZCB_AND_ZBB:
|
||||
return _("zcb' and `zbb");
|
||||
case INSN_CLASS_ZCB_AND_ZMMUL:
|
||||
return _("zcb' and `zmmul', or `zcb' and `m");
|
||||
case INSN_CLASS_SVINVAL:
|
||||
return "svinval";
|
||||
case INSN_CLASS_H:
|
||||
|
@ -3346,6 +3346,8 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
||||
"BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD",
|
||||
"BFD_RELOC_BPF_64",
|
||||
"BFD_RELOC_BPF_DISP32",
|
||||
"BFD_RELOC_BPF_DISPCALL32",
|
||||
"BFD_RELOC_BPF_DISP16",
|
||||
"BFD_RELOC_EPIPHANY_SIMM8",
|
||||
"BFD_RELOC_EPIPHANY_SIMM24",
|
||||
"BFD_RELOC_EPIPHANY_HIGH",
|
||||
|
@ -838,7 +838,20 @@ _bfd_XXi_only_swap_filehdr_out (bfd * abfd, void * in, void * out)
|
||||
/* Use a real timestamp by default, unless the no-insert-timestamp
|
||||
option was chosen. */
|
||||
if ((pe_data (abfd)->timestamp) == -1)
|
||||
H_PUT_32 (abfd, time (0), filehdr_out->f_timdat);
|
||||
{
|
||||
time_t now;
|
||||
char *source_date_epoch;
|
||||
|
||||
/* If the SOURCE_DATE_EPOCH environment variable is
|
||||
defined then use that as the time, otherwise use
|
||||
the current time. */
|
||||
source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
|
||||
if (source_date_epoch)
|
||||
now = (time_t) strtoll (source_date_epoch, NULL, 10);
|
||||
else
|
||||
now = time (NULL);
|
||||
H_PUT_32 (abfd, now, filehdr_out->f_timdat);
|
||||
}
|
||||
else
|
||||
H_PUT_32 (abfd, pe_data (abfd)->timestamp, filehdr_out->f_timdat);
|
||||
|
||||
|
277
bfd/po/bfd.pot
277
bfd/po/bfd.pot
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
|
||||
"POT-Creation-Date: 2023-07-30 14:35+0100\n"
|
||||
"POT-Creation-Date: 2023-07-03 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -69,7 +69,7 @@ msgstr ""
|
||||
|
||||
#. Unknown relocation.
|
||||
#: aoutx.h:4400 coff-alpha.c:601 coff-alpha.c:1521 coff-mips.c:356
|
||||
#: coff-rs6000.c:3048 coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262
|
||||
#: coff-rs6000.c:3029 coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262
|
||||
#: elf-hppa.h:798 elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813
|
||||
#: elf32-arc.c:532 elf32-arm.c:1985 elf32-avr.c:962 elf32-bfin.c:1063
|
||||
#: elf32-bfin.c:4686 elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467
|
||||
@ -95,7 +95,7 @@ msgstr ""
|
||||
#: elf64-ia64-vms.c:3426 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1264
|
||||
#: elf64-nfp.c:151 elf64-ppc.c:1031 elf64-ppc.c:1385 elf64-ppc.c:1394
|
||||
#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:269 elfn32-mips.c:3799
|
||||
#: elfxx-ia64.c:324 elfxx-loongarch.c:1568 elfxx-riscv.c:980 elfxx-sparc.c:589
|
||||
#: elfxx-ia64.c:324 elfxx-loongarch.c:1574 elfxx-riscv.c:980 elfxx-sparc.c:589
|
||||
#: elfxx-sparc.c:639 elfxx-tilegx.c:907 elfxx-tilegx.c:947
|
||||
#: elfnn-aarch64.c:2215 elfnn-aarch64.c:2313 elfnn-ia64.c:214
|
||||
#: elfnn-ia64.c:3821
|
||||
@ -307,32 +307,32 @@ msgstr ""
|
||||
msgid "%pB: unsupported swap_aux_out for storage class %#x"
|
||||
msgstr ""
|
||||
|
||||
#: coff-rs6000.c:3138
|
||||
#: coff-rs6000.c:3119
|
||||
#, c-format
|
||||
msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
|
||||
msgstr ""
|
||||
|
||||
#: coff-rs6000.c:3262 coff64-rs6000.c:848
|
||||
#: coff-rs6000.c:3243 coff64-rs6000.c:848
|
||||
#, c-format
|
||||
msgid "Unable to find the stub entry targeting %s"
|
||||
msgstr ""
|
||||
|
||||
#: coff-rs6000.c:3377
|
||||
#: coff-rs6000.c:3358
|
||||
#, c-format
|
||||
msgid "%pB: TLS relocation at 0x%<PRIx64> over non-TLS symbol %s (0x%x)\n"
|
||||
msgstr ""
|
||||
|
||||
#: coff-rs6000.c:3390
|
||||
#: coff-rs6000.c:3371
|
||||
#, c-format
|
||||
msgid "%pB: TLS local relocation at 0x%<PRIx64> over imported symbol %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: coff-rs6000.c:3796
|
||||
#: coff-rs6000.c:3777
|
||||
#, c-format
|
||||
msgid "%pB: relocation (%d) at 0x%<PRIx64> has wrong r_rsize (0x%x)\n"
|
||||
msgstr ""
|
||||
|
||||
#: coff-rs6000.c:4058 coff64-rs6000.c:2031
|
||||
#: coff-rs6000.c:4039 coff64-rs6000.c:2031
|
||||
#, c-format
|
||||
msgid "%pB: symbol `%s' has unrecognized smclas %d"
|
||||
msgstr ""
|
||||
@ -397,13 +397,13 @@ msgstr ""
|
||||
msgid "R_AMD64_IMAGEBASE with __ImageBase undefined"
|
||||
msgstr ""
|
||||
|
||||
#: coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13189 elfxx-mips.c:13515
|
||||
#: coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13189 elfxx-mips.c:13513
|
||||
#: reloc.c:8495 reloc16.c:314
|
||||
#, c-format
|
||||
msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
|
||||
msgstr ""
|
||||
|
||||
#: coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13525 reloc.c:8505
|
||||
#: coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13523 reloc.c:8505
|
||||
#, c-format
|
||||
msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
|
||||
msgstr ""
|
||||
@ -938,7 +938,7 @@ msgstr ""
|
||||
#: elf32-moxie.c:292 elf32-msp430.c:1510 elf32-nds32.c:6097 elf32-or1k.c:1901
|
||||
#: elf32-score.c:2738 elf32-score7.c:2549 elf32-spu.c:5089
|
||||
#: elf32-tilepro.c:3376 elf32-v850.c:2298 elf32-visium.c:684
|
||||
#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10653
|
||||
#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10651
|
||||
#: elfxx-tilegx.c:3746
|
||||
msgid "internal error: unsupported relocation error"
|
||||
msgstr ""
|
||||
@ -1111,7 +1111,7 @@ msgstr ""
|
||||
msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: elf.c:517 elf32-arm.c:17730 elfnn-aarch64.c:8291 elfnn-loongarch.c:4430
|
||||
#: elf.c:517 elf32-arm.c:17730 elfnn-aarch64.c:8291 elfnn-loongarch.c:4391
|
||||
#, c-format
|
||||
msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
|
||||
msgstr ""
|
||||
@ -1558,7 +1558,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: elf32-arc.c:938 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1390
|
||||
#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15687
|
||||
#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15685
|
||||
#, c-format
|
||||
msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
|
||||
msgstr ""
|
||||
@ -2356,7 +2356,7 @@ msgstr ""
|
||||
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
|
||||
#: elf32-bfin.c:4728 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1265
|
||||
#: elf32-score.c:3987 elf32-score7.c:3794 elf32-vax.c:536 elf32-xgate.c:494
|
||||
#: elfxx-mips.c:16373
|
||||
#: elfxx-mips.c:16371
|
||||
#, c-format
|
||||
msgid "private flags = %lx:"
|
||||
msgstr ""
|
||||
@ -3774,12 +3774,12 @@ msgstr ""
|
||||
|
||||
#: elf32-sh.c:5013
|
||||
#, c-format
|
||||
msgid "%X%H: relocation to \"%s\" references a different segment\n"
|
||||
msgid "%X%C: relocation to \"%s\" references a different segment\n"
|
||||
msgstr ""
|
||||
|
||||
#: elf32-sh.c:5020
|
||||
#, c-format
|
||||
msgid "%H: warning: relocation to \"%s\" references a different segment\n"
|
||||
msgid "%C: warning: relocation to \"%s\" references a different segment\n"
|
||||
msgstr ""
|
||||
|
||||
#: elf32-sh.c:5488 elf32-sh.c:5570
|
||||
@ -4036,7 +4036,7 @@ msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
|
||||
msgstr ""
|
||||
|
||||
#: elf32-tilepro.c:3627 elfxx-tilegx.c:4017 elfxx-x86.c:2710
|
||||
#: elfnn-aarch64.c:9999 elfnn-loongarch.c:4356 elfnn-riscv.c:3458
|
||||
#: elfnn-aarch64.c:9999 elfnn-loongarch.c:4317 elfnn-riscv.c:3458
|
||||
#, c-format
|
||||
msgid "discarded output section: `%pA'"
|
||||
msgstr ""
|
||||
@ -4893,7 +4893,7 @@ msgid ""
|
||||
"%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
|
||||
msgstr ""
|
||||
|
||||
#: elf64-sparc.c:134 elfcode.h:1593
|
||||
#: elf64-sparc.c:134 elfcode.h:1582
|
||||
#, c-format
|
||||
msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
|
||||
msgstr ""
|
||||
@ -5041,17 +5041,17 @@ msgstr ""
|
||||
msgid "warning: %pB has a corrupt string table index"
|
||||
msgstr ""
|
||||
|
||||
#: elfcode.h:838
|
||||
#: elfcode.h:837
|
||||
#, c-format
|
||||
msgid "warning: %pB has a program header with invalid alignment"
|
||||
msgstr ""
|
||||
|
||||
#: elfcode.h:1050
|
||||
#: elfcode.h:1039
|
||||
#, c-format
|
||||
msgid "%pB: %pA+%<PRIx64>: relocation addend %<PRIx64> too large"
|
||||
msgstr ""
|
||||
|
||||
#: elfcode.h:1313
|
||||
#: elfcode.h:1302
|
||||
#, c-format
|
||||
msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
|
||||
msgstr ""
|
||||
@ -5418,27 +5418,28 @@ msgstr ""
|
||||
msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-loongarch.c:1584
|
||||
#: elfxx-loongarch.c:1590
|
||||
#, c-format
|
||||
msgid "%pB: unsupported relocation type %s"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-loongarch.c:1613
|
||||
#: elfxx-loongarch.c:1619
|
||||
#, c-format
|
||||
msgid "%pB: unsupported bfd relocation type %#x"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-loongarch.c:1632
|
||||
#: elfxx-loongarch.c:1638
|
||||
#, c-format
|
||||
msgid "%pB: unsupported relocation type name %s"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-loongarch.c:1685
|
||||
#: elfxx-loongarch.c:1689
|
||||
#, c-format
|
||||
msgid "%pB: relocation %s right shift %d error 0x%lx"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-loongarch.c:1699
|
||||
#: elfxx-loongarch.c:1699 elfxx-loongarch.c:1735 elfxx-loongarch.c:1770
|
||||
#: elfxx-loongarch.c:1807
|
||||
#, c-format
|
||||
msgid "%pB: relocation %s overflow 0x%lx"
|
||||
msgstr ""
|
||||
@ -5471,533 +5472,533 @@ msgstr ""
|
||||
msgid "%X%H: unsupported branch between ISA modes\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:7345
|
||||
#: elfxx-mips.c:7344
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:7389
|
||||
#: elfxx-mips.c:7388
|
||||
#, c-format
|
||||
msgid "%pB: warning: bad `%s' option size %u smaller than its header"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:7625
|
||||
#: elfxx-mips.c:7624
|
||||
#, c-format
|
||||
msgid "%pB: warning: truncated `%s' option"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:8449 elfxx-mips.c:8575
|
||||
#: elfxx-mips.c:8447 elfxx-mips.c:8573
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%pB: warning: cannot determine the target function for stub section `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:8707
|
||||
#: elfxx-mips.c:8705
|
||||
#, c-format
|
||||
msgid "%pB: malformed reloc detected for section %s"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:8807
|
||||
#: elfxx-mips.c:8805
|
||||
#, c-format
|
||||
msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:8947
|
||||
#: elfxx-mips.c:8945
|
||||
#, c-format
|
||||
msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:9250
|
||||
#: elfxx-mips.c:9248
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%X%H: relocation %s against `%s' cannot be used when making a shared object; "
|
||||
"recompile with -fPIC\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:9376
|
||||
#: elfxx-mips.c:9374
|
||||
#, c-format
|
||||
msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:9379
|
||||
#: elfxx-mips.c:9377
|
||||
#, c-format
|
||||
msgid "non-dynamic symbol %s in dynamic symbol table"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:9599
|
||||
#: elfxx-mips.c:9597
|
||||
#, c-format
|
||||
msgid "non-dynamic relocations refer to dynamic symbol %s"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:10534
|
||||
#: elfxx-mips.c:10532
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in "
|
||||
"section `%pA'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:10674
|
||||
#: elfxx-mips.c:10672
|
||||
msgid ""
|
||||
"small-data section exceeds 64KB; lower small-data size limit (see option -G)"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:10693
|
||||
#: elfxx-mips.c:10691
|
||||
msgid "cannot convert a jump to JALX for a non-word-aligned address"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:10696
|
||||
#: elfxx-mips.c:10694
|
||||
msgid "jump to a non-word-aligned address"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:10697
|
||||
#: elfxx-mips.c:10695
|
||||
msgid "jump to a non-instruction-aligned address"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:10700
|
||||
#: elfxx-mips.c:10698
|
||||
msgid "cannot convert a branch to JALX for a non-word-aligned address"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:10702
|
||||
#: elfxx-mips.c:10700
|
||||
msgid "branch to a non-instruction-aligned address"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:10704
|
||||
#: elfxx-mips.c:10702
|
||||
msgid "PC-relative load from unaligned address"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:11004
|
||||
#: elfxx-mips.c:11002
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; "
|
||||
"consider using `-Ttext-segment=...'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:11119 elfxx-mips.c:11706
|
||||
#: elfxx-mips.c:11117 elfxx-mips.c:11704
|
||||
#, c-format
|
||||
msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:11678
|
||||
#: elfxx-mips.c:11676
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; "
|
||||
"consider using `-Ttext-segment=...'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:13424 reloc.c:8417
|
||||
#: elfxx-mips.c:13422 reloc.c:8417
|
||||
#, c-format
|
||||
msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:13534 reloc.c:8514
|
||||
#: elfxx-mips.c:13532 reloc.c:8514
|
||||
#, c-format
|
||||
msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:14736
|
||||
#: elfxx-mips.c:14734
|
||||
#, c-format
|
||||
msgid "%pB: unknown architecture %s"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15264
|
||||
#: elfxx-mips.c:15262
|
||||
#, c-format
|
||||
msgid "%pB: illegal section name `%pA'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15541
|
||||
#: elfxx-mips.c:15539
|
||||
#, c-format
|
||||
msgid "%pB: warning: linking abicalls files with non-abicalls files"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15558
|
||||
#: elfxx-mips.c:15556
|
||||
#, c-format
|
||||
msgid "%pB: linking 32-bit code with 64-bit code"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15590 elfxx-mips.c:15656 elfxx-mips.c:15671
|
||||
#: elfxx-mips.c:15588 elfxx-mips.c:15654 elfxx-mips.c:15669
|
||||
#, c-format
|
||||
msgid "%pB: linking %s module with previous %s modules"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15614
|
||||
#: elfxx-mips.c:15612
|
||||
#, c-format
|
||||
msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15639
|
||||
#: elfxx-mips.c:15637
|
||||
#, c-format
|
||||
msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15773
|
||||
#: elfxx-mips.c:15771
|
||||
#, c-format
|
||||
msgid ""
|
||||
"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses "
|
||||
"unknown floating point ABI %d"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15779
|
||||
#: elfxx-mips.c:15777
|
||||
#, c-format
|
||||
msgid ""
|
||||
"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15785
|
||||
#: elfxx-mips.c:15783
|
||||
#, c-format
|
||||
msgid ""
|
||||
"warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15799
|
||||
#: elfxx-mips.c:15797
|
||||
#, c-format
|
||||
msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15818
|
||||
#: elfxx-mips.c:15816
|
||||
#, c-format
|
||||
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15830
|
||||
#: elfxx-mips.c:15828
|
||||
#, c-format
|
||||
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15839
|
||||
#: elfxx-mips.c:15837
|
||||
#, c-format
|
||||
msgid ""
|
||||
"warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %"
|
||||
"d"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15901
|
||||
#: elfxx-mips.c:15899
|
||||
#, c-format
|
||||
msgid "%pB: endianness incompatible with that of the selected emulation"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15915
|
||||
#: elfxx-mips.c:15913
|
||||
#, c-format
|
||||
msgid "%pB: ABI is incompatible with that of the selected emulation"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15968
|
||||
#: elfxx-mips.c:15966
|
||||
#, c-format
|
||||
msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15973
|
||||
#: elfxx-mips.c:15971
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15977
|
||||
#: elfxx-mips.c:15975
|
||||
#, c-format
|
||||
msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15984
|
||||
#: elfxx-mips.c:15982
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:15988
|
||||
#: elfxx-mips.c:15986
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16179
|
||||
#: elfxx-mips.c:16177
|
||||
msgid "-mips32r2 -mfp64 (12 callee-saved)"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16241 elfxx-mips.c:16252
|
||||
#: elfxx-mips.c:16239 elfxx-mips.c:16250
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16243 elfxx-mips.c:16312
|
||||
#: elfxx-mips.c:16241 elfxx-mips.c:16310
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16323
|
||||
#: elfxx-mips.c:16321
|
||||
#, c-format
|
||||
msgid "Hard or soft float\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16326
|
||||
#: elfxx-mips.c:16324
|
||||
#, c-format
|
||||
msgid "Hard float (double precision)\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16329
|
||||
#: elfxx-mips.c:16327
|
||||
#, c-format
|
||||
msgid "Hard float (single precision)\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16332
|
||||
#: elfxx-mips.c:16330
|
||||
#, c-format
|
||||
msgid "Soft float\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16335
|
||||
#: elfxx-mips.c:16333
|
||||
#, c-format
|
||||
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16338
|
||||
#: elfxx-mips.c:16336
|
||||
#, c-format
|
||||
msgid "Hard float (32-bit CPU, Any FPU)\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16341
|
||||
#: elfxx-mips.c:16339
|
||||
#, c-format
|
||||
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16344
|
||||
#: elfxx-mips.c:16342
|
||||
#, c-format
|
||||
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16376
|
||||
#: elfxx-mips.c:16374
|
||||
#, c-format
|
||||
msgid " [abi=O32]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16378
|
||||
#: elfxx-mips.c:16376
|
||||
#, c-format
|
||||
msgid " [abi=O64]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16380
|
||||
#: elfxx-mips.c:16378
|
||||
#, c-format
|
||||
msgid " [abi=EABI32]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16382
|
||||
#: elfxx-mips.c:16380
|
||||
#, c-format
|
||||
msgid " [abi=EABI64]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16384
|
||||
#: elfxx-mips.c:16382
|
||||
#, c-format
|
||||
msgid " [abi unknown]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16386
|
||||
#: elfxx-mips.c:16384
|
||||
#, c-format
|
||||
msgid " [abi=N32]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16388
|
||||
#: elfxx-mips.c:16386
|
||||
#, c-format
|
||||
msgid " [abi=64]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16390
|
||||
#: elfxx-mips.c:16388
|
||||
#, c-format
|
||||
msgid " [no abi set]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16415
|
||||
#: elfxx-mips.c:16413
|
||||
#, c-format
|
||||
msgid " [unknown ISA]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-mips.c:16435
|
||||
#: elfxx-mips.c:16433
|
||||
#, c-format
|
||||
msgid " [not 32bitmode]"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1660
|
||||
#: elfxx-riscv.c:1657
|
||||
#, c-format
|
||||
msgid "x ISA extension `%s' must be set with the versions"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1666
|
||||
#: elfxx-riscv.c:1663
|
||||
#, c-format
|
||||
msgid "cannot find default versions of the ISA extension `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1772
|
||||
#: elfxx-riscv.c:1769
|
||||
#, c-format
|
||||
msgid "%s: first ISA extension must be `e', `i' or `g'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1796
|
||||
#: elfxx-riscv.c:1793
|
||||
#, c-format
|
||||
msgid "%s: unknown standard ISA extension or prefix class `%c'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1832
|
||||
#: elfxx-riscv.c:1829
|
||||
#, c-format
|
||||
msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1856
|
||||
#: elfxx-riscv.c:1853
|
||||
#, c-format
|
||||
msgid "%s: unknown prefixed ISA extension `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1880
|
||||
#: elfxx-riscv.c:1877
|
||||
#, c-format
|
||||
msgid "%s: prefixed ISA extension must separate with _"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1934
|
||||
#: elfxx-riscv.c:1931
|
||||
#, c-format
|
||||
msgid "rv%d does not support the `e' extension"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1942
|
||||
#: elfxx-riscv.c:1939
|
||||
#, c-format
|
||||
msgid "rv%d does not support the `q' extension"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1949
|
||||
#: elfxx-riscv.c:1946
|
||||
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:1970
|
||||
#: elfxx-riscv.c:1967
|
||||
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2032
|
||||
#: elfxx-riscv.c:2029
|
||||
#, c-format
|
||||
msgid "%s: ISA string cannot contain uppercase letters"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2060
|
||||
#: elfxx-riscv.c:2057
|
||||
#, c-format
|
||||
msgid "%s: ISA string must begin with rv32 or rv64"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2286
|
||||
#: elfxx-riscv.c:2283
|
||||
#, c-format
|
||||
msgid "invalid ISA extension ends with <number>p in .option arch `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2309
|
||||
#: elfxx-riscv.c:2306
|
||||
#, c-format
|
||||
msgid "unknown ISA extension `%s' in .option arch `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2320
|
||||
#: elfxx-riscv.c:2317
|
||||
#, c-format
|
||||
msgid "cannot + or - base extension `%s' in .option arch `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2528 elfxx-riscv.c:2730
|
||||
#: elfxx-riscv.c:2525 elfxx-riscv.c:2727
|
||||
msgid "internal: unreachable INSN_CLASS_*"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2561
|
||||
#: elfxx-riscv.c:2558
|
||||
msgid "m' or `zmmul"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2577
|
||||
#: elfxx-riscv.c:2574
|
||||
msgid "f' and `c"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2585
|
||||
#: elfxx-riscv.c:2582
|
||||
msgid "d' and `c"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2591
|
||||
#: elfxx-riscv.c:2588
|
||||
msgid "f' or `zfinx"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2593
|
||||
#: elfxx-riscv.c:2590
|
||||
msgid "d' or `zdinx"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2595
|
||||
#: elfxx-riscv.c:2592
|
||||
msgid "q' or `zqinx"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2597
|
||||
#: elfxx-riscv.c:2594
|
||||
msgid "zfh' or `zhinx"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2601
|
||||
#: elfxx-riscv.c:2598
|
||||
msgid "zfhmin' or `zhinxmin"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2612
|
||||
#: elfxx-riscv.c:2609
|
||||
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2623
|
||||
#: elfxx-riscv.c:2620
|
||||
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2629
|
||||
#: elfxx-riscv.c:2626
|
||||
msgid "d' and `zfa"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2637
|
||||
#: elfxx-riscv.c:2634
|
||||
msgid "q' and `zfa"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2645
|
||||
#: elfxx-riscv.c:2642
|
||||
msgid "zfh' and `zfa"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2665
|
||||
#: elfxx-riscv.c:2662
|
||||
msgid "zbb' or `zbkb"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2667
|
||||
#: elfxx-riscv.c:2664
|
||||
msgid "zbc' or `zbkc"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2675
|
||||
#: elfxx-riscv.c:2672
|
||||
msgid "zknd' or `zkne"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2681
|
||||
#: elfxx-riscv.c:2678
|
||||
msgid "v' or `zve64x' or `zve32x"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2683
|
||||
#: elfxx-riscv.c:2680
|
||||
msgid "v' or `zve64d' or `zve64f' or `zve32f"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2685
|
||||
#: elfxx-riscv.c:2682
|
||||
msgid "zvbb"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2687
|
||||
#: elfxx-riscv.c:2684
|
||||
msgid "zvbc"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2689
|
||||
#: elfxx-riscv.c:2686
|
||||
msgid "zvkg"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2691
|
||||
#: elfxx-riscv.c:2688
|
||||
msgid "zvkned"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2693
|
||||
#: elfxx-riscv.c:2690
|
||||
msgid "zvknha"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2695
|
||||
#: elfxx-riscv.c:2692
|
||||
msgid "zvknhb"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2697
|
||||
#: elfxx-riscv.c:2694
|
||||
msgid "zvksed"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2699
|
||||
#: elfxx-riscv.c:2696
|
||||
msgid "zvksh"
|
||||
msgstr ""
|
||||
|
||||
#: elfxx-riscv.c:2703
|
||||
#: elfxx-riscv.c:2700
|
||||
msgid "h"
|
||||
msgstr ""
|
||||
|
||||
@ -9100,7 +9101,7 @@ msgstr ""
|
||||
msgid "Internal error: unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: elfnn-loongarch.c:3848 elfnn-riscv.c:4766
|
||||
#: elfnn-loongarch.c:3809 elfnn-riscv.c:4766
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-"
|
||||
|
@ -7753,6 +7753,10 @@ ENUM
|
||||
BFD_RELOC_BPF_64
|
||||
ENUMX
|
||||
BFD_RELOC_BPF_DISP32
|
||||
ENUMX
|
||||
BFD_RELOC_BPF_DISPCALL32
|
||||
ENUMX
|
||||
BFD_RELOC_BPF_DISP16
|
||||
ENUMDOC
|
||||
Linux eBPF relocations.
|
||||
|
||||
|
@ -359,6 +359,9 @@ CODE_FRAGMENT
|
||||
. TMS320C54X only. *}
|
||||
.#define SEC_TIC54X_BLOCK 0x10000000
|
||||
.
|
||||
. {* This section has the SHF_X86_64_LARGE flag. This is ELF x86-64 only. *}
|
||||
.#define SEC_ELF_LARGE 0x10000000
|
||||
.
|
||||
. {* Conditionally link this section; do not link if there are no
|
||||
. references found to any symbol in the section. This is for TI
|
||||
. TMS320C54X only. *}
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
In releases, the date is not included in either version strings or
|
||||
sonames. */
|
||||
#define BFD_VERSION_DATE 20230730
|
||||
#define BFD_VERSION_DATE 20230802
|
||||
#define BFD_VERSION @bfd_version@
|
||||
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
|
||||
#define REPORT_BUGS_TO @report_bugs_to@
|
||||
|
@ -1 +1 @@
|
||||
m4_define([BFD_VERSION], [2.41])
|
||||
m4_define([BFD_VERSION], [2.41.50])
|
||||
|
@ -1,7 +1,26 @@
|
||||
2023-07-30 Nick Clifton <nickc@redhat.com>
|
||||
2023-07-30 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
This is the 2.41 release.
|
||||
* configure: Regenerate.
|
||||
* readelf.c (get_machine_flags): Recognize and pretty print BPF
|
||||
machine flags.
|
||||
|
||||
2023-07-24 Johannes Schauer Marin Rodrigues <josch@debian.org>
|
||||
|
||||
* doc/binutils.texi (objcopy): Document change in behaviour of
|
||||
objcopy's --preserve-dates command line option.
|
||||
|
||||
2023-07-09 Fangrui Song <maskray@google.com>
|
||||
|
||||
PR 30592
|
||||
* NEWS: Mention the new feature for objcopy.
|
||||
* doc/binutils.texi: Mention "large".
|
||||
* objcopy.c (parse_flags): Parse "large".
|
||||
(check_new_section_flags): Error if "large" is used with a
|
||||
non-x86-64 ELF target.
|
||||
* testsuite/binutils-all/x86-64/large-sections.d: New.
|
||||
* testsuite/binutils-all/x86-64/large-sections.s: New.
|
||||
* testsuite/binutils-all/x86-64/large-sections-i386.d: New.
|
||||
* testsuite/binutils-all/x86-64/large-sections-2.d: New.
|
||||
* testsuite/binutils-all/x86-64/large-sections-2-x32.d: New.
|
||||
|
||||
2023-07-03 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
-*- text -*-
|
||||
|
||||
* objcopy --set-section-flags now supports "large" to set SHF_X86_64_LARGE
|
||||
for ELF x86-64 objects.
|
||||
|
||||
Changes in 2.41:
|
||||
|
||||
* The MIPS port now supports the Sony Interactive Entertainment Allegrex
|
||||
|
@ -34,6 +34,10 @@ How to perform a release.
|
||||
directories and the top level Makefile and configure files. Also
|
||||
consider updating the toplevel libtool files.
|
||||
|
||||
-------------------------------------------------
|
||||
How to create the release branch.
|
||||
-------------------------------------------------
|
||||
|
||||
Approx time to complete from here: 2 hours ....
|
||||
|
||||
2.5 If you have not built from the sources recently then now is the
|
||||
@ -52,8 +56,8 @@ Approx time to complete from here: 2 hours ....
|
||||
|
||||
4. Create the release branch using:
|
||||
|
||||
git branch binutils-2_41-branch
|
||||
git push origin binutils-2_41-branch
|
||||
git branch binutils-2_42-branch
|
||||
git push origin binutils-2_42-branch
|
||||
|
||||
If you get a message like:
|
||||
|
||||
@ -85,8 +89,8 @@ Approx time to complete from here: 2 hours ....
|
||||
ask Joel Brobecker <brobecker AT adacore DOT com>.
|
||||
|
||||
7. Rename the current HEAD version entry in Bugzilla, and create a
|
||||
new one. E.g. rename "2.41 (HEAD)" to 2.41, and create
|
||||
"2.42 (HEAD)":
|
||||
new one. E.g. rename "2.42 (HEAD)" to 2.42, and create
|
||||
"2.43 (HEAD)":
|
||||
|
||||
https://sourceware.org/bugzilla/editversions.cgi?product=binutils
|
||||
|
||||
@ -99,13 +103,13 @@ Approx time to complete from here: 2 hours ....
|
||||
and the version number on the MAINLINE should be set to 2.41.50 -
|
||||
ie half way to 2.42 release.
|
||||
|
||||
So the branch bfd/version.m4 has:
|
||||
So the BRANCH bfd/version.m4 has:
|
||||
|
||||
m4_define([BFD_VERSION], [2.40.90])
|
||||
m4_define([BFD_VERSION], [2.41.90])
|
||||
|
||||
and the mainline has:
|
||||
and the MAINLINE has:
|
||||
|
||||
m4_define([BFD_VERSION], [2.41.50])
|
||||
m4_define([BFD_VERSION], [2.42.50])
|
||||
|
||||
Regenerate various files on both branch and HEAD by configuring
|
||||
with "--enable-maintainer-mode --enable-gold --enable-shared" and then building
|
||||
@ -137,21 +141,21 @@ Approx time to complete from here: 2 hours ....
|
||||
xz -9 binutils-<release>.tar
|
||||
|
||||
eg:
|
||||
touch -d 2023-06-01 binutils-2.40.90/gas/doc/.dirstamp
|
||||
tar rvf binutils-2.40.90.tar binutils-2.40.90/gas/doc/.ditstamp
|
||||
rm binutils-2.40.90.tar.xz
|
||||
xz -9 binutils-2.40.90.tar
|
||||
touch -d 2024-01-01 binutils-2.41.90/gas/doc/.dirstamp
|
||||
tar rvf binutils-2.41.90.tar binutils-2.41.90/gas/doc/.dirstamp
|
||||
rm binutils-2.41.90.tar.xz
|
||||
xz -9 binutils-2.41.90.tar
|
||||
|
||||
...END OF FIXME
|
||||
|
||||
c. Build a test target using this tarball.
|
||||
|
||||
cp binutils-2.40.90.tar.xz /dev/shm
|
||||
cp binutils-2.41.90.tar.xz /dev/shm
|
||||
pushd /dev/shm
|
||||
tar xvf binutils-2.40.90.tar.xz
|
||||
tar xvf binutils-2.41.90.tar.xz
|
||||
mkdir build
|
||||
cd build
|
||||
../binutils-2.40.90/configure --quiet --enable-gold
|
||||
../binutils-2.41.90/configure --quiet --enable-gold
|
||||
make
|
||||
popd
|
||||
|
||||
@ -173,11 +177,11 @@ Approx time to complete from here: 2 hours ....
|
||||
------------------------------------------------------------------------
|
||||
Dear Translation Project
|
||||
|
||||
The 2.40 release branch has been created for the GNU Binutils project.
|
||||
The 2.42 release branch has been created for the GNU Binutils project.
|
||||
|
||||
A snapshot of the branch sources can be found here:
|
||||
|
||||
https://sourceware.org/pub/binutils/snapshots/binutils-2.39.90.tar.xz
|
||||
https://sourceware.org/pub/binutils/snapshots/binutils-2.41.90.tar.xz
|
||||
|
||||
We hope to make the official release of the sources on the <DATE>
|
||||
although that could change if there are important bugs that need to
|
||||
@ -188,7 +192,7 @@ Dear Translation Project
|
||||
binutils mailing list. Set a date for when the release will
|
||||
actually happen. Something like:
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Hi Everyone,
|
||||
|
||||
The <NEW_VERSION> branch has now been created:
|
||||
@ -219,25 +223,39 @@ Hi Everyone,
|
||||
architectures...
|
||||
|
||||
==============================================================================
|
||||
==============================================================================
|
||||
|
||||
When the time comes to actually make the release....
|
||||
For the next few weeks, monitor the mailing list for new translations
|
||||
and respond to any requests to have patches applied to the branch.
|
||||
|
||||
==============================================================================
|
||||
==============================================================================
|
||||
|
||||
Then, a couple of weeks later ...
|
||||
|
||||
-------------------------------------------------
|
||||
How to create the release.
|
||||
-------------------------------------------------
|
||||
|
||||
20. Make sure that the branch sources still build, test and install
|
||||
correctly. Make sure that the sources are clean, without any
|
||||
patch files (.reg .orig *~) left over.
|
||||
|
||||
cd <branch>
|
||||
git pull
|
||||
git clean -fdx
|
||||
cd <builds>
|
||||
make
|
||||
|
||||
21. a. Update the release number in bfd/version.m4 on the release
|
||||
branch to a whole new minor version number, without a point
|
||||
value. Eg "2.40.90" becomes "2.41". NB/ Not: "2.41.00"
|
||||
value. Eg "2.41.90" becomes "2.42". NB/ Not: "2.42.00"
|
||||
|
||||
b. Change bfd/development.sh to set all values to "false".
|
||||
|
||||
c. Regenerate the configure and makefiles. And *info* files.
|
||||
|
||||
cd <build-configured-with-enable-maintainer-mode>
|
||||
make all-gas all-ld all-binutils all-gprof all-gold all-gprofng all-libctf
|
||||
make info
|
||||
|
||||
@ -259,7 +277,7 @@ When the time comes to actually make the release....
|
||||
need to agree to have it there.
|
||||
|
||||
e. Add ChangeLog entries for all of the updates and add a
|
||||
"this-is-the-2.41-release" comment and commit.
|
||||
"this-is-the-2.42-release" comment and commit.
|
||||
|
||||
git add .
|
||||
git commit
|
||||
@ -281,7 +299,11 @@ When the time comes to actually make the release....
|
||||
DEVO_SUPPORT variable in the src-release.sh script. If they are
|
||||
needed then add them.
|
||||
|
||||
Create the release tarballs:
|
||||
PARANOIA: Check that there are no pending commits:
|
||||
|
||||
git status
|
||||
|
||||
Then create the release tarballs:
|
||||
|
||||
./src-release.sh -b -g -l -x binutils
|
||||
|
||||
@ -326,14 +348,15 @@ When the time comes to actually make the release....
|
||||
[optional: add "-u XXXXX" to sign with a gpg key]
|
||||
enter a tag message such as: "Official GNU Binutils 2.4x release"
|
||||
|
||||
git tag -a binutils-2_41 -u DD9E3C4F <=== Be careful to get the tag right
|
||||
git tag -a <TAG> -u <Your Key>
|
||||
git tag -a binutils-2_42 -u DD9E3C4F <=== Be careful to get the tag right
|
||||
|
||||
NB/ If you do sign the binaries make sure to use a key
|
||||
that has been published with the FSF.
|
||||
|
||||
Then push the release:
|
||||
|
||||
git push origin binutils-2_41
|
||||
git push origin binutils-2_42
|
||||
|
||||
If you get an error message along the lines of:
|
||||
"Invalid revision range ..."
|
||||
@ -341,7 +364,7 @@ When the time comes to actually make the release....
|
||||
|
||||
27. Upload the tarballs to ftp.gnu.org.
|
||||
|
||||
for A in bz2 gz lz xz ; do gnupload --to ftp.gnu.org:binutils binutils-2.41.tar.$A ; done
|
||||
gnupload --to ftp.gnu.org:binutils binutils-2.42.tar.*
|
||||
|
||||
Be prepared to provide the password for the key, if you
|
||||
signed the binaries.
|
||||
@ -369,7 +392,7 @@ When the time comes to actually make the release....
|
||||
29. Update web pages. For sourceware.org:
|
||||
|
||||
Create a new documentation folder on the sourceware.org web
|
||||
pages as /sourceware/www/sourceware/htdocs/binutils/docs-2.3x.
|
||||
pages as /sourceware/www/sourceware/htdocs/binutils/docs-2.4x.
|
||||
|
||||
sftp sourceware.org
|
||||
cd /sourceware/www/sourceware/htdocs/binutils
|
||||
@ -378,9 +401,9 @@ When the time comes to actually make the release....
|
||||
mkdir as
|
||||
mkdir bfd
|
||||
mkdir binutils
|
||||
mkdir gprof
|
||||
mkdir gprof [NB/ gprofng is not needed]
|
||||
mkdir ld
|
||||
cd ../docs-2.3(x-1)
|
||||
cd ../docs-2.4(x-1)
|
||||
get index.html
|
||||
|
||||
Update the (local copy of the) index.html file to point to the
|
||||
@ -412,7 +435,7 @@ When the time comes to actually make the release....
|
||||
put bfd.pdf
|
||||
|
||||
cd binutils
|
||||
lcd ../../binutils/binutils <=== NB/ Path not like others
|
||||
lcd ../../binutils/binutils_html <=== NB/ Path not like others
|
||||
put *
|
||||
cd ..
|
||||
lcd ../doc <=== Also not like the others
|
||||
@ -473,7 +496,7 @@ Hi FSF Webmasters,
|
||||
https://www.gnu.org/software/binutils/binutils.html
|
||||
|
||||
be updated to indicate that there is now a newer version available
|
||||
(2.3x). I have already updated the related page on the sourceware
|
||||
(2.4x). I have already updated the related page on the sourceware
|
||||
website so this might be useful as a template:
|
||||
|
||||
https://sourceware.org/binutils/
|
||||
@ -536,7 +559,7 @@ Cheers
|
||||
date suffix keeps the version lower than the trunk version.
|
||||
Regenerate files. Commit these changes.
|
||||
|
||||
33. Email the binutils list telling everyone that the 2.34 branch
|
||||
33. Email the binutils list telling everyone that the 2.4x branch
|
||||
is now open for business as usual and that patches no longer
|
||||
need special approval.
|
||||
|
||||
@ -544,7 +567,7 @@ Cheers
|
||||
any pending obsolete targets into the definitely obsolete
|
||||
section. Create a changelog entry and commit.
|
||||
|
||||
|
||||
Sit back and relax, you are all done.
|
||||
--------------------------------------------------------------------------
|
||||
How to perform a POINT release.
|
||||
--------------------------------------------------------------------------
|
||||
|
@ -76,12 +76,6 @@ extern void set_times (const char *, const struct stat *);
|
||||
extern int smart_rename (const char *, const char *, int,
|
||||
struct stat *, bool);
|
||||
|
||||
|
||||
/* In libiberty. */
|
||||
void *xmalloc (size_t);
|
||||
|
||||
void *xrealloc (void *, size_t);
|
||||
|
||||
#if __GNUC__ >= 7
|
||||
#define _mul_overflow(a, b, res) __builtin_mul_overflow (a, b, res)
|
||||
#else
|
||||
|
266
binutils/configure
vendored
266
binutils/configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for binutils 2.41.
|
||||
# Generated by GNU Autoconf 2.69 for binutils 2.41.50.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||
@ -587,8 +587,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='binutils'
|
||||
PACKAGE_TARNAME='binutils'
|
||||
PACKAGE_VERSION='2.41'
|
||||
PACKAGE_STRING='binutils 2.41'
|
||||
PACKAGE_VERSION='2.41.50'
|
||||
PACKAGE_STRING='binutils 2.41.50'
|
||||
PACKAGE_BUGREPORT=''
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -1401,7 +1401,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures binutils 2.41 to adapt to many kinds of systems.
|
||||
\`configure' configures binutils 2.41.50 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1472,7 +1472,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of binutils 2.41:";;
|
||||
short | recursive ) echo "Configuration of binutils 2.41.50:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1631,7 +1631,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
binutils configure 2.41
|
||||
binutils configure 2.41.50
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -2099,7 +2099,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by binutils $as_me 2.41, which was
|
||||
It was created by binutils $as_me 2.41.50, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -3081,7 +3081,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='binutils'
|
||||
VERSION='2.41'
|
||||
VERSION='2.41.50'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -14542,7 +14542,6 @@ _ACEOF
|
||||
fi
|
||||
|
||||
|
||||
all_targets=false
|
||||
BUILD_SRCONV=
|
||||
BUILD_DLLTOOL=
|
||||
DLLTOOL_DEFS=
|
||||
@ -14559,140 +14558,137 @@ od_vectors=
|
||||
|
||||
for targ in $target $canon_targets
|
||||
do
|
||||
if test "x$targ" = "xall"; then
|
||||
all_targets=true
|
||||
case $targ in
|
||||
all | *-*-hms*)
|
||||
BUILD_SRCONV='$(SRCONV_PROG)'
|
||||
BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)'
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
all | spu-*-*)
|
||||
BUILD_MISC='bin2c$(EXEEXT_FOR_BUILD)'
|
||||
;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*)
|
||||
BUILD_INSTALL_MISC=embedspu
|
||||
;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
mep-*)
|
||||
OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0"
|
||||
;;
|
||||
powerpc*-aix5.[01])
|
||||
;;
|
||||
powerpc*-aix[5-9].*)
|
||||
OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
|
||||
;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
aarch64-*-mingw*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm-*-pe*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | all)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
od_vectors="$od_vectors objdump_private_desc_xcoff objdump_private_desc_pe"
|
||||
else
|
||||
case $targ in
|
||||
*-*-hms*) BUILD_SRCONV='$(SRCONV_PROG)' ;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
aarch64-*-mingw*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm-*-pe*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
x86_64-*-mingw* | x86_64-*-cygwin*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32**)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
;;
|
||||
i[3-7]86-*-interix)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
i[3-7]86-*-interix)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
|
||||
;;
|
||||
powerpc*-aix5.[01])
|
||||
;;
|
||||
powerpc*-aix[5-9].*)
|
||||
OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
|
||||
;;
|
||||
powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*)
|
||||
case "$BUILD_INSTALL_MISC" in
|
||||
*embedspu*) ;;
|
||||
*) BUILD_INSTALL_MISC="${BUILD_INSTALL_MISC} embedspu"
|
||||
esac
|
||||
;;
|
||||
sh*-*-pe)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
spu-*-*)
|
||||
BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)'
|
||||
;;
|
||||
mcore-*-pe)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
|
||||
;;
|
||||
mcore-*-pe)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
mcore-*-elf)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
mcore-*-elf)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE_ELF"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
|
||||
;;
|
||||
mep-*)
|
||||
OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
|
||||
;;
|
||||
sh*-*-pe)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
x86_64-*-mingw* | x86_64-*-cygwin*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
esac
|
||||
|
||||
# Add objdump private vectors.
|
||||
case $targ in
|
||||
avr-*-*)
|
||||
od_vectors="$od_vectors objdump_private_desc_elf32_avr"
|
||||
;;
|
||||
powerpc*-*-aix* | rs6000-*-aix*)
|
||||
od_vectors="$od_vectors objdump_private_desc_xcoff"
|
||||
;;
|
||||
*-*-pe* | *-*-cygwin* | *-*-mingw*)
|
||||
od_vectors="$od_vectors objdump_private_desc_pe"
|
||||
;;
|
||||
*-*-darwin*)
|
||||
od_vectors="$od_vectors objdump_private_desc_mach_o"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# Add objdump private vectors.
|
||||
case $targ in
|
||||
all)
|
||||
od_vectors="objdump_private_desc_elf32_avr objdump_private_desc_xcoff\
|
||||
objdump_private_desc_pe objdump_private_desc_mach_o"
|
||||
;;
|
||||
avr-*-*)
|
||||
od_vectors="$od_vectors objdump_private_desc_elf32_avr"
|
||||
;;
|
||||
powerpc*-*-aix* | rs6000-*-aix*)
|
||||
od_vectors="$od_vectors objdump_private_desc_xcoff"
|
||||
;;
|
||||
*-*-pe* | *-*-cygwin* | *-*-mingw*)
|
||||
od_vectors="$od_vectors objdump_private_desc_pe"
|
||||
;;
|
||||
*-*-darwin*)
|
||||
od_vectors="$od_vectors objdump_private_desc_mach_o"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Uniq objdump private vector, build objdump target ofiles.
|
||||
@ -15332,7 +15328,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by binutils $as_me 2.41, which was
|
||||
This file was extended by binutils $as_me 2.41.50, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -15398,7 +15394,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
binutils config.status 2.41
|
||||
binutils config.status 2.41.50
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -319,7 +319,6 @@ fi
|
||||
AC_CHECK_HEADER(iconv.h)
|
||||
AM_ICONV
|
||||
|
||||
all_targets=false
|
||||
BUILD_SRCONV=
|
||||
BUILD_DLLTOOL=
|
||||
DLLTOOL_DEFS=
|
||||
@ -336,148 +335,143 @@ od_vectors=
|
||||
|
||||
for targ in $target $canon_targets
|
||||
do
|
||||
if test "x$targ" = "xall"; then
|
||||
all_targets=true
|
||||
case $targ in
|
||||
all | *-*-hms*)
|
||||
BUILD_SRCONV='$(SRCONV_PROG)'
|
||||
BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)'
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
all | spu-*-*)
|
||||
BUILD_MISC='bin2c$(EXEEXT_FOR_BUILD)'
|
||||
;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*)
|
||||
BUILD_INSTALL_MISC=embedspu
|
||||
;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
mep-*)
|
||||
OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0"
|
||||
;;
|
||||
changequote(,)dnl
|
||||
powerpc*-aix5.[01])
|
||||
;;
|
||||
powerpc*-aix[5-9].*)
|
||||
changequote([,])dnl
|
||||
OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
|
||||
;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
aarch64-*-mingw*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm-*-pe*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
changequote(,)dnl
|
||||
i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | all)
|
||||
changequote([,])dnl
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
od_vectors="$od_vectors objdump_private_desc_xcoff objdump_private_desc_pe"
|
||||
else
|
||||
case $targ in
|
||||
*-*-hms*) BUILD_SRCONV='$(SRCONV_PROG)' ;;
|
||||
esac
|
||||
|
||||
case $targ in
|
||||
aarch64-*-mingw*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_AARCH64"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_AARCH64"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm-wince-pe* | arm-*-wince | arm*-*-cegcc* | arm*-*-mingw32ce*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM_WINCE"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_WINCE -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
arm-*-pe*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_ARM"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
x86_64-*-mingw* | x86_64-*-cygwin*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
;;
|
||||
changequote(,)dnl
|
||||
i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32**)
|
||||
i[3-7]86-*-interix)
|
||||
changequote([,])dnl
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
changequote(,)dnl
|
||||
i[3-7]86-*-interix)
|
||||
changequote([,])dnl
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
|
||||
;;
|
||||
changequote(,)dnl
|
||||
powerpc*-aix5.[01])
|
||||
changequote([,])dnl
|
||||
;;
|
||||
changequote(,)dnl
|
||||
powerpc*-aix[5-9].*)
|
||||
changequote([,])dnl
|
||||
OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
|
||||
;;
|
||||
powerpc*-*-linux* | powerpc*-*-elf* | powerpc*-*-eabi*)
|
||||
case "$BUILD_INSTALL_MISC" in
|
||||
*embedspu*) ;;
|
||||
*) BUILD_INSTALL_MISC="${BUILD_INSTALL_MISC} embedspu"
|
||||
esac
|
||||
;;
|
||||
sh*-*-pe)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
spu-*-*)
|
||||
BUILD_MISC="${BUILD_MISC} "'bin2c$(EXEEXT_FOR_BUILD)'
|
||||
;;
|
||||
mcore-*-pe)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
|
||||
;;
|
||||
mcore-*-pe)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
mcore-*-elf)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
mcore-*-elf)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MCORE_ELF"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
|
||||
;;
|
||||
mep-*)
|
||||
OBJDUMP_DEFS="-DSKIP_ZEROES=256 -DSKIP_ZEROES_AT_END=0"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
|
||||
;;
|
||||
sh*-*-pe)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_SH"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
;;
|
||||
x86_64-*-mingw* | x86_64-*-cygwin*)
|
||||
BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
|
||||
if test -z "$DLLTOOL_DEFAULT"; then
|
||||
DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64"
|
||||
fi
|
||||
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MX86_64"
|
||||
BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
|
||||
BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
|
||||
BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
|
||||
;;
|
||||
esac
|
||||
|
||||
# Add objdump private vectors.
|
||||
case $targ in
|
||||
avr-*-*)
|
||||
od_vectors="$od_vectors objdump_private_desc_elf32_avr"
|
||||
;;
|
||||
powerpc*-*-aix* | rs6000-*-aix*)
|
||||
od_vectors="$od_vectors objdump_private_desc_xcoff"
|
||||
;;
|
||||
*-*-pe* | *-*-cygwin* | *-*-mingw*)
|
||||
od_vectors="$od_vectors objdump_private_desc_pe"
|
||||
;;
|
||||
*-*-darwin*)
|
||||
od_vectors="$od_vectors objdump_private_desc_mach_o"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# Add objdump private vectors.
|
||||
case $targ in
|
||||
all)
|
||||
od_vectors="objdump_private_desc_elf32_avr objdump_private_desc_xcoff\
|
||||
objdump_private_desc_pe objdump_private_desc_mach_o"
|
||||
;;
|
||||
avr-*-*)
|
||||
od_vectors="$od_vectors objdump_private_desc_elf32_avr"
|
||||
;;
|
||||
powerpc*-*-aix* | rs6000-*-aix*)
|
||||
od_vectors="$od_vectors objdump_private_desc_xcoff"
|
||||
;;
|
||||
*-*-pe* | *-*-cygwin* | *-*-mingw*)
|
||||
od_vectors="$od_vectors objdump_private_desc_pe"
|
||||
;;
|
||||
*-*-darwin*)
|
||||
od_vectors="$od_vectors objdump_private_desc_mach_o"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Uniq objdump private vector, build objdump target ofiles.
|
||||
|
@ -1626,6 +1626,11 @@ commands. If the input was '12345678' then the outputs would be
|
||||
Set the access and modification dates of the output file to be the same
|
||||
as those of the input file.
|
||||
|
||||
This option also copies the date stored in a PE format file's header,
|
||||
unless the SOURCE_DATE_EPOCH environment variable is defined. If it
|
||||
is defined then this variable will be used as the date stored in the
|
||||
header, interpreted as the number of seconds since the Unix epoch.
|
||||
|
||||
@item -D
|
||||
@itemx --enable-deterministic-archives
|
||||
@cindex deterministic archives
|
||||
@ -1745,13 +1750,14 @@ Set the flags for any sections matching @var{sectionpattern}. The
|
||||
@var{flags} argument is a comma separated string of flag names. The
|
||||
recognized names are @samp{alloc}, @samp{contents}, @samp{load},
|
||||
@samp{noload}, @samp{readonly}, @samp{code}, @samp{data}, @samp{rom},
|
||||
@samp{exclude}, @samp{share}, and @samp{debug}. You can set the
|
||||
@samp{contents} flag for a section which does not have contents, but it
|
||||
is not meaningful to clear the @samp{contents} flag of a section which
|
||||
does have contents--just remove the section instead. Not all flags are
|
||||
meaningful for all object file formats. In particular the
|
||||
@samp{share} flag is only meaningful for COFF format files and not for
|
||||
ELF format files.
|
||||
@samp{exclude}, @samp{share}, @samp{debug}, and @samp{large}.
|
||||
You can set the @samp{contents} flag for a section which does not have
|
||||
contents, but it is not meaningful to clear the @samp{contents} flag of a
|
||||
section which does have contents--just remove the section instead. Not all
|
||||
flags are meaningful for all object file formats. In particular the
|
||||
@samp{share} flag is only meaningful for COFF format files and not for ELF
|
||||
format files. The ELF x86-64 specific flag @samp{large} corresponds to
|
||||
SHF_X86_64_LARGE.
|
||||
|
||||
@item --set-section-alignment @var{sectionpattern}=@var{align}
|
||||
Set the alignment for any sections matching @var{sectionpattern}.
|
||||
|
@ -803,6 +803,7 @@ parse_flags (const char *s)
|
||||
PARSE_FLAG ("contents", SEC_HAS_CONTENTS);
|
||||
PARSE_FLAG ("merge", SEC_MERGE);
|
||||
PARSE_FLAG ("strings", SEC_STRINGS);
|
||||
PARSE_FLAG ("large", SEC_ELF_LARGE);
|
||||
#undef PARSE_FLAG
|
||||
else
|
||||
{
|
||||
@ -812,8 +813,10 @@ parse_flags (const char *s)
|
||||
strncpy (copy, s, len);
|
||||
copy[len] = '\0';
|
||||
non_fatal (_("unrecognized section flag `%s'"), copy);
|
||||
fatal (_("supported flags: %s"),
|
||||
"alloc, load, noload, readonly, debug, code, data, rom, exclude, share, contents, merge, strings");
|
||||
fatal (_ ("supported flags: %s"),
|
||||
"alloc, load, noload, readonly, debug, code, data, rom, "
|
||||
"exclude, contents, merge, strings, (COFF specific) share, "
|
||||
"(ELF x86-64 specific) large");
|
||||
}
|
||||
|
||||
s = snext;
|
||||
@ -2618,7 +2621,7 @@ merge_gnu_build_notes (bfd * abfd,
|
||||
}
|
||||
|
||||
static flagword
|
||||
check_new_section_flags (flagword flags, bfd * abfd, const char * secname)
|
||||
check_new_section_flags (flagword flags, bfd *abfd, const char * secname)
|
||||
{
|
||||
/* Only set the SEC_COFF_SHARED flag on COFF files.
|
||||
The same bit value is used by ELF targets to indicate
|
||||
@ -2631,6 +2634,19 @@ check_new_section_flags (flagword flags, bfd * abfd, const char * secname)
|
||||
bfd_get_filename (abfd), secname);
|
||||
flags &= ~ SEC_COFF_SHARED;
|
||||
}
|
||||
|
||||
/* Report a fatal error if 'large' is used with a non-x86-64 ELF target.
|
||||
Suppress the error for non-ELF targets to allow -O binary and formats that
|
||||
use the bit value SEC_ELF_LARGE for other purposes. */
|
||||
if ((flags & SEC_ELF_LARGE) != 0
|
||||
&& bfd_get_flavour (abfd) == bfd_target_elf_flavour
|
||||
&& get_elf_backend_data (abfd)->elf_machine_code != EM_X86_64)
|
||||
{
|
||||
fatal (_ ("%s[%s]: 'large' flag is ELF x86-64 specific"),
|
||||
bfd_get_filename (abfd), secname);
|
||||
flags &= ~SEC_ELF_LARGE;
|
||||
}
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
@ -3599,9 +3615,11 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
|
||||
} *list, *l;
|
||||
bfd **ptr = &obfd->archive_head;
|
||||
bfd *this_element;
|
||||
char *dir;
|
||||
char *dir = NULL;
|
||||
char *filename;
|
||||
|
||||
list = NULL;
|
||||
|
||||
/* PR 24281: It is not clear what should happen when copying a thin archive.
|
||||
One part is straight forward - if the output archive is in a different
|
||||
directory from the input archive then any relative paths in the library
|
||||
@ -3620,7 +3638,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
|
||||
bfd_set_error (bfd_error_invalid_operation);
|
||||
bfd_nonfatal_message (NULL, ibfd, NULL,
|
||||
_("sorry: copying thin archives is not currently supported"));
|
||||
return;
|
||||
goto cleanup_and_exit;
|
||||
}
|
||||
|
||||
/* Make a temp directory to hold the contents. */
|
||||
@ -3638,8 +3656,6 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
|
||||
if (deterministic)
|
||||
obfd->flags |= BFD_DETERMINISTIC_OUTPUT;
|
||||
|
||||
list = NULL;
|
||||
|
||||
this_element = bfd_openr_next_archived_file (ibfd, NULL);
|
||||
|
||||
if (!bfd_set_format (obfd, bfd_get_format (ibfd)))
|
||||
@ -3781,44 +3797,46 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
|
||||
}
|
||||
*ptr = NULL;
|
||||
|
||||
cleanup_and_exit:
|
||||
filename = xstrdup (bfd_get_filename (obfd));
|
||||
if (!(status == 0 ? bfd_close : bfd_close_all_done) (obfd))
|
||||
{
|
||||
if (!status)
|
||||
bfd_nonfatal_message (filename, NULL, NULL, NULL);
|
||||
status = 1;
|
||||
bfd_nonfatal_message (filename, NULL, NULL, NULL);
|
||||
}
|
||||
free (filename);
|
||||
|
||||
filename = xstrdup (bfd_get_filename (ibfd));
|
||||
if (!bfd_close (ibfd))
|
||||
{
|
||||
if (!status)
|
||||
bfd_nonfatal_message (filename, NULL, NULL, NULL);
|
||||
status = 1;
|
||||
bfd_nonfatal_message (filename, NULL, NULL, NULL);
|
||||
}
|
||||
free (filename);
|
||||
|
||||
cleanup_and_exit:
|
||||
/* Delete all the files that we opened. */
|
||||
{
|
||||
struct name_list * next;
|
||||
struct name_list *next;
|
||||
for (l = list; l != NULL; l = next)
|
||||
{
|
||||
if (l->obfd == NULL)
|
||||
rmdir (l->name);
|
||||
else
|
||||
{
|
||||
bfd_close (l->obfd);
|
||||
unlink (l->name);
|
||||
}
|
||||
free ((char *) l->name);
|
||||
next = l->next;
|
||||
free (l);
|
||||
}
|
||||
|
||||
for (l = list; l != NULL; l = next)
|
||||
{
|
||||
if (l->obfd == NULL)
|
||||
rmdir (l->name);
|
||||
else
|
||||
{
|
||||
bfd_close (l->obfd);
|
||||
unlink (l->name);
|
||||
}
|
||||
free ((char *) l->name);
|
||||
next = l->next;
|
||||
free (l);
|
||||
}
|
||||
}
|
||||
|
||||
rmdir (dir);
|
||||
free (dir);
|
||||
if (dir)
|
||||
{
|
||||
rmdir (dir);
|
||||
free (dir);
|
||||
}
|
||||
}
|
||||
|
||||
/* The top-level control. */
|
||||
@ -3917,7 +3935,8 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
|
||||
|
||||
if (obfd == NULL)
|
||||
{
|
||||
close (ofd);
|
||||
if (ofd >= 0)
|
||||
close (ofd);
|
||||
bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
|
||||
bfd_close (ibfd);
|
||||
status = 1;
|
||||
@ -3950,7 +3969,8 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
|
||||
|
||||
if (obfd == NULL)
|
||||
{
|
||||
close (ofd);
|
||||
if (ofd >= 0)
|
||||
close (ofd);
|
||||
bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
|
||||
bfd_close (ibfd);
|
||||
status = 1;
|
||||
@ -4141,13 +4161,25 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
|
||||
flags = p->flags | (flags & (SEC_HAS_CONTENTS | SEC_RELOC));
|
||||
flags = check_new_section_flags (flags, obfd, bfd_section_name (isection));
|
||||
}
|
||||
else if (strip_symbols == STRIP_NONDEBUG
|
||||
&& (flags & (SEC_ALLOC | SEC_GROUP)) != 0
|
||||
&& !is_nondebug_keep_contents_section (ibfd, isection))
|
||||
else
|
||||
{
|
||||
flagword clr = SEC_HAS_CONTENTS | SEC_LOAD | SEC_GROUP;
|
||||
flagword clr = 0;
|
||||
|
||||
if (bfd_get_flavour (obfd) == bfd_target_elf_flavour)
|
||||
/* For --extract-symbols where section sizes are zeroed, clear
|
||||
SEC_LOAD to indicate to coff_compute_section_file_positions that
|
||||
section sizes should not be adjusted for ALIGN_SECTIONS_IN_FILE.
|
||||
We don't want to clear SEC_HAS_CONTENTS as that will result
|
||||
in symbols being classified as 'B' by nm. */
|
||||
if (extract_symbol)
|
||||
clr = SEC_LOAD;
|
||||
/* If only keeping debug sections then we'll be keeping section
|
||||
sizes in headers but making the sections have no contents. */
|
||||
else if (strip_symbols == STRIP_NONDEBUG
|
||||
&& (flags & (SEC_ALLOC | SEC_GROUP)) != 0
|
||||
&& !is_nondebug_keep_contents_section (ibfd, isection))
|
||||
clr = SEC_HAS_CONTENTS | SEC_LOAD | SEC_GROUP;
|
||||
|
||||
if (clr && bfd_get_flavour (obfd) == bfd_target_elf_flavour)
|
||||
{
|
||||
/* PR 29532: Copy group sections intact as otherwise we end up with
|
||||
empty groups. This prevents separate debug info files from
|
||||
@ -4155,7 +4187,7 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
|
||||
originally contained groups. */
|
||||
if (flags & SEC_GROUP)
|
||||
clr = SEC_LOAD;
|
||||
else
|
||||
if ((clr & SEC_HAS_CONTENTS) != 0)
|
||||
make_nobits = true;
|
||||
|
||||
/* Twiddle the input section flags so that it seems to
|
||||
|
@ -270,25 +270,26 @@ elf32_avr_dump_mem_usage (bfd *abfd)
|
||||
"Device: %s\n\n", device.name);
|
||||
|
||||
/* Text size */
|
||||
printf ("Program:%8lu bytes", text_usage);
|
||||
printf ("Program:%8" PRIu64 " bytes", (uint64_t) text_usage);
|
||||
if (device.flash_size > 0)
|
||||
printf (" (%2.1f%% Full)", ((float) text_usage / device.flash_size) * 100);
|
||||
printf (" (%2.1f%% Full)", (double) text_usage / device.flash_size * 100);
|
||||
|
||||
printf ("\n(.text + .data + .bootloader)\n\n");
|
||||
|
||||
/* Data size */
|
||||
printf ("Data: %8lu bytes", data_usage);
|
||||
printf ("Data: %8" PRIu64 " bytes", (uint64_t) data_usage);
|
||||
if (device.ram_size > 0)
|
||||
printf (" (%2.1f%% Full)", ((float) data_usage / device.ram_size) * 100);
|
||||
printf (" (%2.1f%% Full)", (double) data_usage / device.ram_size * 100);
|
||||
|
||||
printf ("\n(.data + .bss + .noinit)\n\n");
|
||||
|
||||
/* EEPROM size */
|
||||
if (eeprom_usage > 0)
|
||||
{
|
||||
printf ("EEPROM: %8lu bytes", eeprom_usage);
|
||||
printf ("EEPROM: %8" PRIu64 " bytes", (uint64_t) eeprom_usage);
|
||||
if (device.eeprom_size > 0)
|
||||
printf (" (%2.1f%% Full)", ((float) eeprom_usage / device.eeprom_size) * 100);
|
||||
printf (" (%2.1f%% Full)",
|
||||
(double) eeprom_usage / device.eeprom_size * 100);
|
||||
|
||||
printf ("\n(.eeprom)\n\n");
|
||||
}
|
||||
@ -315,12 +316,12 @@ elf32_avr_dump_avr_prop (bfd *abfd)
|
||||
|
||||
for (i = 0; i < r_list->record_count; ++i)
|
||||
{
|
||||
printf (" %d %s @ %s + %#08lx (%#08lx)\n",
|
||||
printf (" %d %s @ %s + %#08" PRIx64" (%#08" PRIx64 ")\n",
|
||||
i,
|
||||
avr_elf32_property_record_name (&r_list->records [i]),
|
||||
r_list->records [i].section->name,
|
||||
r_list->records [i].offset,
|
||||
(bfd_section_vma (r_list->records [i].section)
|
||||
(uint64_t) r_list->records [i].offset,
|
||||
((uint64_t) bfd_section_vma (r_list->records [i].section)
|
||||
+ r_list->records [i].offset));
|
||||
switch (r_list->records [i].type)
|
||||
{
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <stddef.h>
|
||||
#include <time.h>
|
||||
#include "safe-ctype.h"
|
||||
#include "libiberty.h"
|
||||
#include "bfd.h"
|
||||
#include "objdump.h"
|
||||
#include "bucomm.h"
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <stddef.h>
|
||||
#include <time.h>
|
||||
#include "safe-ctype.h"
|
||||
#include "libiberty.h"
|
||||
#include "bfd.h"
|
||||
#include "objdump.h"
|
||||
#include "bucomm.h"
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
|
||||
"POT-Creation-Date: 2023-07-03 11:32+0100\n"
|
||||
"POT-Creation-Date: 2023-07-03 11:41+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -168,6 +168,7 @@
|
||||
#include "elf/xtensa.h"
|
||||
#include "elf/z80.h"
|
||||
#include "elf/loongarch.h"
|
||||
#include "elf/bpf.h"
|
||||
|
||||
#include "getopt.h"
|
||||
#include "libiberty.h"
|
||||
@ -1061,6 +1062,8 @@ guess_is_rela (unsigned int e_machine)
|
||||
case EM_ARC:
|
||||
case EM_ARC_COMPACT:
|
||||
case EM_ARC_COMPACT2:
|
||||
case EM_ARC_COMPACT3:
|
||||
case EM_ARC_COMPACT3_64:
|
||||
case EM_AVR:
|
||||
case EM_AVR_OLD:
|
||||
case EM_BLACKFIN:
|
||||
@ -1738,6 +1741,8 @@ dump_relocations (Filedata *filedata,
|
||||
case EM_ARC:
|
||||
case EM_ARC_COMPACT:
|
||||
case EM_ARC_COMPACT2:
|
||||
case EM_ARC_COMPACT3:
|
||||
case EM_ARC_COMPACT3_64:
|
||||
rtype = elf_arc_reloc_type (type);
|
||||
break;
|
||||
|
||||
@ -2968,9 +2973,9 @@ get_machine_name (unsigned e_machine)
|
||||
case EM_NFP: return "Netronome Flow Processor";
|
||||
case EM_VE: return "NEC Vector Engine";
|
||||
case EM_CSKY: return "C-SKY";
|
||||
case EM_ARC_COMPACT3_64: return "Synopsys ARCv2.3 64-bit";
|
||||
case EM_ARC_COMPACT3_64: return "Synopsys ARCv3 64-bit processor";
|
||||
case EM_MCS6502: return "MOS Technology MCS 6502 processor";
|
||||
case EM_ARC_COMPACT3: return "Synopsys ARCv2.3 32-bit";
|
||||
case EM_ARC_COMPACT3: return "Synopsys ARCv3 32-bit processor";
|
||||
case EM_KVX: return "Kalray VLIW core of the MPPA processor family";
|
||||
case EM_65816: return "WDC 65816/65C816";
|
||||
case EM_LOONGARCH: return "LoongArch";
|
||||
@ -3715,6 +3720,14 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
|
||||
default:
|
||||
break;
|
||||
|
||||
case EM_ARC_COMPACT3:
|
||||
strcat (buf, ", HS5x");
|
||||
break;
|
||||
|
||||
case EM_ARC_COMPACT3_64:
|
||||
strcat (buf, ", HS6x");
|
||||
break;
|
||||
|
||||
case EM_ARC_COMPACT2:
|
||||
case EM_ARC_COMPACT:
|
||||
decode_ARC_machine_flags (e_flags, e_machine, buf);
|
||||
@ -4179,6 +4192,11 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
|
||||
strcat (buf, ", no delay");
|
||||
break;
|
||||
|
||||
case EM_BPF:
|
||||
sprintf (buf + strlen (buf), ", CPU Version: %u",
|
||||
e_flags & EF_BPF_CPUVER);
|
||||
break;
|
||||
|
||||
case EM_SPARCV9:
|
||||
if (e_flags & EF_SPARC_32PLUS)
|
||||
strcat (buf, ", v8+");
|
||||
@ -4983,6 +5001,8 @@ get_section_type_name (Filedata * filedata, unsigned int sh_type)
|
||||
case EM_ARC:
|
||||
case EM_ARC_COMPACT:
|
||||
case EM_ARC_COMPACT2:
|
||||
case EM_ARC_COMPACT3:
|
||||
case EM_ARC_COMPACT3_64:
|
||||
result = get_arc_section_type_name (sh_type);
|
||||
break;
|
||||
case EM_MIPS:
|
||||
@ -14324,6 +14344,8 @@ is_32bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
|
||||
return reloc_type == 1; /* R_ARC_32. */
|
||||
case EM_ARC_COMPACT:
|
||||
case EM_ARC_COMPACT2:
|
||||
case EM_ARC_COMPACT3:
|
||||
case EM_ARC_COMPACT3_64:
|
||||
return reloc_type == 4; /* R_ARC_32. */
|
||||
case EM_ARM:
|
||||
return reloc_type == 2; /* R_ARM_ABS32 */
|
||||
@ -14518,6 +14540,8 @@ is_32bit_pcrel_reloc (Filedata * filedata, unsigned int reloc_type)
|
||||
return reloc_type == 10; /* R_ALPHA_SREL32. */
|
||||
case EM_ARC_COMPACT:
|
||||
case EM_ARC_COMPACT2:
|
||||
case EM_ARC_COMPACT3:
|
||||
case EM_ARC_COMPACT3_64:
|
||||
return reloc_type == 49; /* R_ARC_32_PCREL. */
|
||||
case EM_ARM:
|
||||
return reloc_type == 3; /* R_ARM_REL32 */
|
||||
@ -14584,6 +14608,8 @@ is_64bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
|
||||
{
|
||||
case EM_AARCH64:
|
||||
return reloc_type == 257; /* R_AARCH64_ABS64. */
|
||||
case EM_ARC_COMPACT3_64:
|
||||
return reloc_type == 5; /* R_ARC_64. */
|
||||
case EM_ALPHA:
|
||||
return reloc_type == 2; /* R_ALPHA_REFQUAD. */
|
||||
case EM_IA_64:
|
||||
@ -14687,6 +14713,8 @@ is_16bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
|
||||
case EM_ARC:
|
||||
case EM_ARC_COMPACT:
|
||||
case EM_ARC_COMPACT2:
|
||||
case EM_ARC_COMPACT3:
|
||||
case EM_ARC_COMPACT3_64:
|
||||
return reloc_type == 2; /* R_ARC_16. */
|
||||
case EM_ADAPTEVA_EPIPHANY:
|
||||
return reloc_type == 5;
|
||||
@ -14969,6 +14997,8 @@ is_none_reloc (Filedata * filedata, unsigned int reloc_type)
|
||||
case EM_ARC: /* R_ARC_NONE. */
|
||||
case EM_ARC_COMPACT2: /* R_ARC_NONE. */
|
||||
case EM_ARC_COMPACT: /* R_ARC_NONE. */
|
||||
case EM_ARC_COMPACT3: /* R_ARC_NONE. */
|
||||
case EM_ARC_COMPACT3_64: /* R_ARC_NONE. */
|
||||
case EM_ARM: /* R_ARM_NONE. */
|
||||
case EM_CRIS: /* R_CRIS_NONE. */
|
||||
case EM_FT32: /* R_FT32_NONE. */
|
||||
@ -22302,6 +22332,8 @@ process_arch_specific (Filedata * filedata)
|
||||
case EM_ARC:
|
||||
case EM_ARC_COMPACT:
|
||||
case EM_ARC_COMPACT2:
|
||||
case EM_ARC_COMPACT3:
|
||||
case EM_ARC_COMPACT3_64:
|
||||
return process_attributes (filedata, "ARC", SHT_ARC_ATTRIBUTES,
|
||||
display_arc_attribute,
|
||||
display_generic_attribute);
|
||||
|
@ -1028,7 +1028,11 @@ proc keep_debug_symbols_for_elf_relocatable { prog flags test } {
|
||||
{[^a-zA-Z]+([a-zA-Z0-9_\.]+)[ \t]+([A-Z]+)[ \t]+[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9]+[ \t]+([A-Z]*)[ \t]+[0-9]+(.*)} \
|
||||
$got all name type flag rest] } {
|
||||
if { $type != "NOTE" && [regexp {[AG]} $flag] } {
|
||||
lappend non_debug_sections $name
|
||||
# PR 30699: Some debug sections can be in a group, so
|
||||
# exclude sections whose name includes "debug_"
|
||||
if { ! [regexp {debug_} $name] } {
|
||||
lappend non_debug_sections $name
|
||||
}
|
||||
}
|
||||
set got $rest
|
||||
}
|
||||
@ -1086,6 +1090,7 @@ switch [copy_setup] {
|
||||
untested $test5
|
||||
if [is_elf_format] {
|
||||
untested $test6
|
||||
untested $test7
|
||||
}
|
||||
}
|
||||
"3" {
|
||||
|
@ -141,7 +141,7 @@ host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktr
|
||||
# binutils, gas and ld appear in that order because it makes sense to run
|
||||
# "make check" in that particular order.
|
||||
# If --enable-gold is used, "gold" may replace "ld".
|
||||
host_tools="flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools c++tools"
|
||||
host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gdbserver gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools c++tools"
|
||||
|
||||
# these libraries are built for the target environment, and are built after
|
||||
# the host libraries and the host tools (which may be a cross compiler)
|
||||
|
178
gas/ChangeLog
178
gas/ChangeLog
@ -1,20 +1,168 @@
|
||||
2023-07-30 Nick Clifton <nickc@redhat.com>
|
||||
2023-07-30 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
This is the 2.41 release.
|
||||
* configure: Regenerate.
|
||||
* po/gas.pot: Regenerate.
|
||||
* config/tc-bpf.h (elf_tc_final_processing): Define.
|
||||
* config/tc-bpf.c (bpf_elf_final_processing): New function.
|
||||
|
||||
modified: gold/po/gold.pot
|
||||
modified: gprof/configure
|
||||
modified: gprofng/configure
|
||||
modified: gprofng/doc/version.texi
|
||||
modified: gprofng/libcollector/configure
|
||||
modified: ld/configure
|
||||
modified: ld/po/ld.pot
|
||||
modified: libiberty/functions.texi
|
||||
modified: opcodes/configure
|
||||
modified: opcodes/po/opcodes.pot
|
||||
modified: src-release.sh
|
||||
2023-07-30 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
* config/tc-bpf.c (signed_overflow): Copy function from
|
||||
tc-aarch64.c.
|
||||
(encode_insn): Check for overflow in constant immediates.
|
||||
(add_relaxed_insn): Pass relax argument to encode_insn.
|
||||
(add_fixed_insn): Likewise.
|
||||
* testsuite/gas/bpf/disp16-overflow.d: New file.
|
||||
* testsuite/gas/bpf/disp16-overflow.s: Likewise.
|
||||
* testsuite/gas/bpf/disp16-overflow.l: Likewise.
|
||||
* testsuite/gas/bpf/disp32-overflow.d: Likewise.
|
||||
* testsuite/gas/bpf/disp32-overflow.s: Likewise.
|
||||
* testsuite/gas/bpf/disp32-overflow.l: Likewise.
|
||||
* testsuite/gas/bpf/imm32-overflow.d: Likewise.
|
||||
* testsuite/gas/bpf/imm32-overflow.s: Likewise.
|
||||
* testsuite/gas/bpf/imm32-overflow.l: Likewise.
|
||||
* testsuite/gas/bpf/offset16-overflow.d: Likewise.
|
||||
* testsuite/gas/bpf/offset16-overflow.s: Likewise.
|
||||
* testsuite/gas/bpf/offset16-overflow.l: Likewise.
|
||||
* testsuite/gas/bpf/disp16-overflow-relax.d: Likewise.
|
||||
* testsuite/gas/bpf/disp16-overflow-relax.l: Likewise.
|
||||
* testsuite/gas/bpf/disp16-overflow-relax.s: Likewise.
|
||||
* testsuite/gas/bpf/jump-relax-jump-be.d: New file.
|
||||
* testsuite/gas/bpf/bpf.exp: Run new tests.
|
||||
|
||||
2023-07-28 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
PR gas/30690
|
||||
* config/tc-bpf.c (struct bpf_insn): Add fields is_relaxable and
|
||||
relaxed_exp.
|
||||
(enum options): Add OPTION_NO_RELAX.
|
||||
(md_longopts): Likewise for -mno-relax.
|
||||
(do_relax): New global.
|
||||
(md_parse_option): Handle OPTION_NO_RELAX.
|
||||
(RELAX_BRANCH_ENCODE): Define.
|
||||
(RELAX_BRANCH_P): Likewise.
|
||||
(RELAX_BRANCH_LENGTH): Likewise.
|
||||
(RELAX_BRANCH_CONST): Likewise.
|
||||
(RELAX_BRANCH_UNCOND): Likewise.
|
||||
(relaxed_branch_length): New function.
|
||||
(md_estimate_size_before_relax): Likewise.
|
||||
(read_insn_word): Likewise.
|
||||
(encode_int16): Likewise.
|
||||
(encode_int32): Likewise.
|
||||
(write_insn_bytes): Likewise.
|
||||
(md_convert_frag): Likewise.
|
||||
(encode_insn): Likewise.
|
||||
(install_insn_fixups): Likewise.
|
||||
(add_fixed_insn): Likewise.
|
||||
(add_relaxed_insn): Likewise.
|
||||
(md_assemble): Move instruction encoding logic to the above
|
||||
new functions.
|
||||
* testsuite/gas/bpf/jump-relax-ja.d: New test.
|
||||
* testsuite/gas/bpf/jump-relax-ja-be.d: Likewise.
|
||||
* testsuite/gas/bpf/jump-relax-ja.s: And corresponding source.
|
||||
* testsuite/gas/bpf/jump-relax-jump.d: New test.
|
||||
* testsuite/gas/bpf/jump-relax-jump-be.d: Likewise.
|
||||
* testsuite/gas/bpf/jump-relax-jump.s: And corresponding source.
|
||||
* testsuite/gas/bpf/bpf.exp: Run new tests.
|
||||
* doc/c-bpf.texi (BPF Options): Document -mno-relax.
|
||||
|
||||
2023-07-26 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
* testsuite/gas/bpf/alu.s: Add test for NEGI and NEG32I.
|
||||
* testsuite/gas/bpf/alu32.s: Likewise.
|
||||
* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu.d: Add expected results.
|
||||
* testsuite/gas/bpf/alu-be.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-be.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
|
||||
|
||||
2023-07-26 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
* testsuite/gas/bpf/alu.s: The register neg instruction gets only
|
||||
one argument.
|
||||
* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu-be.d: Likewise.
|
||||
* testsuite/gas/bpf/alu.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-be.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32.s: Likewise.
|
||||
* doc/c-bpf.texi (BPF Instructions): Update accordingly.
|
||||
|
||||
2023-07-24 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
* doc/c-bpf.texi (BPF Instructions): Document BSWAP* instructions.
|
||||
* testsuite/gas/bpf/alu.s: Test BSWAP{16,32,64} instructions.
|
||||
* testsuite/gas/bpf/alu.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-be.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
|
||||
|
||||
2023-07-24 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
* doc/c-bpf.texi (BPF Instructions): The pseudoc syntax for MOVS*
|
||||
doesn't use `s=' but `='.
|
||||
|
||||
2023-07-24 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
* doc/c-bpf.texi (BPF Instructions): Fix pseudoc syntax for MOVS*
|
||||
and LDXS* instructions.
|
||||
* testsuite/gas/bpf/mem-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/mem-be-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/mem-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu32-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
|
||||
|
||||
2023-07-24 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
* config/tc-bpf.c (struct bpf_insn): New field `id'.
|
||||
(md_assemble): Save the ids of successfully parsed instructions
|
||||
and use the new BFD_RELOC_BPF_DISPCALL32 whenever appropriate.
|
||||
(md_apply_fix): Adapt to the new BFD reloc.
|
||||
* testsuite/gas/bpf/jump.s: Test JAL.
|
||||
* testsuite/gas/bpf/jump.d: Likewise.
|
||||
* testsuite/gas/bpf/jump-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/jump-be.d: Likewise.
|
||||
* testsuite/gas/bpf/jump-be-pseudoc.d: Likewise.
|
||||
* doc/c-bpf.texi (BPF Instructions): Document new instruction
|
||||
jal/gotol.
|
||||
Document new operand type disp32.
|
||||
|
||||
2023-07-21 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
* testsuite/gas/bpf/mem.s: Add signed load instructions.
|
||||
* testsuite/gas/bpf/mem-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/mem.d: Likewise.
|
||||
* testsuite/gas/bpf/mem-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/mem-be.d: Likewise.
|
||||
* doc/c-bpf.texi (BPF Instructions): Document the signed load
|
||||
instructions.
|
||||
|
||||
2023-07-21 Jose E. Marchesi <jose.marchesi@oracle.com>
|
||||
|
||||
* testsuite/gas/bpf/alu.s: Test movs instructions.
|
||||
* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu32.s: Likewise for movs32 instruction.
|
||||
* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
|
||||
* testsuite/gas/bpf/alu.d: Add expected results.
|
||||
* testsuite/gas/bpf/alu32.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-be.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-be.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
|
||||
* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
|
||||
|
||||
2023-07-03 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
|
@ -2230,7 +2230,7 @@ de-stage3:
|
||||
|
||||
doc/asconfig.texi: doc/$(CONFIG).texi doc/$(am__dirstamp)
|
||||
$(AM_V_at)rm -f doc/asconfig.texi
|
||||
$(AM_V_GEN)cp -p $(srcdir)/doc/$(CONFIG).texi doc/asconfig.texi
|
||||
$(AM_V_GEN)cp $(srcdir)/doc/$(CONFIG).texi doc/asconfig.texi && touch -m -r $(srcdir)/doc/$(CONFIG).texi doc/asconfig.texi
|
||||
$(AM_V_at)chmod u+w doc/asconfig.texi
|
||||
|
||||
# Maintenance
|
||||
|
10
gas/NEWS
10
gas/NEWS
@ -1,5 +1,15 @@
|
||||
-*- text -*-
|
||||
|
||||
* Add support for Intel PBNDKB instructions.
|
||||
|
||||
* Add support for Intel SM4 instructions.
|
||||
|
||||
* Add support for Intel SM3 instructions.
|
||||
|
||||
* Add support for Intel SHA512 instructions.
|
||||
|
||||
* Add support for Intel AVX-VNNI-INT16 instructions.
|
||||
|
||||
Changes in 2.41:
|
||||
|
||||
* Add support for Intel FRED instructions.
|
||||
|
@ -1088,8 +1088,9 @@ obj_elf_attach_to_group (int dummy ATTRIBUTE_UNUSED)
|
||||
|
||||
if (elf_group_name (now_seg))
|
||||
{
|
||||
as_warn (_("section %s already has a group (%s)"),
|
||||
bfd_section_name (now_seg), elf_group_name (now_seg));
|
||||
if (strcmp (elf_group_name (now_seg), gname) != 0)
|
||||
as_warn (_("section %s already has a group (%s)"),
|
||||
bfd_section_name (now_seg), elf_group_name (now_seg));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@
|
||||
&& (SUB_OPCODE (x) == 0x28))
|
||||
|
||||
#ifndef TARGET_WITH_CPU
|
||||
#define TARGET_WITH_CPU "arc700"
|
||||
#define TARGET_WITH_CPU "hs38_linux"
|
||||
#endif /* TARGET_WITH_CPU */
|
||||
|
||||
#define ARC_GET_FLAG(s) (*symbol_get_tc (s))
|
||||
|
2981
gas/config/tc-bpf.c
2981
gas/config/tc-bpf.c
File diff suppressed because it is too large
Load Diff
@ -37,7 +37,6 @@
|
||||
|
||||
/* .-foo gets turned into PC relative relocs. */
|
||||
#define DIFF_EXPR_OK 1
|
||||
#define GAS_CGEN_PCREL_R_TYPE(R_TYPE) gas_cgen_pcrel_r_type (R_TYPE)
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
|
||||
@ -52,4 +51,8 @@
|
||||
a jump to offset 0 means jump to the next instruction. */
|
||||
#define md_single_noop_insn "ja 0"
|
||||
|
||||
#define TC_EQUAL_IN_INSN(c, s) 1
|
||||
#define TC_EQUAL_IN_INSN(c, s) bpf_tc_equal_in_insn ((c), (s))
|
||||
extern bool bpf_tc_equal_in_insn (int, char *);
|
||||
|
||||
#define elf_tc_final_processing bpf_elf_final_processing
|
||||
extern void bpf_elf_final_processing (void);
|
||||
|
@ -1391,8 +1391,8 @@ find_opcode (struct d10v_opcode *opcode, expressionS myops[])
|
||||
|| myops[i].X_add_number == OPERAND_CONTROL + 12
|
||||
|| myops[i].X_add_number == OPERAND_CONTROL + 13
|
||||
|| myops[i].X_add_number == OPERAND_CONTROL + 15))
|
||||
as_warn (_("cr%ld is a reserved control register"),
|
||||
myops[i].X_add_number - OPERAND_CONTROL);
|
||||
as_warn (_("cr%d is a reserved control register"),
|
||||
(int) myops[i].X_add_number - OPERAND_CONTROL);
|
||||
}
|
||||
return opcode;
|
||||
}
|
||||
|
@ -1151,6 +1151,11 @@ static const arch_entry cpu_arch[] =
|
||||
SUBARCH (rmpquery, RMPQUERY, ANY_RMPQUERY, false),
|
||||
SUBARCH (fred, FRED, ANY_FRED, false),
|
||||
SUBARCH (lkgs, LKGS, ANY_LKGS, false),
|
||||
SUBARCH (avx_vnni_int16, AVX_VNNI_INT16, ANY_AVX_VNNI_INT16, false),
|
||||
SUBARCH (sha512, SHA512, ANY_SHA512, false),
|
||||
SUBARCH (sm3, SM3, ANY_SM3, false),
|
||||
SUBARCH (sm4, SM4, ANY_SM4, false),
|
||||
SUBARCH (pbndkb, PBNDKB, PBNDKB, false),
|
||||
};
|
||||
|
||||
#undef SUBARCH
|
||||
@ -4563,6 +4568,90 @@ optimize_encoding (void)
|
||||
i.types[j].bitfield.disp8
|
||||
= fits_in_disp8 (i.op[j].disps->X_add_number);
|
||||
}
|
||||
else if (optimize_for_space
|
||||
&& i.tm.base_opcode == 0x29
|
||||
&& i.tm.opcode_space == SPACE_0F38
|
||||
&& i.operands == i.reg_operands
|
||||
&& i.op[0].regs == i.op[1].regs
|
||||
&& (!i.tm.opcode_modifier.vex
|
||||
|| !(i.op[0].regs->reg_flags & RegRex))
|
||||
&& !is_evex_encoding (&i.tm))
|
||||
{
|
||||
/* Optimize: -Os:
|
||||
pcmpeqq %xmmN, %xmmN -> pcmpeqd %xmmN, %xmmN
|
||||
vpcmpeqq %xmmN, %xmmN, %xmmM -> vpcmpeqd %xmmN, %xmmN, %xmmM (N < 8)
|
||||
vpcmpeqq %ymmN, %ymmN, %ymmM -> vpcmpeqd %ymmN, %ymmN, %ymmM (N < 8)
|
||||
*/
|
||||
i.tm.opcode_space = SPACE_0F;
|
||||
i.tm.base_opcode = 0x76;
|
||||
}
|
||||
else if (((i.tm.base_opcode >= 0x64
|
||||
&& i.tm.base_opcode <= 0x66
|
||||
&& i.tm.opcode_space == SPACE_0F)
|
||||
|| (i.tm.base_opcode == 0x37
|
||||
&& i.tm.opcode_space == SPACE_0F38))
|
||||
&& i.operands == i.reg_operands
|
||||
&& i.op[0].regs == i.op[1].regs
|
||||
&& !is_evex_encoding (&i.tm))
|
||||
{
|
||||
/* Optimize: -O:
|
||||
pcmpgt[bwd] %mmN, %mmN -> pxor %mmN, %mmN
|
||||
pcmpgt[bwdq] %xmmN, %xmmN -> pxor %xmmN, %xmmN
|
||||
vpcmpgt[bwdq] %xmmN, %xmmN, %xmmM -> vpxor %xmmN, %xmmN, %xmmM (N < 8)
|
||||
vpcmpgt[bwdq] %xmmN, %xmmN, %xmmM -> vpxor %xmm0, %xmm0, %xmmM (N > 7)
|
||||
vpcmpgt[bwdq] %ymmN, %ymmN, %ymmM -> vpxor %ymmN, %ymmN, %ymmM (N < 8)
|
||||
vpcmpgt[bwdq] %ymmN, %ymmN, %ymmM -> vpxor %ymm0, %ymm0, %ymmM (N > 7)
|
||||
*/
|
||||
i.tm.opcode_space = SPACE_0F;
|
||||
i.tm.base_opcode = 0xef;
|
||||
if (i.tm.opcode_modifier.vex && (i.op[0].regs->reg_flags & RegRex))
|
||||
{
|
||||
if (i.operands == 2)
|
||||
{
|
||||
gas_assert (i.tm.opcode_modifier.sse2avx);
|
||||
|
||||
i.operands = 3;
|
||||
i.reg_operands = 3;
|
||||
i.tm.operands = 3;
|
||||
|
||||
i.op[2].regs = i.op[0].regs;
|
||||
i.types[2] = i.types[0];
|
||||
i.flags[2] = i.flags[0];
|
||||
i.tm.operand_types[2] = i.tm.operand_types[0];
|
||||
|
||||
i.tm.opcode_modifier.sse2avx = 0;
|
||||
}
|
||||
i.op[0].regs -= i.op[0].regs->reg_num + 8;
|
||||
i.op[1].regs = i.op[0].regs;
|
||||
}
|
||||
}
|
||||
else if (optimize_for_space
|
||||
&& i.tm.base_opcode == 0x59
|
||||
&& i.tm.opcode_space == SPACE_0F38
|
||||
&& i.operands == i.reg_operands
|
||||
&& i.tm.opcode_modifier.vex
|
||||
&& !(i.op[0].regs->reg_flags & RegRex)
|
||||
&& i.op[0].regs->reg_type.bitfield.xmmword
|
||||
&& i.vec_encoding != vex_encoding_vex3)
|
||||
{
|
||||
/* Optimize: -Os:
|
||||
vpbroadcastq %xmmN, %xmmM -> vpunpcklqdq %xmmN, %xmmN, %xmmM (N < 8)
|
||||
*/
|
||||
i.tm.opcode_space = SPACE_0F;
|
||||
i.tm.base_opcode = 0x6c;
|
||||
i.tm.opcode_modifier.vexvvvv = 1;
|
||||
|
||||
++i.operands;
|
||||
++i.reg_operands;
|
||||
++i.tm.operands;
|
||||
|
||||
i.op[2].regs = i.op[0].regs;
|
||||
i.types[2] = i.types[0];
|
||||
i.flags[2] = i.flags[0];
|
||||
i.tm.operand_types[2] = i.tm.operand_types[0];
|
||||
|
||||
swap_2_operands (1, 2);
|
||||
}
|
||||
}
|
||||
|
||||
/* Return non-zero for load instruction. */
|
||||
|
@ -1574,7 +1574,8 @@ fixup8 (expressionS *oper, int mode, int opmode)
|
||||
{
|
||||
static char trap_id_warn_once = 0;
|
||||
|
||||
as_bad (_("Trap id `%ld' is out of range."), oper->X_add_number);
|
||||
as_bad (_("Trap id `%" PRId64 "' is out of range."),
|
||||
(int64_t) oper->X_add_number);
|
||||
if (trap_id_warn_once == 0)
|
||||
{
|
||||
trap_id_warn_once = 1;
|
||||
@ -1585,7 +1586,8 @@ fixup8 (expressionS *oper, int mode, int opmode)
|
||||
if (!(mode & M6812_OP_TRAP_ID)
|
||||
&& !check_range (oper->X_add_number, mode))
|
||||
{
|
||||
as_bad (_("Operand out of 8-bit range: `%ld'."), oper->X_add_number);
|
||||
as_bad (_("Operand out of 8-bit range: `%" PRId64 "'."),
|
||||
(int64_t) oper->X_add_number);
|
||||
}
|
||||
number_to_chars_bigendian (f, oper->X_add_number & 0x0FF, 1);
|
||||
}
|
||||
@ -1641,8 +1643,8 @@ fixup16 (expressionS *oper, int mode, int opmode ATTRIBUTE_UNUSED)
|
||||
{
|
||||
if (!check_range (oper->X_add_number, mode))
|
||||
{
|
||||
as_bad (_("Operand out of 16-bit range: `%ld'."),
|
||||
oper->X_add_number);
|
||||
as_bad (_("Operand out of 16-bit range: `%" PRId64 "'."),
|
||||
(int64_t) oper->X_add_number);
|
||||
}
|
||||
number_to_chars_bigendian (f, oper->X_add_number & 0x0FFFF, 2);
|
||||
}
|
||||
@ -1689,8 +1691,8 @@ fixup24 (expressionS *oper, int mode, int opmode ATTRIBUTE_UNUSED)
|
||||
{
|
||||
if (!check_range (oper->X_add_number, mode))
|
||||
{
|
||||
as_bad (_("Operand out of 16-bit range: `%ld'."),
|
||||
oper->X_add_number);
|
||||
as_bad (_("Operand out of 16-bit range: `%" PRId64 "'."),
|
||||
(int64_t) oper->X_add_number);
|
||||
}
|
||||
number_to_chars_bigendian (f, oper->X_add_number & 0x0FFFFFF, 3);
|
||||
}
|
||||
@ -1736,8 +1738,8 @@ fixup8_xg (expressionS *oper, int mode, int opmode)
|
||||
else
|
||||
{
|
||||
if (!(check_range (oper->X_add_number, mode)))
|
||||
as_bad (_("Operand out of 8-bit range: `%ld'."),
|
||||
oper->X_add_number);
|
||||
as_bad (_("Operand out of 8-bit range: `%" PRId64 "'."),
|
||||
(int64_t) oper->X_add_number);
|
||||
number_to_chars_bigendian (f, oper->X_add_number & 0x0FF, 1);
|
||||
}
|
||||
}
|
||||
|
@ -337,7 +337,8 @@ riscv_set_arch (const char *s)
|
||||
riscv_reset_subsets_list_arch_str ();
|
||||
|
||||
riscv_set_rvc (false);
|
||||
if (riscv_subset_supports (&riscv_rps_as, "c"))
|
||||
if (riscv_subset_supports (&riscv_rps_as, "c")
|
||||
|| riscv_subset_supports (&riscv_rps_as, "zca"))
|
||||
riscv_set_rvc (true);
|
||||
|
||||
if (riscv_subset_supports (&riscv_rps_as, "ztso"))
|
||||
@ -1425,6 +1426,18 @@ validate_riscv_insn (const struct riscv_opcode *opc, int length)
|
||||
goto unknown_validate_operand;
|
||||
}
|
||||
break;
|
||||
case 'c':
|
||||
switch (*++oparg)
|
||||
{
|
||||
/* byte immediate operators, load/store byte insns. */
|
||||
case 'h': used_bits |= ENCODE_ZCB_HALFWORD_UIMM (-1U); break;
|
||||
/* halfword immediate operators, load/store halfword insns. */
|
||||
case 'b': used_bits |= ENCODE_ZCB_BYTE_UIMM (-1U); break;
|
||||
case 'f': break;
|
||||
default:
|
||||
goto unknown_validate_operand;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
goto unknown_validate_operand;
|
||||
}
|
||||
@ -3558,6 +3571,47 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
|
||||
goto unknown_riscv_ip_operand;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
switch (*++oparg)
|
||||
{
|
||||
case 'h': /* Immediate field for c.lh/c.lhu/c.sh. */
|
||||
/* Handle cases, such as c.sh rs2', (rs1'). */
|
||||
if (riscv_handle_implicit_zero_offset (imm_expr, asarg))
|
||||
continue;
|
||||
if (my_getSmallExpression (imm_expr, imm_reloc, asarg, p)
|
||||
|| imm_expr->X_op != O_constant
|
||||
|| !VALID_ZCB_HALFWORD_UIMM ((valueT) imm_expr->X_add_number))
|
||||
break;
|
||||
ip->insn_opcode |= ENCODE_ZCB_HALFWORD_UIMM (imm_expr->X_add_number);
|
||||
goto rvc_imm_done;
|
||||
|
||||
case 'b': /* Immediate field for c.lbu/c.sb. */
|
||||
/* Handle cases, such as c.lbu rd', (rs1'). */
|
||||
if (riscv_handle_implicit_zero_offset (imm_expr, asarg))
|
||||
continue;
|
||||
if (my_getSmallExpression (imm_expr, imm_reloc, asarg, p)
|
||||
|| imm_expr->X_op != O_constant
|
||||
|| !VALID_ZCB_BYTE_UIMM ((valueT) imm_expr->X_add_number))
|
||||
break;
|
||||
ip->insn_opcode |= ENCODE_ZCB_BYTE_UIMM (imm_expr->X_add_number);
|
||||
goto rvc_imm_done;
|
||||
|
||||
case 'f': /* Operand for matching immediate 255. */
|
||||
if (my_getSmallExpression (imm_expr, imm_reloc, asarg, p)
|
||||
|| imm_expr->X_op != O_constant
|
||||
|| imm_expr->X_add_number != 255)
|
||||
break;
|
||||
/* This operand is used for matching immediate 255, and
|
||||
we do not write anything to encoding by this operand. */
|
||||
asarg = expr_parse_end;
|
||||
imm_expr->X_op = O_absent;
|
||||
continue;
|
||||
|
||||
default:
|
||||
goto unknown_riscv_ip_operand;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
goto unknown_riscv_ip_operand;
|
||||
}
|
||||
@ -4322,7 +4376,8 @@ s_riscv_option (int x ATTRIBUTE_UNUSED)
|
||||
riscv_reset_subsets_list_arch_str ();
|
||||
|
||||
riscv_set_rvc (false);
|
||||
if (riscv_subset_supports (&riscv_rps_as, "c"))
|
||||
if (riscv_subset_supports (&riscv_rps_as, "c")
|
||||
|| riscv_subset_supports (&riscv_rps_as, "zca"))
|
||||
riscv_set_rvc (true);
|
||||
|
||||
if (riscv_subset_supports (&riscv_rps_as, "ztso"))
|
||||
|
@ -2291,25 +2291,25 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
|
||||
We are only prepared to turn a few of the operands into
|
||||
relocs. */
|
||||
fixP->fx_offset = value;
|
||||
if (operand->bits == 12 && operand->shift == 20)
|
||||
if (operand->bits == 12 && operand->shift == 20 && !fixP->fx_pcrel)
|
||||
{
|
||||
fixP->fx_size = 2;
|
||||
fixP->fx_where += 2;
|
||||
fixP->fx_r_type = BFD_RELOC_390_12;
|
||||
}
|
||||
else if (operand->bits == 12 && operand->shift == 36)
|
||||
else if (operand->bits == 12 && operand->shift == 36 && !fixP->fx_pcrel)
|
||||
{
|
||||
fixP->fx_size = 2;
|
||||
fixP->fx_where += 4;
|
||||
fixP->fx_r_type = BFD_RELOC_390_12;
|
||||
}
|
||||
else if (operand->bits == 20 && operand->shift == 20)
|
||||
else if (operand->bits == 20 && operand->shift == 20 && !fixP->fx_pcrel)
|
||||
{
|
||||
fixP->fx_size = 4;
|
||||
fixP->fx_where += 2;
|
||||
fixP->fx_r_type = BFD_RELOC_390_20;
|
||||
}
|
||||
else if (operand->bits == 8 && operand->shift == 8)
|
||||
else if (operand->bits == 8 && operand->shift == 8 && !fixP->fx_pcrel)
|
||||
{
|
||||
fixP->fx_size = 1;
|
||||
fixP->fx_where += 1;
|
||||
@ -2334,6 +2334,12 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
|
||||
fixP->fx_offset += 2;
|
||||
fixP->fx_pcrel_adjust = 2;
|
||||
}
|
||||
else if (fixP->fx_pcrel)
|
||||
{
|
||||
fixP->fx_r_type = BFD_RELOC_16_PCREL;
|
||||
fixP->fx_offset += 2;
|
||||
fixP->fx_pcrel_adjust = 2;
|
||||
}
|
||||
else
|
||||
fixP->fx_r_type = BFD_RELOC_16;
|
||||
}
|
||||
|
@ -1222,6 +1222,10 @@ static char *
|
||||
get_operands (sh_opcode_info *info, char *args, sh_operand_info *operand)
|
||||
{
|
||||
char *ptr = args;
|
||||
|
||||
operand[0].type = 0;
|
||||
operand[1].type = 0;
|
||||
operand[2].type = 0;
|
||||
if (info->arg[0])
|
||||
{
|
||||
/* The pre-processor will eliminate whitespace in front of '@'
|
||||
@ -1234,9 +1238,7 @@ get_operands (sh_opcode_info *info, char *args, sh_operand_info *operand)
|
||||
if (info->arg[1])
|
||||
{
|
||||
if (*ptr == ',')
|
||||
{
|
||||
ptr++;
|
||||
}
|
||||
ptr++;
|
||||
get_operand (&ptr, operand + 1);
|
||||
/* ??? Hack: psha/pshl have a varying operand number depending on
|
||||
the type of the first operand. We handle this by having the
|
||||
@ -1247,27 +1249,10 @@ get_operands (sh_opcode_info *info, char *args, sh_operand_info *operand)
|
||||
if (info->arg[2] && operand[0].type != A_IMM)
|
||||
{
|
||||
if (*ptr == ',')
|
||||
{
|
||||
ptr++;
|
||||
}
|
||||
ptr++;
|
||||
get_operand (&ptr, operand + 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
operand[2].type = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
operand[1].type = 0;
|
||||
operand[2].type = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
operand[0].type = 0;
|
||||
operand[1].type = 0;
|
||||
operand[2].type = 0;
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
|
@ -4992,3 +4992,4 @@ sparc_cfi_emit_pcrel_expr (expressionS *exp, unsigned int nbytes)
|
||||
emit_expr_with_reloc (exp, nbytes, "disp");
|
||||
sparc_no_align_cons = 0;
|
||||
}
|
||||
|
||||
|
@ -2683,8 +2683,9 @@ md_assemble (char *instruction_string)
|
||||
}
|
||||
else
|
||||
{
|
||||
as_warn (_("A bignum/flonum may not be a displacement: 0x%lx used"),
|
||||
(expP->X_add_number = 0x80000000L));
|
||||
as_warn (_("A bignum/flonum may not be a displacement: 0x%"
|
||||
PRIx64 " used"),
|
||||
(uint64_t) (expP->X_add_number = 0x80000000L));
|
||||
/* Chosen so luser gets the most offset bits to patch later. */
|
||||
}
|
||||
expP->X_add_number = floatP->low[0]
|
||||
|
@ -7869,8 +7869,9 @@ dump_litpools (void)
|
||||
count++;
|
||||
litfrag = litfrag->fr_next;
|
||||
}
|
||||
printf(" %ld <%d:%d> (%d) [%d]: ",
|
||||
lpf->addr, lpf->priority, lpf->original_priority,
|
||||
printf(" %" PRId64 " <%d:%d> (%d) [%d]: ",
|
||||
(int64_t) lpf->addr,
|
||||
lpf->priority, lpf->original_priority,
|
||||
lpf->fragP->fr_line, count);
|
||||
/* dump_frag(lpf->fragP); */
|
||||
}
|
||||
|
@ -1143,10 +1143,11 @@ emit_data_val (expressionS * val, int size)
|
||||
but it does help to maintain compatibility with earlier versions
|
||||
of the assembler. */
|
||||
if (! val->X_extrabit
|
||||
&& is_overflow (val->X_add_number, size*8))
|
||||
as_warn ( _("%d-bit overflow (%+ld)"), size*8, val->X_add_number);
|
||||
&& is_overflow (val->X_add_number, size * 8))
|
||||
as_warn ( _("%d-bit overflow (%+" PRId64 ")"), size * 8,
|
||||
(int64_t) val->X_add_number);
|
||||
for (i = 0; i < size; ++i)
|
||||
p[i] = (char)(val->X_add_number >> (i*8));
|
||||
p[i] = (val->X_add_number >> (i * 8)) & 0xff;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1250,9 +1251,11 @@ emit_byte (expressionS * val, bfd_reloc_code_real_type r_type)
|
||||
if ((val->X_add_number < -128) || (val->X_add_number >= 128))
|
||||
{
|
||||
if (r_type == BFD_RELOC_Z80_DISP8)
|
||||
as_bad (_("index overflow (%+ld)"), val->X_add_number);
|
||||
as_bad (_("index overflow (%+" PRId64 ")"),
|
||||
(int64_t) val->X_add_number);
|
||||
else
|
||||
as_bad (_("offset overflow (%+ld)"), val->X_add_number);
|
||||
as_bad (_("offset overflow (%+" PRId64 ")"),
|
||||
(int64_t) val->X_add_number);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
23
gas/configure
vendored
23
gas/configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for gas 2.41.
|
||||
# Generated by GNU Autoconf 2.69 for gas 2.41.50.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||
@ -587,8 +587,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='gas'
|
||||
PACKAGE_TARNAME='gas'
|
||||
PACKAGE_VERSION='2.41'
|
||||
PACKAGE_STRING='gas 2.41'
|
||||
PACKAGE_VERSION='2.41.50'
|
||||
PACKAGE_STRING='gas 2.41.50'
|
||||
PACKAGE_BUGREPORT=''
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -1381,7 +1381,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures gas 2.41 to adapt to many kinds of systems.
|
||||
\`configure' configures gas 2.41.50 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1452,7 +1452,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of gas 2.41:";;
|
||||
short | recursive ) echo "Configuration of gas 2.41.50:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1600,7 +1600,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
gas configure 2.41
|
||||
gas configure 2.41.50
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -2011,7 +2011,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by gas $as_me 2.41, which was
|
||||
It was created by gas $as_me 2.41.50, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -2990,7 +2990,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='gas'
|
||||
VERSION='2.41'
|
||||
VERSION='2.41.50'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -12107,6 +12107,8 @@ $as_echo "#define STRICTCOFF 1" >>confdefs.h
|
||||
microblaze*)
|
||||
;;
|
||||
|
||||
ppc-*-aix5.[01]*)
|
||||
;;
|
||||
ppc-*-aix[5-9].*)
|
||||
|
||||
$as_echo "#define AIX_WEAK_SUPPORT 1" >>confdefs.h
|
||||
@ -12296,7 +12298,6 @@ cat >>confdefs.h <<_ACEOF
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
using_cgen=yes
|
||||
;;
|
||||
epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
|
||||
using_cgen=yes
|
||||
@ -14909,7 +14910,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by gas $as_me 2.41, which was
|
||||
This file was extended by gas $as_me 2.41.50, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -14975,7 +14976,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
gas config.status 2.41
|
||||
gas config.status 2.41.50
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -272,6 +272,8 @@ for this_target in $target $canon_targets ; do
|
||||
;;
|
||||
|
||||
changequote(,)dnl
|
||||
ppc-*-aix5.[01]*)
|
||||
;;
|
||||
ppc-*-aix[5-9].*)
|
||||
changequote([,])dnl
|
||||
AC_DEFINE(AIX_WEAK_SUPPORT, 1,
|
||||
@ -449,7 +451,6 @@ changequote([,])dnl
|
||||
if test $this_target = $target ; then
|
||||
AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
|
||||
fi
|
||||
using_cgen=yes
|
||||
;;
|
||||
epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
|
||||
using_cgen=yes
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -207,6 +207,11 @@ accept various extension mnemonics. For example,
|
||||
@code{rao_int},
|
||||
@code{fred},
|
||||
@code{lkgs},
|
||||
@code{avx_vnni_int16},
|
||||
@code{sha512},
|
||||
@code{sm3},
|
||||
@code{sm4},
|
||||
@code{pbndkb},
|
||||
@code{amx_int8},
|
||||
@code{amx_bf16},
|
||||
@code{amx_fp16},
|
||||
@ -1635,8 +1640,9 @@ supported on the CPU specified. The choices for @var{cpu_type} are:
|
||||
@item @samp{.clwb} @tab @samp{.rdpid} @tab @samp{.ptwrite} @tab @samp{.ibt}
|
||||
@item @samp{.prefetchi} @tab @samp{.avx_ifma} @tab @samp{.avx_vnni_int8}
|
||||
@item @samp{.cmpccxadd} @tab @samp{.wrmsrns} @tab @samp{.msrlist}
|
||||
@item @samp{.avx_ne_convert} @tab @samp{.rao_int}
|
||||
@item @samp{.fred} @tab @samp{.lkgs}
|
||||
@item @samp{.avx_ne_convert} @tab @samp{.rao_int} @tab @samp{.fred} @tab @samp{.lkgs}
|
||||
@item @samp{.avx_vnni_int16} @tab @samp{.sha512} @tab @samp{.sm3} @tab @samp{.sm4}
|
||||
@item @samp{.pbndkb}
|
||||
@item @samp{.wbnoinvd} @tab @samp{.pconfig} @tab @samp{.waitpkg} @tab @samp{.cldemote}
|
||||
@item @samp{.shstk} @tab @samp{.gfni} @tab @samp{.vaes} @tab @samp{.vpclmulqdq}
|
||||
@item @samp{.movdiri} @tab @samp{.movdir64b} @tab @samp{.enqcmd} @tab @samp{.tsxldtrk}
|
||||
|
@ -41,7 +41,7 @@ TEXI2DVI = texi2dvi -I "$(srcdir)/%D%" -I %D% -I "$(srcdir)/../libiberty" \
|
||||
|
||||
%D%/asconfig.texi: %D%/$(CONFIG).texi %D%/$(am__dirstamp)
|
||||
$(AM_V_at)rm -f %D%/asconfig.texi
|
||||
$(AM_V_GEN)cp -p $(srcdir)/%D%/$(CONFIG).texi %D%/asconfig.texi
|
||||
$(AM_V_GEN)cp $(srcdir)/%D%/$(CONFIG).texi %D%/asconfig.texi && touch -m -r $(srcdir)/%D%/$(CONFIG).texi %D%/asconfig.texi
|
||||
$(AM_V_at)chmod u+w %D%/asconfig.texi
|
||||
|
||||
CPU_DOCS = \
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
|
||||
"POT-Creation-Date: 2023-07-30 14:35+0100\n"
|
||||
"POT-Creation-Date: 2023-07-03 11:41+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3103,7 +3103,7 @@ symbol_begin (void)
|
||||
{
|
||||
symbol_lastP = NULL;
|
||||
symbol_rootP = NULL; /* In case we have 0 symbols (!!) */
|
||||
sy_hash = htab_create_alloc (16, hash_symbol_entry, eq_symbol_entry,
|
||||
sy_hash = htab_create_alloc (1024, hash_symbol_entry, eq_symbol_entry,
|
||||
NULL, xcalloc, free);
|
||||
|
||||
#if defined (EMIT_SECTION_SYMBOLS) || !defined (RELOC_REQUIRES_SYMBOL)
|
||||
|
@ -1,5 +1,4 @@
|
||||
#name: bad recursive assignments
|
||||
#source: assign-bad-recursive.s
|
||||
#xfail: bfin-*-*
|
||||
#notarget: *bpf-*-*
|
||||
#error_output: assign-bad-recursive.l
|
||||
|
@ -2,7 +2,7 @@
|
||||
#name: eqv involving dot
|
||||
# bfin doesn't support 'symbol = expression'
|
||||
# tic30 and tic4x have 4 octets per byte, tic54x has 2 octets per byte
|
||||
#notarget: bfin-*-* *c30-*-* *c4x-*-* *c54x-*-* *bpf-*-*
|
||||
#notarget: bfin-*-* *c30-*-* *c4x-*-* *c54x-*-*
|
||||
# linkrelax targets don't handle equivalence expressions well (nor any
|
||||
# other forward expression). mep uses complex relocs
|
||||
#xfail: am33_2.0-*-* crx-*-* h8300-*-* mn10200-*-* mn10300-*-* mep-*-*
|
||||
|
@ -105,7 +105,7 @@ if { [istarget "pdp11-*-*"] } then {
|
||||
run_dump_test eqv-dot
|
||||
}
|
||||
|
||||
if { ![istarget "bfin-*-*"] && ![istarget "bpf-*-*"] } then {
|
||||
if { ![istarget "bfin-*-*"] } then {
|
||||
gas_test "assign-ok.s" "" "" "== assignment support"
|
||||
}
|
||||
gas_test_error "assign-bad.s" "" "== assignment for symbol already set"
|
||||
@ -403,8 +403,7 @@ if { ([istarget "i*86-*-*pe*"] && ![istarget "i*86-*-openbsd*"]) \
|
||||
gas_test "fastcall.s" "" "" "fastcall labels"
|
||||
}
|
||||
|
||||
if { ![istarget "bfin-*-*"] && ![istarget "nds32*-*-*"] \
|
||||
&& ![istarget "bpf-*-*"] } then {
|
||||
if { ![istarget "bfin-*-*"] && ![istarget "nds32*-*-*"] } then {
|
||||
run_dump_test assign
|
||||
}
|
||||
run_dump_test sleb128
|
||||
|
@ -1,5 +1,72 @@
|
||||
#as: --EB
|
||||
#as: -EB -mdialect=pseudoc
|
||||
#source: alu-pseudoc.s
|
||||
#objdump: -dr
|
||||
#dump: alu-be.dump
|
||||
#objdump: -dr -M hex,pseudoc
|
||||
#name: eBPF ALU64 instructions, big endian, pseudoc syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 07 20 00 00 00 00 02 9a r2\+=0x29a
|
||||
8: 07 30 00 00 ff ff fd 66 r3\+=0xfffffd66
|
||||
10: 07 40 00 00 7e ad be ef r4\+=0x7eadbeef
|
||||
18: 0f 56 00 00 00 00 00 00 r5\+=r6
|
||||
20: 17 20 00 00 00 00 02 9a r2-=0x29a
|
||||
28: 17 30 00 00 ff ff fd 66 r3-=0xfffffd66
|
||||
30: 17 40 00 00 7e ad be ef r4-=0x7eadbeef
|
||||
38: 1f 56 00 00 00 00 00 00 r5-=r6
|
||||
40: 27 20 00 00 00 00 02 9a r2\*=0x29a
|
||||
48: 27 30 00 00 ff ff fd 66 r3\*=0xfffffd66
|
||||
50: 27 40 00 00 7e ad be ef r4\*=0x7eadbeef
|
||||
58: 2f 56 00 00 00 00 00 00 r5\*=r6
|
||||
60: 37 20 00 00 00 00 02 9a r2/=0x29a
|
||||
68: 37 30 00 00 ff ff fd 66 r3/=0xfffffd66
|
||||
70: 37 40 00 00 7e ad be ef r4/=0x7eadbeef
|
||||
78: 3f 56 00 00 00 00 00 00 r5/=r6
|
||||
80: 47 20 00 00 00 00 02 9a r2|=0x29a
|
||||
88: 47 30 00 00 ff ff fd 66 r3|=0xfffffd66
|
||||
90: 47 40 00 00 7e ad be ef r4|=0x7eadbeef
|
||||
98: 4f 56 00 00 00 00 00 00 r5|=r6
|
||||
a0: 57 20 00 00 00 00 02 9a r2&=0x29a
|
||||
a8: 57 30 00 00 ff ff fd 66 r3&=0xfffffd66
|
||||
b0: 57 40 00 00 7e ad be ef r4&=0x7eadbeef
|
||||
b8: 5f 56 00 00 00 00 00 00 r5&=r6
|
||||
c0: 67 20 00 00 00 00 02 9a r2<<=0x29a
|
||||
c8: 67 30 00 00 ff ff fd 66 r3<<=0xfffffd66
|
||||
d0: 67 40 00 00 7e ad be ef r4<<=0x7eadbeef
|
||||
d8: 6f 56 00 00 00 00 00 00 r5<<=r6
|
||||
e0: 77 20 00 00 00 00 02 9a r2>>=0x29a
|
||||
e8: 77 30 00 00 ff ff fd 66 r3>>=0xfffffd66
|
||||
f0: 77 40 00 00 7e ad be ef r4>>=0x7eadbeef
|
||||
f8: 7f 56 00 00 00 00 00 00 r5>>=r6
|
||||
100: 97 20 00 00 00 00 02 9a r2%=0x29a
|
||||
108: 97 30 00 00 ff ff fd 66 r3%=0xfffffd66
|
||||
110: 97 40 00 00 7e ad be ef r4%=0x7eadbeef
|
||||
118: 9f 56 00 00 00 00 00 00 r5%=r6
|
||||
120: a7 20 00 00 00 00 02 9a r2\^=0x29a
|
||||
128: a7 30 00 00 ff ff fd 66 r3\^=0xfffffd66
|
||||
130: a7 40 00 00 7e ad be ef r4\^=0x7eadbeef
|
||||
138: af 56 00 00 00 00 00 00 r5\^=r6
|
||||
140: b7 20 00 00 00 00 02 9a r2=0x29a
|
||||
148: b7 30 00 00 ff ff fd 66 r3=0xfffffd66
|
||||
150: b7 40 00 00 7e ad be ef r4=0x7eadbeef
|
||||
158: bf 56 00 00 00 00 00 00 r5=r6
|
||||
160: c7 20 00 00 00 00 02 9a r2 s>>=0x29a
|
||||
168: c7 30 00 00 ff ff fd 66 r3 s>>=0xfffffd66
|
||||
170: c7 40 00 00 7e ad be ef r4 s>>=0x7eadbeef
|
||||
178: cf 56 00 00 00 00 00 00 r5 s>>=r6
|
||||
180: 8f 20 00 00 00 00 00 00 r2=-r2
|
||||
188: d4 90 00 00 00 00 00 10 r9=le16 r9
|
||||
190: d4 80 00 00 00 00 00 20 r8=le32 r8
|
||||
198: d4 70 00 00 00 00 00 40 r7=le64 r7
|
||||
1a0: dc 60 00 00 00 00 00 10 r6=be16 r6
|
||||
1a8: dc 50 00 00 00 00 00 20 r5=be32 r5
|
||||
1b0: dc 40 00 00 00 00 00 40 r4=be64 r4
|
||||
1b8: bf 12 00 08 00 00 00 00 r1 = \(s8\) r2
|
||||
1c0: bf 12 00 10 00 00 00 00 r1 = \(s16\) r2
|
||||
1c8: bf 12 00 20 00 00 00 00 r1 = \(s32\) r2
|
||||
1d0: d7 10 00 00 00 00 00 10 r1 = bswap16 r1
|
||||
1d8: d7 20 00 00 00 00 00 20 r2 = bswap32 r2
|
||||
1e0: d7 30 00 00 00 00 00 40 r3 = bswap64 r3
|
||||
1e8: b7 10 00 00 ff ff f1 00 r1=0xfffff100
|
@ -1,5 +1,72 @@
|
||||
#as: --EB
|
||||
#as: -EB -mdialect=normal
|
||||
#source: alu.s
|
||||
#objdump: -dr
|
||||
#dump: alu-be.dump
|
||||
#name: eBPF ALU64 instructions, big endian, normal syntax
|
||||
#objdump: -dr -M hex
|
||||
#name: eBPF ALU instructions, big endian, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 07 20 00 00 00 00 02 9a add %r2,0x29a
|
||||
8: 07 30 00 00 ff ff fd 66 add %r3,0xfffffd66
|
||||
10: 07 40 00 00 7e ad be ef add %r4,0x7eadbeef
|
||||
18: 0f 56 00 00 00 00 00 00 add %r5,%r6
|
||||
20: 17 20 00 00 00 00 02 9a sub %r2,0x29a
|
||||
28: 17 30 00 00 ff ff fd 66 sub %r3,0xfffffd66
|
||||
30: 17 40 00 00 7e ad be ef sub %r4,0x7eadbeef
|
||||
38: 1f 56 00 00 00 00 00 00 sub %r5,%r6
|
||||
40: 27 20 00 00 00 00 02 9a mul %r2,0x29a
|
||||
48: 27 30 00 00 ff ff fd 66 mul %r3,0xfffffd66
|
||||
50: 27 40 00 00 7e ad be ef mul %r4,0x7eadbeef
|
||||
58: 2f 56 00 00 00 00 00 00 mul %r5,%r6
|
||||
60: 37 20 00 00 00 00 02 9a div %r2,0x29a
|
||||
68: 37 30 00 00 ff ff fd 66 div %r3,0xfffffd66
|
||||
70: 37 40 00 00 7e ad be ef div %r4,0x7eadbeef
|
||||
78: 3f 56 00 00 00 00 00 00 div %r5,%r6
|
||||
80: 47 20 00 00 00 00 02 9a or %r2,0x29a
|
||||
88: 47 30 00 00 ff ff fd 66 or %r3,0xfffffd66
|
||||
90: 47 40 00 00 7e ad be ef or %r4,0x7eadbeef
|
||||
98: 4f 56 00 00 00 00 00 00 or %r5,%r6
|
||||
a0: 57 20 00 00 00 00 02 9a and %r2,0x29a
|
||||
a8: 57 30 00 00 ff ff fd 66 and %r3,0xfffffd66
|
||||
b0: 57 40 00 00 7e ad be ef and %r4,0x7eadbeef
|
||||
b8: 5f 56 00 00 00 00 00 00 and %r5,%r6
|
||||
c0: 67 20 00 00 00 00 02 9a lsh %r2,0x29a
|
||||
c8: 67 30 00 00 ff ff fd 66 lsh %r3,0xfffffd66
|
||||
d0: 67 40 00 00 7e ad be ef lsh %r4,0x7eadbeef
|
||||
d8: 6f 56 00 00 00 00 00 00 lsh %r5,%r6
|
||||
e0: 77 20 00 00 00 00 02 9a rsh %r2,0x29a
|
||||
e8: 77 30 00 00 ff ff fd 66 rsh %r3,0xfffffd66
|
||||
f0: 77 40 00 00 7e ad be ef rsh %r4,0x7eadbeef
|
||||
f8: 7f 56 00 00 00 00 00 00 rsh %r5,%r6
|
||||
100: 97 20 00 00 00 00 02 9a mod %r2,0x29a
|
||||
108: 97 30 00 00 ff ff fd 66 mod %r3,0xfffffd66
|
||||
110: 97 40 00 00 7e ad be ef mod %r4,0x7eadbeef
|
||||
118: 9f 56 00 00 00 00 00 00 mod %r5,%r6
|
||||
120: a7 20 00 00 00 00 02 9a xor %r2,0x29a
|
||||
128: a7 30 00 00 ff ff fd 66 xor %r3,0xfffffd66
|
||||
130: a7 40 00 00 7e ad be ef xor %r4,0x7eadbeef
|
||||
138: af 56 00 00 00 00 00 00 xor %r5,%r6
|
||||
140: b7 20 00 00 00 00 02 9a mov %r2,0x29a
|
||||
148: b7 30 00 00 ff ff fd 66 mov %r3,0xfffffd66
|
||||
150: b7 40 00 00 7e ad be ef mov %r4,0x7eadbeef
|
||||
158: bf 56 00 00 00 00 00 00 mov %r5,%r6
|
||||
160: c7 20 00 00 00 00 02 9a arsh %r2,0x29a
|
||||
168: c7 30 00 00 ff ff fd 66 arsh %r3,0xfffffd66
|
||||
170: c7 40 00 00 7e ad be ef arsh %r4,0x7eadbeef
|
||||
178: cf 56 00 00 00 00 00 00 arsh %r5,%r6
|
||||
180: 8f 20 00 00 00 00 00 00 neg %r2
|
||||
188: d4 90 00 00 00 00 00 10 endle %r9,16
|
||||
190: d4 80 00 00 00 00 00 20 endle %r8,32
|
||||
198: d4 70 00 00 00 00 00 40 endle %r7,64
|
||||
1a0: dc 60 00 00 00 00 00 10 endbe %r6,16
|
||||
1a8: dc 50 00 00 00 00 00 20 endbe %r5,32
|
||||
1b0: dc 40 00 00 00 00 00 40 endbe %r4,64
|
||||
1b8: bf 12 00 08 00 00 00 00 movs %r1,%r2,8
|
||||
1c0: bf 12 00 10 00 00 00 00 movs %r1,%r2,16
|
||||
1c8: bf 12 00 20 00 00 00 00 movs %r1,%r2,32
|
||||
1d0: d7 10 00 00 00 00 00 10 bswap %r1,16
|
||||
1d8: d7 20 00 00 00 00 00 20 bswap %r2,32
|
||||
1e0: d7 30 00 00 00 00 00 40 bswap %r3,64
|
||||
1e8: 87 10 00 00 00 00 0f 00 neg %r1,0xf00
|
@ -1,5 +1,72 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=pseudoc
|
||||
#objdump: -dr -M hex,pseudoc
|
||||
#source: alu-pseudoc.s
|
||||
#dump: alu.dump
|
||||
#name: eBPF ALU64 instructions, pseudo-c syntax
|
||||
#name: eBPF ALU instructions, pseudo-c syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 07 02 00 00 9a 02 00 00 r2\+=0x29a
|
||||
8: 07 03 00 00 66 fd ff ff r3\+=0xfffffd66
|
||||
10: 07 04 00 00 ef be ad 7e r4\+=0x7eadbeef
|
||||
18: 0f 65 00 00 00 00 00 00 r5\+=r6
|
||||
20: 17 02 00 00 9a 02 00 00 r2-=0x29a
|
||||
28: 17 03 00 00 66 fd ff ff r3-=0xfffffd66
|
||||
30: 17 04 00 00 ef be ad 7e r4-=0x7eadbeef
|
||||
38: 1f 65 00 00 00 00 00 00 r5-=r6
|
||||
40: 27 02 00 00 9a 02 00 00 r2\*=0x29a
|
||||
48: 27 03 00 00 66 fd ff ff r3\*=0xfffffd66
|
||||
50: 27 04 00 00 ef be ad 7e r4\*=0x7eadbeef
|
||||
58: 2f 65 00 00 00 00 00 00 r5\*=r6
|
||||
60: 37 02 00 00 9a 02 00 00 r2/=0x29a
|
||||
68: 37 03 00 00 66 fd ff ff r3/=0xfffffd66
|
||||
70: 37 04 00 00 ef be ad 7e r4/=0x7eadbeef
|
||||
78: 3f 65 00 00 00 00 00 00 r5/=r6
|
||||
80: 47 02 00 00 9a 02 00 00 r2|=0x29a
|
||||
88: 47 03 00 00 66 fd ff ff r3|=0xfffffd66
|
||||
90: 47 04 00 00 ef be ad 7e r4|=0x7eadbeef
|
||||
98: 4f 65 00 00 00 00 00 00 r5|=r6
|
||||
a0: 57 02 00 00 9a 02 00 00 r2&=0x29a
|
||||
a8: 57 03 00 00 66 fd ff ff r3&=0xfffffd66
|
||||
b0: 57 04 00 00 ef be ad 7e r4&=0x7eadbeef
|
||||
b8: 5f 65 00 00 00 00 00 00 r5&=r6
|
||||
c0: 67 02 00 00 9a 02 00 00 r2<<=0x29a
|
||||
c8: 67 03 00 00 66 fd ff ff r3<<=0xfffffd66
|
||||
d0: 67 04 00 00 ef be ad 7e r4<<=0x7eadbeef
|
||||
d8: 6f 65 00 00 00 00 00 00 r5<<=r6
|
||||
e0: 77 02 00 00 9a 02 00 00 r2>>=0x29a
|
||||
e8: 77 03 00 00 66 fd ff ff r3>>=0xfffffd66
|
||||
f0: 77 04 00 00 ef be ad 7e r4>>=0x7eadbeef
|
||||
f8: 7f 65 00 00 00 00 00 00 r5>>=r6
|
||||
100: 97 02 00 00 9a 02 00 00 r2%=0x29a
|
||||
108: 97 03 00 00 66 fd ff ff r3%=0xfffffd66
|
||||
110: 97 04 00 00 ef be ad 7e r4%=0x7eadbeef
|
||||
118: 9f 65 00 00 00 00 00 00 r5%=r6
|
||||
120: a7 02 00 00 9a 02 00 00 r2\^=0x29a
|
||||
128: a7 03 00 00 66 fd ff ff r3\^=0xfffffd66
|
||||
130: a7 04 00 00 ef be ad 7e r4\^=0x7eadbeef
|
||||
138: af 65 00 00 00 00 00 00 r5\^=r6
|
||||
140: b7 02 00 00 9a 02 00 00 r2=0x29a
|
||||
148: b7 03 00 00 66 fd ff ff r3=0xfffffd66
|
||||
150: b7 04 00 00 ef be ad 7e r4=0x7eadbeef
|
||||
158: bf 65 00 00 00 00 00 00 r5=r6
|
||||
160: c7 02 00 00 9a 02 00 00 r2 s>>=0x29a
|
||||
168: c7 03 00 00 66 fd ff ff r3 s>>=0xfffffd66
|
||||
170: c7 04 00 00 ef be ad 7e r4 s>>=0x7eadbeef
|
||||
178: cf 65 00 00 00 00 00 00 r5 s>>=r6
|
||||
180: 8f 02 00 00 00 00 00 00 r2=-r2
|
||||
188: d4 09 00 00 10 00 00 00 r9=le16 r9
|
||||
190: d4 08 00 00 20 00 00 00 r8=le32 r8
|
||||
198: d4 07 00 00 40 00 00 00 r7=le64 r7
|
||||
1a0: dc 06 00 00 10 00 00 00 r6=be16 r6
|
||||
1a8: dc 05 00 00 20 00 00 00 r5=be32 r5
|
||||
1b0: dc 04 00 00 40 00 00 00 r4=be64 r4
|
||||
1b8: bf 21 08 00 00 00 00 00 r1 = \(s8\) r2
|
||||
1c0: bf 21 10 00 00 00 00 00 r1 = \(s16\) r2
|
||||
1c8: bf 21 20 00 00 00 00 00 r1 = \(s32\) r2
|
||||
1d0: d7 01 00 00 10 00 00 00 r1 = bswap16 r1
|
||||
1d8: d7 02 00 00 20 00 00 00 r2 = bswap32 r2
|
||||
1e0: d7 03 00 00 40 00 00 00 r3 = bswap64 r3
|
||||
1e8: b7 01 00 00 00 f1 ff ff r1=0xfffff100
|
||||
|
@ -48,4 +48,20 @@
|
||||
r3 s>>= -666
|
||||
r4 s>>= 2125315823
|
||||
r5 s>>= r6
|
||||
r2 = -r2
|
||||
r2 = - r2
|
||||
r9 = le16 r9
|
||||
r8 = le32 r8
|
||||
r7 = le64 r7
|
||||
r6 = be16 r6
|
||||
r5 = be32 r5
|
||||
r4 = be64 r4
|
||||
r1 = (s8) r2
|
||||
r1 = (s16) r2
|
||||
r1 = (s32) r2
|
||||
r1 = bswap16 r1
|
||||
r2 = bswap32 r2
|
||||
r3 = bswap64 r3
|
||||
;; Note that the next instruction gets processed by the GAS
|
||||
;; preprocessor into r1 =-0xf00, which parses into a %dr = %i32
|
||||
;; instruction instead of a neg :/
|
||||
r1 = - 0xf00
|
||||
|
@ -1,5 +1,72 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=normal
|
||||
#objdump: -dr -M hex
|
||||
#source: alu.s
|
||||
#dump: alu.dump
|
||||
#name: eBPF ALU64 instructions, normal syntax
|
||||
#name: eBPF ALU instructions, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 07 02 00 00 9a 02 00 00 add %r2,0x29a
|
||||
8: 07 03 00 00 66 fd ff ff add %r3,0xfffffd66
|
||||
10: 07 04 00 00 ef be ad 7e add %r4,0x7eadbeef
|
||||
18: 0f 65 00 00 00 00 00 00 add %r5,%r6
|
||||
20: 17 02 00 00 9a 02 00 00 sub %r2,0x29a
|
||||
28: 17 03 00 00 66 fd ff ff sub %r3,0xfffffd66
|
||||
30: 17 04 00 00 ef be ad 7e sub %r4,0x7eadbeef
|
||||
38: 1f 65 00 00 00 00 00 00 sub %r5,%r6
|
||||
40: 27 02 00 00 9a 02 00 00 mul %r2,0x29a
|
||||
48: 27 03 00 00 66 fd ff ff mul %r3,0xfffffd66
|
||||
50: 27 04 00 00 ef be ad 7e mul %r4,0x7eadbeef
|
||||
58: 2f 65 00 00 00 00 00 00 mul %r5,%r6
|
||||
60: 37 02 00 00 9a 02 00 00 div %r2,0x29a
|
||||
68: 37 03 00 00 66 fd ff ff div %r3,0xfffffd66
|
||||
70: 37 04 00 00 ef be ad 7e div %r4,0x7eadbeef
|
||||
78: 3f 65 00 00 00 00 00 00 div %r5,%r6
|
||||
80: 47 02 00 00 9a 02 00 00 or %r2,0x29a
|
||||
88: 47 03 00 00 66 fd ff ff or %r3,0xfffffd66
|
||||
90: 47 04 00 00 ef be ad 7e or %r4,0x7eadbeef
|
||||
98: 4f 65 00 00 00 00 00 00 or %r5,%r6
|
||||
a0: 57 02 00 00 9a 02 00 00 and %r2,0x29a
|
||||
a8: 57 03 00 00 66 fd ff ff and %r3,0xfffffd66
|
||||
b0: 57 04 00 00 ef be ad 7e and %r4,0x7eadbeef
|
||||
b8: 5f 65 00 00 00 00 00 00 and %r5,%r6
|
||||
c0: 67 02 00 00 9a 02 00 00 lsh %r2,0x29a
|
||||
c8: 67 03 00 00 66 fd ff ff lsh %r3,0xfffffd66
|
||||
d0: 67 04 00 00 ef be ad 7e lsh %r4,0x7eadbeef
|
||||
d8: 6f 65 00 00 00 00 00 00 lsh %r5,%r6
|
||||
e0: 77 02 00 00 9a 02 00 00 rsh %r2,0x29a
|
||||
e8: 77 03 00 00 66 fd ff ff rsh %r3,0xfffffd66
|
||||
f0: 77 04 00 00 ef be ad 7e rsh %r4,0x7eadbeef
|
||||
f8: 7f 65 00 00 00 00 00 00 rsh %r5,%r6
|
||||
100: 97 02 00 00 9a 02 00 00 mod %r2,0x29a
|
||||
108: 97 03 00 00 66 fd ff ff mod %r3,0xfffffd66
|
||||
110: 97 04 00 00 ef be ad 7e mod %r4,0x7eadbeef
|
||||
118: 9f 65 00 00 00 00 00 00 mod %r5,%r6
|
||||
120: a7 02 00 00 9a 02 00 00 xor %r2,0x29a
|
||||
128: a7 03 00 00 66 fd ff ff xor %r3,0xfffffd66
|
||||
130: a7 04 00 00 ef be ad 7e xor %r4,0x7eadbeef
|
||||
138: af 65 00 00 00 00 00 00 xor %r5,%r6
|
||||
140: b7 02 00 00 9a 02 00 00 mov %r2,0x29a
|
||||
148: b7 03 00 00 66 fd ff ff mov %r3,0xfffffd66
|
||||
150: b7 04 00 00 ef be ad 7e mov %r4,0x7eadbeef
|
||||
158: bf 65 00 00 00 00 00 00 mov %r5,%r6
|
||||
160: c7 02 00 00 9a 02 00 00 arsh %r2,0x29a
|
||||
168: c7 03 00 00 66 fd ff ff arsh %r3,0xfffffd66
|
||||
170: c7 04 00 00 ef be ad 7e arsh %r4,0x7eadbeef
|
||||
178: cf 65 00 00 00 00 00 00 arsh %r5,%r6
|
||||
180: 8f 02 00 00 00 00 00 00 neg %r2
|
||||
188: d4 09 00 00 10 00 00 00 endle %r9,16
|
||||
190: d4 08 00 00 20 00 00 00 endle %r8,32
|
||||
198: d4 07 00 00 40 00 00 00 endle %r7,64
|
||||
1a0: dc 06 00 00 10 00 00 00 endbe %r6,16
|
||||
1a8: dc 05 00 00 20 00 00 00 endbe %r5,32
|
||||
1b0: dc 04 00 00 40 00 00 00 endbe %r4,64
|
||||
1b8: bf 21 08 00 00 00 00 00 movs %r1,%r2,8
|
||||
1c0: bf 21 10 00 00 00 00 00 movs %r1,%r2,16
|
||||
1c8: bf 21 20 00 00 00 00 00 movs %r1,%r2,32
|
||||
1d0: d7 01 00 00 10 00 00 00 bswap %r1,16
|
||||
1d8: d7 02 00 00 20 00 00 00 bswap %r2,32
|
||||
1e0: d7 03 00 00 40 00 00 00 bswap %r3,64
|
||||
1e8: 87 01 00 00 00 0f 00 00 neg %r1,0xf00
|
@ -49,3 +49,16 @@
|
||||
arsh %r4, 0x7eadbeef
|
||||
arsh %r5, %r6
|
||||
neg %r2
|
||||
endle %r9,16
|
||||
endle %r8,32
|
||||
endle %r7,64
|
||||
endbe %r6,16
|
||||
endbe %r5,32
|
||||
endbe %r4,64
|
||||
movs %r1,%r2,8
|
||||
movs %r1,%r2,16
|
||||
movs %r1,%r2,32
|
||||
bswap %r1, 16
|
||||
bswap %r2, 32
|
||||
bswap %r3, 64
|
||||
neg %r1, 0xf00
|
||||
|
@ -1,5 +1,63 @@
|
||||
#as: --EB
|
||||
#objdump: -dr
|
||||
#as: -EB -mdialect=pseudoc
|
||||
#objdump: -dr -M hex,pseudoc
|
||||
#source: alu32-pseudoc.s
|
||||
#dump: alu32-be.dump
|
||||
#name: eBPF ALU instructions, big-endian, pseudo-c syntax
|
||||
#name: eBPF ALU32 instructions, big-endian, pseudo-c syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 04 20 00 00 00 00 02 9a w2\+=0x29a
|
||||
8: 04 30 00 00 ff ff fd 66 w3\+=0xfffffd66
|
||||
10: 04 40 00 00 7e ad be ef w4\+=0x7eadbeef
|
||||
18: 0c 56 00 00 00 00 00 00 w5\+=w6
|
||||
20: 14 20 00 00 00 00 02 9a w2-=0x29a
|
||||
28: 14 30 00 00 ff ff fd 66 w3-=0xfffffd66
|
||||
30: 14 40 00 00 7e ad be ef w4-=0x7eadbeef
|
||||
38: 1c 56 00 00 00 00 00 00 w5-=w6
|
||||
40: 24 20 00 00 00 00 02 9a w2\*=0x29a
|
||||
48: 24 30 00 00 ff ff fd 66 w3\*=0xfffffd66
|
||||
50: 24 40 00 00 7e ad be ef w4\*=0x7eadbeef
|
||||
58: 2c 56 00 00 00 00 00 00 w5\*=w6
|
||||
60: 34 20 00 00 00 00 02 9a w2/=0x29a
|
||||
68: 34 30 00 00 ff ff fd 66 w3/=0xfffffd66
|
||||
70: 34 40 00 00 7e ad be ef w4/=0x7eadbeef
|
||||
78: 3c 56 00 00 00 00 00 00 w5/=w6
|
||||
80: 44 20 00 00 00 00 02 9a w2|=0x29a
|
||||
88: 44 30 00 00 ff ff fd 66 w3|=0xfffffd66
|
||||
90: 44 40 00 00 7e ad be ef w4|=0x7eadbeef
|
||||
98: 4c 56 00 00 00 00 00 00 w5|=w6
|
||||
a0: 54 20 00 00 00 00 02 9a w2&=0x29a
|
||||
a8: 54 30 00 00 ff ff fd 66 w3&=0xfffffd66
|
||||
b0: 54 40 00 00 7e ad be ef w4&=0x7eadbeef
|
||||
b8: 5c 56 00 00 00 00 00 00 w5&=w6
|
||||
c0: 64 20 00 00 00 00 02 9a w2<<=0x29a
|
||||
c8: 64 30 00 00 ff ff fd 66 w3<<=0xfffffd66
|
||||
d0: 64 40 00 00 7e ad be ef w4<<=0x7eadbeef
|
||||
d8: 6c 56 00 00 00 00 00 00 w5<<=w6
|
||||
e0: 74 20 00 00 00 00 02 9a w2>>=0x29a
|
||||
e8: 74 30 00 00 ff ff fd 66 w3>>=0xfffffd66
|
||||
f0: 74 40 00 00 7e ad be ef w4>>=0x7eadbeef
|
||||
f8: 7c 56 00 00 00 00 00 00 w5>>=w6
|
||||
100: 94 20 00 00 00 00 02 9a w2%=0x29a
|
||||
108: 94 30 00 00 ff ff fd 66 w3%=0xfffffd66
|
||||
110: 94 40 00 00 7e ad be ef w4%=0x7eadbeef
|
||||
118: 9c 56 00 00 00 00 00 00 w5%=w6
|
||||
120: a4 20 00 00 00 00 02 9a w2\^=0x29a
|
||||
128: a4 30 00 00 ff ff fd 66 w3\^=0xfffffd66
|
||||
130: a4 40 00 00 7e ad be ef w4\^=0x7eadbeef
|
||||
138: ac 56 00 00 00 00 00 00 w5\^=w6
|
||||
140: b4 20 00 00 00 00 02 9a w2=0x29a
|
||||
148: b4 30 00 00 ff ff fd 66 w3=0xfffffd66
|
||||
150: b4 40 00 00 7e ad be ef w4=0x7eadbeef
|
||||
158: bc 56 00 00 00 00 00 00 w5=w6
|
||||
160: c4 20 00 00 00 00 02 9a w2 s>>=0x29a
|
||||
168: c4 30 00 00 ff ff fd 66 w3 s>>=0xfffffd66
|
||||
170: c4 40 00 00 7e ad be ef w4 s>>=0x7eadbeef
|
||||
178: cc 56 00 00 00 00 00 00 w5 s>>=w6
|
||||
180: 8c 20 00 00 00 00 00 00 w2=-w2
|
||||
188: bc 12 00 08 00 00 00 00 w1 = \(s8\) w2
|
||||
190: bc 12 00 10 00 00 00 00 w1 = \(s16\) w2
|
||||
198: bc 12 00 20 00 00 00 00 w1 = \(s32\) w2
|
||||
1a0: b4 10 00 00 ff ff f1 00 w1=0xfffff100
|
@ -1,5 +1,63 @@
|
||||
#as: --EB
|
||||
#objdump: -dr
|
||||
#source: alu32-pseudoc.s
|
||||
#dump: alu32-be.dump
|
||||
#name: eBPF ALU instructions, big-endian, normal syntax
|
||||
#as: -EB -mdialect=normal
|
||||
#objdump: -dr -M hex
|
||||
#source: alu32.s
|
||||
#name: eBPF ALU32 instructions, big-endian, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 04 20 00 00 00 00 02 9a add32 %r2,0x29a
|
||||
8: 04 30 00 00 ff ff fd 66 add32 %r3,0xfffffd66
|
||||
10: 04 40 00 00 7e ad be ef add32 %r4,0x7eadbeef
|
||||
18: 0c 56 00 00 00 00 00 00 add32 %r5,%r6
|
||||
20: 14 20 00 00 00 00 02 9a sub32 %r2,0x29a
|
||||
28: 14 30 00 00 ff ff fd 66 sub32 %r3,0xfffffd66
|
||||
30: 14 40 00 00 7e ad be ef sub32 %r4,0x7eadbeef
|
||||
38: 1c 56 00 00 00 00 00 00 sub32 %r5,%r6
|
||||
40: 24 20 00 00 00 00 02 9a mul32 %r2,0x29a
|
||||
48: 24 30 00 00 ff ff fd 66 mul32 %r3,0xfffffd66
|
||||
50: 24 40 00 00 7e ad be ef mul32 %r4,0x7eadbeef
|
||||
58: 2c 56 00 00 00 00 00 00 mul32 %r5,%r6
|
||||
60: 34 20 00 00 00 00 02 9a div32 %r2,0x29a
|
||||
68: 34 30 00 00 ff ff fd 66 div32 %r3,0xfffffd66
|
||||
70: 34 40 00 00 7e ad be ef div32 %r4,0x7eadbeef
|
||||
78: 3c 56 00 00 00 00 00 00 div32 %r5,%r6
|
||||
80: 44 20 00 00 00 00 02 9a or32 %r2,0x29a
|
||||
88: 44 30 00 00 ff ff fd 66 or32 %r3,0xfffffd66
|
||||
90: 44 40 00 00 7e ad be ef or32 %r4,0x7eadbeef
|
||||
98: 4c 56 00 00 00 00 00 00 or32 %r5,%r6
|
||||
a0: 54 20 00 00 00 00 02 9a and32 %r2,0x29a
|
||||
a8: 54 30 00 00 ff ff fd 66 and32 %r3,0xfffffd66
|
||||
b0: 54 40 00 00 7e ad be ef and32 %r4,0x7eadbeef
|
||||
b8: 5c 56 00 00 00 00 00 00 and32 %r5,%r6
|
||||
c0: 64 20 00 00 00 00 02 9a lsh32 %r2,0x29a
|
||||
c8: 64 30 00 00 ff ff fd 66 lsh32 %r3,0xfffffd66
|
||||
d0: 64 40 00 00 7e ad be ef lsh32 %r4,0x7eadbeef
|
||||
d8: 6c 56 00 00 00 00 00 00 lsh32 %r5,%r6
|
||||
e0: 74 20 00 00 00 00 02 9a rsh32 %r2,0x29a
|
||||
e8: 74 30 00 00 ff ff fd 66 rsh32 %r3,0xfffffd66
|
||||
f0: 74 40 00 00 7e ad be ef rsh32 %r4,0x7eadbeef
|
||||
f8: 7c 56 00 00 00 00 00 00 rsh32 %r5,%r6
|
||||
100: 94 20 00 00 00 00 02 9a mod32 %r2,0x29a
|
||||
108: 94 30 00 00 ff ff fd 66 mod32 %r3,0xfffffd66
|
||||
110: 94 40 00 00 7e ad be ef mod32 %r4,0x7eadbeef
|
||||
118: 9c 56 00 00 00 00 00 00 mod32 %r5,%r6
|
||||
120: a4 20 00 00 00 00 02 9a xor32 %r2,0x29a
|
||||
128: a4 30 00 00 ff ff fd 66 xor32 %r3,0xfffffd66
|
||||
130: a4 40 00 00 7e ad be ef xor32 %r4,0x7eadbeef
|
||||
138: ac 56 00 00 00 00 00 00 xor32 %r5,%r6
|
||||
140: b4 20 00 00 00 00 02 9a mov32 %r2,0x29a
|
||||
148: b4 30 00 00 ff ff fd 66 mov32 %r3,0xfffffd66
|
||||
150: b4 40 00 00 7e ad be ef mov32 %r4,0x7eadbeef
|
||||
158: bc 56 00 00 00 00 00 00 mov32 %r5,%r6
|
||||
160: c4 20 00 00 00 00 02 9a arsh32 %r2,0x29a
|
||||
168: c4 30 00 00 ff ff fd 66 arsh32 %r3,0xfffffd66
|
||||
170: c4 40 00 00 7e ad be ef arsh32 %r4,0x7eadbeef
|
||||
178: cc 56 00 00 00 00 00 00 arsh32 %r5,%r6
|
||||
180: 8c 20 00 00 00 00 00 00 neg32 %r2
|
||||
188: bc 12 00 08 00 00 00 00 movs32 %r1,%r2,8
|
||||
190: bc 12 00 10 00 00 00 00 movs32 %r1,%r2,16
|
||||
198: bc 12 00 20 00 00 00 00 movs32 %r1,%r2,32
|
||||
1a0: 84 10 00 00 00 00 0f 00 neg32 %r1,0xf00
|
||||
|
@ -1,5 +1,63 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=pseudoc
|
||||
#objdump: -dr -M hex,pseudoc
|
||||
#source: alu32-pseudoc.s
|
||||
#dump: alu32.dump
|
||||
#name: eBPF ALU instructions, pseudo-c syntax
|
||||
#name: eBPF ALU32 instructions, pseudo-c syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 04 02 00 00 9a 02 00 00 w2\+=0x29a
|
||||
8: 04 03 00 00 66 fd ff ff w3\+=0xfffffd66
|
||||
10: 04 04 00 00 ef be ad 7e w4\+=0x7eadbeef
|
||||
18: 0c 65 00 00 00 00 00 00 w5\+=w6
|
||||
20: 14 02 00 00 9a 02 00 00 w2-=0x29a
|
||||
28: 14 03 00 00 66 fd ff ff w3-=0xfffffd66
|
||||
30: 14 04 00 00 ef be ad 7e w4-=0x7eadbeef
|
||||
38: 1c 65 00 00 00 00 00 00 w5-=w6
|
||||
40: 24 02 00 00 9a 02 00 00 w2\*=0x29a
|
||||
48: 24 03 00 00 66 fd ff ff w3\*=0xfffffd66
|
||||
50: 24 04 00 00 ef be ad 7e w4\*=0x7eadbeef
|
||||
58: 2c 65 00 00 00 00 00 00 w5\*=w6
|
||||
60: 34 02 00 00 9a 02 00 00 w2/=0x29a
|
||||
68: 34 03 00 00 66 fd ff ff w3/=0xfffffd66
|
||||
70: 34 04 00 00 ef be ad 7e w4/=0x7eadbeef
|
||||
78: 3c 65 00 00 00 00 00 00 w5/=w6
|
||||
80: 44 02 00 00 9a 02 00 00 w2|=0x29a
|
||||
88: 44 03 00 00 66 fd ff ff w3|=0xfffffd66
|
||||
90: 44 04 00 00 ef be ad 7e w4|=0x7eadbeef
|
||||
98: 4c 65 00 00 00 00 00 00 w5|=w6
|
||||
a0: 54 02 00 00 9a 02 00 00 w2&=0x29a
|
||||
a8: 54 03 00 00 66 fd ff ff w3&=0xfffffd66
|
||||
b0: 54 04 00 00 ef be ad 7e w4&=0x7eadbeef
|
||||
b8: 5c 65 00 00 00 00 00 00 w5&=w6
|
||||
c0: 64 02 00 00 9a 02 00 00 w2<<=0x29a
|
||||
c8: 64 03 00 00 66 fd ff ff w3<<=0xfffffd66
|
||||
d0: 64 04 00 00 ef be ad 7e w4<<=0x7eadbeef
|
||||
d8: 6c 65 00 00 00 00 00 00 w5<<=w6
|
||||
e0: 74 02 00 00 9a 02 00 00 w2>>=0x29a
|
||||
e8: 74 03 00 00 66 fd ff ff w3>>=0xfffffd66
|
||||
f0: 74 04 00 00 ef be ad 7e w4>>=0x7eadbeef
|
||||
f8: 7c 65 00 00 00 00 00 00 w5>>=w6
|
||||
100: 94 02 00 00 9a 02 00 00 w2%=0x29a
|
||||
108: 94 03 00 00 66 fd ff ff w3%=0xfffffd66
|
||||
110: 94 04 00 00 ef be ad 7e w4%=0x7eadbeef
|
||||
118: 9c 65 00 00 00 00 00 00 w5%=w6
|
||||
120: a4 02 00 00 9a 02 00 00 w2\^=0x29a
|
||||
128: a4 03 00 00 66 fd ff ff w3\^=0xfffffd66
|
||||
130: a4 04 00 00 ef be ad 7e w4\^=0x7eadbeef
|
||||
138: ac 65 00 00 00 00 00 00 w5\^=w6
|
||||
140: b4 02 00 00 9a 02 00 00 w2=0x29a
|
||||
148: b4 03 00 00 66 fd ff ff w3=0xfffffd66
|
||||
150: b4 04 00 00 ef be ad 7e w4=0x7eadbeef
|
||||
158: bc 65 00 00 00 00 00 00 w5=w6
|
||||
160: c4 02 00 00 9a 02 00 00 w2 s>>=0x29a
|
||||
168: c4 03 00 00 66 fd ff ff w3 s>>=0xfffffd66
|
||||
170: c4 04 00 00 ef be ad 7e w4 s>>=0x7eadbeef
|
||||
178: cc 65 00 00 00 00 00 00 w5 s>>=w6
|
||||
180: 8c 02 00 00 00 00 00 00 w2=-w2
|
||||
188: bc 21 08 00 00 00 00 00 w1 = \(s8\) w2
|
||||
190: bc 21 10 00 00 00 00 00 w1 = \(s16\) w2
|
||||
198: bc 21 20 00 00 00 00 00 w1 = \(s32\) w2
|
||||
1a0: b4 01 00 00 00 f1 ff ff w1=0xfffff100
|
||||
|
@ -1,16 +1,16 @@
|
||||
# Tests for the ALU eBPF pseudo-C instructions
|
||||
.text
|
||||
W2 += 666
|
||||
W3 += -666
|
||||
W4 += 2125315823
|
||||
W5 += w6
|
||||
W2 -= 666
|
||||
W3 -= -666
|
||||
W4 -= 2125315823
|
||||
W5 -= w6
|
||||
W2 *= 666
|
||||
W3 *= -666
|
||||
W4 *= 2125315823
|
||||
w2 += 666
|
||||
w3 += -666
|
||||
w4 += 2125315823
|
||||
w5 += w6
|
||||
w2 -= 666
|
||||
w3 -= -666
|
||||
w4 -= 2125315823
|
||||
w5 -= w6
|
||||
w2 *= 666
|
||||
w3 *= -666
|
||||
w4 *= 2125315823
|
||||
w5 *= w6
|
||||
w2 /= 666
|
||||
w3 /= -666
|
||||
@ -48,10 +48,11 @@
|
||||
w3 s>>= -666
|
||||
w4 s>>= 2125315823
|
||||
w5 s>>= w6
|
||||
w2 = -w2
|
||||
r9 = le16 r9
|
||||
r8 = le32 r8
|
||||
r7 = le64 r7
|
||||
r6 = be16 r6
|
||||
r5 = be32 r5
|
||||
r4 = be64 r4
|
||||
w2 = - w2
|
||||
w1 = (s8) w2
|
||||
w1 = (s16) w2
|
||||
w1 = (s32) w2
|
||||
;; Note that the next instruction gets processed by the GAS
|
||||
;; preprocessor into w1 =-0xf00, which parses into a %dw = %i32
|
||||
;; instruction instead of a neg :/
|
||||
w1 = - 0xf00
|
||||
|
@ -1,5 +1,63 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=normal
|
||||
#objdump: -dr -M hex
|
||||
#source: alu32.s
|
||||
#dump: alu32.dump
|
||||
#name: eBPF ALU instructions, normal syntax
|
||||
#name: eBPF ALU32 instructions, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 04 02 00 00 9a 02 00 00 add32 %r2,0x29a
|
||||
8: 04 03 00 00 66 fd ff ff add32 %r3,0xfffffd66
|
||||
10: 04 04 00 00 ef be ad 7e add32 %r4,0x7eadbeef
|
||||
18: 0c 65 00 00 00 00 00 00 add32 %r5,%r6
|
||||
20: 14 02 00 00 9a 02 00 00 sub32 %r2,0x29a
|
||||
28: 14 03 00 00 66 fd ff ff sub32 %r3,0xfffffd66
|
||||
30: 14 04 00 00 ef be ad 7e sub32 %r4,0x7eadbeef
|
||||
38: 1c 65 00 00 00 00 00 00 sub32 %r5,%r6
|
||||
40: 24 02 00 00 9a 02 00 00 mul32 %r2,0x29a
|
||||
48: 24 03 00 00 66 fd ff ff mul32 %r3,0xfffffd66
|
||||
50: 24 04 00 00 ef be ad 7e mul32 %r4,0x7eadbeef
|
||||
58: 2c 65 00 00 00 00 00 00 mul32 %r5,%r6
|
||||
60: 34 02 00 00 9a 02 00 00 div32 %r2,0x29a
|
||||
68: 34 03 00 00 66 fd ff ff div32 %r3,0xfffffd66
|
||||
70: 34 04 00 00 ef be ad 7e div32 %r4,0x7eadbeef
|
||||
78: 3c 65 00 00 00 00 00 00 div32 %r5,%r6
|
||||
80: 44 02 00 00 9a 02 00 00 or32 %r2,0x29a
|
||||
88: 44 03 00 00 66 fd ff ff or32 %r3,0xfffffd66
|
||||
90: 44 04 00 00 ef be ad 7e or32 %r4,0x7eadbeef
|
||||
98: 4c 65 00 00 00 00 00 00 or32 %r5,%r6
|
||||
a0: 54 02 00 00 9a 02 00 00 and32 %r2,0x29a
|
||||
a8: 54 03 00 00 66 fd ff ff and32 %r3,0xfffffd66
|
||||
b0: 54 04 00 00 ef be ad 7e and32 %r4,0x7eadbeef
|
||||
b8: 5c 65 00 00 00 00 00 00 and32 %r5,%r6
|
||||
c0: 64 02 00 00 9a 02 00 00 lsh32 %r2,0x29a
|
||||
c8: 64 03 00 00 66 fd ff ff lsh32 %r3,0xfffffd66
|
||||
d0: 64 04 00 00 ef be ad 7e lsh32 %r4,0x7eadbeef
|
||||
d8: 6c 65 00 00 00 00 00 00 lsh32 %r5,%r6
|
||||
e0: 74 02 00 00 9a 02 00 00 rsh32 %r2,0x29a
|
||||
e8: 74 03 00 00 66 fd ff ff rsh32 %r3,0xfffffd66
|
||||
f0: 74 04 00 00 ef be ad 7e rsh32 %r4,0x7eadbeef
|
||||
f8: 7c 65 00 00 00 00 00 00 rsh32 %r5,%r6
|
||||
100: 94 02 00 00 9a 02 00 00 mod32 %r2,0x29a
|
||||
108: 94 03 00 00 66 fd ff ff mod32 %r3,0xfffffd66
|
||||
110: 94 04 00 00 ef be ad 7e mod32 %r4,0x7eadbeef
|
||||
118: 9c 65 00 00 00 00 00 00 mod32 %r5,%r6
|
||||
120: a4 02 00 00 9a 02 00 00 xor32 %r2,0x29a
|
||||
128: a4 03 00 00 66 fd ff ff xor32 %r3,0xfffffd66
|
||||
130: a4 04 00 00 ef be ad 7e xor32 %r4,0x7eadbeef
|
||||
138: ac 65 00 00 00 00 00 00 xor32 %r5,%r6
|
||||
140: b4 02 00 00 9a 02 00 00 mov32 %r2,0x29a
|
||||
148: b4 03 00 00 66 fd ff ff mov32 %r3,0xfffffd66
|
||||
150: b4 04 00 00 ef be ad 7e mov32 %r4,0x7eadbeef
|
||||
158: bc 65 00 00 00 00 00 00 mov32 %r5,%r6
|
||||
160: c4 02 00 00 9a 02 00 00 arsh32 %r2,0x29a
|
||||
168: c4 03 00 00 66 fd ff ff arsh32 %r3,0xfffffd66
|
||||
170: c4 04 00 00 ef be ad 7e arsh32 %r4,0x7eadbeef
|
||||
178: cc 65 00 00 00 00 00 00 arsh32 %r5,%r6
|
||||
180: 8c 02 00 00 00 00 00 00 neg32 %r2
|
||||
188: bc 21 08 00 00 00 00 00 movs32 %r1,%r2,8
|
||||
190: bc 21 10 00 00 00 00 00 movs32 %r1,%r2,16
|
||||
198: bc 21 20 00 00 00 00 00 movs32 %r1,%r2,32
|
||||
1a0: 84 01 00 00 00 0f 00 00 neg32 %r1,0xf00
|
@ -49,9 +49,7 @@
|
||||
arsh32 %r4, 0x7eadbeef
|
||||
arsh32 %r5, %r6
|
||||
neg32 %r2
|
||||
endle %r9,16
|
||||
endle %r8,32
|
||||
endle %r7,64
|
||||
endbe %r6,16
|
||||
endbe %r5,32
|
||||
endbe %r4,64
|
||||
movs32 %r1,%r2,8
|
||||
movs32 %r1,%r2,16
|
||||
movs32 %r1,%r2,32
|
||||
neg32 %r1, 0xf00
|
||||
|
@ -1,7 +1,6 @@
|
||||
#as: --EB
|
||||
#as: -EB -mdialect=normal
|
||||
#source: atomic.s
|
||||
#source: atomic-pseudoc.s
|
||||
#objdump: -dr
|
||||
#objdump: -dr -M hex
|
||||
#name: eBPF atomic instructions, big endian
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
@ -9,5 +8,23 @@
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: db 12 1e ef 00 00 00 00 xadddw \[%r1\+0x1eef\],%r2
|
||||
8: c3 12 1e ef 00 00 00 00 xaddw \[%r1\+0x1eef\],%r2
|
||||
0: db 12 1e ef 00 00 00 00 aadd \[%r1\+0x1eef\],%r2
|
||||
8: c3 12 1e ef 00 00 00 00 aadd32 \[%r1\+0x1eef\],%r2
|
||||
10: db 12 1e ef 00 00 00 50 aand \[%r1\+0x1eef\],%r2
|
||||
18: c3 12 1e ef 00 00 00 50 aand32 \[%r1\+0x1eef\],%r2
|
||||
20: db 12 1e ef 00 00 00 40 aor \[%r1\+0x1eef\],%r2
|
||||
28: c3 12 1e ef 00 00 00 40 aor32 \[%r1\+0x1eef\],%r2
|
||||
30: db 12 1e ef 00 00 00 a0 axor \[%r1\+0x1eef\],%r2
|
||||
38: c3 12 1e ef 00 00 00 a0 axor32 \[%r1\+0x1eef\],%r2
|
||||
40: db 12 1e ef 00 00 00 01 afadd \[%r1\+0x1eef\],%r2
|
||||
48: c3 12 1e ef 00 00 00 01 afadd32 \[%r1\+0x1eef\],%r2
|
||||
50: db 12 1e ef 00 00 00 51 afand \[%r1\+0x1eef\],%r2
|
||||
58: c3 12 1e ef 00 00 00 51 afand32 \[%r1\+0x1eef\],%r2
|
||||
60: db 12 1e ef 00 00 00 41 afor \[%r1\+0x1eef\],%r2
|
||||
68: c3 12 1e ef 00 00 00 41 afor32 \[%r1\+0x1eef\],%r2
|
||||
70: db 12 1e ef 00 00 00 a1 afxor \[%r1\+0x1eef\],%r2
|
||||
78: c3 12 1e ef 00 00 00 a1 afxor32 \[%r1\+0x1eef\],%r2
|
||||
80: db 12 00 04 00 00 00 f1 acmp \[%r1\+0x4\],%r2
|
||||
88: c3 23 00 04 00 00 00 f1 acmp32 \[%r2\+0x4\],%r3
|
||||
90: db 12 00 08 00 00 00 e1 axchg \[%r1\+0x8\],%r2
|
||||
98: c3 13 00 08 00 00 00 e1 axchg32 \[%r1\+0x8\],%r3
|
||||
|
@ -1,5 +1,32 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=pseudoc
|
||||
#objdump: -dr -M hex,pseudoc
|
||||
#source: atomic-pseudoc.s
|
||||
#dump: atomic.dump
|
||||
#name: eBPF atomic instructions, normal syntax
|
||||
#name: eBPF atomic instructions, pseudoc syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: db 21 ef 1e 00 00 00 00 lock \*\(u64\*\)\(r1\+0x1eef\)\+=r2
|
||||
8: c3 21 ef 1e 00 00 00 00 lock \*\(u32\*\)\(r1\+0x1eef\)\+=r2
|
||||
10: db 21 ef 1e 00 00 00 00 lock \*\(u64\*\)\(r1\+0x1eef\)\+=r2
|
||||
18: c3 21 ef 1e 00 00 00 00 lock \*\(u32\*\)\(r1\+0x1eef\)\+=r2
|
||||
20: db 21 ef 1e 50 00 00 00 lock \*\(u64\*\)\(r1\+0x1eef\)\&=r2
|
||||
28: c3 21 ef 1e 50 00 00 00 lock \*\(u32\*\)\(r1\+0x1eef\)\&=r2
|
||||
30: db 21 ef 1e 40 00 00 00 lock \*\(u64\*\)\(r1\+0x1eef\)\|=r2
|
||||
38: c3 21 ef 1e 40 00 00 00 lock \*\(u32\*\)\(r1\+0x1eef\)\|=r2
|
||||
40: db 21 ef 1e a0 00 00 00 lock \*\(u64\*\)\(r1\+0x1eef\)\^=r2
|
||||
48: c3 21 ef 1e a0 00 00 00 lock \*\(u32\*\)\(r1\+0x1eef\)\^=r2
|
||||
50: db 21 ef 1e 01 00 00 00 r2=atomic_fetch_add\(\(u64\*\)\(r1\+0x1eef\),r2\)
|
||||
58: c3 21 ef 1e 01 00 00 00 w2=atomic_fetch_add\(\(u32\*\)\(r1\+0x1eef\),w2\)
|
||||
60: db 21 ef 1e 51 00 00 00 r2=atomic_fetch_and\(\(u64\*\)\(r1\+0x1eef\),r2\)
|
||||
68: c3 21 ef 1e 51 00 00 00 w2=atomic_fetch_and\(\(u32\*\)\(r1\+0x1eef\),w2\)
|
||||
70: db 21 ef 1e 41 00 00 00 r2=atomic_fetch_or\(\(u64\*\)\(r1\+0x1eef\),r2\)
|
||||
78: c3 21 ef 1e 41 00 00 00 w2=atomic_fetch_or\(\(u32\*\)\(r1\+0x1eef\),w2\)
|
||||
80: db 21 ef 1e a1 00 00 00 r2=atomic_fetch_xor\(\(u64\*\)\(r1\+0x1eef\),r2\)
|
||||
88: c3 21 ef 1e a1 00 00 00 w2=atomic_fetch_xor\(\(u32\*\)\(r1\+0x1eef\),w2\)
|
||||
90: db 21 04 00 f1 00 00 00 r0=cmpxchg_64\(r1\+0x4,r0,r2\)
|
||||
98: c3 32 04 00 f1 00 00 00 w0=cmpxchg32_32\(r2\+0x4,w0,w3\)
|
||||
a0: db 21 08 00 e1 00 00 00 r2=xchg_64\(r1\+0x8,r2\)
|
||||
a8: c3 31 08 00 e1 00 00 00 w3=xchg32_32\(r1\+0x8,w3\)
|
||||
|
@ -1,4 +1,24 @@
|
||||
# Test for eBPF ADDW and ADDDW pseudo-C instructions
|
||||
# Test for eBPF atomic pseudo-C instructions.
|
||||
.text
|
||||
lock *(u64 *)(r1 + 7919) += r2
|
||||
lock *(u32 *)(r1 + 7919) += r2
|
||||
lock *(u64 *)(r1 + 0x1eef) += r2
|
||||
lock *(u32 *)(r1 + 0x1eef) += r2
|
||||
lock *(u64*)(r1+0x1eef)+=r2
|
||||
lock *(u32*)(r1+0x1eef)+=r2
|
||||
lock *(u64*)(r1+0x1eef)&=r2
|
||||
lock *(u32*)(r1+0x1eef)&=r2
|
||||
lock *(u64*)(r1+0x1eef)|=r2
|
||||
lock *(u32*)(r1+0x1eef)|=r2
|
||||
lock *(u64*)(r1+0x1eef)^=r2
|
||||
lock *(u32*)(r1+0x1eef)^=r2
|
||||
r2 = atomic_fetch_add((u64*)(r1+0x1eef),r2)
|
||||
w2 = atomic_fetch_add((u32*)(r1+0x1eef),w2)
|
||||
r2 = atomic_fetch_and((u64*)(r1+0x1eef),r2)
|
||||
w2 = atomic_fetch_and((u32*)(r1+0x1eef),w2)
|
||||
r2 = atomic_fetch_or((u64*)(r1+0x1eef),r2)
|
||||
w2 = atomic_fetch_or((u32*)(r1+0x1eef),w2)
|
||||
r2 = atomic_fetch_xor((u64*)(r1+0x1eef),r2)
|
||||
w2 = atomic_fetch_xor((u32*)(r1+0x1eef),w2)
|
||||
r0 = cmpxchg_64(r1+0x4,r0,r2)
|
||||
w0 = cmpxchg32_32(r2+0x4,w0,w3)
|
||||
r2 = xchg_64(r1+0x8,r2)
|
||||
w3 = xchg32_32(r1+0x8,w3)
|
||||
|
@ -1,5 +1,30 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=normal
|
||||
#objdump: -dr -M hex
|
||||
#source: atomic.s
|
||||
#dump: atomic.dump
|
||||
#name: eBPF atomic instructions, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: db 21 ef 1e 00 00 00 00 aadd \[%r1\+0x1eef\],%r2
|
||||
8: c3 21 ef 1e 00 00 00 00 aadd32 \[%r1\+0x1eef\],%r2
|
||||
10: db 21 ef 1e 50 00 00 00 aand \[%r1\+0x1eef\],%r2
|
||||
18: c3 21 ef 1e 50 00 00 00 aand32 \[%r1\+0x1eef\],%r2
|
||||
20: db 21 ef 1e 40 00 00 00 aor \[%r1\+0x1eef\],%r2
|
||||
28: c3 21 ef 1e 40 00 00 00 aor32 \[%r1\+0x1eef\],%r2
|
||||
30: db 21 ef 1e a0 00 00 00 axor \[%r1\+0x1eef\],%r2
|
||||
38: c3 21 ef 1e a0 00 00 00 axor32 \[%r1\+0x1eef\],%r2
|
||||
40: db 21 ef 1e 01 00 00 00 afadd \[%r1\+0x1eef\],%r2
|
||||
48: c3 21 ef 1e 01 00 00 00 afadd32 \[%r1\+0x1eef\],%r2
|
||||
50: db 21 ef 1e 51 00 00 00 afand \[%r1\+0x1eef\],%r2
|
||||
58: c3 21 ef 1e 51 00 00 00 afand32 \[%r1\+0x1eef\],%r2
|
||||
60: db 21 ef 1e 41 00 00 00 afor \[%r1\+0x1eef\],%r2
|
||||
68: c3 21 ef 1e 41 00 00 00 afor32 \[%r1\+0x1eef\],%r2
|
||||
70: db 21 ef 1e a1 00 00 00 afxor \[%r1\+0x1eef\],%r2
|
||||
78: c3 21 ef 1e a1 00 00 00 afxor32 \[%r1\+0x1eef\],%r2
|
||||
80: db 21 04 00 f1 00 00 00 acmp \[%r1\+0x4\],%r2
|
||||
88: c3 32 04 00 f1 00 00 00 acmp32 \[%r2\+0x4\],%r3
|
||||
90: db 21 08 00 e1 00 00 00 axchg \[%r1\+0x8\],%r2
|
||||
98: c3 31 08 00 e1 00 00 00 axchg32 \[%r1\+0x8\],%r3
|
||||
|
@ -1,5 +1,24 @@
|
||||
# Test for eBPF ADDW and ADDDW instructions
|
||||
# Test for eBPF atomic instructions
|
||||
.text
|
||||
xadddw [%r1+0x1eef], %r2
|
||||
xaddw [%r1+0x1eef], %r2
|
||||
|
||||
aadd [%r1+0x1eef], %r2
|
||||
aadd32 [%r1+0x1eef], %r2
|
||||
aand [%r1+0x1eef], %r2
|
||||
aand32 [%r1+0x1eef], %r2
|
||||
aor [%r1+0x1eef], %r2
|
||||
aor32 [%r1+0x1eef], %r2
|
||||
axor [%r1+0x1eef], %r2
|
||||
axor32 [%r1+0x1eef], %r2
|
||||
|
||||
afadd [%r1+0x1eef], %r2
|
||||
afadd32 [%r1+0x1eef], %r2
|
||||
afand [%r1+0x1eef], %r2
|
||||
afand32 [%r1+0x1eef], %r2
|
||||
afor [%r1+0x1eef], %r2
|
||||
afor32 [%r1+0x1eef], %r2
|
||||
afxor [%r1+0x1eef], %r2
|
||||
afxor32 [%r1+0x1eef], %r2
|
||||
|
||||
acmp [%r1+4], %r2
|
||||
acmp32 [%r2+4], %r3
|
||||
axchg [%r1+8], %r2
|
||||
axchg32 [%r1+8], %r3
|
||||
|
@ -18,6 +18,10 @@
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
if {[istarget bpf*-*-*]} {
|
||||
# Little-endian BPF tests
|
||||
run_dump_test call
|
||||
run_dump_test exit
|
||||
run_dump_test data
|
||||
run_dump_test lddw
|
||||
run_dump_test lddw-pseudoc
|
||||
run_dump_test alu
|
||||
@ -30,13 +34,19 @@ if {[istarget bpf*-*-*]} {
|
||||
run_dump_test jump-pseudoc
|
||||
run_dump_test jump32
|
||||
run_dump_test jump32-pseudoc
|
||||
run_dump_test call
|
||||
run_dump_test exit
|
||||
run_dump_test atomic-v1
|
||||
run_dump_test atomic
|
||||
run_dump_test atomic-pseudoc
|
||||
run_dump_test data
|
||||
run_dump_test pseudoc-normal
|
||||
run_dump_test indcall-1
|
||||
run_dump_test indcall-1-pseudoc
|
||||
|
||||
run_dump_test jump-relax-ja
|
||||
run_dump_test jump-relax-jump
|
||||
|
||||
# Big-endian BPF tests
|
||||
run_dump_test call-be
|
||||
run_dump_test exit-be
|
||||
run_dump_test data-be
|
||||
run_dump_test lddw-be
|
||||
run_dump_test lddw-be-pseudoc
|
||||
run_dump_test alu-be
|
||||
@ -44,17 +54,22 @@ if {[istarget bpf*-*-*]} {
|
||||
run_dump_test alu32-be
|
||||
run_dump_test alu32-be-pseudoc
|
||||
run_dump_test mem-be
|
||||
run_dump_test mem-be-pseudoc
|
||||
run_dump_test jump-be
|
||||
run_dump_test call-be
|
||||
run_dump_test exit-be
|
||||
run_dump_test jump-be-pseudoc
|
||||
run_dump_test jump32-be
|
||||
run_dump_test jump32-be-pseudoc
|
||||
run_dump_test atomic-v1-be
|
||||
run_dump_test atomic-be
|
||||
run_dump_test data-be
|
||||
run_dump_test pseudoc-normal-be
|
||||
run_dump_test atomic-be-pseudoc
|
||||
|
||||
run_dump_test indcall-1
|
||||
run_dump_test indcall-1-pseudoc
|
||||
run_list_test indcall-bad-1
|
||||
run_dump_test jump-relax-ja-be
|
||||
run_dump_test jump-relax-jump-be
|
||||
|
||||
run_dump_test alu-xbpf
|
||||
run_dump_test alu32-xbpf
|
||||
# Overflow tests
|
||||
run_dump_test offset16-overflow
|
||||
run_dump_test disp16-overflow
|
||||
run_dump_test disp16-overflow-relax
|
||||
run_dump_test disp32-overflow
|
||||
run_dump_test imm32-overflow
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
#as: --EB
|
||||
#as: -EB -mdialect=normal
|
||||
#source: call.s
|
||||
#objdump: -dr
|
||||
#objdump: -dr -M dec
|
||||
#name: eBPF CALL instruction, big endian
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
@ -1,5 +1,5 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=normal
|
||||
#objdump: -dr -M dec
|
||||
#name: eBPF CALL instruction
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
@ -1,4 +1,4 @@
|
||||
#as: --EB
|
||||
#as: -EB -mdialect=normal
|
||||
#source: data.s
|
||||
#objdump: -s -j .data
|
||||
#name: eBPF data directives, big endian
|
||||
|
@ -1,4 +1,4 @@
|
||||
#as: --EL
|
||||
#as: -EL -mdialect=normal
|
||||
#objdump: -s -j .data
|
||||
#name: eBPF data directives
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#as: --EB
|
||||
#as: -EB -mdialect=normal
|
||||
#source: exit.s
|
||||
#objdump: -dr
|
||||
#objdump: -dr -M hex
|
||||
#name: eBPF EXIT instruction, big endian
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
@ -1,5 +1,5 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=normal
|
||||
#objdump: -dr -M hex
|
||||
#name: eBPF EXIT instruction
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
@ -1,5 +1,23 @@
|
||||
#as: -mxbpf --EL
|
||||
#objdump: -mxbpf -dr
|
||||
#as: -EL -mdialect=pseudoc -misa-spec=xbpf
|
||||
#objdump: -M xbpf,pseudoc,dec -dr
|
||||
#source: indcall-1-pseudoc.s
|
||||
#dump: indcall-1.dump
|
||||
#name: BPF indirect call 1, pseudoc syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
0000000000000000 <main>:
|
||||
0: b7 00 00 00 01 00 00 00 r0=1
|
||||
8: b7 01 00 00 01 00 00 00 r1=1
|
||||
10: b7 02 00 00 02 00 00 00 r2=2
|
||||
18: 18 06 00 00 38 00 00 00 r6=56 ll
|
||||
20: 00 00 00 00 00 00 00 00[ ]*
|
||||
18: R_BPF_64_64 .text
|
||||
28: 8d 06 00 00 00 00 00 00 callx r6
|
||||
30: 95 00 00 00 00 00 00 00 exit
|
||||
|
||||
0000000000000038 <bar>:
|
||||
38: b7 00 00 00 00 00 00 00 r0=0
|
||||
40: 95 00 00 00 00 00 00 00 exit
|
||||
#pass
|
||||
|
@ -1,5 +1,23 @@
|
||||
#as: -mxbpf --EL
|
||||
#objdump: -mxbpf -dr
|
||||
#as: -EL -misa-spec=xbpf
|
||||
#objdump: -dr -M xbpf,dec
|
||||
#source: indcall-1.s
|
||||
#dump: indcall-1.dump
|
||||
#name: BPF indirect call 1, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
0000000000000000 <main>:
|
||||
0: b7 00 00 00 01 00 00 00 mov %r0,1
|
||||
8: b7 01 00 00 01 00 00 00 mov %r1,1
|
||||
10: b7 02 00 00 02 00 00 00 mov %r2,2
|
||||
18: 18 06 00 00 38 00 00 00 lddw %r6,56
|
||||
20: 00 00 00 00 00 00 00 00[ ]*
|
||||
18: R_BPF_64_64 .text
|
||||
28: 8d 06 00 00 00 00 00 00 call %r6
|
||||
30: 95 00 00 00 00 00 00 00 exit
|
||||
|
||||
0000000000000038 <bar>:
|
||||
38: b7 00 00 00 00 00 00 00 mov %r0,0
|
||||
40: 95 00 00 00 00 00 00 00 exit
|
||||
#pass
|
||||
|
@ -1,7 +1,6 @@
|
||||
#as: --EB
|
||||
#as: -EB -mdialect=normal
|
||||
#source: jump.s
|
||||
#source: jump-pseudoc.s
|
||||
#objdump: -dr
|
||||
#objdump: -dr -M dec
|
||||
#name: eBPF JUMP instructions, big endian
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
@ -31,3 +30,5 @@ Disassembly of section .text:
|
||||
98: cd 34 00 00 00 00 00 00 jslt %r3,%r4,0
|
||||
a0: d5 30 00 01 00 00 00 03 jsle %r3,3,1
|
||||
a8: dd 34 00 00 00 00 00 00 jsle %r3,%r4,0
|
||||
b0: 06 00 00 00 00 00 00 01 jal 1
|
||||
b8: 06 00 00 00 00 00 00 00 jal 0
|
||||
|
@ -1,5 +1,34 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=pseudoc
|
||||
#objdump: -dr -M dec,pseudoc
|
||||
#source: jump-pseudoc.s
|
||||
#dump: jump.dump
|
||||
#name: eBPF JUMP instructions, pseudoc syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 05 00 03 00 00 00 00 00 goto 3
|
||||
8: 0f 11 00 00 00 00 00 00 r1\+=r1
|
||||
10: 15 03 01 00 03 00 00 00 if r3==3 goto 1
|
||||
18: 1d 43 00 00 00 00 00 00 if r3==r4 goto 0
|
||||
20: 35 03 fd ff 03 00 00 00 if r3>=3 goto -3
|
||||
28: 3d 43 fc ff 00 00 00 00 if r3>=r4 goto -4
|
||||
30: a5 03 01 00 03 00 00 00 if r3<3 goto 1
|
||||
38: ad 43 00 00 00 00 00 00 if r3<r4 goto 0
|
||||
40: b5 03 01 00 03 00 00 00 if r3<=3 goto 1
|
||||
48: bd 43 00 00 00 00 00 00 if r3<=r4 goto 0
|
||||
50: 45 03 01 00 03 00 00 00 if r3&3 goto 1
|
||||
58: 4d 43 00 00 00 00 00 00 if r3&r4 goto 0
|
||||
60: 55 03 01 00 03 00 00 00 if r3!=3 goto 1
|
||||
68: 5d 43 00 00 00 00 00 00 if r3!=r4 goto 0
|
||||
70: 65 03 01 00 03 00 00 00 if r3s>3 goto 1
|
||||
78: 6d 43 00 00 00 00 00 00 if r3s>r4 goto 0
|
||||
80: 75 03 01 00 03 00 00 00 if r3s>=3 goto 1
|
||||
88: 7d 43 00 00 00 00 00 00 if r3s>=r4 goto 0
|
||||
90: c5 03 01 00 03 00 00 00 if r3s<3 goto 1
|
||||
98: cd 43 00 00 00 00 00 00 if r3s<r4 goto 0
|
||||
a0: d5 03 01 00 03 00 00 00 if r3s<=3 goto 1
|
||||
a8: dd 43 00 00 00 00 00 00 if r3s<=r4 goto 0
|
||||
b0: 06 00 00 00 01 00 00 00 gotol 1
|
||||
b8: 06 00 00 00 00 00 00 00 gotol 0
|
@ -22,4 +22,6 @@
|
||||
if r3 s< r4 goto 1f
|
||||
1: if r3 s<= 3 goto 1f
|
||||
if r3 s<= r4 goto 1f
|
||||
1: gotol 1f
|
||||
gotol 1f
|
||||
1:
|
||||
|
@ -1,5 +1,34 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=normal
|
||||
#objdump: -dr -M dec
|
||||
#source: jump.s
|
||||
#dump: jump.dump
|
||||
#name: eBPF JUMP instructions, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 05 00 03 00 00 00 00 00 ja 3
|
||||
8: 0f 11 00 00 00 00 00 00 add %r1,%r1
|
||||
10: 15 03 01 00 03 00 00 00 jeq %r3,3,1
|
||||
18: 1d 43 00 00 00 00 00 00 jeq %r3,%r4,0
|
||||
20: 35 03 fd ff 03 00 00 00 jge %r3,3,-3
|
||||
28: 3d 43 fc ff 00 00 00 00 jge %r3,%r4,-4
|
||||
30: a5 03 01 00 03 00 00 00 jlt %r3,3,1
|
||||
38: ad 43 00 00 00 00 00 00 jlt %r3,%r4,0
|
||||
40: b5 03 01 00 03 00 00 00 jle %r3,3,1
|
||||
48: bd 43 00 00 00 00 00 00 jle %r3,%r4,0
|
||||
50: 45 03 01 00 03 00 00 00 jset %r3,3,1
|
||||
58: 4d 43 00 00 00 00 00 00 jset %r3,%r4,0
|
||||
60: 55 03 01 00 03 00 00 00 jne %r3,3,1
|
||||
68: 5d 43 00 00 00 00 00 00 jne %r3,%r4,0
|
||||
70: 65 03 01 00 03 00 00 00 jsgt %r3,3,1
|
||||
78: 6d 43 00 00 00 00 00 00 jsgt %r3,%r4,0
|
||||
80: 75 03 01 00 03 00 00 00 jsge %r3,3,1
|
||||
88: 7d 43 00 00 00 00 00 00 jsge %r3,%r4,0
|
||||
90: c5 03 01 00 03 00 00 00 jslt %r3,3,1
|
||||
98: cd 43 00 00 00 00 00 00 jslt %r3,%r4,0
|
||||
a0: d5 03 01 00 03 00 00 00 jsle %r3,3,1
|
||||
a8: dd 43 00 00 00 00 00 00 jsle %r3,%r4,0
|
||||
b0: 06 00 00 00 01 00 00 00 jal 1
|
||||
b8: 06 00 00 00 00 00 00 00 jal 0
|
@ -22,4 +22,6 @@
|
||||
jslt %r3,%r4,1f
|
||||
1: jsle %r3,3,1f
|
||||
jsle %r3,%r4,1f
|
||||
1:
|
||||
1: jal 1f
|
||||
jal 1f
|
||||
1:
|
||||
|
@ -1,5 +1,32 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=pseudoc
|
||||
#objdump: -dr -M dec,pseudoc
|
||||
#source: jump32-pseudoc.s
|
||||
#dump: jump32.dump
|
||||
#name: eBPF JUMP32 instructions, pseudoc syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 05 00 03 00 00 00 00 00 goto 3
|
||||
8: 0f 11 00 00 00 00 00 00 r1\+=r1
|
||||
10: 16 03 01 00 03 00 00 00 if w3==3 goto 1
|
||||
18: 1e 43 00 00 00 00 00 00 if w3==w4 goto 0
|
||||
20: 36 03 fd ff 03 00 00 00 if w3>=3 goto -3
|
||||
28: 3e 43 fc ff 00 00 00 00 if w3>=w4 goto -4
|
||||
30: a6 03 01 00 03 00 00 00 if w3<3 goto 1
|
||||
38: ae 43 00 00 00 00 00 00 if w3<w4 goto 0
|
||||
40: b6 03 01 00 03 00 00 00 if w3<=3 goto 1
|
||||
48: be 43 00 00 00 00 00 00 if w3<=w4 goto 0
|
||||
50: 46 03 01 00 03 00 00 00 if w3&3 goto 1
|
||||
58: 4e 43 00 00 00 00 00 00 if w3&w4 goto 0
|
||||
60: 56 03 01 00 03 00 00 00 if w3!=3 goto 1
|
||||
68: 5e 43 00 00 00 00 00 00 if w3!=w4 goto 0
|
||||
70: 66 03 01 00 03 00 00 00 if w3s>3 goto 1
|
||||
78: 6e 43 00 00 00 00 00 00 if w3s>w4 goto 0
|
||||
80: 76 03 01 00 03 00 00 00 if w3s>=3 goto 1
|
||||
88: 7e 43 00 00 00 00 00 00 if w3s>=w4 goto 0
|
||||
90: c6 03 01 00 03 00 00 00 if w3s<3 goto 1
|
||||
98: ce 43 00 00 00 00 00 00 if w3s<w4 goto 0
|
||||
a0: d6 03 01 00 03 00 00 00 if w3s<=3 goto 1
|
||||
a8: de 43 00 00 00 00 00 00 if w3s<=w4 goto 0
|
||||
|
@ -1,5 +1,32 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=normal
|
||||
#objdump: -dr -M dec
|
||||
#source: jump32.s
|
||||
#dump: jump32.dump
|
||||
#name: eBPF JUMP32 instructions, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 05 00 03 00 00 00 00 00 ja 3
|
||||
8: 0f 11 00 00 00 00 00 00 add %r1,%r1
|
||||
10: 16 03 01 00 03 00 00 00 jeq32 %r3,3,1
|
||||
18: 1e 43 00 00 00 00 00 00 jeq32 %r3,%r4,0
|
||||
20: 36 03 fd ff 03 00 00 00 jge32 %r3,3,-3
|
||||
28: 3e 43 fc ff 00 00 00 00 jge32 %r3,%r4,-4
|
||||
30: a6 03 01 00 03 00 00 00 jlt32 %r3,3,1
|
||||
38: ae 43 00 00 00 00 00 00 jlt32 %r3,%r4,0
|
||||
40: b6 03 01 00 03 00 00 00 jle32 %r3,3,1
|
||||
48: be 43 00 00 00 00 00 00 jle32 %r3,%r4,0
|
||||
50: 46 03 01 00 03 00 00 00 jset32 %r3,3,1
|
||||
58: 4e 43 00 00 00 00 00 00 jset32 %r3,%r4,0
|
||||
60: 56 03 01 00 03 00 00 00 jne32 %r3,3,1
|
||||
68: 5e 43 00 00 00 00 00 00 jne32 %r3,%r4,0
|
||||
70: 66 03 01 00 03 00 00 00 jsgt32 %r3,3,1
|
||||
78: 6e 43 00 00 00 00 00 00 jsgt32 %r3,%r4,0
|
||||
80: 76 03 01 00 03 00 00 00 jsge32 %r3,3,1
|
||||
88: 7e 43 00 00 00 00 00 00 jsge32 %r3,%r4,0
|
||||
90: c6 03 01 00 03 00 00 00 jslt32 %r3,3,1
|
||||
98: ce 43 00 00 00 00 00 00 jslt32 %r3,%r4,0
|
||||
a0: d6 03 01 00 03 00 00 00 jsle32 %r3,3,1
|
||||
a8: de 43 00 00 00 00 00 00 jsle32 %r3,%r4,0
|
||||
|
@ -1,5 +1,18 @@
|
||||
#as: --EB
|
||||
#as: -EB -mdialect=pseudoc
|
||||
#source: lddw-pseudoc.s
|
||||
#objdump: -dr
|
||||
#dump: lddw-be.dump
|
||||
#objdump: -dr -M hex,pseudoc
|
||||
#name: eBPF LDDW, big-endian, pseudoc syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 18 30 00 00 00 00 00 01 r3=0x1 ll
|
||||
8: 00 00 00 00 00 00 00 00
|
||||
10: 18 40 00 00 de ad be ef r4=0xdeadbeef ll
|
||||
18: 00 00 00 00 00 00 00 00
|
||||
20: 18 50 00 00 55 66 77 88 r5=0x1122334455667788 ll
|
||||
28: 00 00 00 00 11 22 33 44
|
||||
30: 18 60 00 00 ff ff ff fe r6=0xfffffffffffffffe ll
|
||||
38: 00 00 00 00 ff ff ff ff
|
||||
|
@ -1,5 +1,18 @@
|
||||
#as: --EB
|
||||
#as: -EB -mdialect=normal
|
||||
#source: lddw.s
|
||||
#objdump: -dr
|
||||
#dump: lddw-be.dump
|
||||
#objdump: -dr -M hex
|
||||
#name: eBPF LDDW, big-endian, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 18 30 00 00 00 00 00 01 lddw %r3,0x1
|
||||
8: 00 00 00 00 00 00 00 00
|
||||
10: 18 40 00 00 de ad be ef lddw %r4,0xdeadbeef
|
||||
18: 00 00 00 00 00 00 00 00
|
||||
20: 18 50 00 00 55 66 77 88 lddw %r5,0x1122334455667788
|
||||
28: 00 00 00 00 11 22 33 44
|
||||
30: 18 60 00 00 ff ff ff fe lddw %r6,0xfffffffffffffffe
|
||||
38: 00 00 00 00 ff ff ff ff
|
||||
|
@ -1,5 +1,18 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=pseudoc
|
||||
#objdump: -dr -M hex,pseudoc
|
||||
#source: lddw-pseudoc.s
|
||||
#dump: lddw.dump
|
||||
#name: eBPF LDDW, pseudoc syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 18 03 00 00 01 00 00 00 r3=0x1 ll
|
||||
8: 00 00 00 00 00 00 00 00
|
||||
10: 18 04 00 00 ef be ad de r4=0xdeadbeef ll
|
||||
18: 00 00 00 00 00 00 00 00
|
||||
20: 18 05 00 00 88 77 66 55 r5=0x1122334455667788 ll
|
||||
28: 00 00 00 00 44 33 22 11
|
||||
30: 18 06 00 00 fe ff ff ff r6=0xfffffffffffffffe ll
|
||||
38: 00 00 00 00 ff ff ff ff
|
||||
|
@ -1,5 +1,18 @@
|
||||
#as: --EL
|
||||
#objdump: -dr
|
||||
#as: -EL -mdialect=normal
|
||||
#objdump: -dr -M hex
|
||||
#source: lddw.s
|
||||
#dump: lddw.dump
|
||||
#name: eBPF LDDW, normal syntax
|
||||
|
||||
.*: +file format .*bpf.*
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
0: 18 03 00 00 01 00 00 00 lddw %r3,0x1
|
||||
8: 00 00 00 00 00 00 00 00
|
||||
10: 18 04 00 00 ef be ad de lddw %r4,0xdeadbeef
|
||||
18: 00 00 00 00 00 00 00 00
|
||||
20: 18 05 00 00 88 77 66 55 lddw %r5,0x1122334455667788
|
||||
28: 00 00 00 00 44 33 22 11
|
||||
30: 18 06 00 00 fe ff ff ff lddw %r6,0xfffffffffffffffe
|
||||
38: 00 00 00 00 ff ff ff ff
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user