]> git.ipfire.org Git - thirdparty/binutils-gdb.git/log
thirdparty/binutils-gdb.git
4 years agoAutomatic date update in version.in
GDB Administrator [Wed, 21 Oct 2020 00:00:49 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Tue, 20 Oct 2020 00:00:45 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Mon, 19 Oct 2020 00:00:47 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sun, 18 Oct 2020 00:00:48 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sat, 17 Oct 2020 00:00:40 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Fri, 16 Oct 2020 00:00:50 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Thu, 15 Oct 2020 00:00:43 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Wed, 14 Oct 2020 00:00:43 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Tue, 13 Oct 2020 00:00:48 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Mon, 12 Oct 2020 00:00:38 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sun, 11 Oct 2020 00:00:42 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sat, 10 Oct 2020 00:00:39 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoarm: Add support for Neoverse N2 CPU
Alex Coplan [Fri, 9 Oct 2020 14:05:51 +0000 (15:05 +0100)] 
arm: Add support for Neoverse N2 CPU

This patch backports the AArch32 support for Arm's Neoverse N2 CPU to
binutils 2.35.

gas/ChangeLog:

* config/tc-arm.c (arm_cpus): Add Neoverse N2.
* doc/c-arm.texi: Document -mcpu=neoverse-n2.

4 years ago[GOLD] Power10 segv due to wild r2
Alan Modra [Fri, 9 Oct 2020 06:26:33 +0000 (16:56 +1030)] 
[GOLD] Power10 segv due to wild r2

Calling non-pcrel functions from pcrel code requires a stub to set up
r2.  Gold created the stub, but an "optimisation" made the stub jump
to the function local entry, ie. r2 was not initialised.

This patch fixes that long branch stub problem, and another that might
occur for plt call stubs to local functions.

bfd/
* elf64-ppc.c (write_plt_relocs_for_local_syms): Don't do local
entry offset optimisation.
gold/
* powerpc.cc (Powerpc_relobj::do_relocate_sections): Don't do
local entry offset optimisation for lplt_section.
(Target_powerpc::Branch_info::make_stub): Don't add local
entry offset to long branch dest passed to
add_long_branch_entry.  Do pass st_other bits.
(Stub_table::Branch_stub_ent): Add "other_" field.
(Stub_table::add_long_branch_entry): Add "other" param, and
save.
(Stub_table::branch_stub_size): Adjust long branch offset.
(Stub_table::do_write): Likewise.
(Target_powerpc::Relocate::relocate): Likewise.

(cherry picked from commit fa40fbe484954c560ab1c0ff4bc1b2eeb1511344)

4 years ago[GOLD] internal error in relocate, at powerpc.cc:10473
Alan Modra [Fri, 9 Oct 2020 00:29:33 +0000 (10:59 +1030)] 
[GOLD] internal error in relocate, at powerpc.cc:10473

GOT relocations can refer directly to a function in a fixed position
executable, unlike ADDR64 which needs a global entry stub, or branch
relocs, which need PLT stubs.

* powerpc.cc (is_got_reloc): New function.
(Target_powerpc::Relocate::relocate): Use it here, exclude GOT
relocs when looking for stubs.

(cherry picked from commit 4290b0ab2b65db23afc9bd8177885bfd91911c0c)

4 years agoarm: Add support for Neoverse V1 CPU
Alex Coplan [Fri, 9 Oct 2020 09:57:01 +0000 (10:57 +0100)] 
arm: Add support for Neoverse V1 CPU

This patch backports the AArch32 support for Arm's Neoverse V1 CPU to
binutils 2.35.

gas/ChangeLog:

* config/tc-arm.c (arm_cpus): Add Neoverse V1.
* doc/c-arm.texi: Document Neoverse V1 support.

4 years agoAutomatic date update in version.in
GDB Administrator [Fri, 9 Oct 2020 00:00:44 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agogold: Update testsuite/split_[i386|x32|x86_64].sh
H.J. Lu [Thu, 8 Oct 2020 11:54:26 +0000 (04:54 -0700)] 
gold: Update testsuite/split_[i386|x32|x86_64].sh

Update testsuite/split_i386.sh, testsuite/split_x32.sh and
testsuite/split_x86_64.sh for

commit f9ff65d4dffbaf342dce7a8760059c27683cd962
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Oct 8 10:27:43 2020 +1030

    [GOLD] Increase --split-stack-adjust-size

* testsuite/split_i386.sh: Updated for --split-stack-adjust-size
default change.
* testsuite/split_x32.sh: Likewise.
* testsuite/split_x86_64.sh: Likewise.

(cherry picked from commit f511427204f281bc6278bb1facf6493518300806)

4 years ago[GOLD] Increase --split-stack-adjust-size
Alan Modra [Wed, 7 Oct 2020 23:57:43 +0000 (10:27 +1030)] 
[GOLD] Increase --split-stack-adjust-size

For functions with small (< 256 bytes) stack frames, the current x86
do_calls_non_split ignores --split-stack-adjust-size and, in
combination with __morestack_non_split, supplies a non-split-stack
function with at least 0x100000 (1M) available stack.  On powerpc64, a
default of 0x4000 is not large enough to reliably work with the golang
testsuite.  This increase the default size to the defacto x86 value.

* options.h (split_stack_adjust_size): Default to 0x100000.

(cherry picked from commit f9ff65d4dffbaf342dce7a8760059c27683cd962)

4 years agoAutomatic date update in version.in
GDB Administrator [Thu, 8 Oct 2020 00:00:42 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agox86: Update register operand check for AddrPrefixOpReg
H.J. Lu [Sat, 3 Oct 2020 11:23:55 +0000 (04:23 -0700)] 
x86: Update register operand check for AddrPrefixOpReg

When the address size prefix applies to both the memory and the register
operand, we need to extract the address size prefix from the register
operand if the memory operand has no real registers, like symbol, DISP
or symbol(%rip).

NB: GCC always generates symbol(%rip) for RIP-relative addressing for
both x32 and x86-64.

Move the .code16 tests in movdir.s to movdir-16bit to show the correct
output from objdump.

gas/

PR gas/26685
* config/tc-i386.c (process_suffix): Also check the register
operand for the address size prefix if the memory operand has
no real registers.
* testsuite/gas/i386/enqcmd-16bit.d: New file.
* testsuite/gas/i386/enqcmd-16bit.s: Likewise.
* testsuite/gas/i386/movdir-16bit.d: Likewise.
* testsuite/gas/i386/movdir-16bit.s: Likewise.
* testsuite/gas/i386/enqcmd.s: Add tests with symbol and DISP.
* testsuite/gas/i386/x86-64-enqcmd.s: Likewise.
* testsuite/gas/i386/x86-64-movdir.s: Likewise.
* testsuite/gas/i386/movdir.s: Add tests with symbol and DISP.
Remove the .code16 test.
* testsuite/gas/i386/i386.exp: Run movdir-16bit and enqcmd-16bit.
* testsuite/gas/i386/x86-64-enqcmd-intel.d: Updated.
* testsuite/gas/i386/x86-64-enqcmd.d: Likewise.
* testsuite/gas/i386/x86-64-movdir-intel.d: Likewise.
* testsuite/gas/i386/x86-64-movdir.d: Likewise.
* testsuite/gas/i386/enqcmd-intel.d: Likewise.
* testsuite/gas/i386/enqcmd.d: Likewise.
* testsuite/gas/i386/movdir-intel.d: Likewise.
* testsuite/gas/i386/movdir.d: Likewise.
* testsuite/gas/i386/x86-64-enqcmd-intel.d: Likewise.
* testsuite/gas/i386/x86-64-enqcmd.d: Likewise.
* testsuite/gas/i386/x86-64-movdir-intel.d: Likewise.
* testsuite/gas/i386/x86-64-movdir.d: Likewise.

opcodes/

PR gas/26685
* i386-dis.c (mod_table): Replace Gv with Gdq on movdiri.

(cherry picked from commit b3a3496f83a14ad226790725c8e3ed9777fe2899)

4 years agox86: Check register operand for AddrPrefixOpReg
H.J. Lu [Wed, 30 Sep 2020 23:33:35 +0000 (16:33 -0700)] 
x86: Check register operand for AddrPrefixOpReg

If the address prefix changes the register operand, we need to check the
register operand when the memory operand is RIP-relative.

PR gas/26685
* config/tc-i386.c (process_suffix): Check the register operand
for the address size prefix if the memory operand is symbol(%rip).
* testsuite/gas/i386/x86-64-enqcmd.s: Add tests with RIP-relative
addressing.
* testsuite/gas/i386/x86-64-movdir.s: Likewise.
* testsuite/gas/i386/x86-64-enqcmd-intel.d: Updated.
* testsuite/gas/i386/x86-64-enqcmd.d: Likewise.
* testsuite/gas/i386/x86-64-movdir-intel.d: Likewise.
* testsuite/gas/i386/x86-64-movdir.d: Likewise.

(cherry picked from commit 27f134698ac529f3050f5ddbd31a0ab0bbe5be99)

4 years agoRevert "x86: Don't display eiz with no scale"
Jan Beulich [Tue, 21 Jul 2020 12:20:11 +0000 (14:20 +0200)] 
Revert "x86: Don't display eiz with no scale"

This reverts commit 04c662e2b66bedd050f97adec19afe0fcfce9ea7.
In my underlying suggestion I neglected the fact that in those
cases (,%eiz,1) is the only visible indication that 32-bit
addressing is in effect.

(cherry picked from commit bf4ba07ca61793a1faf81c0447ba97fdc6639b50)

4 years agox86: Update GNU property tests
H.J. Lu [Tue, 6 Oct 2020 22:51:33 +0000 (15:51 -0700)] 
x86: Update GNU property tests

Update property tests for glibc compiled by Fedora binary annotation
plugin for GCC, which may insert additonal GNU properties:

x86 ISA needed: SSE, SSE2

* testsuite/ld-i386/property-3.r: Updated for Fedora binary
annotation plugin for GCC.
* testsuite/ld-i386/property-4.r: Likewise.
* testsuite/ld-i386/property-5.r: Likewise.
* testsuite/ld-x86-64/property-3.r: Likewise.
* testsuite/ld-x86-64/property-4.r: Likewise.
* testsuite/ld-x86-64/property-5.r: Likewise.

(cherry picked from commit f95f5adb9a50a27639a811c540c008e776aee46d)

4 years agox86: Properly merge -z ibt and -z shstk
H.J. Lu [Tue, 6 Oct 2020 22:38:23 +0000 (15:38 -0700)] 
x86: Properly merge -z ibt and -z shstk

Merge -z ibt and -z shstk only with GNU_PROPERTY_X86_FEATURE_1_AND, not
any GNU_PROPERTY_X86_UINT32_AND_XXX properties.

bfd/

PR ld/26711
* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Merge -z ibt
and -z shstk only with GNU_PROPERTY_X86_FEATURE_1_AND.

ld/

PR ld/26711
* testsuite/ld-i386/i386.exp: Run ld/26711 tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr26711-1.d: Likewise.
* testsuite/ld-i386/pr26711-2.d: Likewise.
* testsuite/ld-i386/pr26711-3.d: Likewise.
* testsuite/ld-x86-64/pr26711-1-x32.d: Likewise.
* testsuite/ld-x86-64/pr26711-1.d: Likewise.
* testsuite/ld-x86-64/pr26711-2-x32.d: Likewise.
* testsuite/ld-x86-64/pr26711-2.d: Likewise.
* testsuite/ld-x86-64/pr26711-3-x32.d: Likewise.
* testsuite/ld-x86-64/pr26711-3.d: Likewise.
* testsuite/ld-x86-64/pr26711.s: Likewise.

(cherry picked from commit 574df58f5295ef2728526e6a73b5f429b05f2a8c)

4 years agoAutomatic date update in version.in
GDB Administrator [Wed, 7 Oct 2020 00:00:51 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoaarch64: Fix bogus type punning in parse_barrier() [PR26699]
Alex Coplan [Tue, 6 Oct 2020 14:56:44 +0000 (15:56 +0100)] 
aarch64: Fix bogus type punning in parse_barrier() [PR26699]

This patch fixes a bogus use of type punning in parse_barrier() which
was causing an assembly failure on big endian LP64 hosts when attempting
to assemble "isb sy" for AArch64.

The type of the entries in aarch64_barrier_opt_hsh is
aarch64_name_value_pair. We were incorrectly casting this to the
locally-defined asm_barrier_opt which has a wider type (on LP64) for the
second member. This happened to work on little-endian hosts but fails on
LP64 big endian.

The fix is to use the correct type in parse_barrier(). This makes the
locally-defined asm_barrier_opt redundant, so remove it.

gas/ChangeLog:

PR 26699
* config/tc-aarch64.c (asm_barrier_opt): Delete.
(parse_barrier): Fix bogus type punning.
* testsuite/gas/aarch64/system.d: Update disassembly.
* testsuite/gas/aarch64/system.s: Add isb sy test.

(cherry picked from commit 05cfb0d8cc9b7f8676f5ae55a93642f091d5405f)

4 years agoAutomatic date update in version.in
GDB Administrator [Tue, 6 Oct 2020 00:00:45 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Mon, 5 Oct 2020 00:00:44 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sun, 4 Oct 2020 00:00:45 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sat, 3 Oct 2020 00:00:46 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoaarch64: Add support for Neoverse V1 CPU
Alex Coplan [Fri, 2 Oct 2020 14:04:29 +0000 (15:04 +0100)] 
aarch64: Add support for Neoverse V1 CPU

This backports the AArch64 support for Arm's Neoverse V1 CPU to binutils
2.35.

gas/ChangeLog:

* config/tc-aarch64.c (aarch64_cpus): Add Neoverse V1.
* doc/c-aarch64.texi: Document Neoverse V1 support.

4 years agoAutomatic date update in version.in
GDB Administrator [Fri, 2 Oct 2020 00:00:44 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Thu, 1 Oct 2020 00:00:54 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Wed, 30 Sep 2020 00:00:48 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Tue, 29 Sep 2020 00:00:46 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoRe: PR26656, power10 libstdc++.so segfault in __cxxabiv1::__cxa_throw
Alan Modra [Mon, 28 Sep 2020 00:00:19 +0000 (09:30 +0930)] 
Re: PR26656, power10 libstdc++.so segfault in __cxxabiv1::__cxa_throw

Some missing NULL checks meant a stub for a local symbol used a stub
looking like the __tls_get_addr_opt stub.

PR 26656
* elf64-ppc.c (ppc_build_one_stub, ppc_size_one_stub): Check for
NULL stub_entry->h before calling is_tls_get_addr.

(cherry picked from commit 12cf8b93da0ae155643d262235486fde5af72a80)

4 years agoAutomatic date update in version.in
GDB Administrator [Mon, 28 Sep 2020 00:00:46 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sun, 27 Sep 2020 00:00:44 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years ago[GOLD] PPC64_OPT_LOCALENTRY is incompatible with tail calls
Alan Modra [Sat, 26 Sep 2020 11:04:55 +0000 (20:34 +0930)] 
[GOLD] PPC64_OPT_LOCALENTRY is incompatible with tail calls

Gold version of commit 3cd7c7d7ef.

* powerpc.cc (Target_powerpc): Rename power10_stubs_ to
power10_relocs_.
(Target_powerpc::set_power10_relocs): New accessor.
(Target_powerpc::set_power10_stubs): Delete.
(Target_powerpc::power10_stubs): Adjust.
(Target_powerpc::has_localentry0): New accessor.
(ld_0_11): New constant.
(glink_eh_frame_fde_64v1, glink_eh_frame_fde_64v2): Adjust.
(glink_eh_frame_fde_64v2_localentry0): New.
(Output_data_glink::pltresolve_size): Update.
(Output_data_glink::add_eh_frame): Use localentry0 version eh_frame.
(Output_data_glink::do_write): Move r2 save to start of ELFv2 stub
and only emit for has_localentry0.  Don't use r2 in the stub.
(Target_powerpc::Scan::local, global): Adjust for
set_power10_relocs renaming.
(Target_powerpc::scan_relocs): Warn and reset plt_localentry0_.

(cherry picked from commit 63e5eea234c2bd2c7ce7dc921c71b22bc4fd0d6b)

4 years agoPPC64_OPT_LOCALENTRY is incompatible with tail calls
Alan Modra [Sat, 26 Sep 2020 05:40:09 +0000 (15:10 +0930)] 
PPC64_OPT_LOCALENTRY is incompatible with tail calls

The save of r2 in __glink_PLTresolve is the culprit.  Remove it,
unless we know we need it for --plt-localentry.  --plt-localentry
should not be used with power10 pc-relative code that makes tail
calls.

The patch also removes use of r2 as a scratch reg in the ELFv2
__glink_PLTresolve.  Using r2 isn't a problem, this is just reducing
the number of scratch regs.

bfd/
* elf64-ppc.c (GLINK_PLTRESOLVE_SIZE): Depend on has_plt_localentry0.
(LD_R0_0R11, ADD_R11_R0_R11): Define.
(ppc64_elf_tls_setup): Disable params->plt_localentry0 when power10
code detected.
(ppc64_elf_size_stubs): Update __glink_PLTresolve eh_frame.
(ppc64_elf_build_stubs): Move r2 save to start of __glink_PLTresolve,
and only emit for has_plt_localentry0.  Don't use r2 in the stub.
ld/
* testsuite/ld-powerpc/elfv2so.d,
* testsuite/ld-powerpc/notoc2.d,
* testsuite/ld-powerpc/tlsdesc.wf,
* testsuite/ld-powerpc/tlsdesc2.d,
* testsuite/ld-powerpc/tlsdesc2.wf,
* testsuite/ld-powerpc/tlsopt5.d,
* testsuite/ld-powerpc/tlsopt5.wf,
* testsuite/ld-powerpc/tlsopt6.d,
* testsuite/ld-powerpc/tlsopt6.wf: Update __glink_PLTresolve.

(cherry picked from commit 3cd7c7d7ef38ec5dc0a0c137c47d9ad0fc9e2e5f)

4 years agoAutomatic date update in version.in
GDB Administrator [Sat, 26 Sep 2020 00:00:44 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Fri, 25 Sep 2020 00:00:44 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoImport patch from mainline to fix decoding DWARF information in the BFD library.
Nick Clifton [Thu, 24 Sep 2020 12:42:04 +0000 (13:42 +0100)] 
Import patch from mainline to fix decoding DWARF information in the BFD library.

PR 26520
* dwarf2.c (scan_unit_for_symbols): Add member entries to the
variable table.

4 years ago[GOLD] PowerPC64 __tls_get_addr_opt stub
Alan Modra [Wed, 23 Sep 2020 13:24:01 +0000 (22:54 +0930)] 
[GOLD] PowerPC64 __tls_get_addr_opt stub

This stub doesn't have the r2 store at the beginning.

* powerpc.cc (Target_powerpc::Relocate::relocate): Don't skip
first insn of __tls_get_addr_opt stub.

(cherry picked from commit a993d270f8423a8b6faa2ce9d245073bed076bb0)

4 years ago[GOLD] Power10 stub selection
Alan Modra [Thu, 23 Jul 2020 01:05:56 +0000 (10:35 +0930)] 
[GOLD] Power10 stub selection

gold version of commit e10a07b32dc1.

* options.h (DEFINE_enum): Add optional_arg__ param, adjust
all uses.
(General_options): Add --power10-stubs and --no-power10-stubs.
* options.cc (General_options::finalize): Handle --power10-stubs.
* powerpc.cc (set_power10_stubs): Don't set when --power10-stubs=no.
(power10_stubs_auto): New.
(struct Plt_stub_ent): Add toc_ and tocoff_.  Don't use a bitfield
for indx_.
(struct Branch_stub_ent): Add toc_and tocoff_.  Use bitfields for
iter_, notoc_ and save_res_.
(add_plt_call_entry): Set toc_.  Adjust resizing conditions for
--power10-stubs=auto.
(add_long_branch_entry): Set toc_.
(add_eh_frame, define_stub_syms): No longer use const_iterators
for plt and long branch stub iteration.
(build_tls_opt_head, build_tls_opt_tail): Change parameters and
return value.  Move tests for __tls_get_addr to callers.
(plt_call_size): Handle --power10-stubs=auto.
(branch_stub_size): Likewise.
(Stub_table::do_write): Likewise.
(relocate): Likewise.

(cherry picked from commit afd2ea23626c43886ab8b028b68b7b663d6de3c6)

4 years agoPR26656, power10 libstdc++.so segfault in __cxxabiv1::__cxa_throw
Alan Modra [Tue, 22 Sep 2020 13:21:42 +0000 (22:51 +0930)] 
PR26656, power10 libstdc++.so segfault in __cxxabiv1::__cxa_throw

This adds missing support for a power10 version of the __tls_get_addr
call stub implementing DT_PPC64_OPT PPC64_OPT_TLS.  Without this,
power10 code using __tls_get_addr fails miserably at runtime unless
the --no-tls-get-addr-optimize option is given.

PR 26656
* elf64-ppc.c (plt_stub_size): Add "odd" param.  Use it with
size_power10_offset rather than calculating from start of stub.
Add size for notoc tls_get_addr_opt stub.
(plt_stub_pad): Add "odd" param, pass to plt_stub_size.
(build_tls_get_addr_head, build_tls_get_addr_tail): New functions.
(build_tls_get_addr_stub): Delete.
(ppc_build_one_stub): Use a temp for htab->params->stub_bfd.
Emit notoc tls_get_addr_opt stub.  Move eh_frame code to
suit.  Adjust code to use bfd_tls_get_addr_head/tail in place
of build_tls_get_addr_stub.
(ppc_size_one_stub): Size notoc tls_get_addr_opt stub.
Adjust plt_stub_size and plt_stub_pad calls.  Correct "odd"
when padding stub.  Size eh_frame for notoc stub too.
Correct lr_restore value.
(ppc64_elf_relocate_section): Don't skip over first insn of
notoc tls_get_addr_opt stub.

(cherry picked from commit 294338867c268b6da43327b6cbe70e746bff1a04)

4 years agoPR26655, Power10 libstdc++.so R_PPC64_NONE dynamic relocs
Alan Modra [Wed, 23 Sep 2020 05:25:39 +0000 (14:55 +0930)] 
PR26655, Power10 libstdc++.so R_PPC64_NONE dynamic relocs

Some of the powerpc64 code editing functions are better run after
dynamic symbols have stabilised in order to make proper decisions
based on SYMBOL_REFERENCES_LOCAL.  The dynamic symbols are processed
early in bfd_elf_size_dynamic_sections, before the backend
always_size_sections function is called.

One function, ppc64_elf_tls_setup must run before
bfd_elf_size_dynamic_sections because it changes dynamic symbols.
ppc64_elf_edit_opd and ppc64_elf_inline_plt can run early or late, I
think.  ppc64_elf_tls_optimize and ppc64_elf_edit_toc are better run
later.

So this patch arranges to call some edit functions later via
always_size_sections.

PR 26655
bfd/
* elf64-ppc.c (ppc64_elf_func_desc_adjust): Rename to..
(ppc64_elf_edit): Call params->edit.
(ppc64_elf_tls_setup): Don't call _bfd_elf_tls_setup.  Return a
bfd_boolean.
* elf64-ppc.h (struct ppc64_elf_params): Add "edit".
(ppc64_elf_tls_setup): Update declaration.
ld/
* emultempl/ppc64elf.em (params): Add ppc_edit.
(ppc_before_allocation): Split off some edit functions to..
(ppc_edit): ..this, new function.

(cherry picked from commit c94053440e29421dd8846530da73f09c9ede2e0f)

4 years agoCorrect vcmpsq, vcmpuq and xvtlsbb BF field
Alan Modra [Tue, 18 Aug 2020 23:17:35 +0000 (08:47 +0930)] 
Correct vcmpsq, vcmpuq and xvtlsbb BF field

These shouldn't be optional.  The record form of vector instructions
set CR6, giving an expectation that omitting BF should be the same as
specifying CR6.

opcodes/
* ppc-opc.c (powerpc_opcodes): Replace OBF with BF for vcmpsq,
vcmpuq and xvtlsbb.
gas/
* testsuite/gas/ppc/int128.s: Correct vcmpuq.
* testsuite/gas/ppc/int128.d: Update.
* testsuite/gas/ppc/xvtlsbb.d: Update.

(cherry picked from commit 18a8a00ebe3159b65798c6132cb5f93ff4ef6c17)

4 years agoPowerPC64 --no-pcrel-optimize
Alan Modra [Wed, 12 Aug 2020 14:01:28 +0000 (23:31 +0930)] 
PowerPC64 --no-pcrel-optimize

This new option effectively ignores R_PPC64_PCREL_OPT, disabling the
optimization of instructions marked by that relocation.  The patch
also disables GOT indirect to GOT/TOC pointer relative code editing
when --no-toc-optimize.

bfd/
* elf64-ppc.h (struct ppc64_elf_params): Add no_pcrel_opt.
* elf64-ppc.c (ppc64_elf_relocate_section): Disable GOT reloc
optimizations when --no-toc-optimize.  Disable R_PPC64_PCREL_OPT
optimization when --no-pcrel-optimize.
ld/
* emultempl/ppc64elf.em (params): Init new field.
(enum ppc64_opt): Add OPTION_NO_PCREL_OPT.
(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS),
(PARSE_AND_LIST_ARGS_CASES): Support --no-pcrel-optimize.

(cherry picked from commit 6738c8a7c93cd77a0caa720c6cc21c422561be2c)

4 years agoImplement missing powerpc mtspr and mfspr extended insns
Alan Modra [Mon, 10 Aug 2020 12:11:36 +0000 (21:41 +0930)] 
Implement missing powerpc mtspr and mfspr extended insns

* ppc-opc.c (powerpc_opcodes): Add many mtspr and mfspr extended
instructions.

(cherry picked from commit 3eb651743e06fb360687a26be87bc6b710fc7066)

4 years agoImplement missing powerpc extended mnemonics
Alan Modra [Mon, 10 Aug 2020 05:38:27 +0000 (15:08 +0930)] 
Implement missing powerpc extended mnemonics

gas/
* testsuite/gas/ppc/power8.d,
* testsuite/gas/ppc/power8.s: Add miso.
* testsuite/gas/ppc/power9.d,
* testsuite/gas/ppc/power8.s: Add exser, msgsndu, msgclru.
opcodes/
* ppc-opc.c (powerpc_opcodes): Add exser, msgsndu, msgclru.
Enable icbt for power5, miso for power8.

(cherry picked from commit 8b2742a1567273f2ecc9fe6d7df1c9287865f5b6)

4 years agoPrioritise mtfprd and mtvrd over mtvsrd in PowerPC disassembly
Alan Modra [Mon, 10 Aug 2020 05:37:33 +0000 (15:07 +0930)] 
Prioritise mtfprd and mtvrd over mtvsrd in PowerPC disassembly

gas/
* testsuite/gas/ppc/power8.d: Update.
* testsuite/gas/ppc/vsx2.d: Update.
opcodes/
* ppc-opc.c (powerpc_opcodes): Prioritise mtfprd and mtvrd over
mtvsrd, and similarly for mfvsrd.

(cherry picked from commit 5fbec329ec3b21fab7e06cd1e4bf7068332a876c)

4 years agoError on lmw, lswi and related PowerPC insns when LE
Alan Modra [Mon, 10 Aug 2020 05:36:43 +0000 (15:06 +0930)] 
Error on lmw, lswi and related PowerPC insns when LE

* config/tc-ppc.c (md_assemble): Error for lmw, stmw, lswi, lswx,
stswi, or stswx in little-endian mode.
* testsuite/gas/ppc/476.d,
* testsuite/gas/ppc/476.s: Delete lmw, stmw, lswi, lswx, stswi, stswx.
* testsuite/gas/ppc/a2.d,
* testsuite/gas/ppc/a2.s: Move lmw, stmw, lswi, lswx, stswi, stswx..
* testsuite/gas/ppc/be.d,
* testsuite/gas/ppc/be.s: ..to here, new big-endian only test.
* testsuite/gas/ppc/le_error.d,
* testsuite/gas/ppc/le_error.l: New little-endian test.
* testsuite/gas/ppc/ppc.exp: Run new tests.

(cherry picked from commit 86c0f617ac5f3a5f4aab76c7f90255254ca27576)

4 years agoAutomatic date update in version.in
GDB Administrator [Thu, 24 Sep 2020 00:00:46 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Wed, 23 Sep 2020 00:00:40 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Tue, 22 Sep 2020 00:00:44 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Mon, 21 Sep 2020 00:00:40 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sun, 20 Sep 2020 00:00:23 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoReset development back to true
Nick Clifton [Sat, 19 Sep 2020 10:47:04 +0000 (11:47 +0100)] 
Reset development back to true

4 years ago2.35.1 point release binutils-2_35_1
Nick Clifton [Sat, 19 Sep 2020 10:36:14 +0000 (11:36 +0100)] 
2.35.1 point release

4 years agoImport patch from mainline: 2020-09-15 Nick Clifton <nickc@redhat.com>
Nick Clifton [Sat, 19 Sep 2020 07:16:20 +0000 (08:16 +0100)] 
Import patch from mainline: 2020-09-15  Nick Clifton  <nickc@redhat.com>

* read.c (s_nop): Preserve the input_line_pointer around the call
to md_assemble.
* config/tc-s12z.c (md_assemble): Revert previous delta.

4 years agoAutomatic date update in version.in
GDB Administrator [Sat, 19 Sep 2020 00:00:23 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Fri, 18 Sep 2020 00:00:25 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoUse the correct no-op ocode for the BPF assembler.
David Faust [Thu, 17 Sep 2020 09:42:57 +0000 (10:42 +0100)] 
Use the correct no-op ocode for the BPF assembler.

* config/tc-bpf.h (md_single_noop_insn): Use 'ja 0' for no-op.

4 years agoAutomatic date update in version.in
GDB Administrator [Thu, 17 Sep 2020 00:00:23 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Wed, 16 Sep 2020 00:00:24 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAdd support to the assembler for a ".nop" directive which inserts a single no-op...
Nick Clifton [Tue, 15 Sep 2020 09:27:50 +0000 (10:27 +0100)] 
Add support to the assembler for a ".nop" directive which inserts a single no-op instruction.

Import from mainline:
2020-09-14  Nick Clifton  <nickc@redhat.com>

* read.c (s_nop): New function.  Handles the .nop directive.
(potable): Add entry for "nop".
(s_nops): Code tidy.
* read.h (s_nop): Add prototype.
* config/tc-bpf.h (md_single_noop_insn): Define.
* config/tc-mmix.h (md_single_noop_insn): Define.
* config/tc-or1k.h (md_single_noop_insn): Define.
* config/tc-ia64.h (md_single_noop_insn): Define.
* write.c (relax_segment): Update error message regarding
non-absolute values passed to .fill and .nops.
* NEWS: Mention the new directive.
* doc/as.texi: Document the new directive.
* doc/internals.texi: Document the new internal macros used to
implement the new directive.
* testsuite/gas/all/nop.s: New test.
* testsuite/gas/all/nop.d: New test control file.
* testsuite/gas/all/gas.exp: Run the new test.
* testsuite/gas/elf/dwarf-5-nop-for-line-table.s: New test.
* testsuite/gas/elf/dwarf-5-nop-for-line-table.d: New test
control file.
* testsuite/gas/elf/elf.exp: Run the new test.
* testsuite/gas/i386/space1.l: Adjust expected output.

4 years agoCRIS: fix PR ld/26589, a missing NULL check in fix for PR ld/22269
Hans-Peter Nilsson [Tue, 15 Sep 2020 01:59:06 +0000 (03:59 +0200)] 
CRIS: fix PR ld/26589, a missing NULL check in fix for PR ld/22269

Not sure why there wasn't a NULL check in the ld/22269 patch
(e01c16a8) at the time, as there was one for the corresponding patch
to elf32-m68k.c (5056ba1d).

Incidentally, I had missed that in 2017, as a prerequisite for the
ld/22269 series, the check_relocs function finally were made "safe"!
(I.e. the number of references and symbol types are final, garbage
collection done, so port-specific accounting can be made sanely.)

Committed.

bfd:
PR ld/26589
* elf32-cris.c (cris_elf_check_relocs): Add missing NULL check
on argument before calling UNDEFWEAK_NO_DYNAMIC_RELOC.

ld:
PR ld/26589
* testsuite/ld-elf/pr26589.d, testsuite/ld-elf/locref3.s: New test.

(cherry picked from commit 4a8f181d196f85ca153fe51ca6bb40942e0e1ed7)

4 years agoAutomatic date update in version.in
GDB Administrator [Tue, 15 Sep 2020 00:00:35 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agogas: Don't error when .debug_line already exists, unless .loc was used
Mark Wielaard [Mon, 7 Sep 2020 12:25:25 +0000 (14:25 +0200)] 
gas: Don't error when .debug_line already exists, unless .loc was used

When -g was used to generate DWARF gas would error out when a .debug_line
already exists. But when a .debug_info section already exists it would
simply skip generating one without warning or error. Do the same for
.debug_line. It is only an error when the user explicitly uses .loc
directives and also generates the .debug_line table itself.

The tests are unfortunately arch specific because the line table is only
generated when actual instructions have been emitted. Use i386 because
that is probably the most used architecture. Before this patch the new
dwarf-line-2 testcase would fail, with this patch it succeeds (and doesn't
try to add its own line table).

gas/ChangeLog:

    * as.texi (-g): Explicitly mention when .debug_info and .debug_line
    are generated for the DWARF format.
    (Loc): Add that it is an error to both use a .loc directive and
    generate a .debug_line yourself.
    * dwarf2dbg.c (dwarf2_any_loc_directive_seen): New static variable.
    (dwarf2_directive_loc): Set dwarf2_any_loc_directive_seen to TRUE.
    (dwarf2_finish): Check dwarf2_any_loc_directive_seen before emitting
    an error. Only create .debug_line if it is empty (or doesn't exist).
    * testsuite/gas/i386/i386.exp: Add dwarf2-line-{1,2,3,4} when testing
    an elf target.
    * testsuite/gas/i386/dwarf2-line-{1,2,3,4}.{s,d,l}: New test files.

4 years agogas: Output directory and file names in .debug_line_str for DWARF5
Mark Wielaard [Mon, 7 Sep 2020 13:03:20 +0000 (14:03 +0100)] 
gas: Output directory and file names in .debug_line_str for DWARF5

* dwarf2dbg.c (add_line_strp): New function.
(out_dir_and_file_list): Take line_seg and sizeof_offset as
arguments, Use DW_FORM_line_strp for dir and file. Call
add_line_strp and set symbol offset for DWARF2_LINE_VERSION 5.
(out_debug_line): Call out_dir_and_file_list with line_seg and
sizeof_offset.
* gas/testsuite/gas/elf/dwarf-5-file0.d: Expect indirect line
strings.

4 years agogas: Output .debug_rnglists for DWARF 5.
Mark Wielaard [Mon, 7 Sep 2020 12:04:45 +0000 (13:04 +0100)] 
gas: Output .debug_rnglists for DWARF 5.

* dwarf2dbg.c (DWARF2_RNGLISTS_VERSION): New constant.
(out_debug_ranges): Add ranges_sym argument and set it.
(out_debug_rnglists): New function.
(out_debug_info): Change ranges_seg argument to ranges_sym
and use it to set DW_AT_ranges value.
(dwarf2_finish): Remove ranges_seg, add ranges_sym. For
DWARF2_VERSION 5 call out_debug_rnglists.

4 years agogas: Make sure to only add an md5 to a .file when requested.
Mark Wielaard [Mon, 7 Sep 2020 11:08:07 +0000 (12:08 +0100)] 
gas: Make sure to only add an md5 to a .file when requested.

* dwarf2dbg.c (dwarf2_directive_filename): Initialize with_md5 to
FALSE.
* gas/testsuite/gas/elf/dwarf-5-file0.s: Add a random bignum.

4 years agogas: Use DW_FORM_sec_offset for DWARF version 4 or higher.
Mark Wielaard [Tue, 1 Sep 2020 13:29:56 +0000 (15:29 +0200)] 
gas: Use DW_FORM_sec_offset for DWARF version 4 or higher.

Older DWARF versions used DW_FORM_data4 or DW_FORM_data8 for offsets
into sections for e.g. DW_AT_stmt_list ot DW_AT_ranges. But version 4
introduced a dedicated form for such section offsets. Make sure to emit
the proper form for newer DWARF versions.

gas/ChangeLog:

* dwarf2dbg.c (out_debug_abbrev): Use DW_FORM_sec_offset for DWARF
version 4 or higher.

4 years agogas: Handle bad -gdwarf options, just like bad --gdwarf options.
Mark Wielaard [Wed, 26 Aug 2020 19:46:04 +0000 (21:46 +0200)] 
gas: Handle bad -gdwarf options, just like bad --gdwarf options.

parse_args uses getopt_long_only so it can handle long options both
with double and single dash. But this means that some single dash
options like -gdwarf-1 don't generate an error (unlike --gdwarf-1).

This is especially confusing since there is also --gdwarf2, but no
--gdwarf4 (it is --gdwarf-4). When giving -gdwarf4 the option is
silently interpreted as -g (which set dwarf_version to 2). This causes
some confusion for people who don't expect this and suddenly get
DWARF2 instead of DWARF4 as they might expect.

So make it so that the -gdwarf<unknown> creates an error, just like
--gdwarf<unknown> would.

4 years agoAutomatic date update in version.in
GDB Administrator [Mon, 14 Sep 2020 00:00:29 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sun, 13 Sep 2020 00:00:29 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sat, 12 Sep 2020 00:00:25 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Fri, 11 Sep 2020 00:00:39 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoPowerPC TPREL_HA/LO optimisation
Alan Modra [Mon, 24 Aug 2020 07:02:57 +0000 (16:32 +0930)] 
PowerPC TPREL_HA/LO optimisation

ppc64 ld optimises sequences like the following
addis 3,13,wot@tprel@ha
lwz 3,wot@tprel@l(3)
to
nop
lwz 3,wot@tprel(13)
when "wot" is located near enough to the thread pointer.
However, the ABI doesn't require that R_PPC64_TPREL16_HA always be on
an addis rt,13,imm instruction, and while ld checked for that on the
high-part instruction it didn't disable the optimisation on the
low-part instruction.  This patch fixes that problem, disabling the
tprel optimisation globally if high-part instructions don't pass
sanity checks.  The optimisation is also enabled for ppc32, where
before ld.bfd had the code in the wrong place and ld.gold had it in a
block only enabled for ppc64.

bfd/
* elf32-ppc.c (ppc_elf_check_relocs): Set has_tls_reloc for
high part tprel16 relocs.
(ppc_elf_tls_optimize): Sanity check high part tprel16 relocs.
Clear do_tls_opt on odd instructions.
(ppc_elf_relocate_section): Move TPREL16_HA/LO optimisation later.
Don't sanity check them here.
* elf64-ppc.c (ppc64_elf_check_relocs): Set has_tls_reloc for
high part tprel16 relocs.
(ppc64_elf_tls_optimize): Sanity check high part tprel16 relocs.
Clear do_tls_opt on odd instructions.
(ppc64_elf_relocate_section): Don't sanity check TPREL16_HA.
ld/
* testsuite/ld-powerpc/tls32.d: Update for TPREL_HA/LO optimisation.
* testsuite/ld-powerpc/tlsexe32.d: Likewise.
* testsuite/ld-powerpc/tlsldopt32.d: Likewise.
* testsuite/ld-powerpc/tlsmark32.d: Likewise.
* testsuite/ld-powerpc/tlsopt4_32.d: Likewise.
* testsuite/ld-powerpc/tprel.s,
* testsuite/ld-powerpc/tprel.d,
* testsuite/ld-powerpc/tprel32.d: New tests.
* testsuite/ld-powerpc/tprelbad.s,
* testsuite/ld-powerpc/tprelbad.d: New test.
* testsuite/ld-powerpc/powerpc.exp: Run them.
gold/
* powerpc.cc (Target_powerpc): Add tprel_opt_ and accessors.
(Target_powerpc::Scan::local): Sanity check tprel high relocs.
(Target_powerpc::Scan::global): Likewise.
(Target_powerpc::Relocate::relocate): Control tprel optimisation
with tprel_opt_ and enable for 32-bit.

(cherry picked from commit 252dcdf432c67f6baafb766ed068c64db1eb2bad)

4 years agoAutomatic date update in version.in
GDB Administrator [Thu, 10 Sep 2020 00:00:24 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Wed, 9 Sep 2020 00:00:30 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Tue, 8 Sep 2020 00:00:30 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Mon, 7 Sep 2020 00:00:28 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sun, 6 Sep 2020 00:00:22 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sat, 5 Sep 2020 00:00:30 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Fri, 4 Sep 2020 00:00:38 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoPartially fix a quadratic slowdown when processing secondary relocations for inputs...
Nick Clifton [Thu, 3 Sep 2020 15:00:48 +0000 (16:00 +0100)] 
Partially fix a quadratic slowdown when processing secondary relocations for inputs with lots of sections.

PR 26406
* elf-bfd.h (struct bfd_elf_section_data): Add
has_secondary_relocs field.
* elf.c (_bfd_elf_copy_special_section_fields): Set the
has_secondary_relocs field for sections which have associated
secondary relocs.
* elfcode.h (elf_write_relocs): Only call write_secondary_relocs
on sections which have associated secondary relocs.

4 years agoImport a patch from mainline to fix a spurious overflow error when decoding negative...
Nick Clifton [Thu, 3 Sep 2020 14:52:53 +0000 (15:52 +0100)] 
Import a patch from mainline to fix a spurious overflow error when decoding negative LEB128 values.

PR 26548
* dwarf.c (read_leb128): When checking for overflow of a signed
read, use a signed shift.

4 years agoAutomatic date update in version.in
GDB Administrator [Thu, 3 Sep 2020 00:00:26 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Wed, 2 Sep 2020 00:00:26 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Tue, 1 Sep 2020 00:00:28 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Mon, 31 Aug 2020 00:00:27 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sun, 30 Aug 2020 00:00:31 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Sat, 29 Aug 2020 00:00:26 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Fri, 28 Aug 2020 00:00:36 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoAutomatic date update in version.in
GDB Administrator [Thu, 27 Aug 2020 00:00:32 +0000 (00:00 +0000)] 
Automatic date update in version.in

4 years agoopcodes: Add missing entries to ebpf_isa_attr
Jose E. Marchesi [Wed, 26 Aug 2020 14:48:39 +0000 (16:48 +0200)] 
opcodes: Add missing entries to ebpf_isa_attr

opcodes/

* disassemble.c (enum epbf_isa_attr): Add ISA_XBPFBE, ISA_EBPFMAX.

(cherry picked from commit 31b3f3e6e42083e411c47e789eb617070d5ba0e4)

4 years agobpf: add xBPF ISA
Jose E. Marchesi [Wed, 26 Aug 2020 13:46:09 +0000 (15:46 +0200)] 
bpf: add xBPF ISA

This patch adds support for xBPF, another ISA targetting the BPF
virtual architecture. For now, the primary difference between eBPF
and xBPF is that xBPF supports indirect calls through the
'call %reg' form of the call instruction.

bfd/
* archures.c (bfd_mach_xbpf): Define.
* bfd-in2.h: Regenerate.
* cpu-bpf.c (bfd_xbpf_arch) New.
(bfd_bpf_arch) Update next in list field to point to xbpf arch.

cpu/
* bpf.cpu (arch bpf): Add xbpf mach and isas.
(define-xbpf-isa) New pmacro.
(all-isas) Add xbpfle,xbpfbe.
(endian-isas): New pmacro.
(mach xbpf): New.
(model xbpf-def): Likewise.
(h-gpr): Add xbpf mach.
(f-dstle, f-srcle, dstle, srcle): Add xbpfle isa.
(f-dstbe, f-srcbe, dstbe, srcbe): Add xbpfbe isa.
(define-alu-insn-un): Use new endian-isas pmacro.
(define-alu-insn-bin, define-alu-insn-mov): Likewise.
(define-endian-insn, define-lddw): Likewise.
(dlind, dxli, dxsi, dsti): Likewise.
(define-cond-jump-insn, define-call-insn): Likewise.
(define-atomic-insns): Likewise.

gas/
* config/tc-bpf.c: Add option -mxbpf to select xbpf isa.
* testsuite/gas/bpf/indcall-1.d: New file.
* testsuite/gas/bpf/indcall-1.s: Likewise.
* testsuite/gas/bpf/indcall-bad-1.l: Likewise.
* testsuite/gas/bpf/indcall-bad-1.s: Likewise.
* testsuite/gas/bpf/bpf.exp: Run new tests.

opcodes/
* bpf-desc.c: Regenerate.
* bpf-desc.h: Likewise.
* bpf-opc.c: Likewise.
* bpf-opc.h: Likewise.
* disassemble.c (disassemble_init_for_target): Set bits for xBPF
ISA when appropriate.

(cherry picked from commit 4449c81a85eef44b10532032207e8db5858c00ee)