--- /dev/null
--- /dev/null
++binutils (2.35.1-3+rpi2) bullseye-staging; urgency=medium
++
++ * Build the same set of cross-binutils on arm64 as on armhf.
++ (avoids issues when control is generated on armhf and then package is
++ built on arm64)
++ * Remove <!nocheck> build-depends as testsuite is disabled.
++
++ -- Peter Michael Green <plugwash@raspbian.org> Tue, 01 Dec 2020 21:55:01 +0000
++
++binutils (2.35.1-3+rpi1) bullseye-staging; urgency=medium
++
++ [changes brought forward from 2.29-4+rpi1 by Peter Michael Green <plugwash@raspbian.org> at Thu, 17 Aug 2017 15:41:49 +0000]
++ * Disable testsuite, it fails on our lxc based autobuilders.
++
++ [changes brought forward from 2.31.1-16+rpi2 by Peter Michael Green <plugwash@raspbian.org> at Thu, 06 Feb 2020 17:10:11 +0000]
++ * Allow dependency of binutils on binutils-triplet to be satisfied by
++ foreign architectures, to facilitate setting up environments where the
++ linker is 64-bit while everything else is 32-bit.
++
++ [changes brought forward from 2.35-3+rpi2 by Peter Michael Green <plugwash@raspbian.org> at Tue, 22 Sep 2020 18:10:17 +0000]
++ * Build sufficient cross binutils to support u-boot build.
++
++ -- Raspbian forward porter <root@raspbian.org> Mon, 30 Nov 2020 03:35:06 +0000
++
++binutils (2.35.1-3) unstable; urgency=medium
++
++ * Update from the binutils 2.35 branch:
++ - DWARF 5 backports.
++ - Fix PR binutils/26808, also match abbrev base when searching
++ abbrev list.
++ - Fix PR gas/25878, PR gas/26740, always use as_where for preprocessed
++ assembly codes, reuse the input file entry in the file table.
++ - Fix PR gas/26778, clear all auto-assigned file slots.
++ - Fix PR ld/26869, elf: Set rel_from_abs to 1 for __ehdr_start.
++ - AArch64: Add support for Neoverse N2 CPU.
++ - Fix R target/26763, arm: Fix the wrong error message string for
++ mve vldr/vstr.
++ * Fix PR gold/26902, jump to long branch on powerpc, taken from the
++ trunk (Michael Hudson-Doyle).
++ * gold: Fix powerpc incremental-dump assertion failure.
++ * Update VCS-Browser attribute.
++
++ -- Matthias Klose <doko@debian.org> Tue, 17 Nov 2020 11:38:54 +0100
++
++binutils (2.35.1-2) unstable; urgency=medium
++
++ * Update from the binutils 2.35 branch:
++ - ARM32: Add support for Neoverse N2 and V1 CPUs.
++ - AArch64: Add support for Neoverse V1 CPU.
++ - Various Power10 and Power gold fixes.
++ - Fix PR gas/26685, x86: Check register operand for AddrPrefixOpReg.
++ - Fix PR ld/26711, x86: Properly merge -z ibt and -z shstk.
++ - Fix PR gas/26699, aarch64: Fix bogus type punning in parse_barrier().
++ - Fix PR binutils/26520, fix decoding DWARF information in the BFD library.
++ * AArch64: Add support for Neoverse N2 CPU, taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Fri, 09 Oct 2020 17:10:08 +0200
++
++binutils (2.35.1-1) unstable; urgency=medium
++
++ * binutils 2.35.1 release.
++
++ -- Matthias Klose <doko@debian.org> Mon, 21 Sep 2020 11:45:07 +0200
++
++binutils (2.35-3) unstable; urgency=medium
++
++ * Update from the binutils 2.35 branch:
++ - PowerPC TPREL_HA/LO optimisation.
++ - Partially fix PR gas/26406, quadratic slowdown when processing secondary
++ relocations.
++ - Fix PR binutils/26548, spurious overflow error when decoding negative
++ LEB128 values.
++ - mark's dwarf backports
++ - bpf: add xBPF ISA.
++ - Backport patches from the mainline to fix the handling of DWARF-5 debug
++ information
++ - PowerPC: Rename xvcvbf16sp to xvcvbf16spn.
++ - Fix PR binutils/26389, nm prints "c" for a common symbol with
++ -flto and -fcommon.
++ - Arm: Fix IT-predicated MVE vcvt.
++
++ -- Matthias Klose <doko@debian.org> Fri, 11 Sep 2020 12:34:43 +0200
++
++binutils (2.35-2) unstable; urgency=medium
++
++ * Update from the binutils 2.35 branch:
++ - Fixes for the eBPF ELF backend.
++ - Fix PR ld/26312, aarch64: set sh_entsize of .plt to 0.
++ - Fix PR gas/26305, x86: Add {disp16} pseudo prefix, handle {disp32}
++ for (%bp)/(%ebp)/(%rbp).
++ - Fix PR ld/26328, compilation warnings.
++
++ -- Matthias Klose <doko@debian.org> Thu, 13 Aug 2020 16:16:49 +0200
++
++binutils (2.35-1) unstable; urgency=medium
++
++ * binutils 2.35 release.
++ - Fix PR gas/26263. Closes: #965380.
++ * Explicitly configure with --disable-x86-used-note.
++ * Configure mipsel, mipsn32el, mips64el again with
++ --enable-mips-fix-loongson3-llsc=yes (YunQiang Su). Closes: #952737.
++
++ -- Matthias Klose <doko@debian.org> Fri, 24 Jul 2020 12:52:26 +0200
++
++binutils (2.34.90.20200706-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.35 branch.
++
++ -- Matthias Klose <doko@debian.org> Mon, 06 Jul 2020 21:10:37 +0200
++
++binutils (2.34.50.20200605-1) experimental; urgency=medium
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Fri, 05 Jun 2020 10:56:37 +0200
++
++binutils (2.34.50.20200512-1) experimental; urgency=medium
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Tue, 12 May 2020 16:24:56 +0200
++
++binutils (2.34-6) unstable; urgency=medium
++
++ * Update from the binutils 2.34 branch:
++ - Fix PR lto/94249, typo in a macro usage, improve endianess detection.
++ - PR25745, powerpc64-ld overflows string buffer in --stats mode.
++ - plugin: Don't invoke LTO-wrapper.
++ - PR binutils/25640, plugin: Use LDPT_ADD_SYMBOLS_V2 to get symbol type.
++ - Fix dwarf.c build with GCC 10.
++ - PR binutils/25717, build failure with GCC 10.
++
++ -- Matthias Klose <doko@debian.org> Tue, 07 Apr 2020 13:29:21 +0200
++
++binutils (2.34-5) unstable; urgency=medium
++
++ * Update from the binutils 2.34 branch:
++ - Fix PR gas/25660, vadd/vsub with lt and le condition codes for MVE.
++ - Fix powerpc64-ld infinite loop.
++
++ -- Matthias Klose <doko@debian.org> Thu, 19 Mar 2020 20:45:59 +0100
++
++binutils (2.34-4) unstable; urgency=medium
++
++ * Update from the binutils 2.34 branch:
++ - Fix PR24511, nm should not mark symbols in .init_array as "t".
++ - Fix PR binutils/25584, don't call lto-wrapper for ar and ranlib.
++
++ -- Matthias Klose <doko@debian.org> Fri, 28 Feb 2020 11:18:34 +0100
++
++binutils (2.34-3) unstable; urgency=medium
++
++ * Update from the binutils 2.34 branch:
++ - Fix PR gas/25516, Accept Intel64 only instruction by default.
++ - Fix PR 25447, prevents a potential illegal memory access when parsing
++ PE binaries.
++ - Fix PR binutils/25355, import fixes for using the LTO plugin with nm.
++ - Fix PR 25585, PHDR segment not covered by LOAD segment.
++ - MSP430 updates.
++ - Mention x86 assembler options to align branches.
++ - AArch64: Fix MOVPRFX markup for bf16 conversions.
++ * Make the test summary files reproducible. Addresses: #950585.
++
++ -- Matthias Klose <doko@debian.org> Sat, 22 Feb 2020 09:49:46 +0100
++
++binutils (2.34-2) unstable; urgency=medium
++
++ * Regenerate the control file.
++
++ -- Matthias Klose <doko@debian.org> Sun, 02 Feb 2020 17:46:11 +0100
++
++binutils (2.34-1) unstable; urgency=medium
++
++ * New upstream release.
++ * Bump standards version.
++
++ -- Matthias Klose <doko@debian.org> Sun, 02 Feb 2020 08:45:55 +0100
++
++binutils (2.33.90.20200122-2) unstable; urgency=medium
++
++ * libctf-nobfd0: Add Breaks/Replaces to libbinutils. Closes: #949454.
++
++ -- Matthias Klose <doko@debian.org> Wed, 22 Jan 2020 07:49:18 +0100
++
++binutils (2.33.90.20200122-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the 2.34 release branch.
++
++ -- Matthias Klose <doko@debian.org> Wed, 22 Jan 2020 06:18:41 +0100
++
++binutils (2.33.50.20200115-2) unstable; urgency=high
++
++ [YunQiang Su]
++ * refresh and re-enable: mips64-default-n64.diff
++
++ -- YunQiang Su <syq@debian.org> Thu, 16 Jan 2020 23:35:11 +0800
++
++binutils (2.33.50.20200115-1) unstable; urgency=medium
++
++ * New upstream snapshot.
++ * Tighten the build dependency to 2.33.50.20200114-1 for this upload.
++
++ -- Matthias Klose <doko@debian.org> Wed, 15 Jan 2020 21:18:18 +0100
++
++binutils (2.33.50.20200114-1) unstable; urgency=medium
++
++ * New upstream snapshot.
++ * Build on testing for arm64, and upload the binaries.
++
++ -- Matthias Klose <doko@debian.org> Tue, 14 Jan 2020 14:19:00 +0100
++
++binutils (2.33.50.20200111-1) unstable; urgency=medium
++
++ * New upstream snapshot.
++ * Make autopkgtests cross-test-friendly (Steve Langasek).
++
++ -- Matthias Klose <doko@debian.org> Sat, 11 Jan 2020 14:24:29 +0100
++
++binutils (2.33.50.20200107-1) unstable; urgency=medium
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Tue, 07 Jan 2020 23:19:25 +0100
++
++binutils (2.33.50.20200105-2) experimental; urgency=medium
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Sun, 05 Jan 2020 11:33:49 +0100
++
++binutils (2.33.50.20191212-1) experimental; urgency=medium
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Thu, 12 Dec 2019 16:16:13 +0100
++
++binutils (2.33.50.20191205-1) experimental; urgency=medium
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Thu, 05 Dec 2019 21:22:15 +0100
++
++binutils (2.33.50.20191128-1) experimental; urgency=medium
++
++ * New upstream snapshot.
++ * Split out libctf packages.
++ * Save dejagnu log and sum files in binutils-dev.
++
++ -- Matthias Klose <doko@debian.org> Thu, 28 Nov 2019 09:57:31 +0100
++
++binutils (2.33.50.20191121-2) experimental; urgency=medium
++
++ * Fix packaging cross targets.
++
++ -- Matthias Klose <doko@debian.org> Thu, 21 Nov 2019 23:08:45 +0100
++
++binutils (2.33.50.20191121-1) experimental; urgency=medium
++
++ * New upstream snapshot.
++ * Remove the 012_check_ldrunpath_length patch.
++ * Don't apply the mips64-default-n64 patch.
++ * Refresh patches.
++ * Put libctf libctf libraries in libbinutils and binutils-dev for now.
++
++ -- Matthias Klose <doko@debian.org> Thu, 21 Nov 2019 18:50:25 +0100
++
++binutils (2.33.1-6) unstable; urgency=medium
++
++ * Update from the binutils 2.33 branch:
++ - [gas] Implement .cfi_negate_ra_state directive (AArch64).
++
++ -- Matthias Klose <doko@debian.org> Thu, 12 Dec 2019 23:32:03 +0100
++
++binutils (2.33.1-5) unstable; urgency=medium
++
++ * Revert configuring with --enable-mips-fix-loongson3-llsc=yes on mipsel,
++ mips64el, mipsn32el. Causes GCC bootstrap comparison failures.
++
++ -- Matthias Klose <doko@debian.org> Mon, 02 Dec 2019 11:55:09 +0100
++
++binutils (2.33.1-4) unstable; urgency=medium
++
++ * Configure with --enable-mips-fix-loongson3-llsc=yes on mipsel, mips64el,
++ mipsn32el (YunQiang Su).
++ * Enable building mipsel and mips64el targets on arm64 and ppc64el (YunQiang
++ Su). Addresses: #938979.
++
++ -- Matthias Klose <doko@debian.org> Thu, 21 Nov 2019 15:28:14 +0100
++
++binutils (2.33.1-2) unstable; urgency=medium
++
++ * Update from the binutils 2.33 branch:
++ - Arm: Fix out of range conditional branch (PR/24991).
++ - [bfd] Revise import stubs on hppa.
++ - [bfd] Provide 8-byte minimum alignment for .plt section on hppa.
++ * Drop amd64 cross compiler from the build dependencies on x32.
++
++ -- Matthias Klose <doko@debian.org> Sun, 20 Oct 2019 21:28:38 +0200
++
++binutils (2.33.1-1) unstable; urgency=medium
++
++ * Binutils 2.33.1 release.
++
++ -- Matthias Klose <doko@debian.org> Tue, 15 Oct 2019 11:43:46 +0200
++
++binutils (2.33-2) unstable; urgency=medium
++
++ * Update from the binutils 2.33 branch:
++ - Fix PR25079, "ar s" stopped working. Closes: #941921.
++ - PowerPC TLS miscounting PLT for __tls_get_addr.
++ - PowerPC section flag tidy.
++ - PowerPC PIC vs. DLL TLS issues.
++ - PR25046, readelf "Reading xxx bytes extends past end of file for dynamic section".
++ - PR24262, plugin search dir doesn't respect --libdir.
++
++ -- Matthias Klose <doko@debian.org> Wed, 09 Oct 2019 10:42:29 +0200
++
++binutils (2.33-1) unstable; urgency=medium
++
++ * Binutils 2.33 release (taken from the binutils-2_33 tag).
++ * Update from the binutils 2.33 branch:
++ - Fix PR 24942, change objcopy's --set-section-alignment option so that it
++ takes a byte alignment value rather than a power of two alignment value.
++ - x86-64: fix handling of PUSH/POP of segment register. LP: #1843394.
++ * Merge changes from binutils-mipsen.
++ * Bump standards version.
++
++ -- Matthias Klose <doko@debian.org> Tue, 08 Oct 2019 11:43:29 +0200
++
++binutils (2.32.51.20190909-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk (20190909).
++ * Build the mipsel and mips64el cross packages from the binutils-mipsen
++ source package.
++
++ -- Matthias Klose <doko@debian.org> Mon, 09 Sep 2019 08:50:20 +0200
++
++binutils (2.32.51.20190821-2) unstable; urgency=medium
++
++ * Drop build dependency on g++-mips-linux-gnu.
++ * Stop building mips binutils.
++
++ -- Matthias Klose <doko@debian.org> Thu, 22 Aug 2019 09:49:59 +0200
++
++binutils (2.32.51.20190821-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk (20190821).
++ * Update test dependencies for added ppc64el, riscv64 and s390x builds.
++
++ -- Matthias Klose <doko@debian.org> Wed, 21 Aug 2019 11:32:58 +0200
++
++binutils (2.32.51.20190813-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk (20190813).
++ - Fix PR ld/24857: ld: error adding symbols: bad value. Closes: #932847.
++ * binutils-source: Fix ftbfs when with_native is off (YunQiang Su).
++ Closes: #933358.
++
++ -- Matthias Klose <doko@debian.org> Tue, 13 Aug 2019 16:26:14 +0200
++
++binutils (2.32.51.20190727-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk (20190727).
++ - Fix PR ld/24832. Closes: #932287.
++ * Build ppc64el packages on arm64.
++ * Build s390x packages on arm64 and ppc64el.
++ * Build riscv64 packages on arm64 and ppc64el. Closes: #932398.
++ * Bump standards version.
++
++ -- Matthias Klose <doko@debian.org> Sat, 27 Jul 2019 16:58:37 +0200
++
++binutils (2.32.51.20190707-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk (20190707).
++
++ -- Matthias Klose <doko@debian.org> Sun, 07 Jul 2019 12:20:11 +0200
++
++binutils (2.32.51.20190701-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20190701).
++
++ -- Matthias Klose <doko@debian.org> Mon, 01 Jul 2019 13:46:05 +0200
++
++binutils (2.32.51.20190624-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20190624).
++ - Fix PR ld/24704, skiboot link failure. LP: #1833237.
++
++ -- Matthias Klose <doko@debian.org> Mon, 24 Jun 2019 07:59:05 +0000
++
++binutils (2.32.51.20190611-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20190611).
++ * Simplify setting the soname for the various builds.
++
++ -- Matthias Klose <doko@debian.org> Tue, 11 Jun 2019 10:48:30 +0200
++
++binutils (2.32-8) experimental; urgency=medium
++
++ * Snapshot, taken from the 2.32 branch (20190424).
++ - Fix PR ld/24302 (AArch64): When DF_BIND_NOW don't use TLSDESC GOT value.
++ - Fix PR ld/24458 (x86): Also check x86 linker_def for non-shared
++ definition.
++ - AArch64: Add new LDGM/STGM instruction.
++ - AArch64: Update Store Allocation Tag instructions.
++ - AArch64: Fix disassembler bug with out-of-order sections.
++
++ -- Matthias Klose <doko@debian.org> Wed, 24 Apr 2019 09:25:48 +0200
++
++binutils (2.32-7) experimental; urgency=medium
++
++ * Snapshot, taken from the 2.32 branch (20190321).
++ - Fix PR ld/24355, segfault in function called from ppc_finish_symbols.
++ * Demote binutils-<target> from Multi-Arch: foreign to Multi-Arch: allowed
++ (Helmut Grohne). Closes: #920286.
++ * Let binutils-for-host Depends: binutils-<host>:any.
++
++ -- Matthias Klose <doko@debian.org> Thu, 21 Mar 2019 16:23:32 +0100
++
++binutils (2.32-6) experimental; urgency=medium
++
++ * Snapshot, taken from the 2.32 branch (20190313).
++ - S/390: arch13 instruction descriptions.
++ * Fix VCS attributes in the control file. Closes: #915982.
++
++ -- Matthias Klose <doko@debian.org> Wed, 13 Mar 2019 16:12:45 +0100
++
++binutils (2.32-5) experimental; urgency=medium
++
++ * Snapshot, taken from the 2.32 branch (20190213).
++ - S390: Revert "Add support to GNU ld to separate got related plt entries".
++ * binutils-source: Redact the build directory out of the tarball paths.
++ (Andrej Shadura). Closes: #920797.
++
++ -- Matthias Klose <doko@debian.org> Wed, 06 Mar 2019 11:11:50 +0100
++
++binutils (2.32-4) experimental; urgency=medium
++
++ * Remove mips64 build/check dependency.
++ * Fix PR binutils/23843, taken from the trunk.
++ * Fix PR ld/24276, taken from the trunk. Addresses: #923246.
++
++ -- Matthias Klose <doko@debian.org> Wed, 27 Feb 2019 22:34:34 +0100
++
++binutils (2.32-3) experimental; urgency=medium
++
++ * Snapshot, taken from the 2.32 branch (20190213).
++ - Fix PR ld/24151, PR gas/24165.
++ * Stop building cross packages now built by binutils-mipsen.
++
++ -- Matthias Klose <doko@debian.org> Wed, 13 Feb 2019 10:47:43 +0100
++
++binutils (2.32-2) experimental; urgency=medium
++
++ * Snapshot, taken from the 2.32 branch (20190208).
++ - Make inline plt reloc "unsupported for bss-plt" an error (ppc32).
++ - Arm: Backport hlt to all architectures.
++ - SPARC: fix PR ld/18841 (ld test failures).
++ - Visium: fix bogus overflow check on 32-bit hosts.
++ - Visium: align branch absolute instruction for the GR6.
++ * Stop building packages for powerpcspe.
++
++ -- Matthias Klose <doko@debian.org> Sat, 09 Feb 2019 13:12:21 +0100
++
++binutils (2.32-1) experimental; urgency=medium
++
++ * New upstream version.
++
++ -- Matthias Klose <doko@debian.org> Sun, 03 Feb 2019 10:34:56 +0100
++
++binutils (2.31.90.20190119-1) experimental; urgency=medium
++
++ * Snapshot, taken from the binutils 2.32 branch (20190119).
++
++ -- Matthias Klose <doko@debian.org> Sat, 19 Jan 2019 18:30:02 +0100
++
++binutils (2.31.51.20181204-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20181204).
++
++ -- Matthias Klose <doko@debian.org> Tue, 04 Dec 2018 11:20:13 +0100
++
++binutils (2.31.51.20181022-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20181022).
++ * Refresh patches.
++
++ -- Matthias Klose <doko@debian.org> Mon, 22 Oct 2018 12:08:04 +0200
++
++binutils (2.31.1-10) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20181130).
++ - Fix PR ld/23937, powerpc64le local ifunc IRELATIVE relocs are wrong.
++
++ -- Matthias Klose <doko@debian.org> Fri, 30 Nov 2018 13:20:30 +0100
++
++binutils (2.31.1-9) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20181127).
++ - Fix Pr ld/23904, regression in Cortex A53 erratum with PIE.
++ Closes: #911497.
++
++ -- Matthias Klose <doko@debian.org> Tue, 27 Nov 2018 14:25:35 +0100
++
++binutils (2.31.1-8) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20181121).
++ - Fix PR gas/23854 (x86): Disable GOT relaxation with data prefix.
++ - Fix PR ld/23818, when assigning symbol version, hide debug symbols defined
++ in discarded sections from IR objects so that they can be removed later.
++ - ARC updates.
++ - ARM: Skip new binary decode tests on pe targets.
++ - ARM: Fix disassembler crashing on -b binary when thumb file and thumb not
++ forced.
++
++ -- Matthias Klose <doko@debian.org> Fri, 23 Nov 2018 09:02:12 +0100
++
++binutils (2.31.1-7) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20181018).
++ - AArch64: Fix error checking for SIMD udot (by element).
++ - x86: Add Intel ENCLV to assembler and disassembler.
++
++ -- Matthias Klose <doko@debian.org> Thu, 18 Oct 2018 08:54:07 +0200
++
++binutils (2.31.1-6) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20180919).
++ - PR ld/23499: elf: Check for corrupt symbol version info.
++ - Fix Aarch64 bug in warning filtering.
++ - Improve the code in the assembler to detect and reject a duplicate
++ input and output file.
++ * Don't reset CROSS_ARCHS when building in an autopkg tests (as done by
++ the cross-toolchain-base build test).
++
++ -- Matthias Klose <doko@debian.org> Wed, 19 Sep 2018 13:48:13 +0200
++
++binutils (2.31.1-5) unstable; urgency=medium
++
++ * Fix the "build" autopkg test, depending on fakeroot and allowing output
++ on stderr.
++
++ -- Matthias Klose <doko@debian.org> Fri, 31 Aug 2018 11:56:41 +0200
++
++binutils (2.31.1-4) unstable; urgency=medium
++
++ * Rewrite. the "build" autopkg tests not to use the "build-needed"
++ restriction until #906125 is fixed. Closes: #884117.
++ * Build armel and armhf cross binutils on ppc64el.
++
++ -- Matthias Klose <doko@debian.org> Tue, 14 Aug 2018 20:43:44 +0200
++
++binutils (2.31.1-3) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20180814).
++ - Fix PR ld/23428, properly add X86_ISA_1_NEEDED property.
++ - Fix PR ld/23486, properly merge GNU_PROPERTY_X86_ISA_1_USED.
++ - x32: Align the .note.gnu.property section to 4 bytes.
++ - PowerPC64 __tls_get_addr_opt stub .eh_frame fix.
++ - PowerPC64: __tls_get_addr_opt stubs and tocsave optimization.
++ - PR gas/23465, x86: don't mistakenly scale non-8-bit displacements.
++ - PR gold/23455, add --warn-drop-version option; by default, do not warn
++ when discarding version info.
++ - hppa: Fix unwind offset for call_info->start_symbol.
++ * Build arm64 cross binutils on ppc64el.
++
++ -- Matthias Klose <doko@debian.org> Tue, 14 Aug 2018 07:33:39 +0200
++
++binutils (2.31.1-2) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20180726).
++ - S/390: Set the htm flag on PPA.
++ - x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed.
++ - x86: Split vcvtps2{,u}qq and vcvttps2{,u}qq.
++
++ -- Matthias Klose <doko@debian.org> Thu, 26 Jul 2018 12:23:07 +0200
++
++binutils (2.31.1-1) unstable; urgency=medium
++
++ * Binutils 2.31.1 release.
++ * Remove the riscv64 build hack. Closes: #903857.
++
++ -- Matthias Klose <doko@debian.org> Wed, 18 Jul 2018 11:58:00 +0200
++
++binutils (2.31-1) unstable; urgency=medium
++
++ * Binutils 2.31 release.
++
++ -- Matthias Klose <doko@debian.org> Mon, 16 Jul 2018 11:40:18 +0200
++
++binutils (2.30.90.20180710-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20180710).
++ - Fix PR ld/23388, configuration with --enable-separate-code on i386.
++ Closes: #903376.
++ - Fix PR ld/23372, Remove x86 ISA properties with empty bits.
++ - Fix PR binutils/23369, read/write flag for these registers on AArch64.
++ - Fix PR binutils/23242, SBO bit in disassembly mask for ldrah on AArch64.
++ - [GOLD] PowerPC .gnu.attributes support.
++ - CVE-2018-8945: PR binutils/22809, objdump segfault.
++
++ -- Matthias Klose <doko@debian.org> Tue, 10 Jul 2018 11:44:16 +0200
++
++binutils (2.30.90.20180705-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20180705).
++ - Install the diagnostics.h header. Closes: #902765, #902823.
++
++ -- Matthias Klose <doko@debian.org> Thu, 05 Jul 2018 17:55:14 +0200
++
++binutils (2.30.90.20180627-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.31 branch (20180627).
++ - CVE-2018-10372: PR binutils/23064, Fix illegal memory access when parsing
++ corrupt DWARF information.
++ - CVE-2018-10373: PR binutils/23065, nm segfault.
++ - CVE-2018-10534: PR binutils/23110, objcopy segfault.
++ - CVE-2018-10535: PR binutils/23113, objcopy segfault.
++
++ -- Matthias Klose <doko@debian.org> Wed, 27 Jun 2018 21:55:43 +0200
++
++binutils (2.30.52.20180613-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20180613).
++
++ -- Matthias Klose <doko@debian.org> Wed, 13 Jun 2018 14:20:30 +0200
++
++binutils (2.30.51.20180512-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20180512).
++
++ -- Matthias Klose <doko@debian.org> Sat, 12 May 2018 11:45:10 -0400
++
++binutils (2.30-22) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180622.
++ - x86 gas: Replace CET bit with IBT and SHSTK bits.
++
++ -- Matthias Klose <doko@debian.org> Fri, 22 Jun 2018 08:11:21 +0200
++
++binutils (2.30-21) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180529.
++ - x86-64: Add TLSDESC fields to elf_x86_lazy_plt_layout.
++ - PR binutils/23199, mark section in a section group with SHF_GROUP.
++ - PR ld/23194, x86: Don't set eh->local_ref to 1 for versioned symbol.
++ - PR ld/23189, x86: Don't set eh->local_ref to 1 for linker defined symbols.
++ - PR binutils/23199, Invalid SHT_GROUP entry leads to group confusion.
++ * Fix PR gprof/23056, memory corruption in gprof. LP: #1763098.
++ * Fix PR binutils/23054, memory corruption in as. LP: #1763096.
++ * Fix PR ld/23055, memory corruption in ld. LP: #1763094.
++
++ -- Matthias Klose <doko@debian.org> Tue, 29 May 2018 15:46:35 +0200
++
++binutils (2.30-20) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180516.
++ - Fix PR binutils/23109, disassembly mask for vector sdot on AArch64.
++ - Fix uninitialised memory acccess in COFF bfd backend.
++ - Update Portuguese translations.
++
++ -- Matthias Klose <doko@debian.org> Wed, 16 May 2018 10:21:19 -0400
++
++binutils (2.30-19) unstable; urgency=medium
++
++ * Build-depend on procps.
++
++ -- Matthias Klose <doko@debian.org> Thu, 03 May 2018 07:44:55 +0200
++
++binutils (2.30-17) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180502.
++ - Fix PR ld/23123, PR ld/22374, PowerPC32 ifunc regression.
++ - AArch64: Fix the mask for the sqrdml(a|s)h instructions.
++ * Fix unintialized memory in aarch64 opcodes, taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Wed, 02 May 2018 14:11:28 +0200
++
++binutils (2.30-16) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180425.
++ - Fix PR ld 22782, x86: Remove the unused _GLOBAL_OFFSET_TABLE_.
++ - Update spanish and russian translations.
++ * Add amd64, i386, x32 and riscv64 cross compilers as build (test)
++ dependencies.
++
++ -- Matthias Klose <doko@debian.org> Wed, 25 Apr 2018 06:53:58 +0200
++
++binutils (2.30-15) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180408.
++ * Only build the basic package when running the autopkg tests.
++ Closes: #884117.
++
++ -- Matthias Klose <doko@debian.org> Sun, 08 Apr 2018 22:55:34 +0200
++
++binutils (2.30-14) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180405.
++ - Fix PR binutils/23025, Clear vex instead of vex.evex (x86).
++ * Fix PR gold/22770, MIPS: Fix GOT page counter in multi-got links,
++ taken from the trunk. Closes: #886222.
++ * Fix PR ld/23030 (stop the IA64 linker from removing unwind tables
++ when garbage collecting), taken from the trunk. Closes: #894915, #894719.
++ * More work arounds to build natively on riscv64.
++
++ -- Matthias Klose <doko@debian.org> Thu, 05 Apr 2018 19:13:24 +0200
++
++binutils (2.30-13) unstable; urgency=medium
++
++ * Build cross binutils for i386 and x32 on arm64 and ppc64el.
++
++ -- Matthias Klose <doko@debian.org> Wed, 04 Apr 2018 10:32:15 +0200
++
++binutils (2.30-11) unstable; urgency=medium
++
++ * Filter out the host architecture when passed as a cross architecture.
++
++ -- Matthias Klose <doko@debian.org> Sun, 01 Apr 2018 17:01:49 +0200
++
++binutils (2.30-10) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180330.
++ - Fix PR 22773, ARM assembler's parsing of an illegal ORR instruction.
++ - Fix PR gold/22868, PR ld/22972 on SPARC, .
++ - PR ld/23000, x86-64: Add ENDBR64 to the TLSDESC PLT entry.
++
++ -- Matthias Klose <doko@debian.org> Fri, 30 Mar 2018 18:55:59 +0800
++
++binutils (2.30-9) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180325.
++ - Fix PowerPC64 out-of-line save/restore functions.
++ - Remove unnecessary power9 group terminating nop.
++ - Set non_ir_ref_dynamic if a symbol is made dynamic.
++ - Fix PR ld/22836, "-r -s" doesn't work with -g3 using GCC 7.
++ * Fix amd64, i386 and x32 cross builds.
++
++ -- Matthias Klose <doko@debian.org> Sun, 25 Mar 2018 14:53:41 +0800
++
++binutils (2.30-8) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180318.
++ - [ARM] Fix bxns mask.
++ - Extend the fix for PR ld/20882.
++ * Fix PowerPC64 out-of-line save/restore functions. Closes: #886264.
++ * Revert the 2.30-7 change.
++
++ -- Matthias Klose <doko@debian.org> Sun, 18 Mar 2018 12:51:40 +0800
++
++binutils (2.30-7) unstable; urgency=medium
++
++ * Upload without build dependencies on the cross compilers and don't run
++ the testsuite for this upload.
++
++ -- Matthias Klose <doko@debian.org> Thu, 08 Mar 2018 12:04:10 +0700
++
++binutils (2.30-6) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180308.
++ - Fix PR ld/15904, linker error with --no-keep-memory.
++ - Enable link time garbage collection for the IA64 target. Closes: #890909.
++ - Fix PR gas/22014, memory corruption in MIPS assembler.
++ - Fix PR ld/22758, a bug that would place executable and non-executables
++ pages in the same segment.
++ - Fix PR ld/22832 on SPARC.
++ - Fix AArch32 build attributes for Armv8.4-A.
++ - Update translations.
++ * CVE-2018-7208: Fix PR binutils/22741, taken from the trunk.
++ * CVE-2018-7568: Fix PR binutils/22894, taken from the trunk.
++ * CVE-2018-7569: Fix PR binutils/22895, taken from the trunk.
++ * CVE-2018-7642: Fix PR binutils/22887, taken from the trunk.
++ * CVE-2018-7643: Fix PR binutils/22905, taken from the trunk.
++ * CVE-2018-7570: PR binutils/22881 needs a proper backport.
++ * Update package descriptions for binutils-<target>. Closes: #891377.
++ * Build binutils-for-host for TARGET (Helmut Grohne). Closes: #891863.
++
++ -- Matthias Klose <doko@debian.org> Thu, 08 Mar 2018 09:56:54 +0700
++
++binutils (2.30-5) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180215.
++ - gas: xtensa: fix trampoline placement.
++ - Fix PR gas/22738 (.dc.a directive has wrong size on SPARC 64-bit).
++ - Fix GOT relocation overflow on SPARC. Closes: #890359.
++ * strings --include-all-whitespace doesn't take an argument. Closes: #887894.
++
++ -- Matthias Klose <doko@debian.org> Thu, 15 Feb 2018 08:20:04 +0700
++
++binutils (2.30-4) unstable; urgency=high
++
++ * Update, taken from the 2.30 branch 20180209.
++ - Fix PR binutils/22788 (CVE-2018-6872).
++ * binutils-multiarch: Add riscv64 support.
++ * Bump dpkg version to a version supporting riscv64.
++
++ -- Matthias Klose <doko@debian.org> Fri, 09 Feb 2018 19:24:28 +0100
++
++binutils (2.30-3) unstable; urgency=high
++
++ * Update, taken from the 2.30 branch 20180208.
++ - Remove speculation barrier support, remove --speculate-indirect-jumps
++ support (PPC).
++ - Fix PR ld/22764.
++ * CVE-2018-6323: Fix PR binutils/22746, taken from the trunk.
++ * CVE-2018-6543: Fix PR binutils/22769, taken from the trunk.
++ * CVE-2018-6759: Fix PR binutils/22794, taken from the trunk.
++ * Build riscv64 cross packages. This is using a hack, making binutils
++ not building natively on riscv64. At the mercy of a dpkg update
++ to handle riscv64 in stretch ...
++
++ -- Matthias Klose <doko@debian.org> Thu, 08 Feb 2018 10:22:10 +0100
++
++binutils (2.30-2) unstable; urgency=medium
++
++ * Update, taken from the 2.30 branch 20180205.
++ - Fix PR ld/22762.
++ - gold: Add support for DWARF-4 line number tables.
++ - Update Brazillian portuguese and Russian translations.
++ * Apply approved patch for PR ld/22764 (AArch64). LP: #1746765.
++ Closes: #888789.
++ * Fix PR binutils/22734, taken from the trunk. Closes: #887729.
++
++ -- Matthias Klose <doko@debian.org> Mon, 05 Feb 2018 16:22:40 +0100
++
++binutils (2.30-1) unstable; urgency=medium
++
++ * Binutils 2.30 release.
++
++ -- Matthias Klose <doko@debian.org> Mon, 29 Jan 2018 14:29:38 +0100
++
++binutils (2.29.90.20180122-1) unstable; urgency=medium
++
++ * Snapshot, taken from the binutils 2.30 branch (20180122).
++ * Security issues addressed in 2.30: CVE-2017-13716, CVE-2017-14930,
++ CVE-2017-14932, CVE-2017-14933, CVE-2017-14934, CVE-2017-14938,
++ CVE-2017-14939, CVE-2017-14940, CVE-2017-15020, CVE-2017-15021,
++ CVE-2017-15022, CVE-2017-15023, CVE-2017-15024, CVE-2017-15025,
++ CVE-2017-15225, CVE-2017-15938, CVE-2017-15996, CVE-2017-16826,
++ CVE-2017-16827, CVE-2017-16828, CVE-2017-16829, CVE-2017-16830,
++ CVE-2017-16831, CVE-2017-16832, CVE-2017-17080, CVE-2017-17121,
++ CVE-2017-17122, CVE-2017-17123, CVE-2017-17124, CVE-2017-17125,
++ CVE-2017-17126.
++
++ -- Matthias Klose <doko@debian.org> Tue, 23 Jan 2018 04:11:38 +0100
++
++binutils (2.29.51.20180110-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20180110).
++
++ -- Matthias Klose <doko@debian.org> Wed, 10 Jan 2018 16:54:44 +0100
++
++binutils (2.29.51.20171219-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20171219).
++
++ -- Matthias Klose <doko@debian.org> Tue, 19 Dec 2017 14:50:11 +0100
++
++binutils (2.29.51.20171208-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20171208).
++ * binutils-source: Depend on python3 instead of python.
++ * Override m68k, powerpcspe and m68k buildd admins to run the testsuite.
++ * Build binutils-x86-64-linux-gnu on arm64 and ppc64el. See #883769.
++ * Revived from the tombs, build a binutils-ia64-linux-gnu package.
++
++ -- Matthias Klose <doko@debian.org> Fri, 08 Dec 2017 15:19:09 +0100
++
++binutils (2.29.51.20171128-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20171128).
++
++ -- Matthias Klose <doko@debian.org> Tue, 28 Nov 2017 08:59:33 +0100
++
++binutils (2.29.1-13) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20180105.
++ - Fix PR ld/22626, invalid dynindx used for dynamic relocs against
++ section symbols.
++ * Fix cross builds, use host tools (Helmut Grohne). Closes: #883865.
++
++ -- Matthias Klose <doko@debian.org> Fri, 05 Jan 2018 23:44:48 +0100
++
++binutils (2.29.1-12) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20171212.
++ - Fix PR binutils/21118, don't mask X_add_number containing
++ a register number.
++ * Revived from the tombs, build a binutils-ia64-linux-gnu package.
++
++ -- Matthias Klose <doko@debian.org> Wed, 13 Dec 2017 01:10:25 +0100
++
++binutils (2.29.1-11) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20171208.
++ - Fix PR gold/22309.
++ * Build binutils-x86-64-linux-gnu on arm64 and ppc64el. See #883769.
++
++ -- Matthias Klose <doko@debian.org> Fri, 08 Dec 2017 12:41:16 +0100
++
++binutils (2.29.1-10) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20171201.
++ - Fix PR gold/22233, segfault in relocate_erratum_stub on aarch64.
++ - Update local fix for PR gold/20765, internal error in fix_errata on
++ aarch64 (Peter Smith). LP: #1638902.
++ * binutils-source: Depend on python3 instead of python.
++ * Override m68k, powerpcspe and m68k buildd admins to run the testsuite.
++
++ -- Matthias Klose <doko@debian.org> Fri, 01 Dec 2017 02:34:24 +0100
++
++binutils (2.29.1-9) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20171128.
++ - Fix PR ld/22431, powerpc64 ld segfault when .plt discarded.
++ - Fix DWARF reader to use correct size for DW_FORM_ref_addr.
++
++ -- Matthias Klose <doko@debian.org> Tue, 28 Nov 2017 07:02:24 +0100
++
++binutils (2.29.1-8) unstable; urgency=medium
++
++ * Apply proposed patch for PR gold/22233. Closes: #876786.
++
++ -- Matthias Klose <doko@debian.org> Mon, 13 Nov 2017 15:45:39 +0100
++
++binutils (2.29.1-7) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20171107.
++ - Fix PR ld/22397, PR ld/22300, PR binutils/22348.
++ * Use dwz -m to compress the -dbg packages.
++ * Add a plethora of mips r6 packages ... Closes: #881060.
++ * Provide "long" description for -dbg packages. Closes: #880001.
++
++ -- Matthias Klose <doko@debian.org> Wed, 08 Nov 2017 12:17:38 +0100
++
++binutils (2.29.1-6) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20171022.
++ - [GOLD] Fix powerpc64 optimization of TOC accesses.
++ * Do the extra/optional dance ...
++ * Build debug packages. Closes: #863728.
++ * Fix stripping the binutils-<native triplet> packages.
++
++ -- Matthias Klose <doko@debian.org> Sun, 22 Oct 2017 22:41:34 +0200
++
++binutils (2.29.1-5) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20171017.
++ - Fix PR binutils/22245, undefined behavior in bfd_set_error.
++ - Correct ctor/dtor in init_array/fini_array error value.
++ * Stop installing i586 compat links for i386 builds. Closes: #877791.
++ * Build a binutils-i686-linux-gnu package on amd64 and x32 too.
++
++ -- Matthias Klose <doko@debian.org> Tue, 17 Oct 2017 11:29:33 +0200
++
++binutils (2.29.1-4) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20171001.
++ - PR ld/22220, BFD linker wrongly marks symbols as PREVAILING_DEF_IRONLY.
++ - PR ld/22199, x86-64: Don't pass output_bfd to info->callbacks->minfo.
++ - [GOLD] Set non-exec stack for ppc64.
++ * Move man/{go,}ld.1.gz to binutils-common (Helmut Grohne). Closes: #877266.
++ * Build-depend on target g++ compilers instead of target gcc compilers.
++ * Fail when string merge can't alloc memory, taken from the trunk.
++ Closes: #874674.
++ * Fix legacy cross builds. Closes: #876677.
++
++ -- Matthias Klose <doko@debian.org> Sun, 01 Oct 2017 20:16:22 +0200
++
++binutils (2.29.1-3) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170923.
++ - gold: Add --no-relax option.
++ - readelf: Handle E_MIPS_MACH_5900.
++ - gold: PowerPC function address in non-PIC.
++ - Fix PR binutils/22163, PR binutils/22170.
++ * libbinutils: Fix generation of upper dependency for two-number versions.
++ * debian/rules. Remove the old cross build targets.
++
++ -- Matthias Klose <doko@debian.org> Sat, 23 Sep 2017 14:00:50 +0200
++
++binutils (2.29.1-1) unstable; urgency=medium
++
++ * binutils 2.29.1 release.
++ * Convert to package source format 3.0 (quilt).
++
++ -- Matthias Klose <doko@debian.org> Wed, 20 Sep 2017 10:11:56 +0200
++
++binutils (2.29-13) unstable; urgency=medium
++
++ * Build again all cross packages.
++
++ -- Matthias Klose <doko@debian.org> Tue, 19 Sep 2017 13:11:06 +0200
++
++binutils (2.29-12) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170919.
++ - Fix PR ld/21441, PowerPC64 stubs don't match calculated size.
++ Closes: #876134.
++ - Fix PR ld/22048, Incorrect .eh_frame section in libc.so.
++ - Fix PR ld/22150, ld keeps a version reference for gc'd symbols.
++ Closes: #874585. LP: #1715641.
++ - Fix PR ld/22148, Integer overflow in elf64-x86-64.c.
++ - Fix PR ld/21924, Require GCC 5 or above for 3 x86 tests.
++ * Fix installation of test summaries.
++ * Compare test summaries for cross builds.
++
++ -- Matthias Klose <doko@debian.org> Tue, 19 Sep 2017 13:04:07 +0200
++
++binutils (2.29-10) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170915.
++ - Fix PR binutils/22047 (CVE-2017-14129), PR binutils/22018.
++ * gold on 32bit archs: Release mapped files after each pass.
++ * Build-depend on cross compilers to run the tests for the binutils
++ cross packages.
++ * Install the ldscripts into /usr/lib/<multiarch>/ldscripts and move
++ ldscripts into the binutils-<triplet> packages.
++ * Install the unprefixed manual packages into binutils-common and
++ derive the timestamps from the debian/changelog entry.
++ * binutils-<triplet>: Remove dependency on binutils.
++
++ -- Matthias Klose <doko@debian.org> Fri, 15 Sep 2017 11:55:58 +0200
++
++binutils (2.29-9) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170906.
++ - Fix PR binutils/22032, PR binutils/21786 (CVE-2017-12451),
++ PR binutils/21787 (CVE-2017-12448), PR binutils/21813 (CVE-2017-12450,
++ CVE-2017-12452, CVE-2017-12453, CVE-2017-12454), PR ld/21824,
++ PR binutils/21916, PR ld/21441, PR ld/22067, PR ld/22064, PR ld/22061,
++ PR binutils/22059 (CVE-2017-14128), PR binutils/21933 (CVE-2017-12799),
++ PR binutils/22060, PR binutils/22058 (CVE-2017-14130), PR binutils/21995,
++ PR binutils/21861, PR binutils/21813 (CVE-2017-12456), PR binutils/21909,
++ PR binutils/21820, PR binutils/21990, PR binutils/21994, PR ld/21441,
++ PR ld/22064, PR ld/22061, PR lto/81968, PR lto/81968, PR lto/81925.
++ * Fix typo in control.in interpolation when TARGET is non-empty (Helmut
++ Grohne). Addresses: #873387.
++
++ -- Matthias Klose <doko@debian.org> Wed, 06 Sep 2017 08:14:12 +0200
++
++binutils (2.29-8) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170830.
++ - Fix PR gold/21868. Closes: #830540, #869768.
++ - Fix address violation issues when parsing corrupt binaries.
++ - PR gold/21847: Provide symbol flag for PowerPC64 localentry:0 tracking.
++
++ -- Matthias Klose <doko@debian.org> Wed, 30 Aug 2017 08:03:09 +0200
++
++binutils (2.29-7) unstable; urgency=high
++
++ * Fix binutils dependency on binutils-<triplet> on non amd64 architectures.
++
++ -- Matthias Klose <doko@debian.org> Wed, 23 Aug 2017 23:51:26 +0200
++
++binutils (2.29-6) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170823.
++ - Fix PR ld/21988, PR ld/21964, PR ld/21910.
++ * readelf: Add patch to read Infinity notes.
++ * Reorganize packages to provide binutils-for-host/binutils-for-build
++ packages (Helmut Grohne). Closes: #842439.
++ - Break out a binutils-common package.
++ - Refactor code to build with DEB_BUILD_OPTIONS=nogold.
++ - Rename gold, ld.gold, ld.bfd to their triplet prefixed equivalents.
++ - Remove shlibs files for hppa64 and cross packages.
++ - Set NATIVE_ARCHS explicitly.
++ - Split out a libbinutils package and binutils-<triplet> packages.
++ - Build binutils-for-host and binutils-for-build packages.
++ * Fix some issues in the above patches.
++ * Mark binutils-common and libbinutils as M-A: same.
++ * Remove obsolete Breaks/Conflicts/Replaces.
++ * Replace FIXME markers with TODO markers. Silly lintian ...
++
++ -- Matthias Klose <doko@debian.org> Wed, 23 Aug 2017 12:01:12 +0200
++
++binutils (2.29-5) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170820.
++ - Fix PR binutils/21962, buffer overrun when parsing a corrupt tekhex
++ binary.
++ - Fix PR ld/18808: [AArch64] Skip IFUNC relocations in debug sections.
++ - Fix PR ld/18841: [AArch64] ifunc relocation ordering.
++ - [AArch64] Turn lr, fp, ip0 and ip1 into proper aliases.
++ - Fix PR ld/21923.
++ * Build gold on s390x. LP: #1709873.
++
++ -- Matthias Klose <doko@debian.org> Sun, 20 Aug 2017 19:00:03 +0200
++
++binutils (2.29-4) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170804.
++ * Fix PR ld/21884, taken from the trunk. Do not choose a non-ELF format
++ input file to hold the linker created GOT sections. Closes: #870611.
++
++ -- Matthias Klose <doko@debian.org> Mon, 07 Aug 2017 08:46:12 -0400
++
++binutils (2.29-3) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170802.
++ - S390 testsuite fixes.
++ * Fix PR ld/21884, taken from the trunk. Closes: #870343.
++
++ -- Matthias Klose <doko@debian.org> Wed, 02 Aug 2017 14:16:35 +0200
++
++binutils (2.29-2) unstable; urgency=medium
++
++ * Update, taken from the 2.29 branch 20170731.
++ - Fix PR 21847, PowerPC64 --plt-localentry issues.
++ - Fix PR gold/21857, PR ld/21849 (AVR).
++ * Remove Daniel as an uploader. Closes: #869305.
++
++ -- Matthias Klose <doko@debian.org> Mon, 31 Jul 2017 09:17:30 +0200
++
++binutils (2.29-1) unstable; urgency=medium
++
++ * binutils 2.29 release.
++
++ -- Matthias Klose <doko@debian.org> Tue, 25 Jul 2017 11:02:19 +0200
++
++binutils (2.28.90.20170718-1) experimental; urgency=medium
++
++ * Snapshot, taken from the 2.29 branch (20170718).
++
++ -- Matthias Klose <doko@debian.org> Tue, 18 Jul 2017 11:26:15 +0200
++
++binutils (2.28.51.20170703-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20170703).
++ - Addresses CVE-2017-9040, CVE-2017-9042, CVE-2017-9043, CVE-2017-9044,
++ CVE-2017-9742, CVE-2017-9743, CVE-2017-9744, CVE-2017-9745,
++ CVE-2017-9746, CVE-2017-9747, CVE-2017-9748, CVE-2017-9749,
++ CVE-2017-9750, CVE-2017-9751, CVE-2017-9752, CVE-2017-9753,
++ CVE-2017-9754, CVE-2017-9755, CVE-2017-9756, CVE-2017-9954,
++ CVE-2017-9955. Closes: #863674.
++
++ -- Matthias Klose <doko@debian.org> Mon, 03 Jul 2017 16:08:53 +0200
++
++binutils (2.28.51.20170627-1) experimental; urgency=high
++
++ * Snapshot, taken from the trunk (20170627).
++
++ -- Matthias Klose <doko@debian.org> Tue, 27 Jun 2017 14:53:24 +0200
++
++binutils (2.28.51.20170620-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk (20170620).
++ - Addresses issues CVE-2017-9040, CVE-2017-9042, CVE-2017-9043.
++ - ILP32 patches applied upstream. Closes: #861833.
++ - Fixes PR ld/21334 (MIPS), undefined hidden symbols causing assertion
++ failure. Closes: #858898.
++ * Configure with --enable-new-dtags.
++ * Don't revert the commit causing PR 21074.
++
++ -- Matthias Klose <doko@debian.org> Tue, 20 Jun 2017 15:32:31 +0200
++
++binutils (2.28-6) unstable; urgency=medium
++
++ * Update, taken from the 2.28 branch 20170615.
++ - Fix PR ld/19579 (AArch64), handling of relocations against common symbols.
++ Closes: #863152.
++ - Fix PR ld/21523 (ARM32).
++ - Fix PR ld/21529 (ARM32), internal error in linker.
++ - Fix PR ld/21404 (AVR).
++ - Fix PR binutils/21034.
++ - Fix PR gold/21503, gold not creating linker stub symbols on ppc64.
++ - Remove linker option: -z prefix-nop (x86).
++ * Fix several crashes. Addresses: #863674.
++ - PR binutils/21343, readelf crash. CVE-2017-9038.
++ - PR binutils/21345, readelf crash. CVE-2017-9039.
++ - PR binutils/21344, readelf crash. CVE-2017-9041.
++
++ -- Matthias Klose <doko@debian.org> Thu, 15 Jun 2017 17:46:47 +0200
++
++binutils (2.28-5) unstable; urgency=medium
++
++ * Update, taken from the 2.28 branch 20170510.
++ - RISC-V updates.
++ - Fix PR ld/21334 (MIPS).
++ - VxWorks fix.
++ - Fix PR ld/16044 (CRIS).
++ * Fix PR binutils/21412, global-buffer-overflow in objcopy. CVE-2017-8393.
++ * Fix PR binutils/21414, segfault in objcopy. CVE-2017-8394.
++ * Fix PR binutils/21431, objcopy segfault - null pointer dereferencing.
++ CVE-2017-8395.
++ * Fix PR binutils/21432, heap buffer overflow in objdump. CVE-2017-8396.
++ * Fix PR binutils/21434, heap buffer overflow in objdump. CVE-2017-8397.
++ * Fix PR binutils/21438, heap buffer overflow in printf_common.
++ CVE-2017-8398.
++ * Fix PR binutils/21440, prevent memory exhaustion from a corrupt PE binary
++ with an overlarge number of relocs. CVE-2017-8421.
++ * gold (SPARC): Fix assertion failure relaxing TLS for position-independent
++ executables. Closes: #862017.
++
++ -- Matthias Klose <doko@debian.org> Wed, 10 May 2017 12:12:53 +0200
++
++binutils (2.28-4) unstable; urgency=medium
++
++ * Update, taken from the 2.28 branch 20170418.
++ - Fix PR ld/21233: Avoid sweeping forced-undefined symbols in section GC.
++ - BFD fix.
++ - Fix PR ld/19579, PR ld/21306, link error with PIE on s390x.
++ * Fix PR binutils/21342, null pointer dereferences when using a link built
++ with clang. Closes: #859989. CVE-2017-7614.
++
++ -- Matthias Klose <doko@debian.org> Tue, 18 Apr 2017 08:08:02 +0630
++
++binutils (2.28-3) unstable; urgency=medium
++
++ * Update, taken from the 2.28 branch 20170405.
++ - RISC-V updates.
++ - Fix PR binutils/21303 (PPC), objdump doesn't show e200z4 insns.
++ - S/390: Remove vx2 facility flag.
++ - Update -maltivec and -mvsx options to only enable their oldest
++ instructions (PPC).
++ - Add support for the new 'lnia' extended mnemonic (PPC).
++ - Fix ld uninitialized read of script ASSERT data structure.
++ * Fix incorrect library search order on PowerPC, taken from the trunk.
++ * Fix PR ld/21233 (MIPS only), taken from the trunk. Closes: #857017.
++ * Fix a french translation. Closes: #859503.
++ * Fix PR binutils/21157, handling of corrupt STABS enum type strings.
++ Closes: #858324. CVE-2017-7210.
++ * Fix PR binutils/21137, readelf writing to illegal addresses.
++ Closes: #858264. CVE-2017-6965.
++ * Fix PR binutils/21156, illegal memory accesses in readelf.
++ Closes: #858256. CVE-2017-6969.
++ * Fix PR binutils/21139, read-after-free error in readelf.
++ Closes: #858263. CVE-2017-6966.
++ * Fix PR binutils/21135, invalid read of section contents.
++ Closes: #858323. CVE-2017-7209.
++ * Fix PR demangler/70909, libiberty Demangler segfaults. CVE-2016-4491.
++
++ -- Matthias Klose <doko@debian.org> Wed, 05 Apr 2017 17:48:03 +0200
++
++binutils (2.28-2) unstable; urgency=medium
++
++ * Update, taken from the 2.28 branch 20170307.
++ - Fix PR ld/20519, PR binutils/21224, PR binutils/21124 (all PPC).
++
++ -- Matthias Klose <doko@debian.org> Tue, 07 Mar 2017 11:09:19 +0100
++
++binutils (2.28-1) unstable; urgency=medium
++
++ * binutils 2.28 release.
++ - S/390: Add support for new cpu architecture - arch12.
++ - S/390: Issue error for overflowing relocs.
++ - Fix PR gas/20744 (PPC32): Correct VLE 16D and SDAREL relocations.
++ - Fix PowerPC ld segfault on script discarding dynamic sections.
++ - Sync libiberty sources with GCC mainline. Fixes PR PR c++/70182,
++ PR c++/77489, PR c++/78761.
++ - Nios2 dynobj handling fixes.
++ - Don't make dynamic .data.rel.ro SEC_READONLY.
++ - PowerPC addpcis fix.
++ - RISC-V updates.
++ - [AArch64] Additional SVE instructions, add a "compnum" feature,
++ add SVE system registers, fix +sve documentation, add separate
++ feature flag for weaker release consistent load insns.
++ * Don't install windows related man pages in cross packages. Closes: #855630.
++ * Fix ld.1 symlink for targets without gold.
++
++ -- Matthias Klose <doko@debian.org> Thu, 02 Mar 2017 14:39:24 +0100
++
++binutils (2.27.90.20170221-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.28 branch.
++ - Fix Alpha executables segfaulting when linked with -z,now.
++ * Don't install windows related man pages in cross packages. Closes: #855630.
++ * Don't install the embedspu binary for powerpcspe. Closes: #850691.
++
++ -- Matthias Klose <doko@debian.org> Tue, 21 Feb 2017 13:06:04 +0100
++
++binutils (2.27.90.20170218-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.28 branch.
++ - Fix PR ld/21000, PR ld/21132 (closes: #855095).
++ - Fix powerpc testsuite source errors.
++ - Fix PR ld/21168, i386: Allow "lea foo@GOT, %reg" in PIC
++ - opcodes: Fix use after free in cgen instruction lookup.
++ - MIPS/BFD: Respect the ELF gABI dynamic symbol table sort requirement.
++ - MIPS/BFD: Use `bfd_size_type' for dynamic symbol table indices.
++ - MIPS/BFD: Streamline hash table references in `mips_elf_sort_hash_table'.
++ - MIPS/BFD: Fix assertion in `mips_elf_sort_hash_table'.
++ - POWER9: Add scv/rfscv instruction support.
++ - RiscV updates.
++
++ -- Matthias Klose <doko@debian.org> Sat, 18 Feb 2017 05:37:06 +0100
++
++binutils (2.27.90.20170205-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.28 branch.
++ - MIPS/LD/testsuite: Correct relocation addends in VxWorks tests.
++ - MIPS/LD/testsuite: Fix a `tls-multi-got-1-1.s' build failure.
++ - MIPS: Add options to control branch ISA checks.
++ - MIPS/GAS/testsuite: Convert branch local list tests to dump tests.
++ - Fix PR ld/20995 for cris-linux.
++ - gold: Fix PPC64 TOC indirect to TOC relative segfault.
++ - Fix PR ld/21000, support -z relro on hppa. Other hppa updates.
++ - PR binutils/19935: Fix fallout from now-default initfini-array.
++
++ -- Matthias Klose <doko@debian.org> Sun, 05 Feb 2017 21:05:07 +0100
++
++binutils (2.27.90.20170124-2) unstable; urgency=medium
++
++ * Revert the commit causing PR 21074. Works around #852035.
++
++ -- Matthias Klose <doko@debian.org> Thu, 26 Jan 2017 18:09:09 +0100
++
++binutils (2.27.90.20170124-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.28 branch.
++ - Fix PR gold/21054 (closes: #851736).
++
++ -- Matthias Klose <doko@debian.org> Tue, 24 Jan 2017 15:24:49 +0100
++
++binutils (2.27.90.20170118-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.28 branch.
++ - Fix PR binutils/21059, PR gas/20992, PR gas/20649,
++ PR binutils/20828 (closes: #844227).
++
++ -- Matthias Klose <doko@debian.org> Wed, 18 Jan 2017 20:05:43 +0100
++
++binutils (2.27.90.20170114-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.28 branch.
++ - Fix PR ld/21038, PR ld/20830, PR gold/21040.
++ * Apply proposed patch for PR binutils/20828 (mips). Addresses: #844227.
++
++ -- Matthias Klose <doko@debian.org> Sat, 14 Jan 2017 11:43:57 +0100
++
++binutils (2.27.90.20170113-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.28 branch.
++ - Fix PR binutils/20876 (closes: #838875), PR gold/21040,
++ PR gold/21039.
++
++ -- Matthias Klose <doko@debian.org> Fri, 13 Jan 2017 13:31:53 +0100
++
++binutils (2.27.90.20170109-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.28 branch.
++ - Fix PR ld/20989.
++
++ -- Matthias Klose <doko@debian.org> Mon, 09 Jan 2017 11:03:34 +0100
++
++binutils (2.27.90.20161231-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the binutils 2.28 branch.
++ - Fix PR ld/20995, PR binutils/20464, PR binutils/14625, PR gas/10946,
++ PR gold/20996, PR gold/17643.
++
++ -- Matthias Klose <doko@debian.org> Sat, 31 Dec 2016 02:10:21 +0100
++
++binutils (2.27.51.20161220-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++ - Fix PR ld/20968 (closes: #848731), PR ld/20908, PR gold/20949,
++ PR gold/14676, PR gold/20983, PR gold/20976, PR gold/20749,
++ PR gold/20522, PR gold/14676, PR gold/16711, PR gold/20717, PR c++/78252.
++
++ -- Matthias Klose <doko@debian.org> Tue, 20 Dec 2016 09:11:49 +0100
++
++binutils (2.27.51.20161212-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++ - Implements --push-state/--pop-state for gold.
++ - Fix PR ld/20908, PR ld/20909, PR gas/20898, PR gas/20897, PR gold/20717,
++ PR gold/20834, PR gold/18989, PR ld/20910, PR ld/20911, PR ld/20912,
++ PR ld/20932, PR binutils/20931, PR binutils/20929, PR binutils/20905,
++ PR binutils/20907, PR binutils/20921, PR binutils/20922, PR ld/20925,
++ PR ld/20924, PR binutils/20930, PR ld/20923, PR gas/20901, PR gas/20896,
++ PR gas/20902, PR gas/20904, PR gold/20717, PR gold/16711, PR gold/20878,
++ PR ld/20906.
++
++ -- Matthias Klose <doko@debian.org> Mon, 12 Dec 2016 13:49:47 +0100
++
++binutils (2.27.51.20161201-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++ - Update PR ld/20815 (closes: #845690).
++ - Fix PR ld/20868 (AArch64), PR ld/16720 (mips), PR binutils/20891,
++ PR binutils/20892, PR ld/20886 (PPC64), PR gas/20895, PR binutils/20637,
++ PR binutils/20893.
++
++ -- Matthias Klose <doko@debian.org> Thu, 01 Dec 2016 15:55:10 +0100
++
++binutils (2.27.51.20161127-1) unstable; urgency=high
++
++ * New upstream snapshot, taken from the trunk.
++ - Fix PR target/20737 (ARM32), PR ld/20858.
++ * Revert the fix for PR ld/20815. Addresses: #845690.
++
++ -- Matthias Klose <doko@debian.org> Sun, 27 Nov 2016 21:00:36 +0100
++
++binutils (2.27.51.20161124-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++ - Fix PR ld/20815, PR gas/20744, PR gas/20827, PR gold/20346,
++ PR gold/20693.
++ * Fix PR ld/20858, error handling $ORIGIN variable.
++ Closes: #845171, #844847.
++
++ -- Matthias Klose <doko@debian.org> Thu, 24 Nov 2016 03:34:06 +0100
++
++binutils (2.27.51.20161118-2) unstable; urgency=medium
++
++ * Revert problematic sparc64 GOT patch (closes: #844782).
++
++ -- Matthias Klose <doko@debian.org> Sat, 19 Nov 2016 13:40:17 +0100
++
++binutils (2.27.51.20161118-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++ - SPARC updates, ARMv8.3 updates.
++ - Fix PR ld/20675.
++ * Fix typo in debian changelog. Closes: #843710.
++
++ -- Matthias Klose <doko@debian.org> Fri, 18 Nov 2016 14:11:45 +0100
++
++binutils (2.27.51.20161116-2) unstable; urgency=medium
++
++ * Stop building the mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
++ variants; can't continue with this work, because package uploads with
++ these architectures are still rejected.
++ * Add homepage attribute to the control file: Closes: #841432.
++ * ld: enable new dtags by default for linux/gnu targets. Closes: #835859.
++ * Fix PR ld/20827, using proposed patch. Closes: #844378.
++
++ -- Matthias Klose <doko@debian.org> Thu, 17 Nov 2016 11:56:55 +0100
++
++binutils (2.27.51.20161116-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++ - Fix PR ld/20789 (AVR), PR ld/20800 (x86), PR target/20737 (AArch64),
++ PR binutils/20801, PR binutils/20814, PR binutils/20751,
++ PR binutils/20794, PR gas/20803 (SPARC), PR gas/20732,
++ PR binutils/20799 (x86), PR binutils/20754 (x86), PR binutils/20701 (x86),
++
++ -- Matthias Klose <doko@debian.org> Wed, 16 Nov 2016 11:50:32 +0100
++
++binutils (2.27.51.20161108-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++ - Fix PR ld/20535 and PR ld/20784.
++
++ -- Matthias Klose <doko@debian.org> Tue, 08 Nov 2016 12:14:20 +0100
++
++binutils (2.27.51.20161105-2) unstable; urgency=medium
++
++ * Revert fix for PR ld/20535, causing PR ld/20784. Closes: #843339.
++
++ -- Matthias Klose <doko@debian.org> Sun, 06 Nov 2016 17:36:45 +0100
++
++binutils (2.27.51.20161105-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++ * Disable the work around for the build failure on mips* targets.
++
++ -- Matthias Klose <doko@debian.org> Sat, 05 Nov 2016 13:12:01 +0100
++
++binutils (2.27.51.20161102-1) unstable; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++ Security issues fixed: CVE-2016-6131, CVE-2016-4493, CVE-2016-4492,
++ CVE-2016-4490, CVE-2016-4489, CVE-2016-4488, CVE-2016-4487, CVE-2016-2226.
++
++ -- Matthias Klose <doko@debian.org> Wed, 02 Nov 2016 20:38:57 +0100
++
++binutils (2.27.51.20161027-2) experimental; urgency=medium
++
++ * Work around build failure on mips* targets.
++
++ -- Matthias Klose <doko@debian.org> Sun, 30 Oct 2016 19:35:41 +0200
++
++binutils (2.27.51.20161027-1) experimental; urgency=medium
++
++ * New upstream snapshot, taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Thu, 27 Oct 2016 16:57:21 +0200
++
++binutils (2.27-9) unstable; urgency=medium
++
++ * Update, taken from the 2.27 branch 20161014.
++ - Fix PR ld/20608, PR ld/20545, PR gold/20238.
++ * Fix cross build for non-standard cross archs (Helmut Grohne).
++ Closes: #839956.
++ * Fix ld segfault on ARM32, taken from the trunk. Closes: #840374.
++ * Fix PR ld/20648, taken from the trunk. Closes: #835544.
++ * Fix PR ld/20649, using proposed patch. Closes: #834147.
++
++ -- Matthias Klose <doko@debian.org> Mon, 17 Oct 2016 13:12:51 +0200
++
++binutils (2.27-8) unstable; urgency=medium
++
++ * Fix diversion updates for 32bit x86 targets.
++ * Update Break for hardening-wrapper.
++
++ -- Matthias Klose <doko@debian.org> Wed, 31 Aug 2016 10:11:22 +0200
++
++binutils (2.27-7) unstable; urgency=medium
++
++ * Update, taken from the 2.27 branch 20160830.
++ - Fix PR ld/20531.
++ * Fix diversion updates. Closes: #834836.
++
++ -- Matthias Klose <doko@debian.org> Tue, 30 Aug 2016 16:24:37 +0200
++
++binutils (2.27-6) unstable; urgency=high
++
++ * Update, taken from the 2.27 branch 20160819.
++ - Fix PR ld/20472.
++ * binutils-multiarch: Divert the triplet-prefixed names. Closes: #834253.
++
++ -- Matthias Klose <doko@debian.org> Fri, 19 Aug 2016 07:02:50 +0200
++
++binutils (2.27-5) unstable; urgency=high
++
++ * Update, taken from the 2.27 branch 20160812.
++ * Fix unexecutable MIPS binaries with -Wl,-z,noexecstack (Aurelian Jarno).
++ Closes: #834096.
++
++ -- Matthias Klose <doko@debian.org> Fri, 12 Aug 2016 09:27:17 +0200
++
++binutils (2.27-4) unstable; urgency=medium
++
++ * Fix gold on mipsr6 targets (Aurelian Jarno).
++
++ -- Matthias Klose <doko@debian.org> Tue, 09 Aug 2016 21:58:13 +0200
++
++binutils (2.27-3) unstable; urgency=medium
++
++ * Backport patches to fix gold on sparc64 (James Clarke). Closes: #833688.
++ * Fix gold on mips64 targets (Aurelian Jarno). Closes: #833654.
++
++ -- Matthias Klose <doko@debian.org> Tue, 09 Aug 2016 12:15:51 +0200
++
++binutils (2.27-2) unstable; urgency=medium
++
++ * Disable gold for all mips cross targets too.
++
++ -- Matthias Klose <doko@debian.org> Sun, 07 Aug 2016 16:30:20 +0200
++
++binutils (2.27-1) unstable; urgency=medium
++
++ * binutils 2.27 release.
++ * Update, taken from the 2.27 branch 20160807.
++ * Re-enable gold on sparc and sparc64. Closes: #818934.
++ * Disable SH64 support for the multilib build.
++ * Disable gold on all mips targets, currently fails to link.
++
++ -- Matthias Klose <doko@debian.org> Sun, 07 Aug 2016 13:38:27 +0200
++
++binutils (2.26.1-1) unstable; urgency=medium
++
++ * binutils 2.26.1 release.
++
++ -- Matthias Klose <doko@debian.org> Thu, 30 Jun 2016 10:37:37 +0200
++
++binutils (2.26-12) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160624.
++ - Fix PR ld/20254 (AVR), PR ld/20221 (AVR), PR ld/20244 (x86).
++ - Support for three more new POWER9 instructions.
++ * Cherry pick backports for AArch64 vulcan support (Dann Frazier).
++ LP: #1594452.
++
++ -- Matthias Klose <doko@debian.org> Fri, 24 Jun 2016 10:42:57 +0200
++
++binutils (2.26-11) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160610.
++ - Fix PR ld/20159, reverting the change for PR ld/16467. LP: #1588123.
++ * Use ldconfig triggers instead of calling ldconfig directly.
++
++ -- Matthias Klose <doko@debian.org> Fri, 10 Jun 2016 18:37:39 +0200
++
++binutils (2.26-10) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160601.
++ - Fix PR ld/20117, PR ld/20030, PR ld/20093.
++ - Support for a few more new POWER9 instructions.
++ * Build for N32 and MIPS r6 (YunQiang Su). Closes: #807377.
++ * Mark cross binutils as M-A: foreign (Helmut Grohne). Closes: #824424.
++ * More reproducible build fixes (Chris Lamb). Closes: #824413.
++ * Fix PR ld/19886, --as-needed regression, taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Wed, 01 Jun 2016 21:31:32 +0200
++
++binutils (2.26-9) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160512.
++ - Fix PR ld/19878, PR ld/19827, PR gas/19909, PR ld/20006, PR gold/19047,
++ PR gas/20047, PR 20060.
++
++ -- Matthias Klose <doko@debian.org> Thu, 12 May 2016 16:59:29 +0200
++
++binutils (2.26-8) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160321.
++ - Fix PR ld/19827.
++
++ -- Matthias Klose <doko@debian.org> Mon, 21 Mar 2016 15:38:30 +0100
++
++binutils (2.26-7) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160316.
++ - Fix PR ld/19623. Closes: #817891, PR ld/19539, PR binutils/19523.
++ * Fix cross-building from any-i386 (Samuel Thibault). Closes: #816128.
++
++ -- Matthias Klose <doko@debian.org> Wed, 16 Mar 2016 10:21:59 +0100
++
++binutils (2.26-6) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160310.
++ - Fix PR ld/19579, PR ld/19752, PR ld/19739.
++ - Fix PR binutils/19775. Closes: #813006.
++
++ -- Matthias Klose <doko@debian.org> Thu, 10 Mar 2016 13:08:38 +0100
++
++binutils (2.26-5) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160213.
++ - Fix PR ld/19698, PR ld/19553, ppc64 and AArch64 fixes.
++
++ -- Matthias Klose <doko@debian.org> Fri, 26 Feb 2016 17:07:29 +0100
++
++binutils (2.26-4) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160213.
++ - Fix PR ld/19615, PR ld/19601 (closes: #812858), PR gas/19520.
++ * Fix stripping packages for cross builds. Closes: #813337.
++
++ -- Matthias Klose <doko@debian.org> Sat, 13 Feb 2016 17:13:00 +0100
++
++binutils (2.26-3) unstable; urgency=medium
++
++ * Update, taken from the 2.26 branch 20160203.
++ * Fix PR binutils/19523, objdump not supporting gnu_debuglink with
++ compressed debug sections; taken from the trunk. Closes: #812089.
++
++ -- Matthias Klose <doko@debian.org> Wed, 03 Feb 2016 15:11:43 +0100
++
++binutils (2.26-2) unstable; urgency=medium
++
++ * Do a release build, not enabled upstream for the release.
++
++ -- Matthias Klose <doko@debian.org> Wed, 27 Jan 2016 18:22:45 +0100
++
++binutils (2.26-1) unstable; urgency=medium
++
++ * binutils 2.26 release.
++ - Fix PR 19421, reverting the fix for PR 4317. Closes: #808246.
++ * Fix build failure with new coreutils. Closes: #812846.
++
++ -- Matthias Klose <doko@debian.org> Wed, 27 Jan 2016 12:36:00 +0100
++
++binutils (2.25.90.20160101-2) unstable; urgency=medium
++
++ * Apply proposed patch for PR ld/19368. Closes: #807974.
++
++ -- Matthias Klose <doko@debian.org> Tue, 05 Jan 2016 17:32:06 +0100
++
++binutils (2.25.90.20160101-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.26 branch (20160101).
++ * PR gas/19359, work around a GCC issue on POWER8.
++
++ -- Matthias Klose <doko@debian.org> Fri, 01 Jan 2016 13:40:16 +0100
++
++binutils (2.25.90.20151209-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.26 branch (20151209).
++ * Fix cross build dependencies. Closes: #807378.
++
++ -- Matthias Klose <doko@debian.org> Wed, 09 Dec 2015 12:41:22 +0100
++
++binutils (2.25.90.20151125-2) unstable; urgency=medium
++
++ * Add ARMv8.1 Virtualization Host Extensions support, taken from the trunk.
++ * Import zlib 1.2.8, taken from the trunk.
++ * Filter the date/user line from the cross binutils test results.
++ Closes: #806490.
++
++ -- Matthias Klose <doko@debian.org> Mon, 30 Nov 2015 11:52:26 +0100
++
++binutils (2.25.90.20151125-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.26 branch (20151125).
++ - Fixed stack overflow TEMP-0000000-A2945B.
++ * Build ppc64el binutils on ppc64.
++
++ -- Matthias Klose <doko@debian.org> Wed, 25 Nov 2015 14:19:39 +0100
++
++binutils (2.25.51.20151113-2) unstable; urgency=medium
++
++ * Backport patches from the trunk:
++ - Fix PR ld/19263, segfault for s390_elf. Closes: #805237.
++ - Fix PR ld/19264, account for .tbss alignment when adjusting start
++ of relro. LP: #1516444.
++
++ -- Matthias Klose <doko@debian.org> Thu, 19 Nov 2015 14:16:15 +0100
++
++binutils (2.25.51.20151113-1) unstable; urgency=medium
++
++ * Snapshot, taken from the just created 2.26 branch (20151113).
++ - Fixed PR ld/19123. Closes: #801879.
++ - Ignore relocations in .data.rel.ro.local (hppa). Closes: #801531.
++ - Fix PR gas/19217, wrong use of MOVT to replace LDR (ARM32). LP: #1513985.
++ * Stop building gold on sparc and sparc64. Closes: #803474.
++
++ -- Matthias Klose <doko@debian.org> Fri, 13 Nov 2015 11:08:24 +0100
++
++binutils (2.25.51.20151106-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk 20151106.
++ * Work around PR ld/19188, internal linker error. LP: #1511542.
++
++ -- Matthias Klose <doko@debian.org> Fri, 06 Nov 2015 18:44:09 +0100
++
++binutils (2.25.51.20151028-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk 20151028.
++ - Fix PR ld/19171 (LP: #1510067), PR ld/19175 (LP: #1510270).
++ * Revert the fix for PR gold/19119, fixing gold on armhf, arm64 and powerpc.
++
++ -- Matthias Klose <doko@debian.org> Wed, 28 Oct 2015 09:34:03 +0100
++
++binutils (2.25.51.20151021-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk 20151021.
++ * binutils-i686-gnu: Don't ship ldscripts.
++
++ -- Matthias Klose <doko@debian.org> Wed, 21 Oct 2015 19:46:24 +0200
++
++binutils (2.25.51.20151020-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk 20151020.
++ * Build cross packages for debian port architectures.
++ * Move libraries into the multiarch libdir.
++ * Include gold on KFreeBSD.
++ * Install the gnu-triplet prefixed binaries and manual pages as files,
++ and provide non-prefixed symlinks.
++ * Add a breaks in binutils for hardening-wrapper (<< 2.8); the diversions
++ need to be adopted for the real files.
++ * Don't ship windows related manual pages.
++ * Change the search order for ld to first search in /usr/lib*,
++ then in /usr/<gnu-triplet>/lib*.
++ * Run the testsuite for all cross targets.
++ * Configure with --disable-compressed-debug-sections.
++
++ -- Matthias Klose <doko@debian.org> Wed, 21 Oct 2015 01:14:01 +0200
++
++binutils (2.25.51.20151014-1) experimental; urgency=medium
++
++ * Snapshot, taken from the trunk 20151014.
++ * Explicitly configure --with-system-zlib.
++ * Disable compressed debug sections on x86. See PR gas/19109.
++ * Configure cross builds with --enable-initfini-array.
++
++ -- Matthias Klose <doko@debian.org> Thu, 15 Oct 2015 01:18:36 +0200
++
++binutils (2.25.1-7) unstable; urgency=medium
++
++ * Fix PR ld/18867, ld reloc sorting causing glibc to crash on alpha.
++ Taken from the branch. Closes: #792555.
++
++ -- Matthias Klose <doko@debian.org> Sun, 11 Oct 2015 10:33:38 +0200
++
++binutils (2.25.1-6) unstable; urgency=medium
++
++ * Configure with --enable-initfini-array (not the default for cross builds).
++ * Backport PR gold/18855 (sparc).
++
++ -- Matthias Klose <doko@debian.org> Fri, 09 Oct 2015 14:57:11 +0200
++
++binutils (2.25.1-5) unstable; urgency=medium
++
++ * Fix setting the default library path on i386.
++
++ -- Matthias Klose <doko@debian.org> Mon, 05 Oct 2015 13:03:39 +0200
++
++binutils (2.25.1-4) unstable; urgency=medium
++
++ * On i386, configure for i686-linux-gnu. Provide i585-linux-gnu symlinks.
++
++ -- Matthias Klose <doko@debian.org> Thu, 01 Oct 2015 19:19:24 +0200
++
++binutils (2.25.1-3) unstable; urgency=medium
++
++ * Regenerate the control file. Closes: #799234.
++ * Configure cross builds with --with-sysroot=/. Closes: #799703.
++ * Backport PR ld/18668 from the trunk. Closes: #797666.
++ * Fix lintian warnings for the binutils-hppa64-linux-gnu package.
++
++ -- Matthias Klose <doko@debian.org> Tue, 22 Sep 2015 18:38:07 +0200
++
++binutils (2.25.1-2) unstable; urgency=medium
++
++ * Build cross binutils packages targeting the release architectures.
++ * Rename shared libraries for the cross packages and install into
++ the standard location.
++ * Don't ship the header files and static libraries for the cross packages.
++ * Rename binutils-hppa64 to binutils-hppa64-linux-gnu.
++ * PR binutils/18750, fix stack buffer overflows when parsing corrupt
++ ihex files.
++
++ -- Matthias Klose <doko@debian.org> Tue, 15 Sep 2015 01:54:21 +0200
++
++binutils (2.25.1-1) unstable; urgency=medium
++
++ * Binutils 2.25.1 release.
++
++ -- Matthias Klose <doko@debian.org> Sat, 08 Aug 2015 00:36:12 +0200
++
++binutils (2.25-11) unstable; urgency=medium
++
++ * Fix broken -Bsymbolic-functions on ARM32, hppa, m68k. Taken from
++ the trunk.
++
++ -- Matthias Klose <doko@debian.org> Fri, 31 Jul 2015 12:40:32 +0200
++
++binutils (2.25-10) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20150711.
++ - POWERPC fixes.
++
++ -- Matthias Klose <doko@debian.org> Sat, 11 Jul 2015 12:12:38 +0200
++
++binutils (2.25-9) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20150622.
++ - ARM32, AArch64, POWERPC fixes.
++ * Fix PR gas/18427, gas slow on hppa, taken from the trunk. Closes: #787192.
++
++ -- Matthias Klose <doko@debian.org> Mon, 22 Jun 2015 11:45:36 +0200
++
++binutils (2.25-8) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20150523.
++ - PPC and AArch64 backports from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Sat, 23 May 2015 09:44:54 +0200
++
++binutils (2.25-7) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20150411.
++ * More adjustments for reproducible builds. Closes: #774429.
++
++ -- Matthias Klose <doko@debian.org> Fri, 24 Apr 2015 13:18:01 +0200
++
++binutils (2.25-6) unstable; urgency=medium
++
++ * Apply patches from the 2.25 branch to address PR binutils/17512,
++ PR binutils/17531.
++ * Removal partial backports for PR binutils/17531.
++ * Configure with --enable-deterministic-archives. Closes: #774429.
++
++ -- Matthias Klose <doko@debian.org> Thu, 26 Mar 2015 16:40:36 +0100
++
++binutils (2.25-5) unstable; urgency=medium
++
++ * Remove '*.rej' files in the source package. Closes: #775679.
++ * Make the package build reproducibly (addresses: #774429):
++ - Fix mtimes before building binary packages.
++ - Stop recording the current time when creating gzip files.
++ - Sort file list in md5sums.
++ - Fix mtimes before building source tarball.
++ - Sort file list in binutils source tarball.
++ - If available, call strip-nondeterminism on static libraries.
++ * Fix PR ld/17827 - PIE copy relocations are broken with pointers.
++ Closes: #772958.
++
++ -- Matthias Klose <doko@debian.org> Wed, 25 Feb 2015 09:00:51 +0100
++
++binutils (2.25-4) unstable; urgency=medium
++
++ * Backport fixes for PR binutils/17531 up to 2014-12-22.
++
++ -- Matthias Klose <doko@debian.org> Thu, 15 Jan 2015 08:00:07 +0100
++
++binutils (2.25-3) unstable; urgency=medium
++
++ * Don't build as a release candidate, fixing the upper shlibs dependency.
++ * Refresh patches.
++
++ -- Matthias Klose <doko@debian.org> Thu, 25 Dec 2014 13:45:39 +0100
++
++binutils (2.25-2) unstable; urgency=medium
++
++ * Apply proposed patch for PR ld/17742 (don't create .eh_frame_hdr
++ on shared lib bfd).
++
++ -- Matthias Klose <doko@debian.org> Thu, 25 Dec 2014 06:55:02 +0100
++
++binutils (2.25-1) unstable; urgency=medium
++
++ * binutils 2.25 release.
++ - MIPS specific gas update.
++
++ -- Matthias Klose <doko@debian.org> Thu, 25 Dec 2014 05:49:55 +0100
++
++binutils (2.24.90.20141219-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20141219.
++ - Fix PR ld/17713 (segfault), PR ld/17689 (link error), PR ld/15228.
++ * Apply proposed patch for PR gold/17729 (fixing ~600 GCC test failures).
++
++ -- Matthias Klose <doko@debian.org> Fri, 19 Dec 2014 18:59:30 +0100
++
++binutils (2.24.90.20141209-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20141209.
++ - Fix PR binutils/17677, PR gold/17670 (powerpc),
++ PR gold/17566 (powerpc).
++
++ -- Matthias Klose <doko@debian.org> Tue, 09 Dec 2014 09:31:53 +0100
++
++binutils (2.24.90.20141201-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20141201.
++ - Fix PR ld/16452, PR/ld/16457: Don't output symbol version
++ requirement for non-DT_NEEDED libs. Closes: #728529.
++
++ -- Matthias Klose <doko@debian.org> Mon, 01 Dec 2014 21:53:10 +0100
++
++binutils (2.24.90.20141128-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20141128.
++ - gold: Fix corrupted .eh_frame section with LTO and --gc-sections.
++ - gold: Fix PowerPC relaxation corner case.
++ * Relax upper shlibs version dependency to the next release candidate.
++
++ -- Matthias Klose <doko@debian.org> Fri, 28 Nov 2014 14:20:09 +0100
++
++binutils (2.24.90.20141124-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20141124.
++ - ppc alignment fixes, Go fixes
++ - PR binutils/17597, PR binutils/17512, PR binutils/17521, PR binutils/17533,
++ trunk backports for fixing the recent CVE issues.
++ - One more fix for Cortex-A53 Erratum 835769 (AArch64).
++
++ -- Matthias Klose <doko@debian.org> Mon, 24 Nov 2014 17:29:27 +0100
++
++binutils (2.24.90.20141111-2) unstable; urgency=medium
++
++ * Fix ld -r abort in _bfd_elf_write_section_eh_frame, taken from the trunk.
++ Closes: #769067.
++
++ -- Matthias Klose <doko@debian.org.org> Tue, 11 Nov 2014 11:10:27 +0100
++
++binutils (2.24.90.20141111-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20141111.
++ - Update .MIPS.abiflags to support MIPS R6.
++ * gold: Misc updates for the AArch64 backend, taken from the trunk.
++ * Mention some CVE issues, fixed in the 20141104 snapshot:
++ - CVE-2014-8484 (PR binutils/17509).
++ - CVE-2014-8485, CVE-2014-8504 (PR binutils/17510).
++ - CVE-2014-8501, CVE-2014-8502, CVE-2014-8503 (PR binutils/17512).
++ * Fix some lintian warnings.
++
++ -- Matthias Klose <doko@debian.org> Tue, 11 Nov 2014 07:55:51 +0100
++
++binutils (2.24.90.20141104-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20141104.
++ - Fix PR bfd/17481.
++ - Fix PR17488, powerpc64-linux-ld segfault. LP: #1381580.
++ - Fix PR ld/17492. LP: #882353.
++ - Fix PR gas/17493. LP: #1051156.
++ - Add gcc-4.9 libgomp symbols requiring --plt-thread-safe for power7.
++ - PowerPC64 ELFv1 function symbol definition vs LTO and discarded sections.
++ - ppc: enable msgclr and msgsnd on Power8.
++ - Relax ppc64_elf_tls_optimize assertion.
++ * Pick patch from the trunk:
++ - Support relexation for the gold aarch64 backend.
++ - AArch64: move bogus assertion.
++ - Fix build configured with --enable-targets=aarch64-linux.
++ - Fix running ld-unique tests on ARM.
++ - gas: Recognize: AArch64 ThunderX processor.
++
++ -- Matthias Klose <doko@debian.org> Tue, 04 Nov 2014 02:14:45 +0100
++
++binutils (2.24.90.20141014-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.25 branch 20141014.
++ * Remove patches picked from upstream.
++ * Build gold on AArch64.
++
++ -- Matthias Klose <doko@debian.org> Tue, 14 Oct 2014 12:46:08 +0200
++
++binutils (2.24.51.20141001-4) unstable; urgency=high
++
++ * Fix PR ld/17647, taken from upstream. Closes: #764573.
++
++ -- Matthias Klose <doko@debian.org> Mon, 13 Oct 2014 20:03:30 +0200
++
++binutils (2.24.51.20141001-3) unstable; urgency=medium
++
++ * Fix PR ld/17447, taken from upstream. LP: #1371636.
++
++ -- Matthias Klose <doko@debian.org> Tue, 07 Oct 2014 12:26:24 +0200
++
++binutils (2.24.51.20141001-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20141001.
++
++ -- Matthias Klose <doko@debian.org> Wed, 01 Oct 2014 02:32:06 +0200
++
++binutils (2.24.51.20140918-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140918.
++
++ -- Matthias Klose <doko@debian.org> Thu, 18 Sep 2014 19:28:16 +0200
++
++binutils (2.24.51.20140903-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140903.
++ * Try to work around binutils-multiarch build failure on sh4 by disabling
++ hppa targets for the binutils-multiarch build. Addresses: #758830.
++ * Enable powerpc targets for ppc64el. Closes: #760395.
++
++ -- Matthias Klose <doko@debian.org> Wed, 03 Sep 2014 23:02:26 +0200
++
++binutils (2.24.51.20140818-1) unstable; urgency=high
++
++ * Snapshot, taken from the trunk 20140818.
++ - Fix GLIBC ifunc breakage on PowerPC64 ELFv2. LP: #1355962.
++
++ -- Matthias Klose <doko@debian.org> Mon, 18 Aug 2014 13:49:01 +0200
++
++binutils (2.24.51.20140814-2) unstable; urgency=medium
++
++ * Still provide i486-* symlinks.
++
++ -- Matthias Klose <doko@debian.org> Sun, 17 Aug 2014 17:06:36 +0200
++
++binutils (2.24.51.20140814-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140814.
++ - Add ld options --push-state and --pop-state.
++ * binutils-hppa64: Set architecture to hppa.
++ * Add aarch64_ilp32-linux-gnu multiarch directories to the search path.
++
++ -- Matthias Klose <doko@debian.org> Thu, 14 Aug 2014 13:28:40 +0200
++
++binutils (2.24.51.20140807-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140807.
++ - Remove patch for pr14918, integrated upstream.
++
++ -- Matthias Klose <doko@debian.org> Thu, 07 Aug 2014 11:41:44 +0200
++
++binutils (2.24.51.20140727-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140727.
++
++ -- Matthias Klose <doko@debian.org> Sun, 27 Jul 2014 15:44:40 +0200
++
++binutils (2.24.51.20140709-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140709.
++ - Fix PR gold/15639, -flto and ld.gold on ARM.
++ Closes: #712189. LP: #1191909.
++
++ -- Matthias Klose <doko@debian.org> Wed, 09 Jul 2014 19:44:18 +0200
++
++binutils (2.24.51.20140704-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140704.
++ * Build gold for mips* targets.
++ * Update the patch for the mips64el support. Closes: #750566, #753052.
++ * Update patches for the current trunk.
++
++ -- Matthias Klose <doko@debian.org> Fri, 04 Jul 2014 12:00:05 +0200
++
++binutils (2.24.51.20140617-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140617.
++
++ -- Matthias Klose <doko@debian.org> Tue, 17 Jun 2014 10:29:20 +0200
++
++binutils (2.24.51.20140604-3) unstable; urgency=medium
++
++ * Update the mips64-default-n64 patch (Yunqiang Su). Closes: #750566.
++
++ -- Matthias Klose <doko@debian.org> Sat, 07 Jun 2014 13:43:35 +0200
++
++binutils (2.24.51.20140604-2) unstable; urgency=medium
++
++ * Stop applying the mips64-default-n64 patch until it is updated.
++
++ -- Matthias Klose <doko@debian.org> Thu, 05 Jun 2014 11:20:39 +0200
++
++binutils (2.24.51.20140604-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140604.
++ * Refactor rules for consistent usage of the PF macro (Helmut Grohne).
++
++ -- Matthias Klose <doko@debian.org> Wed, 04 Jun 2014 13:48:21 +0200
++
++binutils (2.24.51.20140425-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140425.
++ * Refactor rules for consistent usage of the PF macro (Helmut Grohne).
++ * On x86 targets provide gnu-type prefixed binaries with the cpu that GCC
++ is configured for.
++ * 129_multiarch_libpath.patch: Fix to search multiarch dirs, only needed
++ for a minority of packages still using ld directly for linking instead
++ of the recommended use of gcc.
++
++ -- Matthias Klose <doko@debian.org> Sun, 27 Apr 2014 21:52:56 +0200
++
++binutils (2.24.51.20140411-2) unstable; urgency=medium
++
++ * No-change rebuild to get rid off ftp-master mail storm.
++
++ -- Matthias Klose <doko@debian.org> Sat, 12 Apr 2014 15:23:31 +0200
++
++binutils (2.24.51.20140411-1) unstable; urgency=medium
++
++ * Snapshot, taken from the trunk 20140411.
++ * Provide $(DEB_HOST_GNU_TYPE)- prefixed binaries and man pages.
++ * Don't enable the spu targets on powerpc targets anymore.
++ * Build the gold linker on hurd-i386 (Svante Signell). Closes: #744020.
++
++ -- Matthias Klose <doko@debian.org> Fri, 11 Apr 2014 18:49:22 +0200
++
++binutils (2.24-5) unstable; urgency=medium
++
++ * Update from the 2.24 branch, 20140321.
++ * Stop building the binutils-spu package.
++ * Add a binutils-multiarch-dev package. Closes: #583160
++
++ -- Matthias Klose <doko@debian.org> Fri, 21 Mar 2014 11:23:40 +0100
++
++binutils (2.24-4) unstable; urgency=medium
++
++ * Update from the 2.24 branch, 20140304.
++ * Update Aarch64 ilp32 linker and libdir names.
++ * Fix relocations for thread local variables on AArch64. Updated patch
++ taken from the trunk.
++ * Enable AArch64 big endian targets for AArch64 builds and for
++ binutils-multiarch.
++ * gas: Add entry for "xgene1" (AArch64).
++ * gas: Remove the alignment limit on AArch64.
++ * Add a Built-Using attribute for for the binutils-cross-* packages.
++ Closes: #738311.
++
++ -- Matthias Klose <doko@debian.org> Tue, 04 Mar 2014 02:21:00 +0100
++
++binutils (2.24-3) unstable; urgency=medium
++
++ * Update from the 2.24 branch, 20140124.
++ * Display the reference causing a shared library to be needed (taken from
++ the trunk).
++
++ -- Matthias Klose <doko@debian.org> Fri, 24 Jan 2014 14:39:48 +0100
++
++binutils (2.24-2) unstable; urgency=medium
++
++ * Update from the 2.24 branch, 20131209.
++ * Remove versioned build dependencies which are not needed anymore
++ since 2005.
++ * Drop the ld_system_root patch.
++ * Fix PowerPC64 linking of --just-symbols objects (Alan Modra).
++
++ -- Matthias Klose <doko@debian.org> Mon, 09 Dec 2013 13:57:43 +0100
++
++binutils (2.24-1) unstable; urgency=low
++
++ * Final upstream release.
++ * ifunc updates for AArch64, taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Mon, 02 Dec 2013 11:21:16 +0200
++
++binutils (2.23.91.20131123-1) unstable; urgency=low
++
++ * New upstream snapshot, taken from the 2.24 branch.
++ * Stop shipping libiberty, now available in libiberty-dev.
++
++ -- Matthias Klose <doko@debian.org> Sat, 23 Nov 2013 08:27:51 +0100
++
++binutils (2.23.90.20131116-1) unstable; urgency=low
++
++ * New upstream snapshot, taken from the 2.24 branch.
++
++ -- Matthias Klose <doko@debian.org> Sat, 16 Nov 2013 12:40:28 +0100
++
++binutils (2.23.90.20131017-1) unstable; urgency=low
++
++ * New upstream snapshot, taken from the 2.24 branch.
++
++ -- Matthias Klose <doko@debian.org> Thu, 17 Oct 2013 14:22:05 +0200
++
++binutils (2.23.90.20130927-1) unstable; urgency=low
++
++ * New upstream snapshot, taken from the 2.24 branch.
++ * Add ifunc support for AArch64.
++
++ -- Matthias Klose <doko@debian.org> Fri, 27 Sep 2013 14:05:44 +0200
++
++binutils (2.23.52.20130828-1) unstable; urgency=low
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Wed, 28 Aug 2013 15:22:51 +0200
++
++binutils (2.23.52.20130727-1) unstable; urgency=low
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Sat, 27 Jul 2013 10:37:11 +0200
++
++binutils (2.23.52.20130722-1) unstable; urgency=low
++
++ * New upstream snapshot.
++ - Fix PR ld/15762, glibc being built without warning sections.
++ * Set the libdir for arm64 to lib, not lib64.
++ * Stop building the binutils-gold package, let binutils provide
++ binutils-gold. Packages requiring gold should explicity pass
++ -fuse-ld=gold to the compiler, packages requiring the bfd linker
++ should pass -fuse-ld=bfd to the compiler.
++ * Refresh patches.
++
++ -- Matthias Klose <doko@debian.org> Mon, 22 Jul 2013 21:13:32 +0200
++
++binutils (2.23.52.20130620-1) unstable; urgency=low
++
++ * New upstream snapshot.
++ * Add conflicts with mingw binutils. Closes: #712057, #712063.
++ * Always compare the test results with the ones from the installed binutils.
++
++ -- Matthias Klose <doko@debian.org> Thu, 20 Jun 2013 12:27:31 +0200
++
++binutils (2.23.52.20130612-1) unstable; urgency=low
++
++ * New upstream snapshot.
++ - Fix issue #15323, redefining weak functions in -flto incrementally-linked
++ executable. Closes: #710936.
++ * Install libiberty.a again in binutils-dev, not installed anymore upstream
++ by default.
++ * Import the autopkg tests from Ubuntu.
++ * Enable i386pep emulation for the x86 builds. Closes: #703463.
++ * Fix typo in ld(1). Closes: #704867.
++ * Add mips64(el) support (YunQiang Su). Closes: #710214.
++
++ -- Matthias Klose <doko@debian.org> Wed, 12 Jun 2013 11:35:05 +0200
++
++binutils (2.23.52.20130522-1) experimental; urgency=low
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Wed, 22 May 2013 16:22:04 +0200
++
++binutils (2.23.2-2) experimental; urgency=low
++
++ * Add support for Cortex-A53 / Cortex-A57.
++ * Fix PR gas/14887 and PR gas/14987, gas syntax errors on ARM.
++ LP: #1166628.
++
++ -- Matthias Klose <doko@debian.org> Tue, 16 Apr 2013 02:21:44 +0200
++
++binutils (2.23.2-1) experimental; urgency=low
++
++ * binutils 2.23.2 release.
++
++ -- Matthias Klose <doko@debian.org> Tue, 26 Mar 2013 19:58:59 +0100
++
++binutils (2.23.1-1~exp6) experimental; urgency=low
++
++ * Update from the 2.23 branch (20130222).
++ * For cross builds, add the tool libdir to the library search path.
++ * Revert broken patch:
++ - Recognize DEB_TARGET_ARCH for cross builds.
++
++ -- Matthias Klose <doko@debian.org> Sat, 23 Feb 2013 01:57:30 +0100
++
++binutils (2.23.1-1~exp5) experimental; urgency=low
++
++ * Update from the 2.23 branch (20130213).
++ - AArch64 and PPC updates.
++ * Recognize DEB_TARGET_ARCH for cross builds. Closes: #695595.
++ * Fix srec_scan null dereference (Sang Kil Cha). Closes: #684903.
++
++ -- Matthias Klose <doko@debian.org> Wed, 13 Feb 2013 12:10:31 +0100
++
++binutils (2.23.1-1~exp4) experimental; urgency=low
++
++ * Fix PR ld/14918: linking with -flto always links in libgcc_s.so.
++ Closes: #650145.
++ * Fix build failure with texinfo 4.14. Closes: #697353.
++
++ -- Matthias Klose <doko@debian.org> Sat, 05 Jan 2013 14:06:23 +0100
++
++binutils (2.23.1-1~exp3) experimental; urgency=low
++
++ * Update from the 2.23 branch (20121204).
++ * Add fuse-ld= for GCC linker option compatibility in ld and gold.
++ * gold cross builds: Search the multiarch directories too.
++
++ -- Matthias Klose <doko@debian.org> Wed, 05 Dec 2012 08:35:10 +0100
++
++binutils (2.23.1-1~exp2) experimental; urgency=low
++
++ * Update from the 2.23 branch (20121121).
++ - arm, arm64 and x32 updates.
++
++ -- Matthias Klose <doko@debian.org> Wed, 21 Nov 2012 13:47:06 +0100
++
++binutils (2.23.1-1~exp1) experimental; urgency=low
++
++ * binutils 2.23.1 release.
++
++ -- Matthias Klose <doko@debian.org> Thu, 15 Nov 2012 13:50:55 +0100
++
++binutils (2.23-1) experimental; urgency=low
++
++ * Update multi-arch paths for x32 (x86_64-linux-gnux32) (Daniel Schepler).
++ Closes: #692138.
++ * Add new ARM hard-float/soft-float ABI flags for EABI_VER5 (Steve McIntyre).
++ * Silence lintian stupidity about interpreting every string in binaries
++ as text (Emmanuel Fleury). Closes: #661639.
++ * In ld.texi, remove cross reference to BFD internals documentation.
++
++ -- Matthias Klose <doko@debian.org> Tue, 06 Nov 2012 10:42:37 +0100
++
++binutils (2.23-1) experimental; urgency=low
++
++ * binutils 2.23 release.
++ * Don't include the documents licensed under GFDL with cover texts.
++ Closes: #650504.
++
++ -- Matthias Klose <doko@debian.org> Wed, 24 Oct 2012 10:29:50 +0200
++
++binutils (2.22.90.20120924-1) experimental; urgency=low
++
++ * New upstream snapshot (taken from the 2.23 branch).
++ * Fix bfd.h, removing the safety inclusion guard.
++ * Fix multilib conflicts of generated values by __WORDSIZE-based expressions.
++
++ -- Matthias Klose <doko@debian.org> Mon, 24 Sep 2012 18:39:51 +0200
++
++binutils (2.22.90.20120913-2) experimental; urgency=low
++
++ * Undo the reversion of the mips patches, unrelated issue.
++ * Build again with -marm on armhf. Testsuite still not ready for thumb mode.
++
++ -- Matthias Klose <doko@debian.org> Sat, 15 Sep 2012 03:00:10 +0200
++
++binutils (2.22.90.20120913-1) experimental; urgency=low
++
++ * New upstream snapshot (taken from the 2.23 branch).
++ * Add R_AARCH64_GOT_LD_PREL19 reloc implementation, taken from the trunk.
++ * Revert mips updates.
++ See http://sourceware.org/ml/binutils/2012-09/msg00158.html
++
++ -- Matthias Klose <doko@debian.org> Thu, 13 Sep 2012 20:35:08 +0200
++
++binutils (2.22.90.20120907-2) experimental; urgency=low
++
++ * Fix build failure on kfreebsd.
++
++ -- Matthias Klose <doko@debian.org> Sun, 09 Sep 2012 15:41:54 +0200
++
++binutils (2.22.90.20120907-1) experimental; urgency=low
++
++ * New upstream snapshot (taken from the 2.23 branch).
++ * Don't build anymore with -marm on armhf.
++ * Work around `install' limitation not able to pass parameters
++ to the strip command. Closes: #686183.
++ * Generate md5sums file. Closes: #684079.
++
++ -- Matthias Klose <doko@debian.org> Sat, 08 Sep 2012 13:40:39 +0200
++
++binutils (2.22.90.20120816-2) experimental; urgency=low
++
++ * Some refactoring of debian/rules based on patches from Marcin:
++ * Introduce DEB_TARGET_* macros to unify native and cross builds.
++ * Build the control file as the first step for cross builds.
++ * Try again building without --disable-werror.
++ * Refactor stripping of binaries into a `strip_package' macro.
++
++ -- Matthias Klose <doko@debian.org> Tue, 21 Aug 2012 15:31:05 +0200
++
++binutils (2.22.90.20120816-1) experimental; urgency=low
++
++ * New upstream snapshot (taken from the 2.23 branch).
++ * Configure for aarch64 and x32 targets.
++
++ -- Matthias Klose <doko@debian.org> Thu, 16 Aug 2012 13:26:56 +0200
++
++binutils (2.22.90.20120731-1) experimental; urgency=low
++
++ * New upstream snapshot (taken from the 2.23 branch).
++
++ -- Matthias Klose <doko@debian.org> Tue, 31 Jul 2012 22:20:22 +0200
++
++binutils (2.22.52.20120704-1) experimental; urgency=low
++
++ * New upstream snapshot.
++
++ -- Matthias Klose <doko@debian.org> Wed, 04 Jul 2012 14:40:01 +0200
++
++binutils (2.22-7) unstable; urgency=low
++
++ * Update from the binutils-2_22-branch 20120704.
++ - Fix PR ld/13991 and a gold issue on ARM.
++ * Fix warning building libiberty/md5.c. Closes: #674831.
++ * Enable x86_64-pep in binutils-multiarch. Closes: #675364.
++
++ -- Matthias Klose <doko@debian.org> Wed, 04 Jul 2012 11:00:14 +0200
++
++binutils (2.22-6.1) unstable; urgency=low
++
++ * Non-maintainer upload.
++ * Fix PR ld/14069 (hurd-i386) (Closes: #671804).
++
++ -- Samuel Thibault <sthibault@debian.org> Fri, 18 May 2012 11:52:14 +0200
++
++binutils (2.22-6) unstable; urgency=low
++
++ * Update from the binutils-2_22-branch 20120307.
++ - Fix PR ld/12161 (avr), PR binutils/13622 (readelf crash),
++ PR binutils/13476 (hppa), PR ld/13387 (hppa),
++ * Fix typo in elf64-x86-64.c, follow-up patch to PR ld/13302.
++
++ -- Matthias Klose <doko@debian.org> Thu, 08 Mar 2012 18:52:20 +0100
++
++binutils (2.22-5) unstable; urgency=low
++
++ * Update from the binutils-2_22-branch 20120124.
++ - Fix PR ld/13581 (x32).
++ * Fix PR gas/13449 (ARM), taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Tue, 24 Jan 2012 21:26:43 +0100
++
++binutils (2.22-4) unstable; urgency=low
++
++ * Don't bump the soversion (revert the change in 2.22-3).
++ * Apply proposed patch for PR binutils/13534, allowing ar to handle
++ files bigger than 2GB (Francois Gouget). Closes: #652887).
++ * Recognize DW_LANG_Go in readelf (backport from trunk).
++
++ -- Matthias Klose <doko@debian.org> Sat, 07 Jan 2012 09:07:25 +0100
++
++binutils (2.22-3) unstable; urgency=low
++
++ * Update from the binutils-2_22-branch 20120102.
++ - gold updates.
++ - mips updates.
++
++ -- Matthias Klose <doko@debian.org> Tue, 03 Jan 2012 06:06:20 +0100
++
++binutils (2.22-2) unstable; urgency=low
++
++ * Update from the binutils-2_22-branch 20111211.
++ * Fix build failure with make 3.82 (Daniel Schepler). Closes: #650064.
++
++ -- Matthias Klose <doko@debian.org> Sun, 11 Dec 2011 16:30:14 +0000
++
++binutils (2.22-1) unstable; urgency=low
++
++ * Binutils 2.22 release.
++
++ -- Matthias Klose <doko@debian.org> Mon, 21 Nov 2011 16:50:53 +0100
++
++binutils (2.21.90.20111025-1) unstable; urgency=low
++
++ * Snapshot, taken from the binutils-2_22-branch 20111025.
++ * Fix lintian warnings.
++
++ -- Matthias Klose <doko@debian.org> Tue, 25 Oct 2011 15:06:46 +0200
++
++binutils (2.21.90.20111019-3) unstable; urgency=low
++
++ * Fix PR ld/13302, taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Sun, 23 Oct 2011 13:15:07 +0200
++
++binutils (2.21.90.20111019-2) unstable; urgency=low
++
++ * Fix PR ld/13287, taken from the trunk. LP: #872687.
++
++ -- Matthias Klose <doko@debian.org> Thu, 20 Oct 2011 12:29:18 +0200
++
++binutils (2.21.90.20111019-1) unstable; urgency=low
++
++ * Snapshot, taken from the binutils-2_22-branch 20111019.
++
++ -- Matthias Klose <doko@debian.org> Wed, 19 Oct 2011 22:25:05 +0200
++
++binutils (2.21.90.20111004-2) unstable; urgency=low
++
++ * Fix PR ld/13250, preserve the maximum alignment and size for common
++ symbols (H.J. Lu). Closes: #608901. LP: #697229.
++
++ -- Matthias Klose <doko@debian.org> Thu, 06 Oct 2011 08:06:04 +0200
++
++binutils (2.21.90.20111004-1) unstable; urgency=medium
++
++ * Snapshot, taken from the binutils-2_22-branch 20111004.
++ * Fix PR ld/13195, taken from the trunk. Closes: #643858, #644183.
++
++ -- Matthias Klose <doko@debian.org> Tue, 04 Oct 2011 12:12:16 +0200
++
++binutils (2.21.53.20110922-1) unstable; urgency=low
++
++ * Snapshot, taken from the binutils-2_22-branch 20110924.
++
++ -- Matthias Klose <doko@debian.org> Sat, 24 Sep 2011 09:55:38 +0200
++
++binutils (2.21.53.20110910-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110910.
++ - Fix PR gas/13024. Closes: #635592.
++ * Build with proposed patch for PR ld/12965.
++ * Don't ship .la files in the cross binutils packages.
++ * For native builds, add the multiarch directories to the default
++ search path.
++
++ -- Matthias Klose <doko@debian.org> Sat, 10 Sep 2011 13:06:01 +0200
++
++binutils (2.21.53.20110823-3) unstable; urgency=low
++
++ * Revert the last change:
++ - Default to --hash-style=both in ld.bfd and ld.gold.
++
++ -- Matthias Klose <doko@debian.org> Thu, 25 Aug 2011 10:48:28 +0200
++
++binutils (2.21.53.20110823-2) unstable; urgency=low
++
++ * Default to --hash-style=both in ld.bfd and ld.gold.
++ * Fix s390x build (Aurelian Jarno). Closes: #635167.
++
++ -- Matthias Klose <doko@debian.org> Wed, 24 Aug 2011 13:06:48 +0200
++
++binutils (2.21.53.20110823-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110823.
++ - ld --no-copy-dt-needed-entries/--no-add-needed is now the default.
++
++ -- Matthias Klose <doko@debian.org> Tue, 23 Aug 2011 21:23:38 +0200
++
++binutils (2.21.53.20110805-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110805.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 05 Aug 2011 12:25:49 +0200
++
++binutils (2.21.53.20110729-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110729.
++ * Fix s390x build (Aurelian Jarno). Closes: #635167.
++
++ -- Matthias Klose <doko@debian.org> Fri, 29 Jul 2011 19:04:46 +0200
++
++binutils (2.21.53.20110720-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110720.
++ - Fix PR ld/12978. Closes: #632681.
++
++ -- Matthias Klose <doko@debian.org> Wed, 20 Jul 2011 20:54:51 +0200
++
++binutils (2.21.52.20110707-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110707.
++ - Fix build failure on mips/mipsel. Closes: #632690.
++ - Fix issues on kfreebsd-amd64. Closes: #632671.
++
++ -- Matthias Klose <doko@debian.org> Thu, 07 Jul 2011 06:48:33 +0200
++
++binutils (2.21.52.20110703-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110703.
++
++ -- Matthias Klose <doko@debian.org> Sun, 03 Jul 2011 21:56:44 +0200
++
++binutils (2.21.52.20110606-2) unstable; urgency=low
++
++ * Fix PR ld/12845, taken from the trunk. Closes: #628685.
++
++ -- Matthias Klose <doko@debian.org> Thu, 09 Jun 2011 12:45:15 +0200
++
++binutils (2.21.52.20110606-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110606.
++ - Fix PR ld/12833. Closes: #628770.
++ - Fix spelling errors. Closes: #604696.
++ * Let gold accept a dummy -z buildd-<random-string> option.
++ * Add a /usr/share/bug/binutils/presubj file for reportbug (and symlinks
++ from the other /usr/share/bug/binutils-foo directories) explaining how
++ to make a self-contained testcase (Jonathan Nieder). Closes: #629147.
++ * Fix ld crash cause of invalid pointer in munmap_chunk. Closes: #628916.
++
++ -- Matthias Klose <doko@debian.org> Tue, 07 Jun 2011 00:03:47 +0200
++
++binutils (2.21.51.20110523-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110523.
++
++ -- Matthias Klose <doko@debian.org> Mon, 23 May 2011 23:38:52 +0200
++
++binutils (2.21.51.20110421-6) unstable; urgency=low
++
++ [ Marcin Juszkiewicz ]
++ * Use pregenerated ld.gold.1 for cross builds.
++
++ [ Matthias Klose ]
++ * Redefine STRIP and install_binary for cross builds (Ken Werner).
++ * Apply fix for PR ld/12726, taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Thu, 19 May 2011 15:51:22 +0200
++
++binutils (2.21.51.20110421-5) unstable; urgency=medium
++
++ * Use a symlink for /usr/bin/ld, even if gold is not built. Closes: #615262.
++
++ -- Matthias Klose <doko@debian.org> Tue, 17 May 2011 17:58:17 +0200
++
++binutils (2.21.51.20110421-4) unstable; urgency=low
++
++ * Fix PR ld/12730, taken from the trunk. Closes: #625616.
++ * Cortex A8 workarounds for PLT tail calls (Richard Sandiford).
++
++ -- Matthias Klose <doko@debian.org> Sun, 08 May 2011 02:06:22 +0200
++
++binutils (2.21.51.20110421-3) unstable; urgency=low
++
++ * Fix segfault in ar, delete_members.
++
++ -- Matthias Klose <doko@debian.org> Sun, 01 May 2011 17:30:42 +0200
++
++binutils (2.21.51.20110421-2) unstable; urgency=low
++
++ * Fix typo in the patch for PR gas/12698.
++
++ -- Matthias Klose <doko@debian.org> Wed, 27 Apr 2011 21:33:47 +0200
++
++binutils (2.21.51.20110421-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110421.
++ * Install a man page for ld.gold, generated by help2man. Closes: #619823.
++ * Apply proposed patch for PR gas/12698. Closes: #623964.
++
++ -- Matthias Klose <doko@debian.org> Wed, 27 Apr 2011 18:14:39 +0200
++
++binutils (2.21.51.20110419-2) unstable; urgency=low
++
++ * Fix powerpcspe and sparc builds.
++
++ -- Matthias Klose <doko@debian.org> Tue, 19 Apr 2011 13:47:56 +0200
++
++binutils (2.21.51.20110419-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20110419.
++
++ -- Matthias Klose <doko@debian.org> Tue, 19 Apr 2011 10:18:14 +0200
++
++binutils (2.21.51.20110409-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20110409.
++
++ -- Matthias Klose <doko@debian.org> Sat, 09 Apr 2011 13:53:24 +0200
++
++binutils (2.21.51.20110403-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20110403.
++
++ -- Matthias Klose <doko@debian.org> Sun, 03 Apr 2011 23:54:13 +0200
++
++binutils (2.21.0.20110327-3) unstable; urgency=high
++
++ * Fix architecture field for binutils-gold (powerpcspe).
++ * Add support for arm-*-gnueabihf targets. Closes: #621029.
++ * Fix PR ld/12654: Properly handle R_386_TLS_LDO_32 for PIE. LP: #663294.
++ * Fix PR ld/12637, reloc overflow for R_MIPS_TLS_LDM (Richard Sandiford),
++ taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Sun, 10 Apr 2011 17:23:40 +0200
++
++binutils (2.21.0.20110327-2) unstable; urgency=low
++
++ * Fix architecture field for binutils-gold.
++ * Configure with --disable-werror on armhf.
++
++ -- Matthias Klose <doko@debian.org> Tue, 29 Mar 2011 19:38:55 +0200
++
++binutils (2.21.0.20110327-1) unstable; urgency=low
++
++ * Update from the 2.21 branch 20110327.
++ * Add multiarch directories to linker search path. Closes: #369064.
++ LP: #738098.
++
++ -- Matthias Klose <doko@debian.org> Sun, 27 Mar 2011 22:32:57 +0100
++
++binutils (2.21.0.20110322-1) unstable; urgency=low
++
++ * Update from the 2.21 branch 20110322.
++ * S/390: Make as to accept all instructions if no -march option given.
++ taken from the trunk (Aurelian Jarno). Closes: #618751.
++ * Extend support for armhf (Loic Minier).
++ - debian/control.in, debian/control, debian/rules: Enable gold for armhf.
++ - debian/rules: Introduce $(CROSS) (set to $(DEB_HOST_GNU_TYPE)- when
++ cross-building) and call $(CROSS)cpp to check whether -marm is needed or
++ not instead of testing for armel; an alternative would be to
++ unconditionally set -marm if DEB_HOST_ARCH_CPU is arm.
++ - debian/rules: commented out -fno-section-anchors CFLAGS handling would
++ also be enabled for armhf.
++ - debian/rules: ignore regressions on armhf as well; note that
++ ignore_regressions is set three times.
++
++ -- Matthias Klose <doko@debian.org> Tue, 22 Mar 2011 23:12:39 +0100
++
++binutils (2.21.0.20110302-2) unstable; urgency=low
++
++ [ Carlos O'Donell ]
++ * Fix binutils-hppa64 build.
++
++ [ Matthias Klose ]
++ * Fix PR ld/12376 (John David Anglin), taken from the trunk.
++ * Update to the 2.21 branch, 20110310.
++
++ -- Matthias Klose <doko@debian.org> Thu, 10 Mar 2011 21:35:07 +0100
++
++binutils (2.21.0.20110302-1) unstable; urgency=low
++
++ * Update from the 2.21 branch.
++
++ [ Thorsten Glaser ]
++ * patches/640_m68k_fix-TLS_GD-relocation: new, temp. Closes: #611768.
++
++ [ Matthias Klose ]
++ * On ppc64, look for 32 bit target libraries in /lib32, /usr/lib32 etc.,
++ first.
++
++ -- Matthias Klose <doko@debian.org> Wed, 02 Mar 2011 02:41:17 +0100
++
++binutils (2.21.0.20110216-2) unstable; urgency=low
++
++ * Upload to unstable.
++
++ -- Matthias Klose <doko@debian.org> Tue, 22 Feb 2011 20:35:16 +0100
++
++binutils (2.21.0.20110216-1) experimental; urgency=low
++
++ * Update from the 2.21 branch.
++
++ -- Matthias Klose <doko@debian.org> Wed, 16 Feb 2011 15:54:15 +0100
++
++binutils (2.21-5) experimental; urgency=low
++
++ * Update gold to 1.11, taken from the 2.21 branch.
++ * Add the arm-linux-gnueabi target to binutils-multiarch (Loic Minier).
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 25 Jan 2011 00:51:38 +0100
++
++binutils (2.21-4) experimental; urgency=low
++
++ * Fix handling of writable .eh_frame section in gold, taken from the
++ 2.21 branch.
++
++ -- Matthias Klose <doko@debian.org> Wed, 12 Jan 2011 00:42:15 +0100
++
++binutils (2.21-3) experimental; urgency=low
++
++ [ Matthias Klose ]
++ * Don't include `-system' in the bfd version identifier.
++
++ [ Sedat Dilek ]
++ * 160_pr12327.patch: Fix PR ld/12327, taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Thu, 29 Dec 2010 23:51:35 +0100
++
++binutils (2.21-2) experimental; urgency=low
++
++ * Don't install ld.bfd in binutils-multiarch.
++ * Fix assembler bug blocking Thumb-2 kernel builds (CS issue #8775).
++
++ -- Matthias Klose <doko@debian.org> Fri, 10 Dec 2010 13:45:00 +0100
++
++binutils (2.21-1) experimental; urgency=low
++
++ * binutils 2.21 release.
++
++ [ Marcin Juszkiewicz ]
++ * Enable building gold in cross builds. LP: #686530.
++ * Allow to build only the -source package, and include the version
++ in the package name. LP: #682646.
++
++ -- Matthias Klose <doko@debian.org> Thu, 09 Dec 2010 23:24:49 +0100
++
++binutils (2.20.90.20101121-1) experimental; urgency=low
++
++ * Update from the binutils 2.21 release branch.
++
++ -- Matthias Klose <doko@debian.org> Sun, 21 Nov 2010 14:03:14 +0100
++
++binutils (2.20.90.20101105-2) experimental; urgency=low
++
++ * binutils 2.21 prerelease 1.
++
++ -- Matthias Klose <doko@debian.org> Wed, 10 Nov 2010 01:04:59 +0100
++
++binutils (2.20.51.20101028-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20101028.
++
++ -- Matthias Klose <doko@debian.org> Thu, 28 Oct 2010 16:57:11 +0200
++
++binutils (2.20.51.20101009-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20101009.
++
++ -- Matthias Klose <doko@debian.org> Sat, 09 Oct 2010 14:41:08 +0200
++
++binutils (2.20.51.20100925-2) experimental; urgency=low
++
++ * Allow ar scripts to contain ~ in the filename (Zygmunt Krynicki, taken
++ from Linaro). LP: #641488.
++
++ -- Matthias Klose <doko@debian.org> Thu, 30 Sep 2010 10:20:41 +0200
++
++binutils (2.20.51.20100925-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100925.
++ * Fix PR ld/10144, mips/ld: non-dynamic relocations refer to dynamic symbol
++ Closes: #519006.
++
++ -- Matthias Klose <doko@debian.org> Sat, 25 Sep 2010 16:24:20 +0200
++
++binutils (2.20.51.20100908-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100908.
++ * Link executables statically when `static' is passed in DEB_BUILD_OPTIONS
++ (Jim Heck). Closes: #590101.
++ * Apply proposed patch for PR ld/10340 (ld doesn't honor sysroot prefix
++ for ldscripts). LP: #625320.
++ * Build binutils-hppa64 in cross builds (Al Viro). Closes: #595319.
++ * Fix some lintian warnings.
++
++ -- Matthias Klose <doko@debian.org> Wed, 08 Sep 2010 16:31:47 +0200
++
++binutils (2.20.51.20100813-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100813.
++
++ [ Jonathan Nieder ]
++ * Remove ld.bfd from binutils-multiarch (not that useful without an
++ multiarch assembler).
++
++ [ Marcin Juszkiewicz ]
++ * Revert sysroot to / for cross builds. LP: #598389.
++ * Generate debian/control for native and cross builds. LP: #612629.
++ * Provide packaging rules in -source package. LP: #608745.
++
++ [ Matthias Klose ]
++ * Don't apply patches, when PATCHED_SOURCES is set to `yes'.
++ * Proposed patch for PR11889, readelf crashes for malformed binaries
++ (Dan Rosenberg). LP: #614206.
++
++ -- Matthias Klose <doko@debian.org> Fri, 13 Aug 2010 11:10:14 +0200
++
++binutils (2.20.51.20100710-2) experimental; urgency=medium
++
++ * Don't use configury for cross builds for native builds. LP: #604134.
++
++ -- Matthias Klose <doko@debian.org> Sun, 11 Jul 2010 10:24:28 +0200
++
++binutils (2.20.51.20100710-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100710.
++ - Fix PR gas/10531. LP: #599485.
++ * debian/rules: Introduce PF macros (Jim Heck). Closes: #588357.
++
++ [ Marcin Juszkiewicz ]
++ * Don't install documentation files in -cross packages. Closes: #586636.
++ * Set sysroot to /usr/$(TARGET) for cross builds. LP: #598389.
++
++ -- Matthias Klose <doko@debian.org> Sat, 10 Jul 2010 10:42:55 +0200
++
++binutils (2.20.51.20100617-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100617.
++ * Merge 'binary-cross' target into 'binary' one (Marcin Juszkiewicz).
++ * debian/copyright: Update to GFDL 1.3.
++
++ -- Matthias Klose <doko@debian.org> Thu, 17 Jun 2010 15:20:34 +0200
++
++binutils (2.20.51.20100527-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100527.
++
++ [ Jonathan Nieder ]
++ * debian/binutils-multiarch.preinst.in: Re-add diversions on reinstall.
++ Closes: #581156.
++ * Remove c++filt from binutils-multiarch.
++ * Rename /usr/bin/ld from multiarch build to ld.bfd. Closes: #582490.
++
++ -- Matthias Klose <doko@debian.org> Thu, 27 May 2010 10:40:48 +0200
++
++binutils (2.20.51.20100518-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100518.
++
++ -- Matthias Klose <doko@debian.org> Tue, 18 May 2010 13:29:45 +0200
++
++binutils (2.20.51.20100428-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100428.
++
++ -- Matthias Klose <doko@debian.org> Wed, 28 Apr 2010 10:07:28 +0200
++
++binutils (2.20.51.20100418-2) experimental; urgency=low
++
++ * Add upper dependency
++
++ -- Matthias Klose <doko@debian.org> Sun, 18 Apr 2010 20:52:41 +0200
++
++binutils (2.20.51.20100418-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100418.
++ * debian/*.shlibs.in: Automate upstream version changes.
++ * Configure native build --with-sysroot=/. Closes: #556126.
++ * Move the ld.gold binary into the binutils package, just keep the
++ diversion (ld) in the binutils-gold package.
++ * Linker selection: ld is used by default, to use the gold linker,
++ pass -fuse-linker-plugin (no other side effects if -flto/-fwhopr
++ is not passed). To force ld.bfd or ld.gold, pass -B/usr/lib/compat-ld
++ for ld.bfd or /usr/lib/gold-ld for ld.gold.
++ * Apply proposed patch for ARM: Add option to disable merging of adjacent
++ exidx unwinder entries.
++
++ [ Jonathan Nieder ]
++ * Clean up diversion handling in binutils-multiarch:
++ - remove diversion of libbfd.a and libopcodes.a. Closes: #545067.
++ - wait for the new version to be unpacked before removing old diversions
++ - avoid messages from re-adding diversions when upgrading from a version
++ that already has them
++ - remove diversions when downgrading to a version that does not have
++ them (for example, when recovering from an upgrade failure)
++ * Add diversion for ld.bfd in binutils-multiarch.
++ * Update comment in debian/rules to acknowledge that binutils-multiarch
++ includes a linker now.
++ * Add c++filt to binutils-multiarch.
++ * Remove elfedit from binutils-multiarch.
++ Its functionality does not depend on the list of supported targets.
++ * Fixup to version changes handling.
++
++ -- Matthias Klose <doko@debian.org> Sun, 18 Apr 2010 14:18:59 +0200
++
++binutils (2.20.51.20100405-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100405.
++ * debian/*.shlibs: Update to the version from the trunk.
++ * Mangle the soname of the binutils libraries to be different than
++ the default name. Closes: #557620.
++ Packaged cross builds should do the same.
++ * Add diversion for elfedit in binutils-multiarch (Jonathan Nieder).
++ Closes: #576126.
++ * Convert to quilt (Sedat Dilek).
++ * Update to proposed patch to enable both gold and ld in a single toolchain.
++ The gold binary is now installed as `gold'. Keep the name `ld.gold'.
++
++ -- Matthias Klose <doko@debian.org> Mon, 05 Apr 2010 14:49:46 +0200
++
++binutils (2.20.51.20100227-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100227.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Sat, 27 Feb 2010 08:55:05 +0100
++
++binutils (2.20.51.20100222-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100222.
++ * debian/*.shlibs: Update to the version from the trunk.
++ * binutils-dev: Install plugin-api.h.
++ * Ignore testsuite regressions on armel.
++
++ -- Matthias Klose <doko@debian.org> Tue, 23 Feb 2010 02:27:28 +0100
++
++binutils (2.20.51.20100216-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100216.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Tue, 16 Feb 2010 17:49:47 +0100
++
++binutils (2.20.51.20100112-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100112.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Tue, 12 Jan 2010 09:06:51 +0100
++
++binutils (2.20.51.20100109-2) experimental; urgency=low
++
++ * Regenerate ld/configure (includes ld in the binutils package).
++
++ -- Matthias Klose <doko@debian.org> Mon, 11 Jan 2010 01:48:09 +0100
++
++binutils (2.20.51.20100109-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100109.
++ - PR gold/10980: Support more options available by current GNU ld.
++ Closes: #555886.
++ - Fix PR gold/11072: Discard .gnu_debuglink sections, taken from the trunk.
++ Closes: #563366.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Sat, 09 Jan 2010 14:32:33 +0100
++
++binutils (2.20.51.20100101-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20100101.
++ * debian/*.shlibs: Update to the version from the trunk.
++ * Remove patches available on the trunk.
++
++ -- Matthias Klose <doko@debian.org> Fri, 01 Jan 2010 18:49:42 +0100
++
++binutils (2.20.1-11) unstable; urgency=medium
++
++ * Fix PR gold/10893, IFUNC support for gold backported from the trunk
++ (Aurelian Jarno). Closes: #585051.
++
++ -- Matthias Klose <doko@debian.org> Mon, 14 Jun 2010 07:17:13 +0200
++
++binutils (2.20.1-10) unstable; urgency=low
++
++ * Drop build dependency on expect-tcl8.3. Closes: #472964.
++
++ -- Matthias Klose <doko@debian.org> Sun, 30 May 2010 12:23:46 +0200
++
++binutils (2.20.1-9) unstable; urgency=high
++
++ * [arm] branches to weak symbols, update patch from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Thu, 06 May 2010 15:42:22 +0200
++
++binutils (2.20.1-8) unstable; urgency=low
++
++ * [arm] branches to weak symbols, patch taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Thu, 29 Apr 2010 20:36:07 +0200
++
++binutils (2.20.1-7) unstable; urgency=low
++
++ * Apply proposed patch for ARM: Add option to disable merging of adjacent
++ exidx unwinder entries. Addresses PR libgcj/40860.
++
++ -- Matthias Klose <doko@debian.org> Tue, 20 Apr 2010 22:51:35 +0000
++
++binutils (2.20.1-6) unstable; urgency=low
++
++ * Move the ld.gold binary into the binutils package, just keep the
++ diversion (ld) in the binutils-gold package.
++ * Linker selection: ld is used by default, to use the gold linker,
++ pass -fuse-linker-plugin (no other side effects if -flto/-fwhopr
++ is not passed). To force ld.bfd or ld.gold, pass -B/usr/lib/compat-ld
++ for ld.bfd or /usr/lib/gold-ld for ld.gold.
++ * Disable building gold on arm. Use gold from the trunk, if needed.
++ * Backport fixups of Loongson2F from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Sat, 17 Apr 2010 18:27:45 +0200
++
++binutils (2.20.1-5) unstable; urgency=medium
++
++ * Apply patch for PR gas/11456: Use memcpy to copy overlap memory.
++
++ -- Matthias Klose <doko@debian.org> Fri, 02 Apr 2010 01:36:07 +0200
++
++binutils (2.20.1-4) unstable; urgency=low
++
++ * Mangle the soname of the binutils libraries to be different than
++ the default name. Closes: #557620.
++ Packaged cross builds should do the same.
++ * Reduce ARM linking time (backport from the trunk).
++ * Apply fix for PR ld/11426, taken from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Tue, 30 Mar 2010 22:32:12 +0200
++
++binutils (2.20.1-3) unstable; urgency=low
++
++ * binutils-gold: Install the gold binary as `gold' as well, as proposed
++ by a patch to enable both gold and ld in a single toolchain.
++
++ -- Matthias Klose <doko@debian.org> Sun, 21 Mar 2010 06:43:48 +0100
++
++binutils (2.20.1-2) unstable; urgency=low
++
++ * Fix version in debian/*shlibs to match the release version;
++ the 2.20.1 upstream release identifies as 2.20.1.20100303.
++
++ -- Matthias Klose <doko@debian.org> Mon, 08 Mar 2010 18:01:22 +0100
++
++binutils (2.20.1-1) unstable; urgency=low
++
++ * New upstream release.
++ * Don't set has_ifunc_symbols if the symbol comes from a shared library
++ (backport from the trunk).
++ * Don't include documentation files in the -cross packages.
++ Closes: #571522. LP: #514509.
++ * Fix typo in ld documentation. LP: #497923.
++ * Add readelf --unwind support for ARM.
++
++ -- Matthias Klose <doko@debian.org> Mon, 08 Mar 2010 04:47:46 +0100
++
++binutils (2.20-6) unstable; urgency=low
++
++ * Apply updates from the 2.20 branch up to 20100205
++ - 135_arm_dis_thumb2.dpatch: Remove, applied upstream.
++ - 136_gold_gnu_debuglink.dpatch: Remove, applied upstream.
++ * armel: Fix ld-shared/shared.exp and ld-elfvsb/elfvsb.exp failures
++ (proposed patch, Matthew Gretton-Dann). Closes: #564685. LP: #446478.
++ * Fix PR other/42602: demangling a global constructors symbol.
++ Closes: #561150.
++
++ -- Matthias Klose <doko@debian.org> Fri, 05 Feb 2010 20:01:20 +0100
++
++binutils (2.20-5) unstable; urgency=low
++
++ * Apply updates from the 2.20 branch up to 20100109
++ * Apply patches from the trunk:
++ - [arm] Prevent disassembler from aborting on an invalid Thumb2 instruction.
++ - Fix PR gold/11072: Discard .gnu_debuglink sections. Closes: #563366.
++ - Fix PR ld/11138: internal error when DSO is before object files.
++ Closes: #562822.
++ - Fix PR gold/11042: COPY relocs need for the dynamic object.
++ Closes: #559183.
++ - Fix PR gold/10916: Fix --exclude-libs with undefined symbol.
++ Closes: #555012.
++ - Fix PR gold/10979: gold linker crashes. Closes: #553916.
++ - Fix PR gas/10740: Intel syntax far jumps broken. Closes: #541535.
++
++ -- Matthias Klose <doko@debian.org> Sat, 09 Jan 2010 10:43:04 +0100
++
++binutils (2.20-4) unstable; urgency=low
++
++ * Fix binutils-gold update. Closes: #555734.
++ * Don't configure gold for spu on powerpc.
++
++ -- Matthias Klose <doko@debian.org> Wed, 11 Nov 2009 23:33:20 +0100
++
++binutils (2.20-3) unstable; urgency=low
++
++ * Apply updates from the 2.20 branch up to 20091108:
++ - Fix PR gold/10876 (closes: #553435), PR gold/10910, PR gold/10860,
++ PR gold/10880 (closes: #553512, #553436), PR gold/10887,
++ PR gold/10893, PR gold/10895 (thanks to Peter Fritzsche for tracking
++ the gold reports).
++ * Fix libiberty build failure on sh4 (Nobuhiro Iwamatsu). Closes: #550810.
++ * PR ld/10858: Fix pie on mips/mipsel. Closes: #526961.
++ * Ignore regressions on sparc; the proper fix is to fix the testcases
++ for v9.
++ * Remove the conflict between binutils-multiarch and binutils-gold.
++ Closes: #521106.
++
++ -- Matthias Klose <doko@debian.org> Tue, 10 Nov 2009 02:15:41 +0100
++
++binutils (2.20-2) unstable; urgency=high
++
++ * Apply updates from the 2.20 branch up to 20091028:
++ - Fix PR binutils/10802, PR binutils/10793, PR binutils/10792,
++ PR gas/10856.
++ - Remove local patches now in the branch.
++ * Ignore regressions on armel when building with gcc-4.4; the proper fix
++ is to build the testcases using -fno-section-anchors.
++
++ -- Matthias Klose <doko@debian.org> Thu, 29 Oct 2009 22:17:42 +0100
++
++binutils (2.20-1) unstable; urgency=low
++
++ * binutils 2.20 final release.
++ - Fix PR binutils/10785, memory corruptions.
++ - PR ld/10749, ia64 linker failure.
++ - PR gas/2117, ia64 assembler fix.
++ - gold updates.
++ * Configure with --enable-plugins. Closes: #550088.
++ * debian/test-suite-compare.py: Don't count untested test cases as
++ regressions.
++ * binutils-gold: Install /usr/lib/compat-ld/ld to point to the
++ old linker. To use the old linker when gold is installed, use
++ gcc -B/usr/lib/compat-ld/ (including the trailing slash).
++
++ -- Matthias Klose <doko@debian.org> Sat, 17 Oct 2009 12:22:30 +0200
++
++binutils (2.19.91.20091006-1) unstable; urgency=low
++
++ * Snapshot, taken from the 2.20 release branch 20091006.
++ - cfi_sections changes applied.
++ * debian/*.shlibs: Update to the version from the branch.
++ * binutils-gold: Build the testsuite as part of the check target
++ instead of the build target to avoid build failures when the
++ installed binutils soname is the same as the one which is built
++ (gas is segfaulting). Just a workaround, not a solution.
++ * Add 150_gold_copyrelocs.dpatch, add -z copyrelocs option for gold.
++ * binutils-source: Depend on texinfo, zlib1g-dev.
++
++ -- Matthias Klose <doko@debian.org> Tue, 06 Oct 2009 22:13:24 +0200
++
++binutils (2.19.91.20091003-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.20 release branch 20091003.
++ - Fix PR ld/9863, regression in testsuite on armel.
++ - Fix regressions seen in the GCC/libjava testsuite.
++ * debian/*.shlibs: Update to the version from the branch.
++ * No need to build libiberty_pic.a twice.
++
++ -- Matthias Klose <doko@debian.org> Sat, 03 Oct 2009 14:59:14 +0200
++
++binutils (2.19.91.20090927-1) unstable; urgency=low
++
++ * Snapshot, taken from the 2.20 release branch 20090927.
++ * debian/*.shlibs: Update to the version from the branch.
++ * On mips/mipsel disabled -pie/--pie-executable. Still broken,
++ see #526961. Add an option --force-pie on mips/mipsel only
++ for testing purposes.
++ Change requested by debian-release (Andreas Barth).
++
++ -- Matthias Klose <doko@debian.org> Sun, 27 Sep 2009 11:56:06 +0200
++
++binutils (2.19.91.20090923-1) unstable; urgency=medium
++
++ * Snapshot, taken from the 2.20 release branch 20090923 (last upload
++ was taken from the trunk)..
++ * debian/*.shlibs: Update to the version from the branch.
++
++ -- Matthias Klose <doko@debian.org> Wed, 23 Sep 2009 09:50:04 +0200
++
++binutils (2.19.91.20090922-1) unstable; urgency=low
++
++ * Snapshot, taken from the 2.20 release branch 20090922.
++ * debian/*.shlibs: Update to the version from the branch.
++
++ -- Matthias Klose <doko@ubuntu.com> Tue, 22 Sep 2009 19:36:50 +0200
++
++binutils (2.19.91.20090910-1) unstable; urgency=low
++
++ * Snapshot, taken from the 2.20 release branch 20090910, corresponding
++ to the 2.19.90 upstream snapshot.
++ * Fix Thumb-2 shared libraries (Daniel Jacobowitz), patch taken
++ from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Thu, 10 Sep 2009 17:05:30 +0200
++
++binutils (2.19.90.20090909-1) unstable; urgency=low
++
++ * Snapshot, taken from the 2.20 release branch 20090909.
++ * debian/*.shlibs: Update to the version from the branch.
++ * Disable build failure for regressions on mips/mipsel.
++
++ -- Matthias Klose <doko@debian.org> Wed, 09 Sep 2009 09:50:36 +0200
++
++binutils (2.19.51.20090827-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20090827.
++ - Fix PR ld/10518: In linker scripts override a "*" match by any other
++ wildcard match. Closes: #540751.
++ * debian/*.shlibs: Update to the version from the trunk. Closes: #540800.
++ * Add sysroot support for cross builds (Hector Oron). Closes: #522480.
++ * Update long description of binutils-doc. Closes: #428764.
++ * Tighten build dependency on autoconf.
++ * Fix some lintian warnings.
++
++ -- Matthias Klose <doko@debian.org> Thu, 27 Aug 2009 17:09:28 +0200
++
++binutils (2.19.51.20090805-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20090805.
++ - Fix PR binutils/10364, strip not failing on unwritable files.
++ Closes: #276428.
++ - Fix PR binutils/10363, objdump -T crashing on corrupted file.
++ Closes: #487963.
++ * 129_cortex_a8.dpatch: Fix a couple of cortex-a8 erratum bugs.
++
++ -- Matthias Klose <doko@debian.org> Wed, 05 Aug 2009 10:24:40 +0200
++
++binutils (2.19.51.20090723-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20090723.
++ * debian/*.shlibs: Update to the version from the trunk.
++ * Undo the reversion in the last upload, use the upstream fix instead.
++
++ -- Matthias Klose <doko@debian.org> Thu, 23 Jul 2009 09:39:50 +0200
++
++binutils (2.19.51.20090722-2) unstable; urgency=low
++
++ * Apply build-id patch to avoid memory corruption (taken from Fedora).
++ * Revert ld/ldlang.c rev 1.312. Closes: #537389.
++
++ -- Matthias Klose <doko@debian.org> Wed, 22 Jul 2009 19:19:30 +0200
++
++binutils (2.19.51.20090722-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20090722.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Wed, 22 Jul 2009 16:51:11 +0200
++
++binutils (2.19.51.20090714-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20090714.
++ * debian/*.shlibs: Update to the version from the trunk.
++ * Install a libiberty compiled with -fPIC as libiberty_pic.a.
++ Closes: #530888.
++ * Remove obsolete README.Debian. Closes: #324260.
++ * binutils-dev: Include demangle.h. Closes: #134985.
++
++ -- Matthias Klose <doko@debian.org> Tue, 14 Jul 2009 13:13:37 -0400
++
++binutils (2.19.51.20090704-1) unstable; urgency=low
++
++ * Snapshot, taken from the trunk 20090704.
++ - debian/patches/128_arm_eabi_auto_it.dpatch: Remove, applied upstream.
++ * debian/*.shlibs: Update to the version from the trunk.
++ * Bump standards version.
++
++ -- Matthias Klose <doko@debian.org> Sat, 04 Jul 2009 10:37:18 +0200
++
++binutils (2.19.51.20090613-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20090613.
++ * debian/*.shlibs: Update to the version from the trunk.
++ * Build binutils-gold on armel.
++ * Apply proposed patch for new option for automatically generating IT blocks.
++
++ -- Matthias Klose <doko@debian.org> Sat, 13 Jun 2009 14:39:41 +0000
++
++binutils (2.19.51.20090508-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20090508.
++ - Fix PR binutils/9743, relocation issues on arm.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Fri, 08 May 2009 11:08:14 +0200
++
++binutils (2.19.51.20090419-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20090419.
++ * debian/*.shlibs: Update to the version from the trunk.
++ * debian/patches/013_bash_in_ld_testsuite.dpatch: Update.
++
++ -- Matthias Klose <doko@debian.org> Sun, 19 Apr 2009 22:12:19 +0200
++
++binutils (2.19.51.20090315-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20090315.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Sun, 15 Mar 2009 11:38:58 +0100
++
++binutils (2.19.1-1) unstable; urgency=low
++
++ * Upload to unstable.
++ * binutils-source: Make .dpatch files executable.
++
++ -- Matthias Klose <doko@debian.org> Sun, 15 Feb 2009 22:46:34 +0100
++
++binutils (2.19.1-1~exp1) experimental; urgency=low
++
++ * Binutils 2.19.1 release.
++ * debian/*.shlibs: Update to the release version.
++
++ -- Matthias Klose <doko@debian.org> Wed, 04 Feb 2009 09:57:55 +0100
++
++binutils (2.19.0.20090110-1~exp1) experimental; urgency=low
++
++ * Update to the binutils-2_19-branch 20090110.
++ - Fix PR binutils/7011. LP: #254790.
++ * debian/*.shlibs: Update to the version from the branch.
++
++ -- Matthias Klose <doko@debian.org> Sat, 10 Jan 2009 13:56:09 +0100
++
++binutils (2.19-1~exp2) experimental; urgency=low
++
++ * debian/patches/129_scale-DW_CFA_advance_loc.dpatch: Scale
++ DW_CFA_advance_loc[124] output values.
++ * debian/patches/128_arm_relocs_against_weak.dpatch: Fix R_ARM_THM_CALL
++ relocations against undefined weak symbols in shared libraries.
++
++ -- Matthias Klose <doko@debian.org> Sun, 30 Nov 2008 13:22:11 +0100
++
++binutils (2.19-1~exp1) experimental; urgency=low
++
++ * Binutils 2.19 release.
++ * debian/*.shlibs: Update to the release version.
++ * Build binutils-gold on powerpc.
++ * debian/control: Update to GPL3, reference the GFDL.
++ * Fail the build if the testsuite shows regressions compared to the
++ last (installed) build.
++ * Make lintian more happy.
++
++ -- Matthias Klose <doko@debian.org> Sun, 26 Oct 2008 13:06:27 +0200
++
++binutils (2.18.93.20081009-1) experimental; urgency=low
++
++ * Snapshot, taken from the 2.19 branch 20081009 (corresponding to the
++ 2.18.93 upstream snapshot.
++ * debian/*.shlibs: Update to the version from the branch.
++ * Add build dependency on zlib1g-dev.
++ * In gprof(1), remove references to monitor(3) and profil(2).
++ Closes: #293948.
++
++ -- Matthias Klose <doko@ubuntu.com> Sat, 11 Oct 2008 16:45:35 +0000
++
++binutils (2.18.92.20081003-1) experimental; urgency=low
++
++ * Snapshot, taken from the 2.19 branch 20081003.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Fri, 03 Oct 2008 11:29:16 +0000
++
++binutils (2.18.90.20080910-1) experimental; urgency=low
++
++ * Snapshot, taken from the 2.19 branch 20080910.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Fri, 12 Sep 2008 19:23:07 +0200
++
++binutils (2.18.50.20080803-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20080803.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Mon, 04 Aug 2008 00:53:47 +0200
++
++binutils (2.18.50.20080707-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20080707.
++ * debian/*.shlibs: Update to the version from the trunk.
++ * include/safe-ctype.h: Add #include of ctype.h before redefining
++ the ctype.h macros (proposed for the trunk).
++ * Add Daniel Jacobowitz as uploader.
++
++ -- Matthias Klose <doko@debian.org> Mon, 07 Jul 2008 01:08:13 +0200
++
++binutils (2.18.50.20080610-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20080610.
++ * debian/*.shlibs: Update to the version from the trunk.
++
++ -- Matthias Klose <doko@debian.org> Tue, 10 Jun 2008 16:21:02 +0200
++
++binutils (2.18.50.20080530-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20080530.
++ * Switch maintainer and uploader.
++ * debian/rules: Explicitely set SHELL to /bin/bash, build-depend on bash.
++ * debian/rules: Fix setting of TARGET for cross builds.
++
++ -- Matthias Klose <doko@debian.org> Fri, 30 May 2008 23:49:40 +0200
++
++binutils (2.18.50.20080507-1) experimental; urgency=low
++
++ * Snapshot, taken from the trunk 20080507.
++ * Remove patches applied upstream: 304_pr4476.dpatch, 305_arm-dis.dpatch,
++ 306_pr4453.dpatch, 307_ld-pic.dpatch, 308_mips-pic.dpatch.
++ * debian/patches/013_bash_in_ld_testsuite.dpatch: Use bash in the ld
++ testsuite (some tests have bashisms).
++ * debian/*.shlibs: Update to the version from the trunk.
++ * On amd64, i386 and sparc, build a binutils-gold package,
++ diverting /usr/bin/ld.
++ * Use expect instead of expect-tcl8.3 on all architectures except hppa.
++ * Remove binutils and gcc build dependencies (versions are in oldstable).
++
++ -- Matthias Klose <doko@debian.org> Thu, 08 May 2008 00:56:30 +0200
++
++binutils (2.18.1~cvs20080103-4) unstable; urgency=medium
++
++ * debian/rules: Remove libiberty in /usr/lib64; workaround for
++ `gcc -print-multi-os-directory' printing the symlink.
++ Closes: #473665, #473591.
++ * Don't include development files in binutils-spu.
++ * Fix binutils-spu build on ppc64 (Andreas Jochens). Closes: #474116.
++ * Build libiberty with -fPIC on mips/mipsel (Aurelian Jarno).
++
++ -- Matthias Klose <doko@debian.org> Sat, 05 Apr 2008 11:21:08 +0200
++
++binutils (2.18.1~cvs20080103-3) unstable; urgency=low
++
++ [ Arthur Loiret ]
++ * Build a binutils for spu-elf target on powerpc and ppc64.
++ - debian/control: Add a binutils-spu package.
++ - debian/binutils-spu.{postinst,postrm,shlibs}: Add.
++ * Add sh64-linux-gnu to multiarch targets.
++ * Fix cross-compilation support.
++ * Make lintian happier:
++ - Use ${source:Version}, ${binary:Version} variables.
++ - Remove -1 from Build-Depends revisions.
++ - Bump Standards-Version to 3.7.3.
++
++ [ Matthias Klose ]
++ * Keep the spu elfscripts in bintutils, remove them from binutils-spu.
++ * debian/patches/307_ld-pic.dpatch: Fix failing ld-shared tests when built
++ with gcc-4.3.
++
++ -- Matthias Klose <doko@debian.org> Sat, 29 Mar 2008 20:32:35 +0100
++
++binutils (2.18.1~cvs20080103-2) unstable; urgency=low
++
++ * debian/patches/306_pr4453.dpatch: Fix PR binutils/4453, taken from
++ the trunk (Aurelian Jarno). Closes: #363423.
++
++ -- Matthias Klose <doko@debian.org> Fri, 21 Mar 2008 20:49:17 +0100
++
++binutils (2.18.1~cvs20080103-1) unstable; urgency=low
++
++ * Update to 20080103 from the binutils-2_18-branch.
++ - Set version number to 2.18.0 (smaller than the one from the trunk).
++ - Fix PR ld/5398. Closes: #452725.
++ * debian/*.shlibs: Update to version from the branch.
++ * debian/patches/305_arm-dis.dpatch: Fix segfault when disassembling ARM
++ code. Closes: #438956.
++ * Support kfreebsd-amd64-gnu and i486-kfreebsd-gnu (Aurilian Jarno):
++ - debian/patches/127_x86_64_i386_biarch.dpatch: Extend for kfreebsd.
++ - debian/rules: biarch enabled binutils for kfreebsd-{amd64,i486}-gnu,
++ kfreebsd-{amd64,i486}-gnu support for cross-builds,
++ kfreebsd-{amd64,i486}-gnu enabled for binutils-multiarch.
++ - Closes: #380373.
++
++ -- Matthias Klose <doko@debian.org> Thu, 03 Jan 2008 21:57:51 +0100
++
++binutils (2.18.1~cvs20071027-2) unstable; urgency=low
++
++ * Do not include static libraries in the multiarch package.
++ * Don't include /usr/lib64 in cross packages. Closes: #450429.
++
++ -- Matthias Klose <doko@debian.org> Sat, 24 Nov 2007 12:13:22 +0100
++
++binutils (2.18.1~cvs20071027-1) unstable; urgency=low
++
++ * Update to 20071027 from the binutils-2_18-branch.
++ - Fix PR ld/4988, assertion failures in ld. Closes: #440015.
++ * debian/*.shlibs: Update to version from the branch.
++
++ -- Matthias Klose <doko@debian.org> Sat, 27 Oct 2007 17:55:41 +0200
++
++binutils (2.18-1) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * New upstream release.
++ - Remove patches applied upstream: 100_warning_arm, 400_gcc42_fix,
++ 401_builddoc.
++ * debian/*.shlibs: Update to release version.
++
++ -- Matthias Klose <doko@debian.org> Wed, 29 Aug 2007 01:07:31 +0200
++
++binutils (2.18~cvs20070812-1) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * New upstream CVS snapshot, taken from the binutils-2_18-branch.
++ * debian/rules: Support parallel=<n> with comma separated keywords
++ in DEB_BUILD_OPTIONS.
++ * debian/rules (clean): Remove stamp files.
++ * debian/*.shlibs: Update to snapshot version.
++ * debian/patches/401_builddoc.dpatch: Fix doc build failure on the branch.
++
++ -- Matthias Klose <doko@debian.org> Sun, 12 Aug 2007 10:56:18 +0200
++
++binutils (2.17cvs20070804-1) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * New upstream CVS snapshot.
++ - PR binutils/4888, fixes objcopy --only-keep-debug. Closes: #435444.
++ * debian/rules: Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008).
++ * debian/*.shlibs: Update to snapshot version.
++
++ -- Matthias Klose <doko@debian.org> Sat, 04 Aug 2007 12:45:07 +0200
++
++binutils (2.17cvs20070801-1) unstable; urgency=medium
++
++ [ Matthias Klose ]
++ * New upstream CVS snapshot.
++ - Fixes objcopy --only-keep-debug on amd64. Closes: #435444.
++ * binutils-multiarch: Enable the armel-linux-gnu target. Closes: #408805.
++
++ -- Matthias Klose <doko@debian.org> Wed, 01 Aug 2007 18:24:51 +0200
++
++binutils (2.17cvs20070718-1) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * New upstream CVS snapshot.
++ - Fix build failure on m68k.
++ * debian/patches/400_gcc42_fix.dpatch: Fix build failure with gcc-4.2.
++ Closes: #433062.
++ * Fix cross build failure while stripping binaries. Closes: #432907.
++
++ -- Matthias Klose <doko@debian.org> Wed, 18 Jul 2007 20:25:03 +0200
++
++binutils (2.17cvs20070713-1) unstable; urgency=low
++
++ [ Matthias Klose ]
++ * New upstream CVS snapshot.
++ - Remove patches applied upstream: 301_pr4436.dpatch, 302_pr4448.dpatch,
++ 303_pr4454.dpatch, 305_pr4497.dpatch, 306_ld_demangler_segfault.dpatch,
++ 307_pr4558.dpatch.
++ - Fix build failure with gcc-4.2. Closes: #429738.
++ - Fix kernel build with grsecurity patch. Closes: #430041.
++ * debian/copyright: Include GPL-3.
++ * debian/rules: Fix version extraction.
++ * debian/rules: Honor `noopt' in DEB_BUILD_OPTIONS.
++
++ -- Matthias Klose <doko@debian.org> Fri, 13 Jul 2007 14:45:21 +0200
++
++binutils (2.17cvs20070426-8) unstable; urgency=low
++
++ * Fix PR gas/4558.
++ * debian/rules: Add empty NJOBS macro.
++
++ -- Matthias Klose <doko@debian.org> Mon, 28 May 2007 09:06:35 +0000
++
++binutils (2.17cvs20070426-7) unstable; urgency=low
++
++ * 306_ld_demangler_segfault.dpatch: new CVS patch from Alan Modra to fix
++ segfaults in ld seen when building, e.g. openipmi.
++
++ * debian/copyright: update source location and copyright years.
++ * debian/rules: idem.
++
++ -- James Troup <james@nocrew.org> Wed, 23 May 2007 02:19:09 +0100
++
++binutils (2.17cvs20070426-6) unstable; urgency=low
++
++ * Fix PR ld/4497, regression introduced with the fix for PR ld/4454.
++ Closes: #423496.
++ * Fix binutils/4476, readelf support for --hash-style=gnu. Closes: #421790.
++
++ -- Matthias Klose <doko@debian.org> Mon, 14 May 2007 10:51:40 +0200
++
++binutils (2.17cvs20070426-5) unstable; urgency=low
++
++ * Fix PR ld/4454.
++
++ -- Matthias Klose <doko@debian.org> Sun, 06 May 2007 09:50:29 +0200
++
++binutils (2.17cvs20070426-4) unstable; urgency=low
++
++ * Fix PR gas/4448, overstrict check for powerpc lswi. Closes: #421799.
++
++ -- Matthias Klose <doko@debian.org> Wed, 2 May 2007 18:26:03 +0200
++
++binutils (2.17cvs20070426-3) unstable; urgency=low
++
++ * Update debian/*.shlibs files. Closes: #421454.
++ * Fix PR gas/4436, wrong reject in powerpc opcode table checks.
++ Closes: #421455.
++ * Fix build failure on arm (Aurelian Jarno). Closes: #421365.
++ * Compare testsuite results of the installed binutils with the built one.
++
++ -- Matthias Klose <doko@debian.org> Mon, 30 Apr 2007 07:47:09 +0200
++
++binutils (2.17cvs20070426-2) unstable; urgency=low
++
++ * Fix typo preparing the binutils-hppa64 package.
++
++ -- Matthias Klose <doko@debian.org> Fri, 27 Apr 2007 08:06:49 +0200
++
++binutils (2.17cvs20070426-1) unstable; urgency=low
++
++ [ James Troup ]
++ * New upstream CVS snapshot.
++ * debian/test-suite-compare.py: simplistic comparator for binutils test
++ suite runs.
++
++ [ Matthias Klose ]
++ * Merge changes from the experimental uploads:
++ * debian/patches/121_i386_x86_64_biarch.dpatch: Remove, applied upstream.
++ * Build a binutils-source package (containing the patched sources).
++ * Check for a working expect before building the package.
++ * Configure the multiarch build for x86_64-linux-gnu instead of
++ x86_64-linux.
++ * debian/rules: Don't strip binaries if nostrip is in DEB_BUILD_OPTIONS.
++ * debian/rules: Don't try to strip shell scripts.
++ * Configure --with-pkgversion to include the distribution name.
++ * debian/patches/000_print_debian_version.dpatch: Remove.
++ * debian/control: Build-depend on lsb-release.
++ * Enable spu target in powerpc and binutils-multiarch build.
++ * Don't include embedspu in binutils-multiarch on powerpc.
++ * debian/control: Set priority for source package to optional.
++
++ -- James Troup <james@nocrew.org> Fri, 27 Apr 2007 01:29:57 +0100
++
++binutils (2.17-3) unstable; urgency=low
++
++ * debian/rules (configure-multi-stamp): drop i486-kfreebsd-gnu again as
++ it breaks objdump for i386 on amd64. Closes: #380539
++
++ -- James Troup <james@nocrew.org> Tue, 3 Oct 2006 00:53:17 +0100
++
++binutils (2.17-2) unstable; urgency=low
++
++ * The "Laisse le Wookie gagner" release.
++
++ * 127_x86_64_i386_biarch.dpatch: new patch from Aurelien Jarno
++ <aurelien@aurel32.net> to add (/usr)/lib32 to the search paths on
++ amd64. Closes: #369052
++
++ * debian/rules (configure-multi-stamp): add i486-kfreebsd-gnu at request
++ of Aurelien Jarno. Closes: #315306
++
++ -- James Troup <james@nocrew.org> Wed, 26 Jul 2006 20:33:13 +0100
++
++binutils (2.17-1) unstable; urgency=low
++
++ * New upstream release.
++ * 120_mips_xgot_multigot_workaround.dpatch: removed - superseded by a
++ proper fix upstream. Closes: #274738
++ * debian/binutils.shlibs, debian/binutils-multiarch.shlibs,
++ debian/binutils-hppa64.shlibs: updated SONAME to 2.17.
++
++ -- James Troup <james@nocrew.org> Mon, 26 Jun 2006 13:17:36 +0100
++
++binutils (2.16.1cvs20060507-1) unstable; urgency=low
++
++ * New upstream CVS snapshot of 'binutils-2_17-branch'.
++
++ * debian/control (Standards-Version): bump to 3.7.2.0.
++
++ -- James Troup <james@nocrew.org> Sun, 7 May 2006 19:57:08 +0100
++
++binutils (2.16.1cvs20060413-1) unstable; urgency=low
++
++ * New upstream CVS snapshot.
++ * 120_mips_xgot_multigot_workaround.dpatch: updated to work with CVS
++ r1.163 of bfd/elfxx-mips.c, pass 'info' instead of 'output_bfd' to
++ MIPS_ELF_GOT_MAX_SIZE().
++
++ * Patch from NIIBE Yutaka <gniibe@fsij.org> in #280884:
++ * debian/rules (configure-multi-stamp): Support m32r-linux. Closes:
++ #340264
++ * debian/rules: Run 'make check' only if build == host.
++
++ * debian/rules: Also don't run 'make check' if nocheck is in
++ DEB_BUILD_OPTIONS. Based on a patch from Michael Banck
++ <mbanck@debian.org>. Closes: #315290
++
++ * Integrate most of a patch to build arbitrary binutils-$TARGET
++ cross-packages from #231707. Thanks to Nikita V. Youshchenko
++ <yoush@cs.msu.su> and Josh Triplett <josh@freedesktop.org>.
++
++ * debian/copyright: update to include GFDL. Closes: #81950
++ * debian/copyright: update FSF address.
++
++ * debian/rules: move non-architecture specific conflicts (gas,
++ elf-binutils, modutils (<< 2.4.19-1)) out of a substitued variable and
++ into the control file. Rename variable to extraConflicts.
++ * debian/control: likewise.
++
++ -- James Troup <james@nocrew.org> Sat, 15 Apr 2006 03:05:41 +0100
++
++binutils (2.16.1cvs20060117-1) unstable; urgency=low
++
++ * New upstream CVS snapshot.
++
++ * 118_arm_pass_all.dpatch, 125_fix_tc_arm_cast.dpatch: merged upstream -
++ removed.
++
++ -- James Troup <james@nocrew.org> Wed, 18 Jan 2006 02:25:25 +0000
++
++binutils (2.16.1cvs20051214-1) unstable; urgency=low
++
++ * New upstream CVS snapshot.
++ * Fix ld segfaults on ia64. Closes: #342777
++
++ * 126_fix_PROVIDE_HIDDEN.dpatch: merged upstream - removed.
++
++ -- James Troup <james@nocrew.org> Wed, 14 Dec 2005 08:06:37 +0000
++
++binutils (2.16.1cvs20051206-1) unstable; urgency=low
++
++ * New upstream CVS snapshot.
++ * Fixes linking of qemu. Closes: #340328
++
++ * 126_fix_PROVIDE_HIDDEN.dpatch: new patch from Thiemo Seufer to fix
++ handling of hidden symbols which were provided by a linker
++ script. Closes: #342307
++
++ * debian/control (Standards-Version): updated to 3.6.2.1.
++
++ -- James Troup <james@nocrew.org> Sat, 10 Dec 2005 05:23:34 +0000
++
++binutils (2.16.1cvs20051117-1) unstable; urgency=low
++
++ * New upstream CVS snapshot.
++ * Fixes c++filt's flushing of stdout which broke gcj. Closes: #339287
++
++ * debian/control (Build-Depends): switch from expect to expect-tcl8.3
++ since tcl8.4's broken threading causes the testsuite to fail entirely
++ on hppa. Closes: #339509
++
++ -- James Troup <james@nocrew.org> Thu, 17 Nov 2005 13:15:15 +0000
++
++binutils (2.16.1cvs20051109-1) unstable; urgency=low
++
++ * New upstream CVS snapshot.
++ * Fixes broken PLT handling on m68k. Closes: #327780
++ * Don't compile flex files with -Werror, fixing mips builds.
++ Closes: #333980
++ * Don't check undefined symbols introduced by "ld -u" for TLS. Closes:
++ #326103
++
++ * 117_mips_symbolic_link.dpatch: merged upstream - removed.
++
++ * debian/rules: pass --disable-werror on ia64 as current gcc generates
++ too many false positives. Closes: #336939
++
++ * 125_fix_tc_arm_cast.dpatch: new patch from Lennert Buytenhek to fix
++ cast warning and arm builds. Closes: #336175
++
++ * 121_i386_x86_64_biarch.dpatch: imported from Ubuntu at request of
++ Daniel Jacobwitz to fix biarch linking on i386/amd64. Closes:
++ #334626, #334673
++
++ * debian/rules: remove any reference to pkgstriptranslations - an
++ Ubuntu-ism that shouldn't have been in the Debian package in the first
++ place but that isn't needed in Ubuntu any more in any event.
++
++ * debian/rules: MAKEOVERRIDES is now clobbered by the top level
++ Makefile, so switch to overriding MAKE itself (sic) to pass the
++ customized VERSION variable/string down to sub-directories for
++ -multiarch and -hppa64 builds. Thanks to Daniel Silverstone for the
++ suggestion.
++
++ -- James Troup <james@nocrew.org> Fri, 11 Nov 2005 20:38:22 +0000
++
++binutils (2.16.1cvs20050902-1) unstable; urgency=low
++
++ * New upstream CVS snapshot.
++ * Fixes --as-needed on sparc and hppa. Closes: #320697
++ * Fixes buffer overflows and other crashes. Closes: #311975
++
++ * 124_readelf_robustify.dpatch: merged upstream - removed.
++ * 001_ld_makefile_patch: regenerated with help of wiggle.
++
++ * debian/*.shlibs: update to version 2.16.91.
++
++ * debian/copyright: use canonical GNU URL. Update copyright years.
++ * debian/rules: update version and copyright.
++
++ * debian/rules (pre-build): not relevant with a CVS snapshot which
++ doesn't have pre-generated info files - removed.
++ * debian/rules (clean): don't save info files for the same reason, in
++ fact explicitly remove them.
++ * debian/rules (build_stamps): drop pre-build.
++
++ -- James Troup <james@nocrew.org> Sat, 3 Sep 2005 00:30:56 +0100
++
++binutils (2.16.1-3) unstable; urgency=low
++
++ * debian/rules: remove powerpc libc header hack.
++ * debian/include/sys/procfs.h: remove.
++
++ * 124_readelf_robustify.dpatch: new patch from Jakub Jelinek to
++ robustify readelf. Thanks to Thiemo Seufer <ths@networkno.de>.
++ Closes: #318344
++
++ -- James Troup <james@nocrew.org> Wed, 31 Aug 2005 05:03:11 +0100
++
++binutils (2.16.1-2) unstable; urgency=low
++
++ * debian/include/sys/procfs.h: Include fixed powerpc libc header, to fix
++ FTBFS on powerpc. Temporary fix, to be removed with glibc-2.3.5.
++
++ -- Matthias Klose <doko@debian.org> Sun, 10 Jul 2005 16:35:17 +0200
++
++binutils (2.16.1-1) unstable; urgency=medium
++
++ * New upstream version.
++ * debian/patches/117_mips_symbolic_link.dpatch: Updated, apply it again.
++ (Thiemo Seufer).
++ * debian/patches/130_bfd_doc_makefile.dpatch: Remove, applied upstream.
++ * debian/control: Build depend on dpkg-dev (>= 1.13.9), needed to determine
++ the GNU architecture type.
++ * The symlinks for the tools change to the the new output of
++ dpkg-architecture -qDEB_HOST_GNU_TYPE (i.e. i386-linux-ld becomes
++ i486-linux-gnu-ld).
++ * Change the values for --enable-targets according to the dpkg-architecture
++ update.
++ * Configure the hppa64 cross compiler for hppa64-linux-gnu. Adjust
++ the hppa64 install target.
++ * debian/*shlibs: Update to version 2.16.1.
++ * Make restoring of saved pregenerated info files more robust.
++
++ -- Matthias Klose <doko@debian.org> Sat, 9 Jul 2005 14:58:49 +0200
++
++binutils (2.16-1) unstable; urgency=low
++
++ * Update to CVS 2.16 branch 20050612.
++ * debian/patches/130_bfd_doc_makefile.dpatch: New patch to fix
++ build failure in bfd/doc.
++ * debian/watch: New file.
++
++ -- Matthias Klose <doko@debian.org> Sun, 12 Jun 2005 12:29:12 +0200
++
++binutils (2.16-0) experimental; urgency=low
++
++ * New upstream release.
++ - Fixes build failure using gcc-4.0 (closes: #299671).
++ * debian/patches:
++ - 000_print_debian_version.dpatch: Updated.
++ - 001_ld_makefile_patch.dpatch, 002_gprof_profile_arcs.dpatch,
++ 002_gprof_profile_arcs.dpatch: Regenerated.
++ - 012_check_ldrunpath_length.dpatch: Updated.
++ - 112_fix_reloc_sizing.dpatch, 113_elf_backend_hide_symbol.dpatch,
++ 114_mips_delay_slots_in_branch.dpatch, 115_fix_sparc_fmov.dpatch,
++ 116_ar_nonexistent_files.dpatch: Removed, applied upstream.
++ - 117_mips_symbolic_link.dpatch: Disabled. Needs an update.
++ - 118_arm_pass_all.dpatch: Regenerated.
++ - 119_fix_gas_double_negative.dpatch: Removed, applied upstream.
++ - 120_mips_xgot_multigot_workaround.dpatch: Updated.
++ - 121_ia64_unwind_fixes.dpatch, 122_m68k_undefweak_symbols.dpatch:
++ Removed, applied upstream.
++ * Merge Ubuntu changes:
++ - debian/patches:
++ - 123_dont_add_to_undefs_twice.dpatch: Removed, applied upstream.
++ - debian/rules: Call pkgstriptranslations if present.
++ * debian/rules:
++ - Fix VERSION extraction.
++ - Save info files before build and restore them in clean target.
++ * debian/control:
++ - Add me as an uploader.
++
++ -- Matthias Klose <doko@ubuntu.com> Fri, 6 May 2005 18:43:09 +0200
++
++binutils (2.15-6) unstable; urgency=low
++
++ * 123_bfd_overflow_fix.dpatch: new patch from Alan Modra to fix BFD
++ overflows. Closes: #308625
++
++ -- James Troup <james@nocrew.org> Sat, 21 May 2005 20:20:01 +0100
++
++binutils (2.15-5ubuntu2) hoary; urgency=low
++
++ * debian/rules: Call pkgstriptranslations if present (the package does not
++ use debhelper, thus it does not happen automatically).
++
++ -- Martin Pitt <martin.pitt@ubuntu.com> Fri, 18 Mar 2005 13:07:52 +0000
++
++binutils (2.15-5ubuntu1) hoary; urgency=low
++
++ * 123_dont_add_to_undefs_twice.dpatch: new patch from Alan Modra (PR338) to
++ not add symbols to the undefined list twice, causing an assertion failure
++ in ld when building the kernel on amd64.
++
++ -- Daniel Stone <daniel.stone@canonical.com> Tue, 7 Dec 2004 09:29:31 +0100
++
++binutils (2.15-5) unstable; urgency=low
++
++ * 121_ia64_unwind_fixes.dpatch: new patch from David Mosberger to fix
++ unwind related bugs. Closes: #278836
++ * 122_m68k_undefweak_symbols: new patch from Andreas Schwab to fix undef
++ weak symbols with non-default visibilty on m68k. Closes: #278388
++
++ -- James Troup <james@nocrew.org> Thu, 25 Nov 2004 00:13:28 +0000
++
++binutils (2.15-4) unstable; urgency=low
++
++ * 120_mips_xgot_multigot_workaround.dpatch: new patch from Thiemo Seufer
++ to make multigot/xgot handling exclusive and fix mozilla builds on
++ mipsen. Closes: #272149
++
++ -- James Troup <james@nocrew.org> Thu, 23 Sep 2004 22:44:03 +0100
++
++binutils (2.15-3) unstable; urgency=low
++
++ * 112_fix_reloc_sizing.dpatch: update patch based on revised change from
++ Alan Modra.
++
++ * 116_ar_nonexistent_files.dpatch: new patch from Nick Clifton to fix
++ ar's handling of non-existent files. Closes: #267139
++
++ * 117_mips_symbolic_link.dpatch: new patch from Thiemo Seufer to fix the
++ "final link failed: Bad value" error on mips. Closes: #270619
++
++ * 118_arm_pass_all.dpatch: new kludge patch to fix broken libtool pass_all
++ handling on arm and other arches.
++
++ * 119_fix_gas_double_negative.dpatch: new patch from Alan Modra via
++ Daniel Jacobowitz to fix gas' handling of -- and ++. Closes: #266772
++
++ -- James Troup <james@nocrew.org> Thu, 9 Sep 2004 22:24:08 +0100
++
++binutils (2.15-2) unstable; urgency=low
++
++ * 112_fix_reloc_sizing.dpatch: new patch from Daniel Jacobowitz to fix
++ objcopy relocation sections. Closes: #252719
++
++ * 113_elf_backend_hide_symbol.dpatch: new patch from Alan Modra to fix
++ ld internal error on hppa. Closes: #254549
++
++ * 114_mips_delay_slots_in_branch.dpatch: new patch from Thiemo Seufer to
++ handle delay slots in branch correctly on mips. Closes: #266660
++
++ * 115_fix_sparc_fmov.dpatch: new patch from Jakub Jelinek via Dave
++ Miller to fix bogus fmov* SPARC opcodes. Closes: #267824
++
++ -- James Troup <james@nocrew.org> Tue, 31 Aug 2004 22:45:13 +0100
++
++binutils (2.15-1) unstable; urgency=low
++
++ * New upstream release. Closes: #248990, #259458
++ * Fixes -Wl,-z,defs to correctly abort builds with unresolved
++ symbols. Closes: #256481
++ * Better error message for truncation of bignums in as.
++ Closes: #219933
++ * strip(1) no longer corrupts binaries for architectures it doesn't
++ recognise. Closes: #211052
++ * nm -C /usr/lib/libcrypto++.a no longer segfaults. Closes: #247917
++
++ * 105_alpha_rpcc_opcode_fix.dpatch, 106_arm_pic.dpatch,
++ 107_powerpc_ld_segfault.dpatch, 108_m68k_fmoveml_fix.dpatch,
++ 109_objcopy_keep_debug.dpatch, 110_hppa64_local_symbols.dpatch,
++ 111_objcopy_vs_unstripped.dpatch, 906_hjl_libtool_dso.dpatch: merged
++ upstream - removed.
++ * 012_check_ldrunpath_length.dpatch: resynced with wiggle(1).
++
++ * debian/binutils.shlibs, debian/binutils-hppa64.shlibs,
++ debian/binutils-multiarch.shlibs: update for 2.15.
++
++ * debian/rules (install): remove gas.info hack as no longer needed
++ (fixed properly upstream).
++ * debian/rules (clean): remove gas/doc/as.info which doesn't seem to be
++ in the upstream tar ball.
++
++ * debian/rules (binary-arch): install $pkg/ChangeLog.linux only if they
++ exist (because they don't in GNU releases).
++
++ -- James Troup <james@nocrew.org> Thu, 29 Jul 2004 22:44:04 +0100
++
++binutils (2.14.90.0.7-8) unstable; urgency=low
++
++ * debian/rules: don't use gcc-2.95 on m68k. Thanks to Adam Conrad for
++ pointing this out.
++
++ -- James Troup <james@nocrew.org> Wed, 19 May 2004 10:35:44 +0100
++
++binutils (2.14.90.0.7-7) unstable; urgency=low
++
++ * 111_objcopy_vs_unstripped.dpatch: new patch from Alan Modra via Daniel
++ Jacobowitz to fix objcopy on unstripped libraries on alpha and arm.
++ Closes: #234021
++
++ * debian/control (Build-Depends): remove m68k specific build-depends on
++ gcc-2.95 and libc6-dev (<< 2.3). Many thanks to Michael Schmitz for
++ testing this.
++
++ -- James Troup <james@nocrew.org> Tue, 30 Mar 2004 18:00:54 +0100
++
++binutils (2.14.90.0.7-6) unstable; urgency=low
++
++ * 110_hppa64_local_symbols.dpatch: new patch from Randolph Chung to fix
++ dynamic name generation of local symbols on hppa64 - needed to build
++ 64-bit hppa kernels. Closes: #238176
++
++ -- James Troup <james@nocrew.org> Fri, 26 Mar 2004 15:52:27 +0000
++
++binutils (2.14.90.0.7-5) unstable; urgency=low
++
++ * 109_objcopy_keep_debug.dpatch: new patch from Daniel Jacobowitz
++ <dan@debian.org>, objcopy --only-keep-debug and readelf SHT_NOBITS
++ fixes.
++
++ -- James Troup <james@nocrew.org> Mon, 26 Jan 2004 16:25:25 +0000
++
++binutils (2.14.90.0.7-4) unstable; urgency=low
++
++ * debian/control: add binutils-hppa64 package.
++ * debian/rules: add support for binutils-hppa64 package and don't enable
++ hppa64-linux for binutils or binutils-multiarch.
++ * debian/binutils-hppa64.postinst: new file.
++ * debian/binutils-hppa64.postrm: likewise.
++ * debian/binutils-hppa64.shlibs: likewise.
++ * Above changes largely based on a patch from Matthias Klose
++ <doko@cs.tu-berlin.de>. Closes: #225892
++
++ * debian/control (Build-Depends): drop bzip2.
++
++ * debian/rules (install-stamp): remove empty /usr/include directory in
++ binutils.
++ * debian/rules (install-stamp): remove /usr/share/info/dir* to
++ workaround install-info brain damage (cf #213524).
++
++ -- James Troup <james@nocrew.org> Thu, 22 Jan 2004 21:32:44 +0000
++
++binutils (2.14.90.0.7-3) unstable; urgency=low
++
++ * 108_m68k_fmoveml_fix.dpatch: new patch from H.J. Lu
++ <hongjiu.lu@intel.com> to fix fmoveml disassembly and associated
++ testsuite regression on m68k.
++
++ -- James Troup <james@nocrew.org> Tue, 18 Nov 2003 14:35:23 +0000
++
++binutils (2.14.90.0.7-2) unstable; urgency=low
++
++ * 107_powerpc_ld_segfault.dpatch: new patch from Alan Modra
++ <amodra@bigpond.net.au> to fix ld segfault on powerpc. Thanks to
++ Josselin Mouette <joss@debian.org> for the report. Closes: #219187
++
++ -- James Troup <james@nocrew.org> Wed, 5 Nov 2003 13:32:17 +0000
++
++binutils (2.14.90.0.7-1) unstable; urgency=low
++
++ * New upstream release.
++ * 100_null_owner_ld_fix.dpatch, 101_ppc_as_shf_and_rel_fix.dpatch,
++ 102_alpha_null_got_ld_fix.dpatch,
++ 103_static_linking_elf_eh_frame.dpatch,
++ 104_elf_eh_frame_alpha_fix.dpatch: removed; merged upstream.
++ * debian/rules: update version number.
++ * debian/binutils.shlibs: likewise.
++ * debian/binutils-multiarch.shlibs: likewise.
++
++ * 009_signed_char_fix.dpatch: removed; this was fixed upstream correctly
++ (http://sources.redhat.com/ml/binutils/2003-05/msg00304.html) and this
++ patch is breaking that fix. Thanks to Daniel Jacobowitz
++ <dan@debian.org>.
++
++ * 003_gmon_manpage_fix.dpatch -> 002_gprof_profile_arcs.dpatch.
++ * 014_gprof_manpage_fix.dpatch -> 003_gprof_see_also_monitor.dpatch.
++
++ * 300_alpha_rpcc_opcode_fix.dpatch -> 105_alpha_rpcc_opcode_fix.dpatch
++ (committed to trunk).
++
++ * debian/rules (configure-multi-stamp): also enable mips64{el,}-linux
++ for binutils-multiarch. Alphabetize target list.
++
++ * 106_arm_pic: new patch from Phil Blundell <pb@debian.org> and Daniel
++ Jacobowitz <dan@debian.org> which implements GC for GOT and PLT relocs
++ in the elf32-arm backend.
++
++ * debian/rules (install-stamp): work around upstream bug which causes
++ as.info and as.1 to disappear by explicitly calling "make
++ install-info-am install-am" in builddir-single/gas/doc.
++
++ -- James Troup <james@nocrew.org> Sat, 1 Nov 2003 18:14:04 +0000
++
++binutils (2.14.90.0.6-5) unstable; urgency=low
++
++ * 104_elf_eh_frame_alpha_fix.dpatch: new patch from H.J. Lu
++ <hongjiu.lu@intel.com> to fix regressions on alpha caused by
++ 103_static_linking_elf_eh_frame. Thanks to Thimo Neubauer
++ <thimo@debian.org> for the original report. Closes: #215636
++
++ -- James Troup <james@nocrew.org> Fri, 17 Oct 2003 00:02:09 +0100
++
++binutils (2.14.90.0.6-4) unstable; urgency=low
++
++ * 103_static_linking_elf_eh_frame.dpatch: new patch from H.J. Lu
++ <hongjiu.lu@intel.com> to fix static linking of C++ binaries.
++
++ * 200_alpha_null_got_ld_fix.dpatch: renamed...
++ * 102_alpha_null_got_ld_fix.dpatch: to this.
++
++ * debian/rules: patch from Guido Guenther <agx@debian.org> to enable
++ mips64 support. Closes: #213448
++
++ -- James Troup <james@nocrew.org> Sun, 12 Oct 2003 14:26:26 +0100
++
++binutils (2.14.90.0.6-3) unstable; urgency=low
++
++ * 100_null_owner_ld_fix.dpatch: new patch from Alan Modra
++ <amodra@bigpond.net.au> to fix an ld crash with null owner sections.
++ Closes: #212029
++
++ * debian/rules: don't compile with gcc-2.95 on arm; the only failures
++ are a) testsuite-only (i.e. don't appear to affect real world
++ applications) and b) fixed by upcoming gcc patches by Phil Blundell
++ <pb@debian.org> in any event.
++ * debian/control (Build-Depends): likewise don't build-depend on
++ gcc-2.95 for arm.
++
++ * 101_ppc_as_shf_and_rel_fix.dpatch: new patch from Alan Modra
++ <amodra@bigpond.net.au> to fix an as regression where it refused to
++ compile utils.S from Linux/PPC 2.6. Closes: #211668
++
++ -- James Troup <james@nocrew.org> Tue, 23 Sep 2003 01:32:08 +0100
++
++binutils (2.14.90.0.6-2) unstable; urgency=low
++
++ * debian/rules (CONFLICTS): remove spurious "--", left over from
++ debhelper based-rules. Fixes build failure on sparc.
++
++ * 200_alpha_null_got_ld_fix.dpatch: new patch from Daniel Jacobowitz
++ <dan@debian.org> to fix an ld crash on alpha with null .got sections.
++ Closes: #204615
++
++ * scripts/dpkg-arch.mk: remove.
++ * debian/rules: define DEB_BUILD_GNU_TYPE, DEB_HOST_ARCH and
++ DEB_HOST_GNU_TYPE here instead.
++
++ * debian/rules (binary-indep): use ':' as a separator to chown, rather
++ than '.' which is a legal character for a username.
++ * debian/rules (binary-arch): likewise.
++
++ * debian/rules: further trivial cleanups.
++
++ -- James Troup <james@nocrew.org> Thu, 18 Sep 2003 22:13:36 +0100
++
++binutils (2.14.90.0.6-1) unstable; urgency=low
++
++ * New "upstream" release.
++ * Fixes core dump of nm -C on certain object files. Closes: #205616
++
++ * New maintainer.
++ * debian/control (Maintainer): adjust accordingly.
++ * debian/copyright: likewise. Update copyright years, URL.
++ * debian/control (Standards-Version): bump to 3.6.1.0.
++
++ * 011_disable_combreloc_ARM_ONLY.diff: dropped on request of Phil
++ Blundell <pb@debian.org> - this is obsolete, it was working around a
++ bug in ld since fixed by Daniel Jacobowitz <dan@debian.org> upstream.
++
++ * 890-elf64_alpha_segfault.diff: dropped as bogus
++ (http://sources.redhat.com/ml/binutils/2003-04/msg00399.html); rth's
++ correct fix is already in the upstream source.
++
++ * debian/README.Debian: migrate nearly-obsolete debconf notes to here.
++ * debian/control (Depends): drop debconf.
++ * binutils.config, binutils.templates, binutils.templates.ca,
++ binutils.templates.fr, binutils.templates.ja,
++ binutils.templates.pt_BR, postrm.debhelper: obsolete, removed.
++ Closes: #189641, #198222
++
++ * Migrated from dbs...
++ * debian/README.build: obsolete; removed.
++ * debian/rules: remove $(BUILD_TREE)/, $(STAMP_DIR)/, $(unpacked), $(patched) and other references
++ to DBS.
++ * debian/rules (clean): remove build tree directories.
++ * debian/scripts/dbs-build.mk: unused, remove.
++ * debian/scripts/file2cat: likewise.
++
++ * ... to dpatch.
++ * debian/rules: include /usr/share/dpatch/dpatch.make.
++ * debian/rules (configure-single-stamp): depend on patch-stamp.
++ * debian/rules (configure-multi-stamp): likewise.
++ * debian/rules (clean): depend on unpatch. Remove debian/patched.
++ * debian/control (Build-Depends): add dpatch.
++
++ * binutils-doc.postinst, binutils-doc.prerm,
++ binutils-multiarch.postinst, binutils-multiarch.postrm,
++ binutils-multiarch.preinst, binutils-multiarch.shlibs,
++ binutils.postinst, binutils.postrm, binutils.shlibs: new files based
++ on .deb and packages.d/.
++ * scripts/dh_split: obsolete, removed.
++ * debian/packages.d/binutils-dev.in, debian/packages.d/binutils-doc.in,
++ debian/packages.d/binutils-multiarch.in,
++ debian/packages.d/binutils.in: likewise.
++
++ * debian/rules: rewritten, de-debhelper-ized.
++ * debian/control (Build-Depends): drop debhelper and add file.
++
++ -- James Troup <james@nocrew.org> Thu, 11 Sep 2003 22:08:18 +0100
++
++binutils (2.14.90.0.5-0.2) unstable; urgency=low
++
++ * NMU.
++ * Rebuild using fixed gcc on sparc (closes: #202924).
++
++ -- Matthias Klose <doko@debian.org> Mon, 28 Jul 2003 20:12:00 +0200
++
++binutils (2.14.90.0.5-0.1) unstable; urgency=low
++
++ * NMU.
++ * New upstream version.
++ * Remove patches applied upstream:
++ - debian/patches/500_s390_gas.diff
++ - debian/patches/905-hppa_visibility.diff
++ - debian/patches/906-mips_ld_fix.diff
++ * Updated patch:
++ - debian/patches/906-hjl_libtool_dso.diff
++
++ -- Matthias Klose <doko@debian.org> Wed, 23 Jul 2003 20:09:51 +0200
++
++binutils (2.14.90.0.4-0.1) unstable; urgency=low
++
++ * NMU
++ * New upstream version.
++ 1. Work around the brain dead libtool.
++ * New patches:
++ - debian/patches/500_s390_gas.diff (closes: #194929).
++ - debian/patches/905-hppa_visibility.diff (closes: #195203).
++ - debian/patches/906-mips_ld_fix.diff (closes: #195207).
++ - debian/patches/906-hjl_libtool_dso.diff
++
++ -- Matthias Klose <doko@debian.org> Sat, 31 May 2003 12:12:10 +0200
++
++binutils (2.14.90.0.3-0.1) unstable; urgency=low
++
++ * NMU
++ * New upstream version.
++ 1. Update from binutils 2003 0523.
++ 2. Fix 2 ELF visibility bugs.
++ 3. Fix ELF/ppc linker bugs.
++ * Remove patches applied upstream:
++ - debian/patches/903-hjl_ld-dso-test.diff
++ - debian/patches/904_hjl_hppa_whitespace.diff
++
++ -- Matthias Klose <doko@debian.org> Sat, 24 May 2003 09:02:54 +0200
++
++binutils (2.14.90.0.2-0.1) unstable; urgency=low
++
++ * NMU
++ * New upstream version.
++ 1. Update from binutils 2003 0515.
++ 2. Fix various ELF visibility bugs.
++ 3. Fix some ia64 linker bugs.
++ 4. Add more IAS compatibilities to ia64 assembler.
++ * New patches:
++ - debian/patches/903-hjl_ld-dso-test.diff (closes: #193505).
++ - debian/patches/904_hjl_hppa_whitespace.diff.
++ * Remove patches applied upstream:
++ - debian/patches/900_binutils-2.14.90.0.1-empty-test.diff
++ - debian/patches/901-hjl_weaksymfix.diff
++
++ -- Matthias Klose <doko@debian.org> Sun, 18 May 2003 10:50:00 +0200
++
++binutils (2.14.90.0.1-0.1) unstable; urgency=low
++
++ * NMU
++ * New upstream version.
++ - Fix: MIPS branch-to-global bug (closes: #189031).
++ - Fix: Crash on alpha with --gdwarf2 and bad file number (closes: #187211).
++ - Fix: objdump -R BFD ICE on prelinked binaries (closes: #180088).
++ * New patches:
++ - debian/patches/900_binutils-2.14.90.0.1-empty-test.diff
++ - debian/patches/901-hjl_weaksymfix.diff
++ * Remove patches applied upstream:
++ - debian/patches/002_ldlex_inflexible_transition.diff
++ - debian/patches/013_objdump_doc_fix.diff
++ - debian/patches/850_hppa_stub_fix.diff
++ - debian/patches/860_m68k_elf.diff
++ - debian/patches/861_m68k_elf.diff
++ - debian/patches/870-sparc64-update.diff
++ - debian/patches/880-alpha-update.diff
++ * Remove obsolete patch:
++ - debian/patches/patches/800_hjl_mips_fixes.diff
++ * Add x86_64 for the i386 binutils package and the binutils-multiarch
++ package (closes: #189350).
++ * Set CFLAGS to -g -O2 for build (closes: #181268).
++
++ -- Matthias Klose <doko@debian.org> Tue, 6 May 2003 09:58:14 +0200
++
++binutils (2.13.90.0.18-1.7) unstable; urgency=high
++
++ * NMU
++ * Fixed ld segv (replaced yy_current_buffer by YY_CURRENT_BUFFER)
++ (Closes: #188876, 188900, 188912)
++
++ -- Julien LEMOINE <speedblue@debian.org> Mon, 14 Apr 2003 04:45:03 +0200
++
++binutils (2.13.90.0.18-1.6) unstable; urgency=high
++
++ * NMU
++ * [002_ldlex_inflexible_transition.diff] New. Make ld buildable again with
++ sid's current flex.
++
++ -- J.H.M. Dassen (Ray) <jdassen@debian.org> Sun, 13 Apr 2003 16:54:46 +0200
++
++binutils (2.13.90.0.18-1.5) unstable; urgency=medium
++
++ * NMU
++ * [890-elf64_alpha_segfault.diff] Patch from Julien LEMOINE
++ <speedblue@debian.org> to fix the segfault encountered while building
++ gal on alpha. (Closes: #185556)
++ * sid's current flex breaks the building of several packages, including this
++ one; see #188665. The i386 upload is built using a pbuilder sid chroot
++ with flex downgraded to the sarge version.
++
++ -- J.H.M. Dassen (Ray) <jdassen@debian.org> Sun, 13 Apr 2003 13:44:17 +0200
++
++binutils (2.13.90.0.18-1.4) unstable; urgency=low
++
++ * NMU
++ * ld/emulparams/elf64_sparc.sh: Set LIBPATH_SUFFIX instead of suffix
++ for emulation. Patch from current CVS suggested by Clint Adams,
++ needed for sparc64 glibc build.
++ * bfd/elf64-alpha.c: Patch from current CVS suggested by Falk Hueffner,
++ needed to build xstow, kdegames (#181623), sfs.
++ * Explicitely fail, when trying to build with glibc-2.3 on arm and
++ m68k. See #184048 for m68k ld failures.
++
++ -- Matthias Klose <doko@debian.org> Tue, 8 Apr 2003 23:27:46 +0200
++
++binutils (2.13.90.0.18-1.3) unstable; urgency=low
++
++ * NMU
++ * Another fix for ELF/m68k (__bb_exit_func initialization).
++
++ -- Matthias Klose <doko@debian.org> Tue, 18 Mar 2003 00:05:47 +0100
++
++binutils (2.13.90.0.18-1.2) unstable; urgency=high
++
++ * NMU
++ * Apply upstream fix for ELF/m68k. Closes: #182313.
++ * Use gcc-2.95 on m68k-linux. Built on testing (glibc-2.2).
++
++ -- Matthias Klose <doko@debian.org> Sun, 9 Mar 2003 01:02:39 +0100
++
++binutils (2.13.90.0.18-1.1) unstable; urgency=low
++
++ * NMU
++ * Apply upstream fix for hppa stubs. Closes: #181397
++
++ -- LaMont Jones <lamont@debian.org> Wed, 19 Feb 2003 12:34:58 -0700
++
++binutils (2.13.90.0.18-1) unstable; urgency=low
++
++ * New upstream version (synced with CVS 2002-01-21)
++ * Upstream: Fix an ia64 gas bug
++ * Upstream: Fix some TLS bugs
++ * Upstream: Fix ELF/ppc bugs
++ * Upstream: Fix an ELF/m68k bug
++ * Corrected ARM combreloc disabling patch
++ (closes: Bug#175204)
++ * Upstream fixes take care of TEXTREL bug
++ on powerpc (closes: Bug#176084)
++ * Fixed shellutils dependency problem
++ (closes: Bug#175673)
++ * Removed mention of the monitor manpage
++ from the gprof manpage (closes: Bug#160654)
++
++ -- Christopher C. Chimelis <chris@debian.org> Sun, 2 Feb 2003 23:17:29 -0500
++
++binutils (2.13.90.0.16-1) unstable; urgency=low
++
++ * New upstream version (synced with CVS 2002-11-26)
++ * Upstream: Include /usr/bin/c++filt
++ * Upstream: Fix "ld -r" with exception handling
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 9 Dec 2002 19:14:02 -0500
++
++binutils (2.13.90.0.14-1) unstable; urgency=low
++
++ * New upstream version (synced with CVS 2002-11-14)
++ * Upstream: Fix ELF/alpha bugs
++ * Upstream: Fix an ELF/i386 assembler bug
++ * Updated package MIPS patch from HJ Lu
++ * Added s390 patches from Gerhard Tonn.
++ Actually, the patches to support s390x were
++ already included upstream, so I just enabled
++ it in the rules script (closes: Bug#168074, Bug#168974)
++ * Since powerpc64-linux support was already
++ added in a prior upload, I'm closing the
++ wishlist bug for it (closes: Bug#156955)
++
++ -- Christopher C. Chimelis <chris@debian.org> Tue, 20 Nov 2002 05:36:21 -0500
++
++binutils (2.13.90.0.10-2) unstable; urgency=low
++
++ * Added two patches from upstream to fix alpha BFD.
++ (closes: Bug#165633)
++
++ -- Christopher C. Chimelis <chris@debian.org> Sun, 27 Oct 2002 14:21:51 -0400
++
++binutils (2.13.90.0.10-1) unstable; urgency=low
++
++ * New upstream version (synced with CVS 2002-10-10)
++ * Upstream: More ELF/PPC linker bug fixes.
++ * Upstream: Fix an ELF/alpha linker bug.
++ * Upstream: Fix an ELF/sparc linker bug to support
++ Solaris.
++ * Upstream: More TLS updates.
++ * Updated m68k gcc 3.1 patch since it wasn't applying
++ cleanly. Is this still needed?
++ * Added patches to allow building with new bison
++ (closes: Bug#164436, Bug#164042)
++ * Should be better for prelink support, which is coming
++ soon (closes: Bug#161427)
++ * Removed windres manpage from all packages
++ (closes: Bug#157415)
++ * Fixed download location in copyright file
++ (closes: Bug#158028)
++ * Added i386-gnu to multiarch build targets
++ (closes: Bug#157057)
++ * Add alpha opcode patch from Falk Hueffner
++ (closes: Bug#164201)
++ * Remove .la files from packages
++ (closes: Bug#160455)
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 15 Oct 2002 20:22:29 -0400
++
++binutils (2.13.90.0.4-1) unstable; urgency=low
++
++ * New upstream version (synced with CVS 2002-08-)
++ * Upstream: Update from binutils 2002 0814
++ * Upstream: Fix symbol versioning bugs for gcc 3.2
++ * Upstream: Fix mips gas
++ * Upstream: Fix an x86 TLS bfd bug
++ * Upstream: Fix an x86 PIC gas bug
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 15 Aug 2002 20:13:44 -0400
++
++binutils (2.12.90.0.15-2) unstable; urgency=low
++
++ * Fix combreloc disabling patch for ARM
++ (closes: Bug#156315)
++ * Remove S390 patch since it is no longer
++ needed (thanks to Gerhard Tonn for checking
++ this out)
++ * Fix BFD version string escaping
++ (closes: Bug#154989)
++ * Add SH patch from Yaegashi Takeshi
++ (closes: Bug#156230)
++ * Added conflicts for older modutils
++ (closes: Bug#155324)
++ * Forgot to apply MIPS patch from HJ Lu
++ (apologies to MIPS folks)
++
++ -- Christopher C. Chimelis <chris@debian.org> Wed, 14 Aug 2002 13:09:12 -0400
++
++binutils (2.12.90.0.15-1) unstable; urgency=low
++
++ * New upstream version (synced with CVS 2002-07-17)
++ * Upstream: Fix an ia64 assembler bug
++ * Upstream: Fix a symbol versioning bug
++ * Upstream: You have to apply the modutils patch
++ enclosed here in order to support System.map
++ generated by the new nm (bug filed)
++ * The symbol visibility patch is included
++ upstream, as is the alpha PLT/GOT patch, so
++ both removed from my packaging.
++ * Included patch from upstream to fix RELA targets
++ (closes: Bug#153729)
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 2 Aug 2002 02:24:29 -0400
++
++binutils (2.12.90.0.14-2) unstable; urgency=low
++
++ * The "Let's Get This Party Started Right" upload
++ (since I'm closing as many old bugs as possible)
++ * Removed sparc patch altogether
++ * Added a small alpha patch from upstream to fix
++ some obscure PLT/GOT issues.
++ * Manpages are now fixed finally -- no more
++ I<symbol> (closes: Bug#108369)
++ * Have not gotten another report of the
++ debconf message being cut off, so I'm closing
++ the debconf-related bug. I suspect this may
++ have been a problem in the debconf front-end
++ being used, but I have not been able to reproduce
++ it (closes: Bug#149045)
++ * Closing a bug report that I had tagged moreinfo
++ a LONG time ago (over one year), but never got
++ more info on. I have not heard of this kind
++ of problem since, nor have I been able to
++ reproduce it at any time since (closes: Bug#105986).
++ For interested parties, it revolved around
++ allowing gcc to show a linker error, but the
++ reporter didn't know about the -v option for
++ gcc. There was a linker problem, but it appeared
++ to be either hardware failure or user error.
++ * Closing a demangler 'bug' that revolved around
++ stripping @PLT from symbol names. Since the
++ PLT suffix is documented, I'm going to close
++ this bug. Also, it doesn't help that the symbol
++ in the bug report uses an obsolete mangling style,
++ so I can't test this even if I wanted to
++ (closes: Bug#45889)
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 22 Jul 2002 12:54:01 -0400
++
++binutils (2.12.90.0.14-1) unstable; urgency=low
++
++ * New upstream version (synced with CVS 2002-06-27)
++ * Upstream: Fix a mips assembler bug
++ * Upstream: Fix an ELF/mips SHF_MERGE bug
++ * Upstream: Fix a linker bug which leads to the
++ incorrect Linux 2.2 kernel.
++ * PE patch removed since it is included
++ in upstream source now
++ * Includes some patches which allow for
++ more true testsuite results from gcc-3.1
++ * Fix sparc ld emulation script patches to get
++ rid of the lib/64 silliness (now uses lib64)
++ * Removed the L word from the package description
++ since Debian is no longer linux-only
++ (closes: Bug#150575)
++ * The strings dereferencing problem with
++ some Windows binaries seems to also be fixed now
++ (closes: Bug#121366)
++ * Added a patch to only generate an RPATH entry
++ if LD_RUN_PATH is not empty, for cases where
++ -rpath isn't specified (closes: Bug#151024)
++ * Fixed arch detection problem in the build
++ scripts.
++ * Fixed bad capitalisation of -g in the objdump
++ manpage (closes: Bug#152697)
++ * Added patch from HJ Lu to fix a symbol
++ visibility issue.
++
++ -- Christopher C. Chimelis <chris@debian.org> Wed, 17 Jul 2002 14:23:42 -0400
++
++binutils (2.12.90.0.9-1) unstable; urgency=low
++
++ * New upstream version (synced with CVS 2002-05-26).
++ * Upstream: Supports "-z muldefs"
++ * Updated PE bfd from CVS to fix auto-import
++ segfaults (closes: Bug#131407)
++ * Remove the PE-removing patch for i386 targets
++ due to the above
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 6 Jun 2002 15:52:29 -0400
++
++binutils (2.12.90.0.7-1) unstable; urgency=low
++
++ * New upstream version (synced with CVS 2002-04-23).
++ * Upstream: ELF EH frame bug fix
++ * Upstream: MIPS ELF visibility bug fix
++ * Upstream: Bug fixes for ELF/sparc
++ * Upstream: Bug fixes for ELF/cris
++ * Upstream: Fix linking a.out relocatable files
++ with ELF
++ * Upstream: Fix a PPC altivec assembler bug
++ * Numerous upstream changes since I have
++ deliberately not updated in awhile so that
++ I could stabilise the package for woody
++ release
++ * Fixed a glaring typo in the Debian additions
++ to the version string.
++ * Upstream incorporated --oformat
++ documentation patch; removed.
++ * Added a patch from upstream involving
++ relative relocs on Alpha
++ * Removed configure.info-[1-3] from -doc
++ (closes: Bug#146205)
++
++ -- Christopher C. Chimelis <chris@debian.org> Sun, 5 Apr 2002 04:52:33 -0400
++
++binutils (2.12.90.0.1-5) unstable; urgency=high
++
++ * Added a patch to m68k bits for gas to allow
++ gcc 3.1 to build
++ * Added Brazilian Portuguese translation for
++ debconf (closes: Bug#144677)
++ * Removed unneeded gasp manpage since gasp
++ was eliminated as a distinct binary
++ (closes: Bug#144583)
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 29 Apr 2002 14:40:21 -0400
++
++binutils (2.12.90.0.1-4) unstable; urgency=low
++
++ * Added patch from Gerhardt Tonn
++ to fix s390 merge problem (closes: Bug#143187)
++ * Corrected DOW of my last changelog entry :-P
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 18 Apr 2002 13:03:49 -0400
++
++binutils (2.12.90.0.1-3) unstable; urgency=low
++
++ * Oops...I used dpkg-architecture from dpkg-dev
++ in the postinst and didn't add a dependency
++ for it. It was a bad choice anyway and I'm
++ going to use uname -s instead
++ (closes: Bug#142744, Bug#142915)
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 15 Apr 2002 12:41:10 -0400
++
++binutils (2.12.90.0.1-2) unstable; urgency=low
++
++ * Added Catalan debconf translation
++ (closes: Bug#139740)
++ * Ensure that info entries are removed from the
++ texinfo dirfile when binutils-doc is removed
++ (closes: Bug#126557)
++ * Ensure that the kernel link debconf warning
++ only shows up on linux systems
++ (closes: Bug#142360)
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 13 Mar 2002 01:30:22 -0400
++
++binutils (2.12.90.0.1-1) unstable; urgency=high
++
++ * New upstream version (synced with CVS 2002-03-07).
++ * Upstream: Add the .preinit_array/.init_array/.fini_array
++ support.
++ * Upstream: Fix eh_frame.
++ * Upstream: Turn on combreloc by default.
++ * Upstream: Enable gprof for Linux/mips.
++ * Turn combreloc off for ARM explicitely until
++ I can confirm that PIC is not still broken
++ by using it.
++ * Remove IA-64 unwind patch and objcopy fix
++ since they are included in the upstream sources
++ now.
++ * Re-enable testsuite run since Randolph did the NMU
++ on dejagnu (thank you!).
++ * Appears to fix sparc64 linking problems. I'm
++ still looking into exactly what was going on with
++ that (closes: Bug#137850)
++ * Enabled hppa64-linux support in main binutils
++ package (closes: Bug#137955)
++ * Added Japanese debconf template. Thanks to
++ Tomohiro KUBOTA for supplying that
++ (closes: Bug#138112)
++ * Added patch for ld to fix dosemu problems
++ (closes: Bug#126863)
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 11 Mar 2002 14:02:45 -0500
++
++binutils (2.11.93.0.2-3) unstable; urgency=high
++
++ * Split translated debconf templates out.
++ I apparently misunderstood the instructions
++ on integrating the French translation since
++ this is my first real attempt at using
++ debconf (closes: Bug#136295)
++ * Disable combreloc default on ARM since it
++ breaks PIC, apparently (closes: Bug#134241)
++ Please test other ARM bugs against this
++ version and inform me of the results!
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 8 Mar 2002 19:10:10 -0500
++
++binutils (2.11.93.0.2-2) unstable; urgency=high
++
++ * Include a patch from upstream to fix stripping
++ archives containing multiple files with the
++ same name (like libgcj, unfortunately).
++ (closes: Bug#107812)
++ * Include IA64 unwind fix from CVS to fix kernel
++ linking on IA64. (closes: Bug#135143)
++ * Added French translation of the debconf
++ bits. Thanks to Denis Barbier for the
++ work on that. (closes: Bug#134626)
++ * Disabled testsuite run until dejagnu is
++ fixed. I'm leaving the build-dep for dejagnu
++ in, though, since I know I'll forget to
++ reinsert it when I do re-enable the testsuite
++ run.
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 22 Feb 2002 14:05:22 -0500
++
++binutils (2.11.93.0.2-1) unstable; urgency=high
++
++ * New upstream version (synced with CVS 2002-02-07).
++ * Upstream: Fix a weak symbol alpha linker bug for glibc.
++ * Upstream: More support for gcc 3.1.
++ * Keep on disabling efi-app-ia32 type targets
++ since the segfault is still unfixed in CVS and
++ I haven't had the time to go back and really
++ debug and fix this.
++ * Updated standards version.
++ * Corrected some of the lintian problems (all except
++ the ones involving Changelog.linux, the .comment
++ section, and the missing manpages for
++ binutils-multiarch's binaries since that package
++ depends on binutils, which provides those).
++
++ -- Christopher C. Chimelis <chris@debian.org> Wed, 13 Feb 2002 13:41:47 -0500
++
++binutils (2.11.92.0.12.3-7) unstable; urgency=high
++
++ * The "Remind Me To Think Next Time" upload.
++ * Fix the postinst to only compare versions on
++ upgrade rather than during configure.
++ (closes: Bug#133349, Bug#133514)
++ * Still working on the other bugs...if only
++ I could get a day off of work...
++
++ -- Christopher C. Chimelis <chris@debian.org> Tue, 12 Feb 2002 06:15:02 -0500
++
++binutils (2.11.92.0.12.3-6) unstable; urgency=high
++
++ * The "Make The Bad Man Stop" upload.
++ * Revert patch to bfd/elf32-sparc.c (already
++ reverted upstream) that broke UA32 relocs on sparc
++ and caused bus errors with C++/Java binaries
++ (closes: Bug#126162)
++ * Remove i486-mingw32 target from the enabled
++ in multiarch and removed efi-app-ia32 from the
++ BFD config for Intel linux targets until I can find
++ and fixthe segfaults that seem to keep coming up when
++ reading Windows files and viruses with objdump or
++ strings. This is only temporary, so I'm not closing
++ the bugs until the problem gets fixed, but
++ I am going to bump them down to wishlist, merge
++ them, and note the above in them.
++ (debian/patches/010_disable_efi_app_ia32_TEMPORARY.diff
++ disables the efi-app-ia32 BFD in case someone
++ wants to revert this change easily)
++ * Added debconf warning about the kernel linking
++ situation since it keeps coming up and people
++ keep initially disagreeing with me about this
++ being a kernel bug. Also, merged prior warning
++ about -oformat change into the same debconf warning
++ (it's two, two, two warnings in one). This makes
++ the DEBIAN_FRONTEND case bug moot (closes: Bug#131801)
++ * Added powerpc64-linux target to multiarch since
++ work is progressing on that target and the machines
++ are due to hit the shelves Very Soon(TM).
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 1 Feb 2002 17:06:29 -0500
++
++binutils (2.11.92.0.12.3-5) unstable; urgency=high
++
++ * Fix signed char assumption in i386 disassembly bits
++ (closes: Bug#126993)
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 8 Jan 2002 17:27:17 -0500
++
++binutils (2.11.92.0.12.3-4) unstable; urgency=high
++
++ * Go back to enabling archs by enumeration for
++ multiarch. Apparently, a few aren't enabled
++ with --enable-targets=all (sparc64-linux, namely).
++ Besides, multiarch was incredibly large, which
++ was probably unneeded.
++
++ -- Christopher C. Chimelis <chris@debian.org> Wed, 26 Dec 2001 13:53:49 -0500
++
++binutils (2.11.92.0.12.3-3) unstable; urgency=high
++
++ * Include patch from Alan Modra to fix more
++ refcount problems on hppa.
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 7 Dec 2001 05:42:04 -0500
++
++binutils (2.11.92.0.12.3-2) unstable; urgency=high
++
++ * Include patch from Alan Modra to fix hppa linking
++ woes wrt undefined symbols (closes: Bug#121993)
++
++ -- Christopher C. Chimelis <chris@debian.org> Wed, 5 Dec 2001 04:14:51 -0500
++
++binutils (2.11.92.0.12.3-1) unstable; urgency=high
++
++ * New upstream version (synced with CVS 2001-11-21)
++ * Upstream: Fix a linker symbol version bug
++ for common symbols.
++ * Upstream: Update handling relocations against
++ the discarded sections. You may need to apply
++ the kernel patch enclosed here to your kernel
++ source.
++ * Upstream: Support "-march=xxx -mipsN" for mips
++ gas if they are compatible.
++ * Upstream: Fix a regression when linking with
++ non-ELF object files.
++ * Includes Alan Modra's patch to reduce stub sizes
++ on HPPA. Should help C++ on HPPA.
++ * Once again includes a mips patch from HJ Lu.
++ * My documentation changes were cleaned up and
++ accepted upstream, so the gas manpage fixes go
++ away (hurray!).
++ * Stopped iterating targets for binutils-multiarch
++ and started enabling all of them. This saves
++ maintenance time since new targets will be
++ automatically supported in future uploads
++ and existing targets that I didn't include
++ before will be supported from now on. This may
++ grow build time and the libbfd in the multiarch
++ package, but it's worth it.
++ * Also, started using the --enable-64-bit-bfd
++ flag for configuring multiarch. I don't know
++ why I didn't realise this wasn't there before
++ since I test with it all of the time.
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 30 Nov 2001 20:11:42 -0500
++
++binutils (2.11.92.0.10-4) unstable; urgency=high
++
++ * The "Fingers crossed" upload.
++ * Enable combreloc by default for s390 again.
++ Rumour has it that it worked before, but there
++ was a misunderstanding in the s390 developer
++ community, hence the disabling in the past.
++ * Fix the ld texinfo file to not mention the old
++ oformat invocation (closes: Bug#116182)
++ * Next upload should include the mips updates and
++ some powerpc updates. I just need time to test
++ those out first.
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 23 Nov 2001 23:23:22 -0500
++
++binutils (2.11.92.0.10-3) unstable; urgency=high
++
++ * Replace HPPA reloc patch with patches from Alan
++ Modra upstream.
++ * Add upstream patch to fix quoted -rpath bug
++ (closes: Bug#107214)
++
++ -- Christopher C. Chimelis <chris@debian.org> Sat, 10 Nov 2001 18:19:05 -0400
++
++binutils (2.11.92.0.10-2) unstable; urgency=high
++
++ * Disable -z combreloc enable patch on S/390
++ since it's not supported there yet
++ (closes: Bug#117087)
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 26 Oct 2001 00:07:01 -0400
++
++binutils (2.11.92.0.10-1) unstable; urgency=high
++
++ * New upstream version (synced with CVS 2001-10-21)
++ * Upstream: Fix the ELF/PPC linker.
++ * Upstream: Fix the ELF/cris linker.
++ * Upstream: Fix ELF strip.
++ * Includes beginnings of Altivec support
++ (closes: Bug#98617)
++ * Fixes use of BookE instruction format on 4xx
++ PowerPC (closes: Bug#116627)
++ * Includes patches from Alan Modra to fix hppa
++ relocations.
++ * Forgot to close the previous PPC bug with last
++ upload (closes: Bug#116454)
++ * Moved to enclosing a bzipped tarball rather than
++ a gzipped one to save download time for everyone
++ involved. Build-deps adjusted accordingly.
++
++ -- Christopher C. Chimelis <chris@debian.org> Tue, 23 Oct 2001 03:29:49 -0400
++
++binutils (2.11.92.0.7-2) unstable; urgency=high
++
++ * Include a patch from H.J Lu to fix a powerpc
++ issue not shown in the testsuite results.
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 19 Oct 2001 00:49:04 -0400
++
++binutils (2.11.92.0.7-1) unstable; urgency=high
++
++ * New upstream release (synced with CVS 2001-10-16)
++ * Upstream: Fix all breakages introduced in 2.11.92.0.5
++ * No mips/ dir patches need to be applied with this one.
++ Woohoo!
++ * Removed patches from debian/patches that are already
++ applied upstream.
++ * Patched version strings to reflect that this is a
++ Debian release at the request of upstream (to prevent
++ confusion, apparently).
++ * Applied patch from H.J. Lu to fix mips section
++ misalignment.
++ * Applied patch from Jakub Jelinek to fix kernel linking
++ on i386 and possibly other archs (closes: Bug#116041)
++ * Fixed postinst and prerm for binutils-doc to test that
++ the files exist before calling install-info. This should
++ fix the odd circumstance when binutils-doc is packaged on
++ an arch that doesn't support gprof (or any other dir for
++ that matter) and, therefore, the docs that are usually
++ made in that dir aren't made. This is particularly true
++ with gprof on mips.
++
++ -- Christopher C. Chimelis <chris@debian.org> Wed, 17 Oct 2001 18:56:51 -0400
++
++binutils (2.11.92.0.5-3) unstable; urgency=high
++
++ * Enable -z combreloc on all targets. This will make
++ prelinking possible with the prelink package. Please
++ test this on all archs prior to upload. If it fails, file
++ a bug immediately and I'll disable the patch for that
++ platform.
++ * Added patches from Alan Modra (from CVS) to fix other
++ archs after the refcount patch broke them. This supercedes
++ the powerpc patch, so I replaced that with this.
++ (closes: Bug#115218)
++ * Added patch from H.J. Lu (from CVS) to fix IA64 linker
++ problems as well.
++ * Added patch from David Kimdon to specify which filename is
++ causing an error if that filename is a dir (closes: Bug#45832).
++ * Removed workaround patch for stabs problem on Alpha since
++ it appears to be causing problems on mips and is no longer
++ needed on Alpha anyway.
++ * Now runs the testsuite and includes the results in the
++ binutils package for reference.
++
++ -- Christopher C. Chimelis <chris@debian.org> Sat, 13 Oct 2001 15:10:20 -0400
++
++binutils (2.11.92.0.5-2) unstable; urgency=high
++
++ * Applied fix from H.J. Lu to fix PowerPC target
++ (closes: Bug#115285). Thanks to Jack Howarth
++ for forcing the issue upstream.
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 12 Oct 2001 23:14:51 -0400
++
++binutils (2.11.92.0.5-1) unstable; urgency=high
++
++ * New upstream release (synced with CVS 2001-10-05)
++ * Upstream: Support gcc 3.1 for IA64.
++ * Upstream: Support prelink for ELF/PPC.
++ * Upstream: Fix an ELF/x86 linker bug for Oracle
++ (closes: Bug#113614)
++ * Upstream: Fix a weak symbol bug.
++ * Upstream: Support locale.
++
++ -- Christopher C. Chimelis <chris@debian.org> Tue, 9 Oct 2001 19:53:49 -0400
++
++binutils (2.11.90.0.31-2) unstable; urgency=high
++
++ * Applied IA64 patch from CVS to fix gcc issues
++ on IA64.
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 24 Sep 2001 12:45:29 -0400
++
++binutils (2.11.90.0.31-1) unstable; urgency=high
++
++ * New upstream source (synced with CVS 2001-08-30)
++ * Upstream: Fix a MIPS linker bug.
++ * Now applying mips diffs from H.J. Lu (upstream)
++ for better MIPS and MIPS64 support.
++ * Applied patch from Christopher Cramer to fix
++ gasp .REG issue (closes: Bug#110560)
++
++ -- Christopher C. Chimelis <chris@debian.org> Sat, 1 Sep 2001 23:42:22 -0400
++
++binutils (2.11.90.0.29-1) unstable; urgency=high
++
++ * New upstream source (synced with CVS 2001-08-27)
++ * Upstream: Fix an Alpha assembler bug.
++ * Upstream: Fix an IA64 linker bug.
++ * Upstream: Fix a MIPS linker bug.
++ * Upstream: Support '-z combreloc|nocombreloc' in linker.
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 30 Aug 2001 04:48:04 -0400
++
++binutils (2.11.90.0.27-4) unstable; urgency=high
++
++ * Argh. Really remove the manpages from multiarch
++ this time (closes: Bug#110410)
++
++ -- Christopher C. Chimelis <chris@debian.org> Tue, 28 Aug 2001 14:32:34 -0400
++
++binutils (2.11.90.0.27-3) unstable; urgency=high
++
++ * Include hppa patch to force error
++ (closes: Bug#109173)
++ * Fix manpages - seems that I accidentally included
++ the multiarch manpages rather than the target
++ manpages (sorry).
++ * Partial update to as manpage to denote arch options
++ and added options for the rest of the targets
++ Still need to elaborate on them, though. More
++ changes are forthcoming (closes: Bug#110127)
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 27 Aug 2001 10:13:27 -0400
++
++binutils (2.11.90.0.27-2) unstable; urgency=high
++
++ * Remove bash dependency...ash's behaviour has
++ already been modified, so it should be able
++ to build binutils now (closes: Bug#106992)
++ * Includes new S/390 patch (closes: Bug#109300)
++ * Could never reproduce objdump segfault and
++ never got a reply on the bug report
++ (closes: Bug#93884)
++ * Can't reproduce m68k segfault either
++ (closes: Bug#87714)
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 20 Aug 2001 23:07:30 -0400
++
++binutils (2.11.90.0.27-1) unstable; urgency=high
++
++ * New upstream source (synced with 20010810 CVS)
++ * Upstream: Fixed x86 linker bug.
++ * Reverted a patch to gas to dodge a bug in STABS output
++ on Alpha using gcc 2.95.4, so alpha can be in sync
++ with the rest of the archs now.
++ * Fixes strip problems with busybox (closes: Bug#106593)
++ * Kernels should compile ok again on i386
++ (closes: Bug#107190)
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 16 Aug 2001 08:24:49 -0400
++
++binutils (2.11.90.0.25-1) unstable; urgency=high
++
++ * New upstream source (synced with 20010726 CVS)
++ * Upstream: fix i386 assembler bug.
++ * Upstream: "make check" has 2 failures in the
++ ld-selective test in ld on Linux/alpha. They
++ should be marked xfail. Fixed in the next release.
++ * Removed m68k patch (closes: Bug#106431)
++ * Man pages appear to be correctly generated now
++ (closes: Bug#98569, Bug# 98938)
++ * Added bash build dependency (closes: Bug#106992)
++ * Should compile ok on powerpc (the last one did
++ also...don't know why voltaire's build daemon failed).
++ I won't close this bug until I build it myself
++ on voltaire or hear back from the autobuilder folks
++ on PPC.
++ * Looking into the whole LD_LIBRARY_PATH issue that
++ keeps being brought up. I think the docs are wrong
++ because the templates say that it shouldn't obey that
++ at all. Can we please stop filing duplicate bugs for
++ this? I would greatly appreciate it...
++
++ -- Christopher C. Chimelis <chris@debian.org> Wed, 1 Aug 2001 07:06:52 -0400
++
++binutils (2.11.90.0.24-1) unstable; urgency=high
++
++ * New upstream source (synced with 20010714 CVS)
++ * DO NOT COMPILE FOR ALPHA. I need to fix gcc 2.95.4
++ prior to this release working on Alpha correctly
++ (long story).
++ * Upstream: Avoid COPY relocs on i386
++ * Upstream: Fix IA64 assembler (please try this and let me know)
++ * Upstream: Fix a static linking the PIC object files on ia32
++ * Upstream: Add the version script support for --export-dynamic
++ * Upstream: Fix sparc/elf for linux/sparc
++ * Upstream: Fix alpha/elf for gcc 3.0
++ * Supposedly required for gcc-3.0 usage on many platforms
++ * Add s390 to multiarch list (closes: Bug#98095)
++ * Supposedly good on mips, but please check. I emailed Ryan
++ to see if bug 98095 still happens, but never got a reply.
++ If I get around it, I'll check it myself since my mips
++ lives once again.
++ * Retake my package from Matt (next time we agree to an NMU,
++ please don't change the maintainer name...no wonder I didn't
++ get any bug reports!)
++ * Cross-compilation support will be added in the next upload
++ (I'll be uploading alpha debs with the next release as well,
++ the alpha problem outweighs cross-compilation support in
++ priority right now).
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 19 Jul 2001 05:12:05 -0400
++
++binutils (2.11.90.0.7-2) unstable; urgency=high
++
++ * Applied patch from Alan Modra to fix m68k
++ assertion problems (closes: Bug#96352)
++ * Applied srec patch from Richard Henderson for
++ alpha.
++
++ -- Christopher C. Chimelis <chris@debian.org> Wed, 9 May 2001 03:11:19 -0400
++
++binutils (2.11.90.0.7-1) unstable; urgency=high
++
++ * New upstream source (synced with 20010425 CVS)
++ * Upstream: Fix the -Bsymbolic bug introduced in
++ binutils 2.11.90.0.5 (closes: Bug#95168)
++
++ -- Christopher C. Chimelis <chris@debian.org> Sun, 29 Apr 2001 20:03:22 -0400
++
++binutils (2.11.90.0.5-1) unstable; urgency=high
++
++ * New upstream source (synced with 20010414 CVS)
++ * Upstream: Fix in IA64 assembler
++ * Upstream: Change Linux/MIPS to use SVR4 MIPS ABI
++ rather than IRIX ABI.
++ * The above change may cause problems for MIPS.
++ If so, please file a bug and I'll revert those
++ changes if need be. I suspect that glibc, gcc,
++ and the kernel may eventually follow suit, though
++ to fit in with this change (it makes sense...
++ see the symbol ordering problems threads on the
++ binutils list for more info).
++ * Upstream: IA32 gas bug fixed...no further details
++ provided, unfortunately.
++ * Reportedly fixes core dumping when trying to link
++ object files from other platforms (now warns)
++ (closes: Bug#60502)
++ * Includes Philip Blundell's ARM PLT patch finally...
++ sorry for the delay (closes: Bug#94181)
++ * m68k problems should be fixed by now. Wish I had
++ gotten more feedback, but I didn't so I'm assuming it
++ works at this point (closes: Bug#74396)
++ * Stopped compiling cross-compiler packages until we
++ work out a better system for the entire toolchain.
++ Sorry, but it was taking far too long on even fast
++ machines and I've gotten more complaints about the
++ current arrangement than I have positive feedback.
++ (closes: Bug#91120, Bug#91119, Bug#91118, Bug#91117,
++ Bug#91116, Bug#88311, Bug#78028, Bug#90177)
++ * Fixed readelf manpage so that it no longer says that
++ it is a preprocessor for assembly programs
++ (closes: Bug#90798)
++
++ -- Christopher C. Chimelis <chris@debian.org> Tue, 17 Apr 2001 20:07:14 -0400
++
++binutils (2.11.90.0.1-1) unstable; urgency=high
++
++ * New upstream source (synced with 20010309
++ CVS).
++ * Fixed misapplied m68k ld patch.
++ I am hoping that this almost totally fixes
++ m68k ELF for now.
++ * Fixed typo in mips patch and applied another
++ mips patch from Daniel Jacobowitz.
++ * Should no longer build same-arch cross
++ packages. Please let me know if this fix
++ worked so that I can close the bugs (I have
++ no access to such an arch at the moment)
++ * Made urgency high since m68k really needs
++ this if the bugs are truly fixed. Even if
++ not, this version is infinitely better on
++ at least two platforms than prior ones were.
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 15 Mar 2001 16:29:32 -0500
++
++binutils (2.10.91.0.2-4) unstable; urgency=low
++
++ * Applied m68k ld and bfd patches from
++ Michael Fedrowitz to hopefully make things
++ better on m68k.
++
++ -- Christopher C. Chimelis <chris@debian.org> Sun, 11 Mar 2001 20:16:44 -0500
++
++binutils (2.10.91.0.2-3) unstable; urgency=low
++
++ * Adjusted the priority of binutils-doc to
++ optional.
++ * Added debhelper build-depends (closes: Bug#87690)
++ * Fixed postinst problem for new binutils
++ installations (closes: Bug#87911)
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 1 Mar 2001 15:06:50 -0500
++
++binutils (2.10.91.0.2-2) unstable; urgency=low
++
++ * Add support for SH and IA64 to binutils-multiarch.
++ * Applied m68k gas patch from Michael Fedrowitz
++ in hopes that this will fix the grave bug that
++ has been such a pain to m68k folks. I'll leave
++ the bug open until it's verified that it works
++ ok.
++ * Applied IA-64 printf patch (closes: Bug#82702)
++ * Kernels appear to be building fine with this
++ release on all archs available to me
++ (closes: Bug#77610)
++ * Added text during postinst that informs users
++ to modify their i386 kernel Makefiles for the
++ --oformat change (closes: Bug#86995)
++ * Incorporated remaining mips diffs that weren't
++ already applied upstream (closes: Bug#81280)
++ * Sparc/sparc64 patch seems to be doing fine, so
++ closing the bug (closes: Bug#86781)
++ * Added non-linux cross- package support to rules
++ (closes: Bug#79948)
++ * Close misc bugs:
++ Missing info file in binutils-doc (closes: Bug#78754)
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 22 Feb 2001 19:36:12 -0500
++
++binutils (2.10.91.0.2-1) unstable; urgency=low
++
++ * New upstream version.
++ * Added weak symbol relocation patch for sparc/sparc64.
++ * Included m68k ELF fix from Michael Fedrowitz.
++ * BIG NOTE: any i386 kernels compiled with this will need
++ to be patched to change the ld option '-oformat' to
++ '--oformat' (extra hyphen).
++
++ -- Christopher C. Chimelis <chris@debian.org> Tue, 20 Feb 2001 21:32:44 -0500
++
++binutils (2.10.1.0.2-1) unstable; urgency=low
++
++ * New upstream release (really prerel, but better than
++ using a CVS version).
++ * Should re-add Compaq demangling style to all
++ tools (alpha-only).
++ * Again, hopefully fixes m68k ELF support...still have
++ no idea why or how this was broken before.
++
++ -- Christopher C. Chimelis <chris@debian.org> Mon, 20 Nov 2000 16:25:44 -0500
++
++binutils (2.10.0.27-0.cvs20001011.2) unstable; urgency=low
++
++ * Applied another PowerPC patch to correct the
++ implementation of .protected and .hidden in the
++ linker. This should also aid in the glibc
++ transition on PowerPC.
++
++ -- Christopher C. Chimelis <chris@debian.org> Tue, 17 Oct 2000 13:23:40 -0400
++
++binutils (2.10.0.27-0.cvs20001011.1) unstable; urgency=low
++
++ * Applied PowerPC weak symbol patch from CVS to aid
++ in glibc transition on that platform.
++
++ -- Christopher C. Chimelis <chris@debian.org> Sun, 15 Oct 2000 19:12:22 -0400
++
++binutils (2.10.0.27-0.cvs20001011) unstable; urgency=low
++
++ * Grabbed a new CVS version since it backs out a
++ change that prevented current gcc snapshots from
++ linking properly to libstdc++v3. This may also
++ solve some other problems related to global
++ section symbols (feedback appreciated).
++ * Finally changed my email address in the control
++ file (how I overlooked this after all of this
++ time I'll never know).
++
++ -- Christopher C. Chimelis <chris@debian.org> Wed, 11 Oct 2000 08:59:36 -0400
++
++binutils (2.10.0.27-0.cvs20001008) unstable; urgency=low
++
++ * Removed configure.info.gz from binutils-doc since
++ it didn't really belong there. (closes: Bug#72746)
++ * Update for hppa/hppa64 targets (included testsuite
++ changes committed on 07-Oct-2000). (closes: Bug#71524)
++ * Upstream change to elflink.h to hopefully stop
++ segfaults on some archs when linking binaries to
++ shared libs.
++
++ -- Christopher C. Chimelis <chris@debian.org> Sun, 8 Oct 2000 16:14:08 -0400
++
++binutils (2.10.0.27-0.cvs20000923.1) unstable; urgency=low
++
++ * Fixed rules file so that builds don't fail when compiling the
++ binary-arch target (added binary-cross to binary-arch).
++ * Fixed harmless attempt at removing builddir-avr twice.
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 28 Sep 2000 10:39:12 -0400
++
++binutils (2.10.0.27-0.cvs20000923) unstable; urgency=low
++
++ * CVS snapshot from 2000-09-23.
++ * Should fix some (most) HPPA issues.
++ * Adds binutils-m68k cross-assembler.
++
++ -- Christopher C. Chimelis <chris@debian.org> Sun, 24 Sep 2000 10:19:20 -0400
++
++binutils (2.10.0.26-2) unstable; urgency=low
++
++ * Added the avr target for Amtel's AVR MCU's
++ * Applied Frank I. Smith <smith@amirix.com> to generate packages for
++ multiple cross targets:
++ + Bump rev number, NOP.
++ + Testing out bumping up the rev number.
++ + Added powerpc, arm, mipsel cross binutils packages.
++
++ -- Christopher C. Chimelis <chris@debian.org> Fri, 22 Sep 2000 17:31:44 -0400
++
++binutils (2.10.0.26-1) unstable; urgency=low
++
++ * New upstream source.
++ * Added mips-linux, hppa-linux, and hppa64-linux to multiarch targets
++
++ -- Christopher C. Chimelis <chris@debian.org> Sun, 17 Sep 2000 01:05:49 -0400
++
++binutils (2.10.0.24-1) unstable; urgency=low
++
++ * New upstream source.
++ * Fixes ia32 assembler buglet.
++ * (Hopefully) fixes PPC visibility problems with
++ glibc 2.2
++
++ -- Christopher C. Chimelis <chris@debian.org> Thu, 24 Aug 2000 16:52:44 -0400
++
++binutils (2.10.0.18-3) unstable; urgency=low
++
++ * Added build depends stuff.
++
++ -- Christopher C. Chimelis <chris@debian.org> Sat, 5 Aug 2000 21:09:04 -0400
++
++binutils (2.10.0.18-2) unstable; urgency=low
++
++ * Added proviso to control file saying that -multiarch
++ should not be installed by the average user.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 29 Jul 2000 20:07:15 -0400
++
++binutils (2.10.0.18-1) unstable; urgency=low
++
++ * New upstream source.
++ * Should address some needed things for glibc 2.2
++ (added new DT_XXXX dynamic tags and fixes DT_NEEDED
++ link bug)
++ * Reapplied the now-infamous "ObjC patch" until
++ we can figure out why we still have this problem
++ (hint hint hint...we really need to do this).
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 22 Jul 2000 13:18:27 -0400
++
++binutils (2.10.0.9-4) unstable; urgency=low
++
++ * Applied a patch from Ben Collins to fix sparc64
++ linker scripts
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 8 Jul 2000 07:24:10 -0400
++
++binutils (2.10.0.9-3) unstable; urgency=low
++
++ * Applied a patch from the libstdc++ mailing list to
++ make sure that the linker doesn't eat the eh_frame
++ section.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 7 Jul 2000 10:26:59 -0400
++
++binutils (2.10.0.9-2) unstable; urgency=low
++
++ * Wow, already a bug fix.
++ * binutils-dev now provides libiberty.h
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 23 Jun 2000 19:54:39 -0400
++
++binutils (2.10.0.9-1) unstable; urgency=low
++
++ * New upstream version (more linux-specific).
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 23 Jun 2000 14:31:04 -0400
++
++binutils (2.10-1) unstable; urgency=low
++
++ * New upstream version (finally, a real release!)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 21 Jun 2000 19:08:14 -0400
++
++binutils (2.9.5.0.46-1) unstable; urgency=low
++
++ * New upstream source.
++ * ELF visibility attribute should work correctly now.
++ * ia32 "jmp" instructions are now assembled differently
++ to use relocation for global jumps (affects PIC asm
++ code).
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 8 Jun 2000 21:34:42 -0400
++
++binutils (2.9.5.0.42-1) unstable; urgency=low
++
++ * New upstream source.
++ * Includes a testcase for hidden symbol support.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 19 May 2000 20:48:52 -0400
++
++binutils (2.9.5.0.41-1) unstable; urgency=high
++
++ * New upstream source.
++ * Now includes patch to enable hidden symbol support
++ needed for gcc 3.0 testing.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 5 May 2000 20:38:41 -0400
++
++binutils (2.9.5.0.37-1) frozen unstable; urgency=high
++
++ * Was forced to bring the current frozen version up to
++ upstream 2.9.5.0.37 in order to fix a rather nasty
++ i386 gas bug and also since the existing ARM patch
++ applied in 2.9.5.0.31-3 has been superceded upstream
++ (closes:Bug#62119)
++ * Includes proper demangler support for Compaq compiler
++ usage on Alpha (may be superceded upstream shortly,
++ but is good enough for potato and for Compaq's usage)
++ (closes:Bug#62079)
++ * Added cross-compilation support for individual use.
++ Please note that the binary packages do not support
++ this. If you require this feature, you need to compile
++ the source package changing debian/rules. Also, if
++ you do this, YMMV since things on this front are changing
++ rapidly upstream and also because cross-compiling from
++ certain platforms to others may not work (i386->alpha,
++ for example). (closes:Bug#59246)
++ * Fixed replaces statement in binutils-multiarch
++ (closes:Bug#62496)
++ * Release Manager: I once again beg that this be included
++ in potato. I've freed up some time to deal with bug
++ reports quickly if needed.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 29 Apr 2000 04:03:39 -0400
++
++binutils (2.9.5.0.31-3) frozen unstable; urgency=high
++
++ * Applied patch to fix broken ARM code generation (closes:Bug#61977)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 7 Apr 2000 15:50:42 -0400
++
++binutils (2.9.5.0.31-2) frozen unstable; urgency=high
++
++ * Remove ld from binutils-multiarch since it doesn't want to
++ link kernels on several archs properly (fixes severity:important bug)
++ (closes: Bug#61719, Bug#61615, Bug#51625)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 3 Apr 2000 22:48:55 -0400
++
++binutils (2.9.5.0.31-1) frozen unstable; urgency=high
++
++ * Yet another patch (this time from H.J. Lu upstream) to fix
++ the unlink race condition bug. This is VERY important and
++ needs to be in potato. It also fixes the temp file creation
++ problem with objcopy on PPC (closes: Bug#60934)
++ * New upstream release. Fixes a serious Alpha bug along
++ with a demangler bug and several others (closes: Bug#61121)
++ * Should fix apt-get upgrade problem...please test
++ (closes: Bug#56175)
++ * Release manager: can we squeeze this in? I know it's a
++ new version, but the ELF bug on Alpha really needs to
++ be fixed along with the rest of the above and some others
++ not mentioned here.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 22 Mar 2000 05:05:12 -0500
++
++binutils (2.9.5.0.22-5) frozen unstable; urgency=high
++
++ * Applied fixed patch from Colin Phipps to seal the unlink
++ race condition in bfd/cache.c (closes: Bug#58865, Bug#57831)
++ * Installed a proper changelog in binutils-doc
++ (closes: Bug#58522)
++ * Closes other older bug (closes: Bug#55801)
++ * Included bbconv.pl in binutils main package in the doc dir
++ under the gprof subdir (closes: Bug#57521)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Tue, 14 Mar 2000 10:32:52 -0500
++
++binutils (2.9.5.0.22-4) frozen unstable; urgency=high
++
++ * Patched gprof/hertz.h to allow binutils to actually
++ build and work on Hurd (closes: Bug#57564)
++ * Patched bfd/cache.c to avoid a rare, but possible
++ security problem when as is creating/opening temp
++ files (closes: Bug#57831)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 17 Feb 2000 10:31:05 -0500
++
++binutils (2.9.5.0.22-3) frozen unstable; urgency=high
++
++ * Removed standards.info...do we really need seven
++ bugs filed for the same problem
++ (closes: Bug#54521, Bug#54546, Bug#54614, Bug#54682, Bug#55402, Bug#55582, Bug#55602)
++ * Changed binutils-multiarch extended description
++ to mention that a cross-assembling gas is not
++ included (closes: Bug#49308)
++ * Closing a bug because it related to lack of disk space
++ (closes: Bug#52714)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 19 Jan 2000 19:28:09 -0500
++
++binutils (2.9.5.0.22-2) unstable; urgency=high
++
++ * Added getopt.h include that was omitted in the -taso patch
++ (closes: Bug#52380)
++ * Fixed table misalignment when calling objdump --info
++ (closes: Bug#51517)
++ * Added Debian changelog to binutils-doc (closes: Bug#52574)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 15 Dec 1999 19:14:05 -0500
++
++binutils (2.9.5.0.22-1) unstable; urgency=high
++
++ * New upstream version.
++ * More MIPS fixes.
++ * Added support for -taso linker flag for Alpha.
++ * Reapplied all previous patches.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 7 Dec 1999 01:08:51 -0600
++
++binutils (2.9.5.0.19-1) unstable; urgency=high
++
++ * New upstream version
++ * Fixes some MIPS problems
++ * Reapplied the ObjC patch (is this ever going to be fixed upstream)
++ since it's badly needed right now
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 4 Nov 1999 15:00:35 -0400
++
++binutils (2.9.5.0.16-3) unstable; urgency=low
++
++ * Added support for mipsel-linux in binutils-multiarch
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 4 Nov 1999 15:00:35 -0400
++
++binutils (2.9.5.0.16-2) unstable; urgency=low
++
++ * Added a replaces field in the control file to fix
++ previous file overwrite problems (closes: Bug#47518, Bug#47938)
++ * Verified manpages are up to date (closes: Bug#18483)
++ * Added m68k-rtems to targets in -multiarch in hopes
++ that it will actually work as advertised (closes: Bug#47468)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 25 Oct 1999 15:58:55 -0400
++
++binutils (2.9.5.0.16-1) unstable; urgency=low
++
++ * New upstream version.
++ * Massive bugfix upload on the Debian side:
++ * Fixes changelog problems between all of the binutils
++ debs (closes: Bug#47133, Bug#47208, Bug#47211)
++ * Fixes other overwrite problems (closes: Bug#46991, Bug#47024, Bug#46074)
++ * Multiarch should now make good diversions when
++ upgrading (closes: Bug#47359)
++ * Applied patch from Kevin Buhr to fix ld segfaults with
++ empty archives (closes: Bug#47019)
++ * Should have fixed info install problems by now
++ (closes: Bug#35935)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 15 Oct 1999 03:18:55 -0400
++
++binutils (2.9.5.0.14-1) unstable; urgency=low
++
++ * New upstream version.
++ * Thanks to Matthias Klose for the following:
++ * Separate documentation to binutils-doc package.
++ * debian/rules:
++ - Remove extra /usr/share/doc/binutils/changelog.gz file.
++ - Move bfd docs to binutils-dev package.
++ - Move upstream changelogs to binutils-doc package.
++ - Remove standard GNU info files left in /usr/share/info.
++ - Call dh_installdocs for all packages.
++ * debian/*{dirs,files}: Remove. Mention explicitely in debian/rules.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 6 Oct 1999 03:18:55 -0400
++
++binutils (2.9.5.0.12-2) unstable; urgency=low
++
++ * Applied patch from Matthias Klose to fix many issues including architecture detection.
++ * Rules file is now much prettier and easier to manage.
++ * Binutils is now built for i386 rather than i486 in the rules file (oops).
++ * Added diversion for readelf in binutils-multiarch.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Tue, 21 Sep 1999 03:39:08 -0400
++
++binutils (2.9.5.0.12-1) unstable; urgency=low
++
++ * Massive bugfix release.
++ * New upstream source (finally) (closes: Bug#44934)
++ * Fixes upstream bugs on many platforms.
++ * Gives powerpc a working binutils again. (closes: Bug#45052)
++ * Now provides .code16 support on i386 (please test)
++ * Manpage for objdump should now be complete (closes: Bug#27039)
++ * Put together manpages for gasp and the new binary readelf (closes: Bug#21918)
++ * Fixes nm core dump problem (closes: Bug#41999)
++ * Applied patches from Ben Collins to add sparc64 support (closes: Bug#44426)
++ * Update Standards version
++ * FHS compliance
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sat, 18 Sep 1999 01:21:05 -0400
++
++binutils (2.9.5.0.12-0.2) experimental; urgency=low
++
++ * Added Sparc/Sparc64 changes from Ben Collins (I really need a Sparc one of these days).
++ * Again, this should be the last experimental before a new release.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 17 Aug 1999 16:32:05 -0400
++
++binutils (2.9.5.0.12-0.1) experimental; urgency=low
++
++ * New upstream version.
++ * Should be the last experimental before a new release.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 9 Aug 1999 23:12:52 -0400
++
++binutils (2.9.5.0.10-0.1) experimental; urgency=low
++
++ * New upstream version.
++ * Didn't apply PPC patches...let me know if still needed
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 9 Aug 1999 23:12:52 -0400
++
++binutils (2.9.5.0.6-0.1) experimental; urgency=low
++
++ * New upstream version.
++ * Didn't apply PPC patches...let me know if still needed
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 9 Aug 1999 23:12:52 -0400
++
++binutils (2.9.4.0.8-0.1) unstable; urgency=low
++
++ * New upstream version.
++ * Applied as much of the PPC patches as I could.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 15 Jul 1999 12:46:45 -0400
++
++binutils (2.9.4.0.3-0.1) unstable; urgency=low
++
++ * New upstream version.
++ * Apply patch from Richard Henderson to fix PPC's libpath.
++ * Apply patch from Franz Sirl to fix Richard Henderson.
++
++ -- Daniel Jacobowitz <dan@debian.org> Sun, 6 Jun 1999 01:27:10 -0400
++
++binutils (2.9.4.0.2-0.1) unstable; urgency=low
++
++ * New upstream version. 2.9.4.0.1 was hurriedly recalled.
++
++ -- Daniel Jacobowitz <dan@debian.org> Sun, 6 Jun 1999 01:27:10 -0400
++
++binutils (2.9.4.0.1-0.1) unstable; urgency=low
++
++ * New upstream version.
++
++ -- Daniel Jacobowitz <dan@debian.org> Sun, 6 Jun 1999 01:27:10 -0400
++
++binutils (2.9.1.0.25-2) unstable; urgency=low
++
++ * Added ObjC patch AGAIN...sorry about that
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sun, 23 May 1999 15:14:35 -0400
++
++binutils (2.9.1.0.25-1) unstable; urgency=low
++
++ * New upstream version - Fixes a PIII asm optimisation bug
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Sun, 23 May 1999 00:36:55 -0400
++
++binutils (2.9.1.0.24-2) unstable; urgency=low
++
++ * Reapplied ObjC patch...apparently it's still needed.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 10 May 1999 19:53:15 -0400
++
++binutils (2.9.1.0.24-1) unstable; urgency=low
++
++ * New upstream release - fixes too many little things to mention.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Tue, 3 May 1999 16:35:08 -0400
++
++binutils (2.9.1.0.23-1) unstable; urgency=low
++
++ * New upstream release - incorporates sparc64 and arm patches.
++ * Added RPATH patch from Joel Klecker since my last upload failed.
++ * Removed ObjC patch. Let me know if it is still needed (doubtful, but
++ still might be).
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 5 Apr 1999 13:26:55 -0500
++
++binutils (2.9.1.0.22b-2) unstable; urgency=low
++
++ * Added patch from Joel Klecker to finally (properly) fix the rpath issue
++ (Thanks, Joel!).
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 2 Apr 1999 18:14:05 -0600
++
++binutils (2.9.1.0.22b-1) unstable; urgency=low
++
++ * Converted package to CVS (so bear with any delays in handling
++ bug fixes; I'm new to CVS ironically)
++ * New upstream version (sparc64 and ARM patches again added).
++ * Added support for mingw32 target in binutils-multiarch
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 12 Mar 1999 03:51:44 -0600
++
++binutils (2.9.1.0.19a-4) frozen unstable; urgency=high
++ * Added sparc64 patches from Steve Dunham to fix sparc64 targets
++ * Modified rules to add support for gcc/egcs by arch.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 1 Feb 1999 15:51:19 -0600
++
++binutils (2.9.1.0.19a-3) frozen unstable; urgency=high
++
++ * Reverted a patch to elflink.h that caused problems for
++ Obj-C code (symbols weren't exported with a size or
++ type).
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 21 Jan 1999 19:25:17 -0600
++
++binutils (2.9.1.0.19a-2) frozen unstable; urgency=low
++
++ * Added arm-linux as multiarch target (sorry Jim).
++ * Uploaded to frozen to fix strange intermittant kernel
++ compilation problems (Fixes #31434).
++ * Fixed multiarch's postinst script to check for
++ c++filt.single before trying to remove it to prevent
++ warning messages if using g++ from egcs.
++ * Fixed typo in multiarch's postrm (addr2line) (Fixes: #31533)
++ * Added links to .so's for clean removal in the future (Fixes: #31536)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Fri, 8 Jan 1999 15:28:32 -0600
++
++binutils (2.9.1.0.19a-1) unstable; urgency=low
++
++ * New upstream version; fixes some Alpha problems and other archs
++ should benefit also.
++ * Added ARM target patch from Corel again (still not in upstream).
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 4 Jan 1999 20:24:36 -0600
++
++binutils (2.9.1.0.16-1) unstable; urgency=low
++
++ * New upstream version; merges some ARM patches for Netwinders
++ * Added patch for ARM target from Corel (thanks Jim Pick)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 30 Nov 1998 16:59:25 -0600
++
++binutils (2.9.1.0.15-5) frozen unstable; urgency=low
++
++ * Reuploaded to frozen (why it wasn't there earlier....)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 30 Nov 1998 16:37:08 -0600
++
++binutils (2.9.1.0.15-4) unstable frozen; urgency=low
++
++ * Removed c++filt diversion in -multiarch to prevent conflicting
++ diversions when using egcs' g++ (which also wants to divert c++filt)
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Wed, 25 Nov 1998 18:06:17 -0600
++
++binutils (2.9.1.0.15-3) unstable frozen; urgency=low
++
++ * Made Roman's changes "official" (thanks Roman).
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 2 Nov 1998 05:46:56 -0600
++
++binutils (2.9.1.0.15-2.1) unstable; urgency=low
++
++ * Non-maintainer upload with agreement from Chris.
++ * Use a different soname for multi-arch libbfd and libopcodes; this
++ fixes the problem that the single-arch binaries (as and the diverted
++ ones) will all dump core because they're runtime-linked against the
++ multi-arch libs. (Fixes: #28656)
++ * Due to the above, binutils-multiarch also needs ldconfig in postinst
++ now.
++ * Fixup diversions once again: Do not even package the ldscripts for the
++ native architecture, so diversions for files in /usr/lib/ldscripts
++ aren't necessary.
++ * Also remove diversions on abort-install.
++ * Remove now obsolete diversions in preinst.
++ * Also symlink /usr/doc/binutils-multiarch to binutils, and do not
++ put /usr/doc/binutils in the package again.
++ * Put the symlinks libbfd.so and libopcode.so into binutils-dev, so one
++ can link to them.
++
++ -- Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de> Sat, 31 Oct 1998 11:31:14 +0100
++
++binutils (2.9.1.0.15-2) unstable; urgency=low
++
++ * Fixed binutils-multiarch diversions
++ * Reverted elf.c to .13 version to fix bug in strip
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Tue, 27 Oct 1998 05:26:28 -0600
++
++binutils (2.9.1.0.15-1) unstable; urgency=low
++
++ * New upstream version.
++ * Moved over to debhelper and updated standards version to 2.4.1.4.
++ * Adds 3DNow instruction support for AMD processors.
++ * Fixes MANY Alpha bugs and a few for Sparc, PPC, and m68k reportedly.
++ * Added binutils-multiarch package to allow for multiple-arch support
++ (fixes bug #19471).
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Thu, 14 Oct 1998 19:30:10 -0500
++
++binutils (2.9.1.0.13-1) unstable; urgency=low
++
++ * New upstream version, fixes bug #25354.
++ * Hopefully, all requested docs are included, fixes bug #21325.
++ * Fixes MANY Alpha problems.
++ * Reportedly may fix MIPS and Sparc problems also...see changelogs.
++ * Has been tested on x86's with great success.
++
++ -- Christopher C. Chimelis <chris@classnet.med.miami.edu> Mon, 5 Oct 1998 23:02:08 -0500
++
++binutils (2.9.1-0.2) frozen unstable; urgency=low
++
++ * Fixed binutils-dev dependencies.
++
++ -- Joel Klecker <jk@espy.org> Tue, 05 May 1998 09:24:04 -0700
++
++binutils (2.9.1-0.1) frozen unstable; urgency=medium
++
++ * Non-maintainer release.
++ * New upstream release.
++ * Moved docs into subdirs where appropriate.
++ * Integrated the following changes from J.H.M. Dassen:
++ * Updated FSF address in copyright file. (lintian).
++ * Reported lack of "gasp" manpage (# ....), and link it to
++ undocumented(7). (lintian).
++ * Added a TODO list.
++
++ -- Joel Klecker <jk@espy.org> Thu, 30 Apr 1998 10:43:42 -0700
++
++binutils (2.9-0.3) frozen unstable; urgency=medium
++
++ * Added upstream patch which fixes a problem with strip
++ and netscape (#17971).
++
++ -- Joel Klecker <jk@espy.org> Tue, 28 Apr 1998 08:58:27 -0700
++
++binutils (2.9-0.2) frozen unstable; urgency=low
++
++ * Added more of the upstream docs (#21325).
++ * Put a changelog.gz symlink in /usr/doc/binutils
++ to satisfy policy.
++
++ -- Joel Klecker <jk@espy.org> Tue, 21 Apr 1998 09:02:22 -0700
++
++binutils (2.9-0.1) frozen unstable; urgency=low
++
++ * Non-maintainer release.
++ * New upstream release (bugfixes only).
++
++ -- Joel Klecker <jk@espy.org> Sun, 12 Apr 1998 04:11:07 -0700
++
++binutils (2.8.1.0.23-1) unstable; urgency=low
++
++ * New upstream version
++ * -dev replaces libc5-dev (#17840)
++ * No longer possible to link against shared libbbfd/opcodes (#18121)
++
++ -- Galen Hazelwood <galenh@micron.net> Sat, 14 Mar 1998 18:19:10 -0700
++
++binutils (2.8.1.0.19-1) unstable; urgency=low
++
++ * New upstream version (#17296)
++ * Fixed typo in description (#16481)
++ * Fully replaces libbfd-dev (#16619)
++
++ -- Galen Hazelwood <galenh@micron.net> Sun, 25 Jan 1998 15:37:03 -0700
++
++binutils (2.8.1.0.17-1) unstable; urgency=low
++
++ * New upstream version
++ * Rejoined libbfd and binutils packages (#15486)
++ * Added "SHELL=bash" to rules file (#14528)
++ * bfd info docs seem to be broken, don't install for now
++
++ -- Galen Hazelwood <galenh@micron.net> Sat, 6 Dec 1997 14:55:26 -0700
++
++binutils (2.8.1.0.15-1) unstable; urgency=low
++
++ * New upstream version (#14250)
++ * Updated to Standard 2.3.0.0
++ * Restored ansidecl.h to libbfd-dev (#14116)
++
++ -- Galen Hazelwood <galenh@micron.net> Thu, 30 Oct 1997 20:04:24 -0700
++
++binutils (2.8.1-2) unstable; urgency=low
++
++ * Added 2.8.1.0.4 patch
++
++ -- Galen Hazelwood <galenh@micron.net> Thu, 12 Jun 1997 20:49:57 -0600
++
++binutils (2.8.1-1) unstable; urgency=low
++
++ * New upstream version
++ * Added 2.8.1.0.1 patch
++
++ -- Galen Hazelwood <galenh@micron.net> Fri, 30 May 1997 14:48:42 -0600
++
++binutils (2.8-1) unstable; urgency=low
++
++ * New upstream version
++ * Smarter debian build environment (automatic version handling)
++ * Added 2.8.0.3 patch
++ * Built with libc6
++
++ -- Galen Hazelwood <galenh@micron.net> Sun, 4 May 1997 11:16:12 -0600
++
++binutils (2.7.0.9-3) frozen unstable; urgency=low
++
++ * Patched for alpha support
++ * Distribute libiberty.a with -dev package (#8376)
++ * libbfd[x]-dev now has standard Provides/Conflicts behavior (#8377)
++
++ -- Galen Hazelwood <galenh@micron.net> Fri, 28 Mar 1997 11:45:58 -0700
++
++binutils (2.7.0.9-2) unstable; urgency=low
++
++ * Moved 2.7.0.9 out of experimental (no longer unreleased beta)
++
++ -- Galen Hazelwood <galenh@micron.net> Sun, 9 Mar 1997 23:43:19 -0700
++
++binutils (2.7.0.9-1) experimental; urgency=low
++
++ * New upstream beta version (fixes bug #7336)
++ * Split shared libraries (bfd) out of binutils (fixes bug #7244)
++ * No longer builds aout-binutils
++
++ -- Galen Hazelwood <galenh@micron.net> Thu, 13 Feb 1997 00:27:18 -0700
++
++binutils (2.7-6) unstable; urgency=low
++
++ * Uses dpkg --print-gnu-build-architecture for build
++ * Demoted aout-binutils to priority "extra"
++
++ -- Galen Hazelwood <galenh@micron.net> Mon, 27 Jan 1997 13:34:08 -0700
++
++binutils (2.7-5) unstable; urgency=low (HIGH for m68k)
++
++ * Added patch for m68k, will now compile X68 and kernel 2.1.15
++
++ -- Galen Hazelwood <galenh@micron.net> Tue, 31 Dec 1996 22:15:03 -0700
++
++binutils (2.7-4) unstable; urgency=low
++
++ * New maintainer
++ * Updated to new source format
++ * Fixed typo in script.1 (Fixes bug #4558)
++ * Fixed typo in as.1 (Fixes bug #5567)
++ * Postinst now calls ldconfig without explicit pathname (Fixes bug #6151)
++
++ -- Galen Hazelwood <galenh@micron.net> Mon, 30 Dec 1996 12:10:25 -0700
++
++binutils (2.7-3):
++
++Remove lib*.so links so the libs are not used for develpment.
++gzip manpages
++
++Changes made by Michael Meskes <meskes@debian.org> in consent with David Engel.
++
++binutils (2.7-2):
++
++Include shared libraries
++Strip shared libraries
++Also update AOUT version
++Minor changes to debian.rules
++
++binutils (2.7-1):
++
++Updated to new upstream version.
++
++Added a simple extended description (Bug#3574).
++
++Don't call ldconfig from postrm script (Bug#4246).
++
++ LocalWords: Aurelien Jarno
++
--- /dev/null
--- /dev/null
++# DP: updates from the binutils-2.35 branch
++
++# git diff 7e46a74aa3713c563940960e361e08defda019c2 853b47f28c330fe2b745bde795e57c83ec8b3499
++
++diff --git a/bfd/ChangeLog b/bfd/ChangeLog
++index 9fac12538a..2bca0948f6 100644
++--- a/bfd/ChangeLog
+++++ b/bfd/ChangeLog
++@@ -1,3 +1,82 @@
+++2020-10-09 Alan Modra <amodra@gmail.com>
+++
+++ * elf64-ppc.c (write_plt_relocs_for_local_syms): Don't do local
+++ entry offset optimisation.
+++
+++2020-10-07 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ 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.
+++
+++2020-09-28 Alan Modra <amodra@gmail.com>
+++
+++ 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.
+++
+++2020-09-26 Alan Modra <amodra@gmail.com>
+++
+++ * 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.
+++
+++2020-09-24 Nick Clifton <nickc@redhat.com>
+++
+++ Import from mainline:
+++ 2020-08-29 Nick Clifton <nickc@redhat.com>
+++
+++ PR 26520
+++ * dwarf2.c (scan_unit_for_symbols): Add member entries to the
+++ variable table.
+++
+++2020-09-24 Alan Modra <amodra@gmail.com>
+++
+++ 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.
+++
+++2020-09-24 Alan Modra <amodra@gmail.com>
+++
+++ PR 26655
+++ * 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.
+++
+++2020-09-24 Alan Modra <amodra@gmail.com>
+++
+++ Apply from master
+++ 2020-08-13 Alan Modra <amodra@gmail.com>
+++ * 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.
+++
+++2020-09-19 Nick Clifton <nickc@redhat.com>
+++
+++ * development.sh (development): Set to true.
+++
++ 2020-09-19 Nick Clifton <nickc@redhat.com>
++
++ This is the 2.35.1 point release.
++diff --git a/bfd/development.sh b/bfd/development.sh
++index 32be4b9460..6bbed41d6d 100644
++--- a/bfd/development.sh
+++++ b/bfd/development.sh
++@@ -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
++diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
++index b8f0008a10..977bf43a6a 100644
++--- a/bfd/dwarf2.c
+++++ b/bfd/dwarf2.c
++@@ -3404,7 +3404,8 @@ scan_unit_for_symbols (struct comp_unit *unit)
++ else
++ {
++ func = NULL;
++- if (abbrev->tag == DW_TAG_variable)
+++ if (abbrev->tag == DW_TAG_variable
+++ || abbrev->tag == DW_TAG_member)
++ {
++ size_t amt = sizeof (struct varinfo);
++ var = (struct varinfo *) bfd_zalloc (abfd, amt);
++@@ -3516,7 +3517,7 @@ scan_unit_for_symbols (struct comp_unit *unit)
++ spec_var = lookup_var_by_offset (attr.u.val,
++ unit->variable_table);
++ if (spec_var == NULL)
++- {
+++ {
++ _bfd_error_handler (_("DWARF error: could not find "
++ "variable specification "
++ "at offset %lx"),
++diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
++index 4bf37e1d98..ec8c85eba5 100644
++--- a/bfd/elf64-ppc.c
+++++ b/bfd/elf64-ppc.c
++@@ -114,7 +114,7 @@ static bfd_vma opd_entry_value
++ #define elf_backend_adjust_dynamic_symbol ppc64_elf_adjust_dynamic_symbol
++ #define elf_backend_hide_symbol ppc64_elf_hide_symbol
++ #define elf_backend_maybe_function_sym ppc64_elf_maybe_function_sym
++-#define elf_backend_always_size_sections ppc64_elf_func_desc_adjust
+++#define elf_backend_always_size_sections ppc64_elf_edit
++ #define elf_backend_size_dynamic_sections ppc64_elf_size_dynamic_sections
++ #define elf_backend_hash_symbol ppc64_elf_hash_symbol
++ #define elf_backend_init_index_section _bfd_elf_init_2_index_sections
++@@ -211,9 +211,10 @@ static bfd_vma opd_entry_value
++ #define PLD_R12_PC 0x04100000e5800000ULL
++ #define PNOP 0x0700000000000000ULL
++
++-/* __glink_PLTresolve stub instructions. We enter with the index in R0. */
+++/* __glink_PLTresolve stub instructions. We enter with the index in
+++ R0 for ELFv1, and the address of a glink branch in R12 for ELFv2. */
++ #define GLINK_PLTRESOLVE_SIZE(htab) \
++- (8u + (htab->opd_abi ? 11 * 4 : 14 * 4))
+++ (8u + (htab->opd_abi ? 11 * 4 : htab->has_plt_localentry0 ? 14 * 4 : 13 * 4))
++ /* 0: */
++ /* .quad plt0-1f */
++ /* __glink: */
++@@ -229,11 +230,14 @@ static bfd_vma opd_entry_value
++ /* mtctr %12 */
++ /* ld %11,16(%11) */
++ /* bctr */
++-#define MFLR_R0 0x7c0802a6 /* mflr %r0 */
++-#define MTLR_R0 0x7c0803a6 /* mtlr %r0 */
++-#define SUB_R12_R12_R11 0x7d8b6050 /* subf %r12,%r11,%r12 */
++-#define ADDI_R0_R12 0x380c0000 /* addi %r0,%r12,0 */
++-#define SRDI_R0_R0_2 0x7800f082 /* rldicl %r0,%r0,62,2 */
+++
+++#define MFLR_R0 0x7c0802a6 /* mflr %r0 */
+++#define MTLR_R0 0x7c0803a6 /* mtlr %r0 */
+++#define SUB_R12_R12_R11 0x7d8b6050 /* subf %r12,%r11,%r12 */
+++#define ADDI_R0_R12 0x380c0000 /* addi %r0,%r12,0 */
+++#define SRDI_R0_R0_2 0x7800f082 /* rldicl %r0,%r0,62,2 */
+++#define LD_R0_0R11 0xe80b0000 /* ld %r0,0(%r11) */
+++#define ADD_R11_R0_R11 0x7d605a14 /* add %r11,%r0,%r11 */
++
++ /* Pad with this. */
++ #define NOP 0x60000000
++@@ -6340,13 +6344,13 @@ static const struct sfpr_def_parms save_res_funcs[] =
++ };
++
++ /* Called near the start of bfd_elf_size_dynamic_sections. We use
++- this hook to a) provide some gcc support functions, and b) transfer
++- dynamic linking information gathered so far on function code symbol
++- entries, to their corresponding function descriptor symbol entries. */
+++ this hook to a) run the edit functions in this file, b) provide
+++ some gcc support functions, and c) transfer dynamic linking
+++ information gathered so far on function code symbol entries, to
+++ their corresponding function descriptor symbol entries. */
++
++ static bfd_boolean
++-ppc64_elf_func_desc_adjust (bfd *obfd ATTRIBUTE_UNUSED,
++- struct bfd_link_info *info)
+++ppc64_elf_edit (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
++ {
++ struct ppc_link_hash_table *htab;
++
++@@ -6354,6 +6358,9 @@ ppc64_elf_func_desc_adjust (bfd *obfd ATTRIBUTE_UNUSED,
++ if (htab == NULL)
++ return FALSE;
++
+++ /* Call back into the linker, which then runs the edit functions. */
+++ htab->params->edit ();
+++
++ /* Provide any missing _save* and _rest* functions. */
++ if (htab->sfpr != NULL)
++ {
++@@ -7694,9 +7701,11 @@ ppc64_elf_inline_plt (struct bfd_link_info *info)
++ return TRUE;
++ }
++
++-/* Set htab->tls_get_addr and call the generic ELF tls_setup function. */
+++/* Set htab->tls_get_addr and various other info specific to TLS.
+++ This needs to run before dynamic symbols are processed in
+++ bfd_elf_size_dynamic_sections. */
++
++-asection *
+++bfd_boolean
++ ppc64_elf_tls_setup (struct bfd_link_info *info)
++ {
++ struct ppc_link_hash_table *htab;
++@@ -7704,7 +7713,7 @@ ppc64_elf_tls_setup (struct bfd_link_info *info)
++
++ htab = ppc_hash_table (info);
++ if (htab == NULL)
++- return NULL;
+++ return FALSE;
++
++ if (abiversion (info->output_bfd) == 1)
++ htab->opd_abi = 1;
++@@ -7730,6 +7739,19 @@ ppc64_elf_tls_setup (struct bfd_link_info *info)
++ --plt-localentry can cause trouble. */
++ if (htab->params->plt_localentry0 < 0)
++ htab->params->plt_localentry0 = 0;
+++ if (htab->params->plt_localentry0 && htab->has_power10_relocs)
+++ {
+++ /* The issue is that __glink_PLTresolve saves r2, which is done
+++ because glibc ld.so _dl_runtime_resolve restores r2 to support
+++ a glibc plt call optimisation where global entry code is
+++ skipped on calls that resolve to the same binary. The
+++ __glink_PLTresolve save of r2 is incompatible with code
+++ making tail calls, because the tail call might go via the
+++ resolver and thus overwrite the proper saved r2. */
+++ _bfd_error_handler (_("warning: --plt-localentry is incompatible with "
+++ "power10 pc-relative code"));
+++ htab->params->plt_localentry0 = 0;
+++ }
++ if (htab->params->plt_localentry0
++ && elf_link_hash_lookup (&htab->elf, "GLIBC_2.26",
++ FALSE, FALSE, FALSE) == NULL)
++@@ -7826,7 +7848,7 @@ ppc64_elf_tls_setup (struct bfd_link_info *info)
++ _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
++ opt_fd->dynstr_index);
++ if (!bfd_elf_link_record_dynamic_symbol (info, opt_fd))
++- return NULL;
+++ return FALSE;
++ }
++ if (tga_fd != NULL)
++ {
++@@ -7885,7 +7907,7 @@ ppc64_elf_tls_setup (struct bfd_link_info *info)
++ && htab->params->no_tls_get_addr_regsave == -1)
++ htab->params->no_tls_get_addr_regsave = 0;
++
++- return _bfd_elf_tls_setup (info->output_bfd, info);
+++ return TRUE;
++ }
++
++ /* Return TRUE iff REL is a branch reloc with a global symbol matching
++@@ -10834,62 +10856,60 @@ eh_advance_size (unsigned int delta)
++ static inline unsigned int
++ plt_stub_size (struct ppc_link_hash_table *htab,
++ struct ppc_stub_hash_entry *stub_entry,
++- bfd_vma off)
+++ bfd_vma off,
+++ unsigned int odd)
++ {
++ unsigned size;
++
++ if (stub_entry->stub_type >= ppc_stub_plt_call_notoc)
++ {
++ if (htab->params->power10_stubs != 0)
++- {
++- bfd_vma start = (stub_entry->stub_offset
++- + stub_entry->group->stub_sec->output_offset
++- + stub_entry->group->stub_sec->output_section->vma);
++- if (stub_entry->stub_type > ppc_stub_plt_call_notoc)
++- start += 4;
++- size = 8 + size_power10_offset (off, start & 4);
++- }
+++ size = 8 + size_power10_offset (off, odd);
++ else
++ size = 8 + size_offset (off - 8);
++ if (stub_entry->stub_type > ppc_stub_plt_call_notoc)
++ size += 4;
++- return size;
++ }
++-
++- size = 12;
++- if (ALWAYS_EMIT_R2SAVE
++- || stub_entry->stub_type == ppc_stub_plt_call_r2save)
++- size += 4;
++- if (PPC_HA (off) != 0)
++- size += 4;
++- if (htab->opd_abi)
+++ else
++ {
++- size += 4;
++- if (htab->params->plt_static_chain)
+++ size = 12;
+++ if (ALWAYS_EMIT_R2SAVE
+++ || stub_entry->stub_type == ppc_stub_plt_call_r2save)
++ size += 4;
++- if (htab->params->plt_thread_safe
++- && htab->elf.dynamic_sections_created
++- && stub_entry->h != NULL
++- && stub_entry->h->elf.dynindx != -1)
++- size += 8;
++- if (PPC_HA (off + 8 + 8 * htab->params->plt_static_chain) != PPC_HA (off))
+++ if (PPC_HA (off) != 0)
++ size += 4;
+++ if (htab->opd_abi)
+++ {
+++ size += 4;
+++ if (htab->params->plt_static_chain)
+++ size += 4;
+++ if (htab->params->plt_thread_safe
+++ && htab->elf.dynamic_sections_created
+++ && stub_entry->h != NULL
+++ && stub_entry->h->elf.dynindx != -1)
+++ size += 8;
+++ if (PPC_HA (off + 8 + 8 * htab->params->plt_static_chain)
+++ != PPC_HA (off))
+++ size += 4;
+++ }
++ }
++ if (stub_entry->h != NULL
++ && is_tls_get_addr (&stub_entry->h->elf, htab)
++ && htab->params->tls_get_addr_opt)
++ {
++- if (htab->params->no_tls_get_addr_regsave)
+++ if (!htab->params->no_tls_get_addr_regsave)
++ {
++- size += 7 * 4;
++- if (stub_entry->stub_type == ppc_stub_plt_call_r2save)
++- size += 6 * 4;
+++ size += 30 * 4;
+++ if (stub_entry->stub_type == ppc_stub_plt_call_r2save
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ size += 4;
++ }
++ else
++ {
++- size += 30 * 4;
++- if (stub_entry->stub_type == ppc_stub_plt_call_r2save)
++- size += 4;
+++ size += 7 * 4;
+++ if (stub_entry->stub_type == ppc_stub_plt_call_r2save
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ size += 6 * 4;
++ }
++ }
++ return size;
++@@ -10904,7 +10924,8 @@ plt_stub_size (struct ppc_link_hash_table *htab,
++ static inline unsigned int
++ plt_stub_pad (struct ppc_link_hash_table *htab,
++ struct ppc_stub_hash_entry *stub_entry,
++- bfd_vma plt_off)
+++ bfd_vma plt_off,
+++ unsigned int odd)
++ {
++ int stub_align;
++ unsigned stub_size;
++@@ -10919,7 +10940,7 @@ plt_stub_pad (struct ppc_link_hash_table *htab,
++ }
++
++ stub_align = 1 << -htab->params->plt_stub_align;
++- stub_size = plt_stub_size (htab, stub_entry, plt_off);
+++ stub_size = plt_stub_size (htab, stub_entry, plt_off, odd);
++ if (((stub_off + stub_size - 1) & -stub_align) - (stub_off & -stub_align)
++ > ((stub_size - 1) & -stub_align))
++ return stub_align - (stub_off & (stub_align - 1));
++@@ -11114,14 +11135,12 @@ build_plt_stub (struct ppc_link_hash_table *htab,
++ #define MR_R3_R0 0x7c030378
++ #define BCTRL 0x4e800421
++
++-static inline bfd_byte *
++-build_tls_get_addr_stub (struct ppc_link_hash_table *htab,
+++static bfd_byte *
+++build_tls_get_addr_head (struct ppc_link_hash_table *htab,
++ struct ppc_stub_hash_entry *stub_entry,
++- bfd_byte *p, bfd_vma offset, Elf_Internal_Rela *r)
+++ bfd_byte *p)
++ {
++ bfd *obfd = htab->params->stub_bfd;
++- bfd_byte *loc = p;
++- unsigned int i;
++
++ bfd_put_32 (obfd, LD_R0_0R3 + 0, p), p += 4;
++ bfd_put_32 (obfd, LD_R12_0R3 + 8, p), p += 4;
++@@ -11130,21 +11149,43 @@ build_tls_get_addr_stub (struct ppc_link_hash_table *htab,
++ bfd_put_32 (obfd, ADD_R3_R12_R13, p), p += 4;
++ bfd_put_32 (obfd, BEQLR, p), p += 4;
++ bfd_put_32 (obfd, MR_R3_R0, p), p += 4;
++- if (htab->params->no_tls_get_addr_regsave)
++- {
++- if (r != NULL)
++- r[0].r_offset += 7 * 4;
++- if (stub_entry->stub_type != ppc_stub_plt_call_r2save)
++- return build_plt_stub (htab, stub_entry, p, offset, r);
++
+++ if (!htab->params->no_tls_get_addr_regsave)
+++ p = tls_get_addr_prologue (obfd, p, htab);
+++ else if (stub_entry->stub_type == ppc_stub_plt_call_r2save
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ {
++ bfd_put_32 (obfd, MFLR_R0, p);
++ p += 4;
++ bfd_put_32 (obfd, STD_R0_0R1 + STK_LINKER (htab), p);
++ p += 4;
+++ }
+++ return p;
+++}
++
++- if (r != NULL)
++- r[0].r_offset += 2 * 4;
++- p = build_plt_stub (htab, stub_entry, p, offset, r);
+++static bfd_byte *
+++build_tls_get_addr_tail (struct ppc_link_hash_table *htab,
+++ struct ppc_stub_hash_entry *stub_entry,
+++ bfd_byte *p,
+++ bfd_byte *loc)
+++{
+++ bfd *obfd = htab->params->stub_bfd;
+++
+++ if (!htab->params->no_tls_get_addr_regsave)
+++ {
+++ bfd_put_32 (obfd, BCTRL, p - 4);
+++
+++ if (stub_entry->stub_type == ppc_stub_plt_call_r2save
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ {
+++ bfd_put_32 (obfd, LD_R2_0R1 + STK_TOC (htab), p);
+++ p += 4;
+++ }
+++ p = tls_get_addr_epilogue (obfd, p, htab);
+++ }
+++ else if (stub_entry->stub_type == ppc_stub_plt_call_r2save
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ {
++ bfd_put_32 (obfd, BCTRL, p - 4);
++
++ bfd_put_32 (obfd, LD_R2_0R1 + STK_TOC (htab), p);
++@@ -11156,24 +11197,6 @@ build_tls_get_addr_stub (struct ppc_link_hash_table *htab,
++ bfd_put_32 (obfd, BLR, p);
++ p += 4;
++ }
++- else
++- {
++- p = tls_get_addr_prologue (obfd, p, htab);
++-
++- if (r != NULL)
++- r[0].r_offset += 18 * 4;
++-
++- p = build_plt_stub (htab, stub_entry, p, offset, r);
++- bfd_put_32 (obfd, BCTRL, p - 4);
++-
++- if (stub_entry->stub_type == ppc_stub_plt_call_r2save)
++- {
++- bfd_put_32 (obfd, LD_R2_0R1 + STK_TOC (htab), p);
++- p += 4;
++- }
++-
++- p = tls_get_addr_epilogue (obfd, p, htab);
++- }
++
++ if (htab->glink_eh_frame != NULL
++ && htab->glink_eh_frame->size != 0)
++@@ -11182,21 +11205,11 @@ build_tls_get_addr_stub (struct ppc_link_hash_table *htab,
++
++ base = htab->glink_eh_frame->contents + stub_entry->group->eh_base + 17;
++ eh = base + stub_entry->group->eh_size;
++- if (htab->params->no_tls_get_addr_regsave)
++- {
++- unsigned int lr_used, delta;
++- lr_used = stub_entry->stub_offset + (p - 20 - loc);
++- delta = lr_used - stub_entry->group->lr_restore;
++- stub_entry->group->lr_restore = lr_used + 16;
++- eh = eh_advance (htab->elf.dynobj, eh, delta);
++- *eh++ = DW_CFA_offset_extended_sf;
++- *eh++ = 65;
++- *eh++ = -(STK_LINKER (htab) / 8) & 0x7f;
++- *eh++ = DW_CFA_advance_loc + 4;
++- }
++- else
+++
+++ if (!htab->params->no_tls_get_addr_regsave)
++ {
++- unsigned int cfa_updt, delta;
+++ unsigned int cfa_updt, delta, i;
+++
++ /* After the bctrl, lr has been modified so we need to emit
++ .eh_frame info saying the return address is on the stack. In
++ fact we must put the EH info at or before the call rather
++@@ -11235,10 +11248,27 @@ build_tls_get_addr_stub (struct ppc_link_hash_table *htab,
++ for (i = 4; i < 12; i++)
++ *eh++ = DW_CFA_restore + i;
++ *eh++ = DW_CFA_advance_loc + 2;
+++ *eh++ = DW_CFA_restore_extended;
+++ *eh++ = 65;
+++ stub_entry->group->eh_size = eh - base;
+++ }
+++ else if (stub_entry->stub_type == ppc_stub_plt_call_r2save
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ {
+++ unsigned int lr_used, delta;
+++
+++ lr_used = stub_entry->stub_offset + (p - 20 - loc);
+++ delta = lr_used - stub_entry->group->lr_restore;
+++ stub_entry->group->lr_restore = lr_used + 16;
+++ eh = eh_advance (htab->elf.dynobj, eh, delta);
+++ *eh++ = DW_CFA_offset_extended_sf;
+++ *eh++ = 65;
+++ *eh++ = -(STK_LINKER (htab) / 8) & 0x7f;
+++ *eh++ = DW_CFA_advance_loc + 4;
+++ *eh++ = DW_CFA_restore_extended;
+++ *eh++ = 65;
+++ stub_entry->group->eh_size = eh - base;
++ }
++- *eh++ = DW_CFA_restore_extended;
++- *eh++ = 65;
++- stub_entry->group->eh_size = eh - base;
++ }
++ return p;
++ }
++@@ -11372,6 +11402,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ struct ppc_branch_hash_entry *br_entry;
++ struct bfd_link_info *info;
++ struct ppc_link_hash_table *htab;
+++ bfd *obfd;
++ bfd_byte *loc;
++ bfd_byte *p, *relp;
++ bfd_vma targ, off;
++@@ -11379,6 +11410,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ asection *plt;
++ int num_rel;
++ int odd;
+++ bfd_boolean is_tga;
++
++ /* Massage our args to the form they really have. */
++ stub_entry = (struct ppc_stub_hash_entry *) gen_entry;
++@@ -11428,6 +11460,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ off = targ - off;
++
++ p = loc;
+++ obfd = htab->params->stub_bfd;
++ if (stub_entry->stub_type == ppc_stub_long_branch_r2off)
++ {
++ bfd_vma r2off = get_r2off (info, stub_entry);
++@@ -11437,23 +11470,21 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ htab->stub_error = TRUE;
++ return FALSE;
++ }
++- bfd_put_32 (htab->params->stub_bfd, STD_R2_0R1 + STK_TOC (htab), p);
+++ bfd_put_32 (obfd, STD_R2_0R1 + STK_TOC (htab), p);
++ p += 4;
++ if (PPC_HA (r2off) != 0)
++ {
++- bfd_put_32 (htab->params->stub_bfd,
++- ADDIS_R2_R2 | PPC_HA (r2off), p);
+++ bfd_put_32 (obfd, ADDIS_R2_R2 | PPC_HA (r2off), p);
++ p += 4;
++ }
++ if (PPC_LO (r2off) != 0)
++ {
++- bfd_put_32 (htab->params->stub_bfd,
++- ADDI_R2_R2 | PPC_LO (r2off), p);
+++ bfd_put_32 (obfd, ADDI_R2_R2 | PPC_LO (r2off), p);
++ p += 4;
++ }
++ off -= p - loc;
++ }
++- bfd_put_32 (htab->params->stub_bfd, B_DOT | (off & 0x3fffffc), p);
+++ bfd_put_32 (obfd, B_DOT | (off & 0x3fffffc), p);
++ p += 4;
++
++ if (off + (1 << 25) >= (bfd_vma) (1 << 26))
++@@ -11579,19 +11610,17 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ }
++
++ p = loc;
+++ obfd = htab->params->stub_bfd;
++ if (stub_entry->stub_type != ppc_stub_plt_branch_r2off)
++ {
++ if (PPC_HA (off) != 0)
++ {
++- bfd_put_32 (htab->params->stub_bfd,
++- ADDIS_R12_R2 | PPC_HA (off), p);
+++ bfd_put_32 (obfd, ADDIS_R12_R2 | PPC_HA (off), p);
++ p += 4;
++- bfd_put_32 (htab->params->stub_bfd,
++- LD_R12_0R12 | PPC_LO (off), p);
+++ bfd_put_32 (obfd, LD_R12_0R12 | PPC_LO (off), p);
++ }
++ else
++- bfd_put_32 (htab->params->stub_bfd,
++- LD_R12_0R2 | PPC_LO (off), p);
+++ bfd_put_32 (obfd, LD_R12_0R2 | PPC_LO (off), p);
++ }
++ else
++ {
++@@ -11603,36 +11632,32 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ return FALSE;
++ }
++
++- bfd_put_32 (htab->params->stub_bfd, STD_R2_0R1 + STK_TOC (htab), p);
+++ bfd_put_32 (obfd, STD_R2_0R1 + STK_TOC (htab), p);
++ p += 4;
++ if (PPC_HA (off) != 0)
++ {
++- bfd_put_32 (htab->params->stub_bfd,
++- ADDIS_R12_R2 | PPC_HA (off), p);
+++ bfd_put_32 (obfd, ADDIS_R12_R2 | PPC_HA (off), p);
++ p += 4;
++- bfd_put_32 (htab->params->stub_bfd,
++- LD_R12_0R12 | PPC_LO (off), p);
+++ bfd_put_32 (obfd, LD_R12_0R12 | PPC_LO (off), p);
++ }
++ else
++- bfd_put_32 (htab->params->stub_bfd, LD_R12_0R2 | PPC_LO (off), p);
+++ bfd_put_32 (obfd, LD_R12_0R2 | PPC_LO (off), p);
++
++ if (PPC_HA (r2off) != 0)
++ {
++ p += 4;
++- bfd_put_32 (htab->params->stub_bfd,
++- ADDIS_R2_R2 | PPC_HA (r2off), p);
+++ bfd_put_32 (obfd, ADDIS_R2_R2 | PPC_HA (r2off), p);
++ }
++ if (PPC_LO (r2off) != 0)
++ {
++ p += 4;
++- bfd_put_32 (htab->params->stub_bfd,
++- ADDI_R2_R2 | PPC_LO (r2off), p);
+++ bfd_put_32 (obfd, ADDI_R2_R2 | PPC_LO (r2off), p);
++ }
++ }
++ p += 4;
++- bfd_put_32 (htab->params->stub_bfd, MTCTR_R12, p);
+++ bfd_put_32 (obfd, MTCTR_R12, p);
++ p += 4;
++- bfd_put_32 (htab->params->stub_bfd, BCTR, p);
+++ bfd_put_32 (obfd, BCTR, p);
++ p += 4;
++ break;
++
++@@ -11646,12 +11671,23 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ off = (stub_entry->stub_offset
++ + stub_entry->group->stub_sec->output_offset
++ + stub_entry->group->stub_sec->output_section->vma);
+++ obfd = htab->params->stub_bfd;
+++ is_tga = ((stub_entry->stub_type == ppc_stub_plt_call_notoc
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ && stub_entry->h != NULL
+++ && is_tls_get_addr (&stub_entry->h->elf, htab)
+++ && htab->params->tls_get_addr_opt);
+++ if (is_tga)
+++ {
+++ p = build_tls_get_addr_head (htab, stub_entry, p);
+++ off += p - loc;
+++ }
++ if (stub_entry->stub_type == ppc_stub_long_branch_both
++ || stub_entry->stub_type == ppc_stub_plt_branch_both
++ || stub_entry->stub_type == ppc_stub_plt_call_both)
++ {
++ off += 4;
++- bfd_put_32 (htab->params->stub_bfd, STD_R2_0R1 + STK_TOC (htab), p);
+++ bfd_put_32 (obfd, STD_R2_0R1 + STK_TOC (htab), p);
++ p += 4;
++ }
++ if (stub_entry->stub_type >= ppc_stub_plt_call_notoc)
++@@ -11684,17 +11720,39 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ if (htab->params->power10_stubs != 0)
++ {
++ bfd_boolean load = stub_entry->stub_type >= ppc_stub_plt_call_notoc;
++- p = build_power10_offset (htab->params->stub_bfd, p, off, odd, load);
+++ p = build_power10_offset (obfd, p, off, odd, load);
++ }
++ else
++ {
+++ if (htab->glink_eh_frame != NULL
+++ && htab->glink_eh_frame->size != 0)
+++ {
+++ bfd_byte *base, *eh;
+++ unsigned int lr_used, delta;
+++
+++ base = (htab->glink_eh_frame->contents
+++ + stub_entry->group->eh_base + 17);
+++ eh = base + stub_entry->group->eh_size;
+++ lr_used = stub_entry->stub_offset + (p - loc) + 8;
+++ delta = lr_used - stub_entry->group->lr_restore;
+++ stub_entry->group->lr_restore = lr_used + 8;
+++ eh = eh_advance (htab->elf.dynobj, eh, delta);
+++ *eh++ = DW_CFA_register;
+++ *eh++ = 65;
+++ *eh++ = 12;
+++ *eh++ = DW_CFA_advance_loc + 2;
+++ *eh++ = DW_CFA_restore_extended;
+++ *eh++ = 65;
+++ stub_entry->group->eh_size = eh - base;
+++ }
+++
++ /* The notoc stubs calculate their target (either a PLT entry or
++ the global entry point of a function) relative to the PC
++ returned by the "bcl" two instructions past the start of the
++ sequence emitted by build_offset. The offset is therefore 8
++ less than calculated from the start of the sequence. */
++ off -= 8;
++- p = build_offset (htab->params->stub_bfd, p, off,
+++ p = build_offset (obfd, p, off,
++ stub_entry->stub_type >= ppc_stub_plt_call_notoc);
++ }
++
++@@ -11706,17 +11764,19 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ + stub_entry->group->stub_sec->output_offset
++ + stub_entry->group->stub_sec->output_section->vma
++ + (p - loc));
++- bfd_put_32 (htab->params->stub_bfd,
++- B_DOT | ((targ - from) & 0x3fffffc), p);
+++ bfd_put_32 (obfd, B_DOT | ((targ - from) & 0x3fffffc), p);
++ }
++ else
++ {
++- bfd_put_32 (htab->params->stub_bfd, MTCTR_R12, p);
+++ bfd_put_32 (obfd, MTCTR_R12, p);
++ p += 4;
++- bfd_put_32 (htab->params->stub_bfd, BCTR, p);
+++ bfd_put_32 (obfd, BCTR, p);
++ }
++ p += 4;
++
+++ if (is_tga)
+++ p = build_tls_get_addr_tail (htab, stub_entry, p, loc);
+++
++ if (info->emitrelocations)
++ {
++ bfd_vma roff = relp - stub_entry->group->stub_sec->contents;
++@@ -11747,33 +11807,6 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ return FALSE;
++ }
++ }
++-
++- if (htab->params->power10_stubs == 0
++- && htab->glink_eh_frame != NULL
++- && htab->glink_eh_frame->size != 0)
++- {
++- bfd_byte *base, *eh;
++- unsigned int lr_used, delta;
++-
++- base = (htab->glink_eh_frame->contents
++- + stub_entry->group->eh_base + 17);
++- eh = base + stub_entry->group->eh_size;
++- lr_used = stub_entry->stub_offset + 8;
++- if (stub_entry->stub_type == ppc_stub_long_branch_both
++- || stub_entry->stub_type == ppc_stub_plt_branch_both
++- || stub_entry->stub_type == ppc_stub_plt_call_both)
++- lr_used += 4;
++- delta = lr_used - stub_entry->group->lr_restore;
++- stub_entry->group->lr_restore = lr_used + 8;
++- eh = eh_advance (htab->elf.dynobj, eh, delta);
++- *eh++ = DW_CFA_register;
++- *eh++ = 65;
++- *eh++ = 12;
++- *eh++ = DW_CFA_advance_loc + 2;
++- *eh++ = DW_CFA_restore_extended;
++- *eh++ = 65;
++- stub_entry->group->eh_size = eh - base;
++- }
++ break;
++
++ case ppc_stub_plt_call:
++@@ -11842,12 +11875,20 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ r[0].r_offset += 2;
++ r[0].r_addend = targ;
++ }
++- if (stub_entry->h != NULL
++- && is_tls_get_addr (&stub_entry->h->elf, htab)
++- && htab->params->tls_get_addr_opt)
++- p = build_tls_get_addr_stub (htab, stub_entry, loc, off, r);
++- else
++- p = build_plt_stub (htab, stub_entry, loc, off, r);
+++ p = loc;
+++ obfd = htab->params->stub_bfd;
+++ is_tga = (stub_entry->h != NULL
+++ && is_tls_get_addr (&stub_entry->h->elf, htab)
+++ && htab->params->tls_get_addr_opt);
+++ if (is_tga)
+++ {
+++ p = build_tls_get_addr_head (htab, stub_entry, p);
+++ if (r != NULL)
+++ r[0].r_offset += p - loc;
+++ }
+++ p = build_plt_stub (htab, stub_entry, p, off, r);
+++ if (is_tga)
+++ p = build_tls_get_addr_tail (htab, stub_entry, p, loc);
++ break;
++
++ case ppc_stub_save_res:
++@@ -12143,11 +12184,19 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++
++ case ppc_stub_plt_call_notoc:
++ case ppc_stub_plt_call_both:
++- off = (stub_entry->stub_offset
++- + stub_entry->group->stub_sec->output_offset
++- + stub_entry->group->stub_sec->output_section->vma);
+++ lr_used = 0;
+++ if (stub_entry->h != NULL
+++ && is_tls_get_addr (&stub_entry->h->elf, htab)
+++ && htab->params->tls_get_addr_opt)
+++ {
+++ lr_used += 7 * 4;
+++ if (!htab->params->no_tls_get_addr_regsave)
+++ lr_used += 11 * 4;
+++ else if (stub_entry->stub_type == ppc_stub_plt_call_both)
+++ lr_used += 2 * 4;
+++ }
++ if (stub_entry->stub_type == ppc_stub_plt_call_both)
++- off += 4;
+++ lr_used += 4;
++ targ = stub_entry->plt_ent->plt.offset & ~1;
++ if (targ >= (bfd_vma) -2)
++ abort ();
++@@ -12163,16 +12212,21 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ plt = htab->pltlocal;
++ }
++ targ += plt->output_offset + plt->output_section->vma;
+++ off = (stub_entry->stub_offset
+++ + stub_entry->group->stub_sec->output_offset
+++ + stub_entry->group->stub_sec->output_section->vma
+++ + lr_used);
++ odd = off & 4;
++ off = targ - off;
++
++ if (htab->params->plt_stub_align != 0)
++ {
++- unsigned pad = plt_stub_pad (htab, stub_entry, off);
+++ unsigned pad = plt_stub_pad (htab, stub_entry, off, odd);
++
++ stub_entry->group->stub_sec->size += pad;
++ stub_entry->stub_offset = stub_entry->group->stub_sec->size;
++ off -= pad;
+++ odd ^= pad & 4;
++ }
++
++ if (info->emitrelocations)
++@@ -12186,15 +12240,13 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ stub_entry->group->stub_sec->flags |= SEC_RELOC;
++ }
++
++- size = plt_stub_size (htab, stub_entry, off);
+++ size = plt_stub_size (htab, stub_entry, off, odd);
++
++ if (htab->params->power10_stubs == 0)
++ {
++ /* After the bcl, lr has been modified so we need to emit
++ .eh_frame info saying the return address is in r12. */
++- lr_used = stub_entry->stub_offset + 8;
++- if (stub_entry->stub_type == ppc_stub_plt_call_both)
++- lr_used += 4;
+++ lr_used += stub_entry->stub_offset + 8;
++ /* The eh_frame info will consist of a DW_CFA_advance_loc or
++ variant, DW_CFA_register, 65, 12, DW_CFA_advance_loc+2,
++ DW_CFA_restore_extended 65. */
++@@ -12202,6 +12254,30 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ stub_entry->group->eh_size += eh_advance_size (delta) + 6;
++ stub_entry->group->lr_restore = lr_used + 8;
++ }
+++ if ((stub_entry->stub_type == ppc_stub_plt_call_notoc
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ && stub_entry->h != NULL
+++ && is_tls_get_addr (&stub_entry->h->elf, htab)
+++ && htab->params->tls_get_addr_opt)
+++ {
+++ if (!htab->params->no_tls_get_addr_regsave)
+++ {
+++ unsigned int cfa_updt = stub_entry->stub_offset + 18 * 4;
+++ delta = cfa_updt - stub_entry->group->lr_restore;
+++ stub_entry->group->eh_size += eh_advance_size (delta);
+++ stub_entry->group->eh_size += htab->opd_abi ? 36 : 35;
+++ stub_entry->group->lr_restore
+++ = stub_entry->stub_offset + size - 4;
+++ }
+++ else if (stub_entry->stub_type == ppc_stub_plt_call_both)
+++ {
+++ lr_used = stub_entry->stub_offset + size - 20;
+++ delta = lr_used - stub_entry->group->lr_restore;
+++ stub_entry->group->eh_size += eh_advance_size (delta) + 6;
+++ stub_entry->group->lr_restore
+++ = stub_entry->stub_offset + size - 4;
+++ }
+++ }
++ break;
++
++ case ppc_stub_plt_call:
++@@ -12227,7 +12303,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++
++ if (htab->params->plt_stub_align != 0)
++ {
++- unsigned pad = plt_stub_pad (htab, stub_entry, off);
+++ unsigned pad = plt_stub_pad (htab, stub_entry, off, 0);
++
++ stub_entry->group->stub_sec->size += pad;
++ stub_entry->stub_offset = stub_entry->group->stub_sec->size;
++@@ -12244,14 +12320,22 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ stub_entry->group->stub_sec->flags |= SEC_RELOC;
++ }
++
++- size = plt_stub_size (htab, stub_entry, off);
+++ size = plt_stub_size (htab, stub_entry, off, 0);
++
++ if (stub_entry->h != NULL
++ && is_tls_get_addr (&stub_entry->h->elf, htab)
++ && htab->params->tls_get_addr_opt
++ && stub_entry->stub_type == ppc_stub_plt_call_r2save)
++ {
++- if (htab->params->no_tls_get_addr_regsave)
+++ if (!htab->params->no_tls_get_addr_regsave)
+++ {
+++ /* Adjustments to r1 need to be described. */
+++ unsigned int cfa_updt = stub_entry->stub_offset + 18 * 4;
+++ delta = cfa_updt - stub_entry->group->lr_restore;
+++ stub_entry->group->eh_size += eh_advance_size (delta);
+++ stub_entry->group->eh_size += htab->opd_abi ? 36 : 35;
+++ }
+++ else
++ {
++ lr_used = stub_entry->stub_offset + size - 20;
++ /* The eh_frame info will consist of a DW_CFA_advance_loc
++@@ -12260,15 +12344,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
++ delta = lr_used - stub_entry->group->lr_restore;
++ stub_entry->group->eh_size += eh_advance_size (delta) + 6;
++ }
++- else
++- {
++- /* Adjustments to r1 need to be described. */
++- unsigned int cfa_updt = stub_entry->stub_offset + 18 * 4;
++- delta = cfa_updt - stub_entry->group->lr_restore;
++- stub_entry->group->eh_size += eh_advance_size (delta);
++- stub_entry->group->eh_size += htab->opd_abi ? 36 : 35;
++- }
++- stub_entry->group->lr_restore = size - 4;
+++ stub_entry->group->lr_restore = stub_entry->stub_offset + size - 4;
++ }
++ break;
++
++@@ -13814,11 +13890,11 @@ ppc64_elf_size_stubs (struct bfd_link_info *info)
++ /* Augmentation. */
++ p += 1;
++
++- *p++ = DW_CFA_advance_loc + 1;
+++ *p++ = DW_CFA_advance_loc + (htab->has_plt_localentry0 ? 3 : 2);
++ *p++ = DW_CFA_register;
++ *p++ = 65;
++ *p++ = htab->opd_abi ? 12 : 0;
++- *p++ = DW_CFA_advance_loc + (htab->opd_abi ? 5 : 7);
+++ *p++ = DW_CFA_advance_loc + (htab->opd_abi ? 4 : 2);
++ *p++ = DW_CFA_restore_extended;
++ *p++ = 65;
++ p += ((24 + align - 1) & -align) - 24;
++@@ -14179,8 +14255,6 @@ write_plt_relocs_for_local_syms (struct bfd_link_info *info)
++ }
++
++ val = sym->st_value + ent->addend;
++- if (ELF_ST_TYPE (sym->st_info) != STT_GNU_IFUNC)
++- val += PPC64_LOCAL_ENTRY_OFFSET (sym->st_other);
++ if (sym_sec != NULL && sym_sec->output_section != NULL)
++ val += sym_sec->output_offset + sym_sec->output_section->vma;
++
++@@ -14414,23 +14488,60 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
++ }
++ else
++ {
+++ unsigned int insn;
+++
+++ /* 0:
+++ . .quad plt0-1f # plt0 entry relative to 1:
+++ #
+++ # We get here with r12 initially @ a glink branch
+++ # Load the address of _dl_runtime_resolve from plt0 and
+++ # jump to it, with r0 set to the index of the PLT entry
+++ # to be resolved and r11 the link map.
+++ __glink_PLTresolve:
+++ . std %r2,24(%r1) # optional
+++ . mflr %r0
+++ . bcl 20,31,1f
+++ 1:
+++ . mflr %r11
+++ . mtlr %r0
+++ . ld %r0,(0b-1b)(%r11)
+++ . sub %r12,%r12,%r11
+++ . add %r11,%r0,%r11
+++ . addi %r0,%r12,1b-2f
+++ . ld %r12,0(%r11)
+++ . srdi %r0,%r0,2
+++ . mtctr %r12
+++ . ld %r11,8(%r11)
+++ . bctr
+++ 2:
+++ . b __glink_PLTresolve
+++ . ...
+++ . b __glink_PLTresolve */
+++
+++ if (htab->has_plt_localentry0)
+++ {
+++ bfd_put_32 (htab->glink->owner, STD_R2_0R1 + 24, p);
+++ p += 4;
+++ }
++ bfd_put_32 (htab->glink->owner, MFLR_R0, p);
++ p += 4;
++ bfd_put_32 (htab->glink->owner, BCL_20_31, p);
++ p += 4;
++ bfd_put_32 (htab->glink->owner, MFLR_R11, p);
++ p += 4;
++- bfd_put_32 (htab->glink->owner, STD_R2_0R1 + 24, p);
++- p += 4;
++- bfd_put_32 (htab->glink->owner, LD_R2_0R11 | (-16 & 0xfffc), p);
++- p += 4;
++ bfd_put_32 (htab->glink->owner, MTLR_R0, p);
++ p += 4;
+++ if (htab->has_plt_localentry0)
+++ insn = LD_R0_0R11 | (-20 & 0xfffc);
+++ else
+++ insn = LD_R0_0R11 | (-16 & 0xfffc);
+++ bfd_put_32 (htab->glink->owner, insn, p);
+++ p += 4;
++ bfd_put_32 (htab->glink->owner, SUB_R12_R12_R11, p);
++ p += 4;
++- bfd_put_32 (htab->glink->owner, ADD_R11_R2_R11, p);
+++ bfd_put_32 (htab->glink->owner, ADD_R11_R0_R11, p);
++ p += 4;
++- bfd_put_32 (htab->glink->owner, ADDI_R0_R12 | (-48 & 0xffff), p);
+++ bfd_put_32 (htab->glink->owner, ADDI_R0_R12 | (-44 & 0xffff), p);
++ p += 4;
++ bfd_put_32 (htab->glink->owner, LD_R12_0R11, p);
++ p += 4;
++@@ -15880,22 +15991,25 @@ ppc64_elf_relocate_section (bfd *output_bfd,
++ addend = 0;
++ reloc_dest = DEST_STUB;
++
++- if (((stub_entry->stub_type == ppc_stub_plt_call
++- && ALWAYS_EMIT_R2SAVE)
++- || stub_entry->stub_type == ppc_stub_plt_call_r2save
++- || stub_entry->stub_type == ppc_stub_plt_call_both)
++- && !(h != NULL
++- && is_tls_get_addr (&h->elf, htab)
++- && htab->params->tls_get_addr_opt)
++- && rel + 1 < relend
++- && rel[1].r_offset == rel->r_offset + 4
++- && ELF64_R_TYPE (rel[1].r_info) == R_PPC64_TOCSAVE)
++- relocation += 4;
++- else if ((stub_entry->stub_type == ppc_stub_long_branch_both
++- || stub_entry->stub_type == ppc_stub_plt_branch_both
++- || stub_entry->stub_type == ppc_stub_plt_call_both)
++- && r_type == R_PPC64_REL24_NOTOC)
++- relocation += 4;
+++ if ((((stub_entry->stub_type == ppc_stub_plt_call
+++ && ALWAYS_EMIT_R2SAVE)
+++ || stub_entry->stub_type == ppc_stub_plt_call_r2save
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ && rel + 1 < relend
+++ && rel[1].r_offset == rel->r_offset + 4
+++ && ELF64_R_TYPE (rel[1].r_info) == R_PPC64_TOCSAVE)
+++ || ((stub_entry->stub_type == ppc_stub_long_branch_both
+++ || stub_entry->stub_type == ppc_stub_plt_branch_both
+++ || stub_entry->stub_type == ppc_stub_plt_call_both)
+++ && r_type == R_PPC64_REL24_NOTOC))
+++ {
+++ /* Skip over the r2 store at the start of the stub. */
+++ if (!(stub_entry->stub_type >= ppc_stub_plt_call
+++ && htab->params->tls_get_addr_opt
+++ && h != NULL
+++ && is_tls_get_addr (&h->elf, htab)))
+++ relocation += 4;
+++ }
++
++ if (r_type == R_PPC64_REL24_NOTOC
++ && (stub_entry->stub_type == ppc_stub_plt_call_notoc
++@@ -15944,7 +16058,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
++ break;
++
++ case R_PPC64_GOT16_DS:
++- if ((h ? h->elf.type : ELF_ST_TYPE (sym->st_info)) == STT_GNU_IFUNC)
+++ if ((h ? h->elf.type : ELF_ST_TYPE (sym->st_info)) == STT_GNU_IFUNC
+++ || !htab->do_toc_opt)
++ break;
++ from = TOCstart + htab->sec_info[input_section->id].toc_off;
++ if (relocation + addend - from + 0x8000 < 0x10000
++@@ -15963,7 +16078,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
++
++ case R_PPC64_GOT16_LO_DS:
++ case R_PPC64_GOT16_HA:
++- if ((h ? h->elf.type : ELF_ST_TYPE (sym->st_info)) == STT_GNU_IFUNC)
+++ if ((h ? h->elf.type : ELF_ST_TYPE (sym->st_info)) == STT_GNU_IFUNC
+++ || !htab->do_toc_opt)
++ break;
++ from = TOCstart + htab->sec_info[input_section->id].toc_off;
++ if (relocation + addend - from + 0x80008000ULL < 0x100000000ULL
++@@ -15986,34 +16102,38 @@ ppc64_elf_relocate_section (bfd *output_bfd,
++ break;
++
++ case R_PPC64_GOT_PCREL34:
++- if ((h ? h->elf.type : ELF_ST_TYPE (sym->st_info)) == STT_GNU_IFUNC)
+++ if ((h ? h->elf.type : ELF_ST_TYPE (sym->st_info)) == STT_GNU_IFUNC
+++ || !htab->do_toc_opt)
++ break;
++ from = (rel->r_offset
++ + input_section->output_section->vma
++ + input_section->output_offset);
++- if (relocation - from + (1ULL << 33) < 1ULL << 34
++- && SYMBOL_REFERENCES_LOCAL (info, &h->elf))
++- {
++- offset = rel->r_offset;
++- pinsn = bfd_get_32 (input_bfd, contents + offset);
++- pinsn <<= 32;
++- pinsn |= bfd_get_32 (input_bfd, contents + offset + 4);
++- if ((pinsn & ((-1ULL << 50) | (63ULL << 26)))
++- == ((1ULL << 58) | (1ULL << 52) | (57ULL << 26) /* pld */))
++- {
++- /* Replace with paddi. */
++- pinsn += (2ULL << 56) + (14ULL << 26) - (57ULL << 26);
++- r_type = R_PPC64_PCREL34;
++- rel->r_info = ELF64_R_INFO (r_symndx, r_type);
++- bfd_put_32 (input_bfd, pinsn >> 32, contents + offset);
++- bfd_put_32 (input_bfd, pinsn, contents + offset + 4);
++- goto pcrelopt;
++- }
++- }
++- break;
+++ if (!(relocation - from + (1ULL << 33) < 1ULL << 34
+++ && SYMBOL_REFERENCES_LOCAL (info, &h->elf)))
+++ break;
+++
+++ offset = rel->r_offset;
+++ pinsn = bfd_get_32 (input_bfd, contents + offset);
+++ pinsn <<= 32;
+++ pinsn |= bfd_get_32 (input_bfd, contents + offset + 4);
+++ if ((pinsn & ((-1ULL << 50) | (63ULL << 26)))
+++ != ((1ULL << 58) | (1ULL << 52) | (57ULL << 26) /* pld */))
+++ break;
+++
+++ /* Replace with paddi. */
+++ pinsn += (2ULL << 56) + (14ULL << 26) - (57ULL << 26);
+++ r_type = R_PPC64_PCREL34;
+++ rel->r_info = ELF64_R_INFO (r_symndx, r_type);
+++ bfd_put_32 (input_bfd, pinsn >> 32, contents + offset);
+++ bfd_put_32 (input_bfd, pinsn, contents + offset + 4);
+++ /* Fall through. */
++
++ case R_PPC64_PCREL34:
++- if (SYMBOL_REFERENCES_LOCAL (info, &h->elf))
+++ if (!htab->params->no_pcrel_opt
+++ && rel + 1 < relend
+++ && rel[1].r_offset == rel->r_offset
+++ && rel[1].r_info == ELF64_R_INFO (0, R_PPC64_PCREL_OPT)
+++ && SYMBOL_REFERENCES_LOCAL (info, &h->elf))
++ {
++ offset = rel->r_offset;
++ pinsn = bfd_get_32 (input_bfd, contents + offset);
++@@ -16023,43 +16143,37 @@ ppc64_elf_relocate_section (bfd *output_bfd,
++ == ((1ULL << 58) | (2ULL << 56) | (1ULL << 52)
++ | (14ULL << 26) /* paddi */))
++ {
++- pcrelopt:
++- if (rel + 1 < relend
++- && rel[1].r_offset == offset
++- && rel[1].r_info == ELF64_R_INFO (0, R_PPC64_PCREL_OPT))
+++ bfd_vma off2 = rel[1].r_addend;
+++ if (off2 == 0)
+++ /* zero means next insn. */
+++ off2 = 8;
+++ off2 += offset;
+++ if (off2 + 4 <= input_section->size)
++ {
++- bfd_vma off2 = rel[1].r_addend;
++- if (off2 == 0)
++- /* zero means next insn. */
++- off2 = 8;
++- off2 += offset;
++- if (off2 + 4 <= input_section->size)
+++ uint64_t pinsn2;
+++ bfd_signed_vma addend_off;
+++ pinsn2 = bfd_get_32 (input_bfd, contents + off2);
+++ pinsn2 <<= 32;
+++ if ((pinsn2 & (63ULL << 58)) == 1ULL << 58)
++ {
++- uint64_t pinsn2;
++- bfd_signed_vma addend_off;
++- pinsn2 = bfd_get_32 (input_bfd, contents + off2);
++- pinsn2 <<= 32;
+++ if (off2 + 8 > input_section->size)
+++ break;
+++ pinsn2 |= bfd_get_32 (input_bfd,
+++ contents + off2 + 4);
+++ }
+++ if (xlate_pcrel_opt (&pinsn, &pinsn2, &addend_off))
+++ {
+++ addend += addend_off;
+++ rel->r_addend = addend;
+++ bfd_put_32 (input_bfd, pinsn >> 32,
+++ contents + offset);
+++ bfd_put_32 (input_bfd, pinsn,
+++ contents + offset + 4);
+++ bfd_put_32 (input_bfd, pinsn2 >> 32,
+++ contents + off2);
++ if ((pinsn2 & (63ULL << 58)) == 1ULL << 58)
++- {
++- if (off2 + 8 > input_section->size)
++- break;
++- pinsn2 |= bfd_get_32 (input_bfd,
++- contents + off2 + 4);
++- }
++- if (xlate_pcrel_opt (&pinsn, &pinsn2, &addend_off))
++- {
++- addend += addend_off;
++- rel->r_addend = addend;
++- bfd_put_32 (input_bfd, pinsn >> 32,
++- contents + offset);
++- bfd_put_32 (input_bfd, pinsn,
++- contents + offset + 4);
++- bfd_put_32 (input_bfd, pinsn2 >> 32,
++- contents + off2);
++- if ((pinsn2 & (63ULL << 58)) == 1ULL << 58)
++- bfd_put_32 (input_bfd, pinsn2,
++- contents + off2 + 4);
++- }
+++ bfd_put_32 (input_bfd, pinsn2,
+++ contents + off2 + 4);
++ }
++ }
++ }
++diff --git a/bfd/elf64-ppc.h b/bfd/elf64-ppc.h
++index 547971f8be..0492fd7fad 100644
++--- a/bfd/elf64-ppc.h
+++++ b/bfd/elf64-ppc.h
++@@ -27,6 +27,7 @@ struct ppc64_elf_params
++ /* Linker call-backs. */
++ asection * (*add_stub_section) (const char *, asection *);
++ void (*layout_sections_again) (void);
+++ void (*edit) (void);
++
++ /* Maximum size of a group of input sections that can be handled by
++ one stub section. A value of +/-1 indicates the bfd back-end
++@@ -57,6 +58,9 @@ struct ppc64_elf_params
++ /* Whether to use power10 instructions in linkage stubs. */
++ int power10_stubs;
++
+++ /* Whether R_PPC64_PCREL_OPT should be ignored. */
+++ int no_pcrel_opt;
+++
++ /* Whether to canonicalize .opd so that there are no overlapping
++ .opd entries. */
++ int non_overlapping_opd;
++@@ -77,7 +81,7 @@ bfd_boolean ppc64_elf_edit_opd
++ (struct bfd_link_info *);
++ bfd_boolean ppc64_elf_inline_plt
++ (struct bfd_link_info *);
++-asection *ppc64_elf_tls_setup
+++bfd_boolean ppc64_elf_tls_setup
++ (struct bfd_link_info *);
++ bfd_boolean ppc64_elf_tls_optimize
++ (struct bfd_link_info *);
++diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
++index e58ddc19cf..143aae4b5c 100644
++--- a/bfd/elfxx-x86.c
+++++ b/bfd/elfxx-x86.c
++@@ -2417,15 +2417,19 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
++ abort ();
++ if (aprop != NULL && bprop != NULL)
++ {
++- features = 0;
++- if (htab->params->ibt)
++- features = GNU_PROPERTY_X86_FEATURE_1_IBT;
++- if (htab->params->shstk)
++- features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
++ number = aprop->u.number;
++- /* Add GNU_PROPERTY_X86_FEATURE_1_IBT and
++- GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
++- aprop->u.number = (number & bprop->u.number) | features;
+++ aprop->u.number = number & bprop->u.number;
+++ if (pr_type == GNU_PROPERTY_X86_FEATURE_1_AND)
+++ {
+++ features = 0;
+++ if (htab->params->ibt)
+++ features = GNU_PROPERTY_X86_FEATURE_1_IBT;
+++ if (htab->params->shstk)
+++ features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
+++ /* Add GNU_PROPERTY_X86_FEATURE_1_IBT and
+++ GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
+++ aprop->u.number |= features;
+++ }
++ updated = number != (unsigned int) aprop->u.number;
++ /* Remove the property if all feature bits are cleared. */
++ if (aprop->u.number == 0)
++@@ -2437,10 +2441,13 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
++ have them. Set IBT and SHSTK properties for -z ibt and -z
++ shstk if needed. */
++ features = 0;
++- if (htab->params->ibt)
++- features = GNU_PROPERTY_X86_FEATURE_1_IBT;
++- if (htab->params->shstk)
++- features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
+++ if (pr_type == GNU_PROPERTY_X86_FEATURE_1_AND)
+++ {
+++ if (htab->params->ibt)
+++ features = GNU_PROPERTY_X86_FEATURE_1_IBT;
+++ if (htab->params->shstk)
+++ features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
+++ }
++ if (features)
++ {
++ if (aprop != NULL)
++diff --git a/bfd/version.h b/bfd/version.h
++index 617fdb7a5d..5dc2f3b901 100644
++--- a/bfd/version.h
+++++ b/bfd/version.h
++@@ -16,7 +16,7 @@
++
++ In releases, the date is not included in either version strings or
++ sonames. */
++-#define BFD_VERSION_DATE 20200919
+++#define BFD_VERSION_DATE 20201117
++ #define BFD_VERSION @bfd_version@
++ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
++ #define REPORT_BUGS_TO @report_bugs_to@
++diff --git a/binutils/ChangeLog b/binutils/ChangeLog
++index 76ba6d9840..a77c7a6527 100644
++--- a/binutils/ChangeLog
+++++ b/binutils/ChangeLog
++@@ -1,3 +1,109 @@
+++2020-11-16 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-10-29 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ PR binutils/26808
+++ * dwarf.c (abbrev_list): Add abbrev_base.
+++ (new_abbrev_list): Add an abbrev_base argument and record it.
+++ (find_abbrev_list_by_abbrev_offset): Add an abbrev_base argument
+++ and match it.
+++ (process_debug_info): Pass abbrev_base to new_abbrev_list and
+++ find_abbrev_list_by_abbrev_offset.
+++ (display_debug_abbrev): Pass 0 abbrev_base to new_abbrev_list
+++ and find_abbrev_list_by_abbrev_offset.
+++ * testsuite/binutils-all/x86-64/pr26808.dump: New file.
+++ * testsuite/binutils-all/x86-64/pr26808.dwp.bz2: Likewise.
+++ * testsuite/binutils-all/x86-64/x86-64.exp: Run PR binutils/26808
+++ test.
+++
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-11-10 Nick Clifton <nickc@redhat.com>
+++
+++ * dwarf.c (skip_attr_bytes): Correctly handle DW_FORM_ref8.
+++ (get_type_abbrev_from_form): Accept DW_FORM_ref8.
+++
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-10-27 Nick Clifton <nickc@redhat.com>
+++
+++ * dwarf.c (struct abbrev_list): New structure. Used to collect
+++ lists of abbreviation sets.
+++ (struct abbrev_map): New structure. Used to map CU offsets to
+++ abbreviation offsets.
+++ (record_abbrev_list): New function. A new entry to an
+++ abbreviation list.
+++ (free_all_abbrevs): Update to free abbreviation lists.
+++ (new_abbrev_list): New function. Start a new abbreviation
+++ list.
+++ (find_abbrev_list_by_abbrev_offset): New function.
+++ (find_abbrev_map_by_offset): New function.
+++ (add_abbrev): Add abbrev_list parameter.
+++ (add_abbrev_attr): Likewise.
+++ (process_abbrev_section): Rename to process_abbrev_set and add
+++ list parameter.
+++ (get_type_abbrev_from_form): New function. Attempts to decode the
+++ forms used by DW_AT_type attributes.
+++ (get_type_signedness): Display type names if operating in wide
+++ mode. Use get_type_abbrev_from_form.
+++ (read_and_display_attr_value): Use get_type_abbrev_from_form.
+++ (process_debug_info): Pre-parse the CU headers to collate all the
+++ abbrevs before starting the main scan.
+++ (process_debug_abbrev): Do not free any loaded abbrevs.
+++ (free_debug_memory): Free the abbrev maps.
+++
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-10-21 Nick Clifton <nickc@redhat.com>
+++
+++ * dwarf.c (skip_attr_bytes): Accept DWARF versions higher than 4
+++ when processing the DW_FORM_ref_addr form.
+++ Skip bytes in DW_FORM_block and DW_FORM_exprloc forms.
+++ Handle DW_FORM_indirect.
+++ (get_type_signedness): Allow a limited amount of recursion.
+++ Do not attempt to decode types that use the DW_FORM_ref_addr form.
+++ (read_and_display_attr_value): Do not attempt to decode types
+++ that use the DW_FORM_ref_addr form.
+++
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-11-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
+++
+++ * dwarf.c (display_debug_rnglists_list): Only bias the
+++ DW_RLS_offset_pair with the base address.
+++
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-09-29 Mark Wielaard <mark@klomp.org>
+++
+++ * dwarf.c (display_loclists_list): Handle DW_LLE_start_end and
+++ DW_LLE_start_length. Only add base_address for DW_LLE_offset_pair.
+++
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-09-23 Mark Wielaard <mark@klomp.org>
+++
+++ * dwarf.c (process_debug_info): Print Unit Type for DWARF5.
+++ * testsuite/binutils-all/dw5.W: Adjust expected output.
+++ * testsuite/binutils-all/dwarf-attributes.W: Likewise.
+++
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-09-23 Mark Wielaard <mark@klomp.org>
+++
+++ * dwarf.c (read_and_display_attr_value): Handle DW_FORM_ref_addr
+++ for dwarf_version 5 just as version 3 and 4 (only 2 is
+++ different).
+++ (process_debug_info): Allow DW_UT_partial.
+++
++ 2020-09-19 Nick Clifton <nickc@redhat.com>
++
++ This is the 2.35.1 point release.
++diff --git a/binutils/dwarf.c b/binutils/dwarf.c
++index cc13fe067f..91b61e3fdf 100644
++--- a/binutils/dwarf.c
+++++ b/binutils/dwarf.c
++@@ -849,101 +849,208 @@ fetch_indexed_value (dwarf_vma offset, dwarf_vma bytes)
++ /* FIXME: There are better and more efficient ways to handle
++ these structures. For now though, I just want something that
++ is simple to implement. */
+++/* Records a single attribute in an abbrev. */
++ typedef struct abbrev_attr
++ {
++- unsigned long attribute;
++- unsigned long form;
++- bfd_signed_vma implicit_const;
++- struct abbrev_attr *next;
+++ unsigned long attribute;
+++ unsigned long form;
+++ bfd_signed_vma implicit_const;
+++ struct abbrev_attr * next;
++ }
++ abbrev_attr;
++
+++/* Records a single abbrev. */
++ typedef struct abbrev_entry
++ {
++- unsigned long entry;
++- unsigned long tag;
++- int children;
++- struct abbrev_attr *first_attr;
++- struct abbrev_attr *last_attr;
++- struct abbrev_entry *next;
+++ unsigned long number;
+++ unsigned long tag;
+++ int children;
+++ struct abbrev_attr * first_attr;
+++ struct abbrev_attr * last_attr;
+++ struct abbrev_entry * next;
++ }
++ abbrev_entry;
++
++-static abbrev_entry *first_abbrev = NULL;
++-static abbrev_entry *last_abbrev = NULL;
+++/* Records a set of abbreviations. */
+++typedef struct abbrev_list
+++{
+++ abbrev_entry * first_abbrev;
+++ abbrev_entry * last_abbrev;
+++ dwarf_vma abbrev_base;
+++ dwarf_vma abbrev_offset;
+++ struct abbrev_list * next;
+++ unsigned char * start_of_next_abbrevs;
+++}
+++abbrev_list;
+++
+++/* Records all the abbrevs found so far. */
+++static struct abbrev_list * abbrev_lists = NULL;
+++
+++typedef struct abbrev_map
+++{
+++ dwarf_vma start;
+++ dwarf_vma end;
+++ abbrev_list * list;
+++} abbrev_map;
+++
+++/* Maps between CU offsets and abbrev sets. */
+++static abbrev_map * cu_abbrev_map = NULL;
+++static unsigned long num_abbrev_map_entries = 0;
+++static unsigned long next_free_abbrev_map_entry = 0;
+++
+++#define INITIAL_NUM_ABBREV_MAP_ENTRIES 8
+++#define ABBREV_MAP_ENTRIES_INCREMENT 8
+++
+++static void
+++record_abbrev_list_for_cu (dwarf_vma start, dwarf_vma end, abbrev_list * list)
+++{
+++ if (cu_abbrev_map == NULL)
+++ {
+++ num_abbrev_map_entries = INITIAL_NUM_ABBREV_MAP_ENTRIES;
+++ cu_abbrev_map = xmalloc (num_abbrev_map_entries * sizeof (* cu_abbrev_map));
+++ }
+++ else if (next_free_abbrev_map_entry == num_abbrev_map_entries)
+++ {
+++ num_abbrev_map_entries += ABBREV_MAP_ENTRIES_INCREMENT;
+++ cu_abbrev_map = xrealloc (cu_abbrev_map, num_abbrev_map_entries * sizeof (* cu_abbrev_map));
+++ }
+++
+++ cu_abbrev_map[next_free_abbrev_map_entry].start = start;
+++ cu_abbrev_map[next_free_abbrev_map_entry].end = end;
+++ cu_abbrev_map[next_free_abbrev_map_entry].list = list;
+++ next_free_abbrev_map_entry ++;
+++}
++
++ static void
++-free_abbrevs (void)
+++free_all_abbrevs (void)
++ {
++- abbrev_entry *abbrv;
+++ abbrev_list * list;
++
++- for (abbrv = first_abbrev; abbrv;)
+++ for (list = abbrev_lists; list != NULL;)
++ {
++- abbrev_entry *next_abbrev = abbrv->next;
++- abbrev_attr *attr;
+++ abbrev_list * next = list->next;
+++ abbrev_entry * abbrv;
++
++- for (attr = abbrv->first_attr; attr;)
+++ for (abbrv = list->first_abbrev; abbrv != NULL;)
++ {
++- abbrev_attr *next_attr = attr->next;
+++ abbrev_entry * next_abbrev = abbrv->next;
+++ abbrev_attr * attr;
+++
+++ for (attr = abbrv->first_attr; attr;)
+++ {
+++ abbrev_attr *next_attr = attr->next;
++
++- free (attr);
++- attr = next_attr;
+++ free (attr);
+++ attr = next_attr;
+++ }
+++
+++ free (abbrv);
+++ abbrv = next_abbrev;
++ }
++
++- free (abbrv);
++- abbrv = next_abbrev;
+++ free (list);
+++ list = next;
++ }
++
++- last_abbrev = first_abbrev = NULL;
+++ abbrev_lists = NULL;
+++}
+++
+++static abbrev_list *
+++new_abbrev_list (dwarf_vma abbrev_base, dwarf_vma abbrev_offset)
+++{
+++ abbrev_list * list = (abbrev_list *) xcalloc (sizeof * list, 1);
+++
+++ list->abbrev_base = abbrev_base;
+++ list->abbrev_offset = abbrev_offset;
+++
+++ list->next = abbrev_lists;
+++ abbrev_lists = list;
+++
+++ return list;
+++}
+++
+++static abbrev_list *
+++find_abbrev_list_by_abbrev_offset (dwarf_vma abbrev_base,
+++ dwarf_vma abbrev_offset)
+++{
+++ abbrev_list * list;
+++
+++ for (list = abbrev_lists; list != NULL; list = list->next)
+++ if (list->abbrev_base == abbrev_base
+++ && list->abbrev_offset == abbrev_offset)
+++ return list;
+++
+++ return NULL;
+++}
+++
+++/* Find the abbreviation map for the CU that includes OFFSET.
+++ OFFSET is an absolute offset from the start of the .debug_info section. */
+++/* FIXME: This function is going to slow down readelf & objdump.
+++ Consider using a better algorithm to mitigate this effect. */
+++
+++static abbrev_map *
+++find_abbrev_map_by_offset (dwarf_vma offset)
+++{
+++ unsigned long i;
+++
+++ for (i = 0; i < next_free_abbrev_map_entry; i++)
+++ if (cu_abbrev_map[i].start <= offset
+++ && cu_abbrev_map[i].end > offset)
+++ return cu_abbrev_map + i;
+++
+++ return NULL;
++ }
++
++ static void
++-add_abbrev (unsigned long number, unsigned long tag, int children)
+++add_abbrev (unsigned long number,
+++ unsigned long tag,
+++ int children,
+++ abbrev_list * list)
++ {
++- abbrev_entry *entry;
+++ abbrev_entry * entry;
++
++- entry = (abbrev_entry *) malloc (sizeof (*entry));
++- if (entry == NULL)
++- /* ugg */
++- return;
+++ entry = (abbrev_entry *) xmalloc (sizeof (*entry));
++
++- entry->entry = number;
+++ entry->number = number;
++ entry->tag = tag;
++ entry->children = children;
++ entry->first_attr = NULL;
++ entry->last_attr = NULL;
++ entry->next = NULL;
++
++- if (first_abbrev == NULL)
++- first_abbrev = entry;
+++ assert (list != NULL);
+++
+++ if (list->first_abbrev == NULL)
+++ list->first_abbrev = entry;
++ else
++- last_abbrev->next = entry;
+++ list->last_abbrev->next = entry;
++
++- last_abbrev = entry;
+++ list->last_abbrev = entry;
++ }
++
++ static void
++-add_abbrev_attr (unsigned long attribute, unsigned long form,
++- bfd_signed_vma implicit_const)
+++add_abbrev_attr (unsigned long attribute,
+++ unsigned long form,
+++ bfd_signed_vma implicit_const,
+++ abbrev_list * list)
++ {
++ abbrev_attr *attr;
++
++- attr = (abbrev_attr *) malloc (sizeof (*attr));
++- if (attr == NULL)
++- /* ugg */
++- return;
+++ attr = (abbrev_attr *) xmalloc (sizeof (*attr));
++
++ attr->attribute = attribute;
++ attr->form = form;
++ attr->implicit_const = implicit_const;
++ attr->next = NULL;
++
++- if (last_abbrev->first_attr == NULL)
++- last_abbrev->first_attr = attr;
+++ assert (list != NULL && list->last_abbrev != NULL);
+++
+++ if (list->last_abbrev->first_attr == NULL)
+++ list->last_abbrev->first_attr = attr;
++ else
++- last_abbrev->last_attr->next = attr;
+++ list->last_abbrev->last_attr->next = attr;
++
++- last_abbrev->last_attr = attr;
+++ list->last_abbrev->last_attr = attr;
++ }
++
++ /* Processes the (partial) contents of a .debug_abbrev section.
++@@ -952,11 +1059,10 @@ add_abbrev_attr (unsigned long attribute, unsigned long form,
++ an abbreviation set was found. */
++
++ static unsigned char *
++-process_abbrev_section (unsigned char *start, unsigned char *end)
+++process_abbrev_set (unsigned char * start,
+++ const unsigned char * end,
+++ abbrev_list * list)
++ {
++- if (first_abbrev != NULL)
++- return NULL;
++-
++ while (start < end)
++ {
++ unsigned long entry;
++@@ -966,7 +1072,7 @@ process_abbrev_section (unsigned char *start, unsigned char *end)
++
++ READ_ULEB (entry, start, end);
++
++- /* A single zero is supposed to end the section according
+++ /* A single zero is supposed to end the set according
++ to the standard. If there's more, then signal that to
++ the caller. */
++ if (start == end)
++@@ -980,7 +1086,7 @@ process_abbrev_section (unsigned char *start, unsigned char *end)
++
++ children = *start++;
++
++- add_abbrev (entry, tag, children);
+++ add_abbrev (entry, tag, children, list);
++
++ do
++ {
++@@ -1003,7 +1109,7 @@ process_abbrev_section (unsigned char *start, unsigned char *end)
++ break;
++ }
++
++- add_abbrev_attr (attribute, form, implicit_const);
+++ add_abbrev_attr (attribute, form, implicit_const, list);
++ }
++ while (attribute != 0);
++ }
++@@ -1868,7 +1974,7 @@ skip_attr_bytes (unsigned long form,
++ case DW_FORM_ref_addr:
++ if (dwarf_version == 2)
++ SAFE_BYTE_GET_AND_INC (uvalue, data, pointer_size, end);
++- else if (dwarf_version == 3 || dwarf_version == 4)
+++ else if (dwarf_version > 2)
++ SAFE_BYTE_GET_AND_INC (uvalue, data, offset_size, end);
++ else
++ return NULL;
++@@ -1919,7 +2025,23 @@ skip_attr_bytes (unsigned long form,
++ break;
++
++ case DW_FORM_ref8:
+++ {
+++ dwarf_vma high_bits;
+++
+++ SAFE_BYTE_GET64 (data, &high_bits, &uvalue, end);
+++ data += 8;
+++ if (sizeof (uvalue) > 4)
+++ uvalue += high_bits << 32;
+++ else if (high_bits != 0)
+++ {
+++ /* FIXME: What to do ? */
+++ return NULL;
+++ }
+++ break;
+++ }
+++
++ case DW_FORM_data8:
+++ case DW_FORM_ref_sig8:
++ data += 8;
++ break;
++
++@@ -1934,6 +2056,7 @@ skip_attr_bytes (unsigned long form,
++ case DW_FORM_block:
++ case DW_FORM_exprloc:
++ READ_ULEB (uvalue, data, end);
+++ data += uvalue;
++ break;
++
++ case DW_FORM_block1:
++@@ -1951,12 +2074,12 @@ skip_attr_bytes (unsigned long form,
++ data += 4 + uvalue;
++ break;
++
++- case DW_FORM_ref_sig8:
++- data += 8;
++- break;
++-
++ case DW_FORM_indirect:
++- /* FIXME: Handle this form. */
+++ READ_ULEB (form, data, end);
+++ if (form == DW_FORM_implicit_const)
+++ SKIP_ULEB (data, end);
+++ return skip_attr_bytes (form, data, end, pointer_size, offset_size, dwarf_version, value_return);
+++
++ default:
++ return NULL;
++ }
++@@ -1967,40 +2090,137 @@ skip_attr_bytes (unsigned long form,
++ return data;
++ }
++
++-/* Return IS_SIGNED set to TRUE if the type at
++- DATA can be determined to be a signed type. */
+++/* Given form FORM with value UVALUE, locate and return the abbreviation
+++ associated with it. */
+++
+++static abbrev_entry *
+++get_type_abbrev_from_form (unsigned long form,
+++ unsigned long uvalue,
+++ dwarf_vma cu_offset,
+++ const struct dwarf_section * section,
+++ unsigned long * abbrev_num_return,
+++ unsigned char ** data_return,
+++ unsigned long * cu_offset_return)
+++{
+++ unsigned long abbrev_number;
+++ abbrev_map * map;
+++ abbrev_entry * entry;
+++ unsigned char * data;
+++
+++ if (abbrev_num_return != NULL)
+++ * abbrev_num_return = 0;
+++ if (data_return != NULL)
+++ * data_return = NULL;
+++
+++ switch (form)
+++ {
+++ case DW_FORM_GNU_ref_alt:
+++ /* FIXME: We are unable to handle this form at the moment. */
+++ return NULL;
+++
+++ case DW_FORM_ref_addr:
+++ if (uvalue >= section->size)
+++ {
+++ warn (_("Unable to resolve ref_addr form: uvalue %lx > section size %lx (%s)\n"),
+++ uvalue, (long) section->size, section->name);
+++ return NULL;
+++ }
+++ break;
+++
+++ case DW_FORM_ref1:
+++ case DW_FORM_ref2:
+++ case DW_FORM_ref4:
+++ case DW_FORM_ref8:
+++ case DW_FORM_ref_udata:
+++ if (uvalue + cu_offset > section->size)
+++ {
+++ warn (_("Unable to resolve ref form: uvalue %lx + cu_offset %lx > section size %lx\n"),
+++ uvalue, (long) cu_offset, (long) section->size);
+++ return NULL;
+++ }
+++ uvalue += cu_offset;
+++ break;
+++
+++ /* FIXME: Are there other DW_FORMs that can be used by types ? */
+++
+++ default:
+++ warn (_("Unexpected form %lx encountered whilst finding abbreviation for type\n"), form);
+++ return NULL;
+++ }
+++
+++ data = (unsigned char *) section->start + uvalue;
+++ map = find_abbrev_map_by_offset (uvalue);
+++
+++ if (map == NULL)
+++ {
+++ warn (_("Unable to find abbreviations for CU offset %#lx\n"), uvalue);
+++ return NULL;
+++ }
+++ if (map->list == NULL)
+++ {
+++ warn (_("Empty abbreviation list encountered for CU offset %lx\n"), uvalue);
+++ return NULL;
+++ }
+++
+++ if (cu_offset_return != NULL)
+++ {
+++ if (form == DW_FORM_ref_addr)
+++ * cu_offset_return = map->start;
+++ else
+++ * cu_offset_return = cu_offset;
+++ }
+++
+++ READ_ULEB (abbrev_number, data, section->start + section->size);
+++
+++ for (entry = map->list->first_abbrev; entry != NULL; entry = entry->next)
+++ if (entry->number == abbrev_number)
+++ break;
+++
+++ if (abbrev_num_return != NULL)
+++ * abbrev_num_return = abbrev_number;
+++
+++ if (data_return != NULL)
+++ * data_return = data;
+++
+++ if (entry == NULL)
+++ warn (_("Unable to find entry for abbreviation %lu\n"), abbrev_number);
+++
+++ return entry;
+++}
+++
+++/* Return IS_SIGNED set to TRUE if the type using abbreviation ENTRY
+++ can be determined to be a signed type. The data for ENTRY can be
+++ found starting at DATA. */
++
++ static void
++-get_type_signedness (unsigned char * start,
+++get_type_signedness (abbrev_entry * entry,
+++ const struct dwarf_section * section,
++ unsigned char * data,
++ unsigned const char * end,
+++ dwarf_vma cu_offset,
++ dwarf_vma pointer_size,
++ dwarf_vma offset_size,
++ int dwarf_version,
++ bfd_boolean * is_signed,
++- bfd_boolean is_nested)
+++ unsigned int nesting)
++ {
++- unsigned long abbrev_number;
++- abbrev_entry * entry;
++ abbrev_attr * attr;
++
++ * is_signed = FALSE;
++
++- READ_ULEB (abbrev_number, data, end);
++-
++- for (entry = first_abbrev;
++- entry != NULL && entry->entry != abbrev_number;
++- entry = entry->next)
++- continue;
++-
++- if (entry == NULL)
++- /* FIXME: Issue a warning ? */
++- return;
+++#define MAX_NESTING 20
+++ if (nesting > MAX_NESTING)
+++ {
+++ /* FIXME: Warn - or is this expected ?
+++ NB/ We need to avoid infinite recursion. */
+++ return;
+++ }
++
++ for (attr = entry->first_attr;
++ attr != NULL && attr->attribute;
++ attr = attr->next)
++ {
+++ unsigned char * orig_data = data;
++ dwarf_vma uvalue = 0;
++
++ data = skip_attr_bytes (attr->form, data, end, pointer_size,
++@@ -2010,25 +2230,38 @@ get_type_signedness (unsigned char * start,
++
++ switch (attr->attribute)
++ {
++-#if 0 /* FIXME: It would be nice to print the name of the type,
++- but this would mean updating a lot of binutils tests. */
+++ case DW_AT_linkage_name:
++ case DW_AT_name:
++- if (attr->form == DW_FORM_strp)
++- printf ("%s", fetch_indirect_string (uvalue));
+++ if (do_wide)
+++ {
+++ if (attr->form == DW_FORM_strp)
+++ printf (", %s", fetch_indirect_string (uvalue));
+++ else if (attr->form == DW_FORM_string)
+++ printf (", %s", orig_data);
+++ }
++ break;
++-#endif
+++
++ case DW_AT_type:
++ /* Recurse. */
++- if (is_nested)
++- {
++- /* FIXME: Warn - or is this expected ?
++- NB/ We need to avoid infinite recursion. */
++- return;
++- }
++- if (uvalue >= (size_t) (end - start))
++- return;
++- get_type_signedness (start, start + uvalue, end, pointer_size,
++- offset_size, dwarf_version, is_signed, TRUE);
+++ {
+++ abbrev_entry * type_abbrev;
+++ unsigned char * type_data;
+++ unsigned long type_cu_offset;
+++
+++ type_abbrev = get_type_abbrev_from_form (attr->form,
+++ uvalue,
+++ cu_offset,
+++ section,
+++ NULL /* abbrev num return */,
+++ & type_data,
+++ & type_cu_offset);
+++ if (type_abbrev == NULL)
+++ break;
+++
+++ get_type_signedness (type_abbrev, section, type_data, end, type_cu_offset,
+++ pointer_size, offset_size, dwarf_version,
+++ is_signed, nesting + 1);
+++ }
++ break;
++
++ case DW_AT_encoding:
++@@ -2202,11 +2435,10 @@ read_and_display_attr_value (unsigned long attribute,
++ case DW_FORM_ref_addr:
++ if (dwarf_version == 2)
++ SAFE_BYTE_GET_AND_INC (uvalue, data, pointer_size, end);
++- else if (dwarf_version == 3 || dwarf_version == 4)
+++ else if (dwarf_version > 2)
++ SAFE_BYTE_GET_AND_INC (uvalue, data, offset_size, end);
++ else
++- error (_("Internal error: DWARF version is not 2, 3 or 4.\n"));
++-
+++ error (_("Internal error: DW_FORM_ref_addr is not supported in DWARF version 1.\n"));
++ break;
++
++ case DW_FORM_addr:
++@@ -2271,12 +2503,12 @@ read_and_display_attr_value (unsigned long attribute,
++ {
++ case DW_FORM_ref_addr:
++ if (!do_loc)
++- printf ("%c<0x%s>", delimiter, dwarf_vmatoa ("x",uvalue));
+++ printf ("%c<0x%s>", delimiter, dwarf_vmatoa ("x", uvalue));
++ break;
++
++ case DW_FORM_GNU_ref_alt:
++ if (!do_loc)
++- printf ("%c<alt 0x%s>", delimiter, dwarf_vmatoa ("x",uvalue));
+++ printf ("%c<alt 0x%s>", delimiter, dwarf_vmatoa ("x", uvalue));
++ /* FIXME: Follow the reference... */
++ break;
++
++@@ -2662,9 +2894,18 @@ read_and_display_attr_value (unsigned long attribute,
++ && uvalue < (size_t) (end - start))
++ {
++ bfd_boolean is_signed = FALSE;
++-
++- get_type_signedness (start, start + uvalue, end, pointer_size,
++- offset_size, dwarf_version, & is_signed, FALSE);
+++ abbrev_entry * type_abbrev;
+++ unsigned char * type_data;
+++ unsigned long type_cu_offset;
+++
+++ type_abbrev = get_type_abbrev_from_form (form, uvalue, cu_offset,
+++ section, NULL, & type_data, & type_cu_offset);
+++ if (type_abbrev != NULL)
+++ {
+++ get_type_signedness (type_abbrev, section, type_data, end, type_cu_offset,
+++ pointer_size, offset_size, dwarf_version,
+++ & is_signed, 0);
+++ }
++ level_type_signed[level] = is_signed;
++ }
++ break;
++@@ -2986,40 +3227,22 @@ read_and_display_attr_value (unsigned long attribute,
++
++ case DW_AT_import:
++ {
++- if (form == DW_FORM_ref_sig8
++- || form == DW_FORM_GNU_ref_alt)
++- break;
++-
++- if (form == DW_FORM_ref1
++- || form == DW_FORM_ref2
++- || form == DW_FORM_ref4
++- || form == DW_FORM_ref_udata)
++- uvalue += cu_offset;
+++ unsigned long abbrev_number;
+++ abbrev_entry *entry;
++
++- if (uvalue >= section->size)
++- warn (_("Offset %s used as value for DW_AT_import attribute of DIE at offset 0x%lx is too big.\n"),
++- dwarf_vmatoa ("x", uvalue),
++- (unsigned long) (orig_data - section->start));
+++ entry = get_type_abbrev_from_form (form, uvalue, cu_offset,
+++ section, & abbrev_number, NULL, NULL);
+++ if (entry == NULL)
+++ {
+++ if (form != DW_FORM_GNU_ref_alt)
+++ warn (_("Offset %s used as value for DW_AT_import attribute of DIE at offset 0x%lx is too big.\n"),
+++ dwarf_vmatoa ("x", uvalue),
+++ (unsigned long) (orig_data - section->start));
+++ }
++ else
++ {
++- unsigned long abbrev_number;
++- abbrev_entry *entry;
++- unsigned char *p = section->start + uvalue;
++-
++- READ_ULEB (abbrev_number, p, end);
++-
++ printf (_("\t[Abbrev Number: %ld"), abbrev_number);
++- /* Don't look up abbrev for DW_FORM_ref_addr, as it very often will
++- use different abbrev table, and we don't track .debug_info chunks
++- yet. */
++- if (form != DW_FORM_ref_addr)
++- {
++- for (entry = first_abbrev; entry != NULL; entry = entry->next)
++- if (entry->entry == abbrev_number)
++- break;
++- if (entry != NULL)
++- printf (" (%s)", get_TAG_name (entry->tag));
++- }
+++ printf (" (%s)", get_TAG_name (entry->tag));
++ printf ("]");
++ }
++ }
++@@ -3238,8 +3461,100 @@ process_debug_info (struct dwarf_section * section,
++
++ if (!do_loc && dwarf_start_die == 0)
++ introduce (section, FALSE);
+++
+++ free_all_abbrevs ();
+++ free (cu_abbrev_map);
+++ cu_abbrev_map = NULL;
+++ next_free_abbrev_map_entry = 0;
++
++- for (section_begin = start, unit = 0; start < end; unit++)
+++ /* In order to be able to resolve DW_FORM_ref_attr forms we need
+++ to load *all* of the abbrevs for all CUs in this .debug_info
+++ section. This does effectively mean that we (partially) read
+++ every CU header twice. */
+++ for (section_begin = start; start < end;)
+++ {
+++ DWARF2_Internal_CompUnit compunit;
+++ unsigned char * hdrptr;
+++ dwarf_vma abbrev_base;
+++ size_t abbrev_size;
+++ dwarf_vma cu_offset;
+++ unsigned int offset_size;
+++ unsigned int initial_length_size;
+++ struct cu_tu_set * this_set;
+++ abbrev_list * list;
+++
+++ hdrptr = start;
+++
+++ SAFE_BYTE_GET_AND_INC (compunit.cu_length, hdrptr, 4, end);
+++
+++ if (compunit.cu_length == 0xffffffff)
+++ {
+++ SAFE_BYTE_GET_AND_INC (compunit.cu_length, hdrptr, 8, end);
+++ offset_size = 8;
+++ initial_length_size = 12;
+++ }
+++ else
+++ {
+++ offset_size = 4;
+++ initial_length_size = 4;
+++ }
+++
+++ SAFE_BYTE_GET_AND_INC (compunit.cu_version, hdrptr, 2, end);
+++
+++ cu_offset = start - section_begin;
+++
+++ this_set = find_cu_tu_set_v2 (cu_offset, do_types);
+++
+++ if (compunit.cu_version < 5)
+++ {
+++ compunit.cu_unit_type = DW_UT_compile;
+++ /* Initialize it due to a false compiler warning. */
+++ compunit.cu_pointer_size = -1;
+++ }
+++ else
+++ {
+++ SAFE_BYTE_GET_AND_INC (compunit.cu_unit_type, hdrptr, 1, end);
+++ do_types = (compunit.cu_unit_type == DW_UT_type);
+++
+++ SAFE_BYTE_GET_AND_INC (compunit.cu_pointer_size, hdrptr, 1, end);
+++ }
+++
+++ SAFE_BYTE_GET_AND_INC (compunit.cu_abbrev_offset, hdrptr, offset_size, end);
+++
+++ if (this_set == NULL)
+++ {
+++ abbrev_base = 0;
+++ abbrev_size = debug_displays [abbrev_sec].section.size;
+++ }
+++ else
+++ {
+++ abbrev_base = this_set->section_offsets [DW_SECT_ABBREV];
+++ abbrev_size = this_set->section_sizes [DW_SECT_ABBREV];
+++ }
+++
+++ list = find_abbrev_list_by_abbrev_offset (abbrev_base,
+++ compunit.cu_abbrev_offset);
+++ if (list == NULL)
+++ {
+++ unsigned char * next;
+++
+++ list = new_abbrev_list (abbrev_base,
+++ compunit.cu_abbrev_offset);
+++ next = process_abbrev_set
+++ (((unsigned char *) debug_displays [abbrev_sec].section.start
+++ + abbrev_base + compunit.cu_abbrev_offset),
+++ ((unsigned char *) debug_displays [abbrev_sec].section.start
+++ + abbrev_base + abbrev_size),
+++ list);
+++ list->start_of_next_abbrevs = next;
+++ }
+++
+++ start = section_begin + cu_offset + compunit.cu_length
+++ + initial_length_size;
+++ record_abbrev_list_for_cu (cu_offset, start - section_begin, list);
+++ }
+++
+++ for (start = section_begin, unit = 0; start < end; unit++)
++ {
++ DWARF2_Internal_CompUnit compunit;
++ unsigned char *hdrptr;
++@@ -3255,6 +3570,7 @@ process_debug_info (struct dwarf_section * section,
++ struct cu_tu_set *this_set;
++ dwarf_vma abbrev_base;
++ size_t abbrev_size;
+++ abbrev_list * list = NULL;
++
++ hdrptr = start;
++
++@@ -3361,6 +3677,10 @@ process_debug_info (struct dwarf_section * section,
++ dwarf_vmatoa ("x", compunit.cu_length),
++ offset_size == 8 ? "64-bit" : "32-bit");
++ printf (_(" Version: %d\n"), compunit.cu_version);
+++ if (compunit.cu_version >= 5)
+++ printf (_(" Unit Type: %s (%x)\n"),
+++ get_DW_UT_name (compunit.cu_unit_type) ?: "???",
+++ compunit.cu_unit_type);
++ printf (_(" Abbrev Offset: 0x%s\n"),
++ dwarf_vmatoa ("x", compunit.cu_abbrev_offset));
++ printf (_(" Pointer Size: %d\n"), compunit.cu_pointer_size);
++@@ -3419,6 +3739,7 @@ process_debug_info (struct dwarf_section * section,
++ }
++
++ if (compunit.cu_unit_type != DW_UT_compile
+++ && compunit.cu_unit_type != DW_UT_partial
++ && compunit.cu_unit_type != DW_UT_type)
++ {
++ warn (_("CU at offset %s contains corrupt or "
++@@ -3427,8 +3748,6 @@ process_debug_info (struct dwarf_section * section,
++ continue;
++ }
++
++- free_abbrevs ();
++-
++ /* Process the abbrevs used by this compilation unit. */
++ if (compunit.cu_abbrev_offset >= abbrev_size)
++ warn (_("Debug info is corrupted, abbrev offset (%lx) is larger than abbrev section size (%lx)\n"),
++@@ -3441,11 +3760,24 @@ process_debug_info (struct dwarf_section * section,
++ (unsigned long) abbrev_base + abbrev_size,
++ (unsigned long) debug_displays [abbrev_sec].section.size);
++ else
++- process_abbrev_section
++- (((unsigned char *) debug_displays [abbrev_sec].section.start
++- + abbrev_base + compunit.cu_abbrev_offset),
++- ((unsigned char *) debug_displays [abbrev_sec].section.start
++- + abbrev_base + abbrev_size));
+++ {
+++ list = find_abbrev_list_by_abbrev_offset (abbrev_base,
+++ compunit.cu_abbrev_offset);
+++ if (list == NULL)
+++ {
+++ unsigned char * next;
+++
+++ list = new_abbrev_list (abbrev_base,
+++ compunit.cu_abbrev_offset);
+++ next = process_abbrev_set
+++ (((unsigned char *) debug_displays [abbrev_sec].section.start
+++ + abbrev_base + compunit.cu_abbrev_offset),
+++ ((unsigned char *) debug_displays [abbrev_sec].section.start
+++ + abbrev_base + abbrev_size),
+++ list);
+++ list->start_of_next_abbrevs = next;
+++ }
+++ }
++
++ level = 0;
++ last_level = level;
++@@ -3525,11 +3857,13 @@ process_debug_info (struct dwarf_section * section,
++
++ /* Scan through the abbreviation list until we reach the
++ correct entry. */
++- for (entry = first_abbrev;
++- entry && entry->entry != abbrev_number;
++- entry = entry->next)
+++ if (list == NULL)
++ continue;
++
+++ for (entry = list->first_abbrev; entry != NULL; entry = entry->next)
+++ if (entry->number == abbrev_number)
+++ break;
+++
++ if (entry == NULL)
++ {
++ if (!do_loc && do_printing)
++@@ -5714,30 +6048,37 @@ display_debug_abbrev (struct dwarf_section *section,
++ {
++ abbrev_entry *entry;
++ unsigned char *start = section->start;
++- unsigned char *end = start + section->size;
+++ const unsigned char *end = start + section->size;
++
++ introduce (section, FALSE);
++
++ do
++ {
++- unsigned char *last;
++-
++- free_abbrevs ();
+++ abbrev_list * list;
+++ dwarf_vma offset;
++
++- last = start;
++- start = process_abbrev_section (start, end);
+++ offset = start - section->start;
+++ list = find_abbrev_list_by_abbrev_offset (0, offset);
+++ if (list == NULL)
+++ {
+++ list = new_abbrev_list (0, offset);
+++ start = process_abbrev_set (start, end, list);
+++ list->start_of_next_abbrevs = start;
+++ }
+++ else
+++ start = list->start_of_next_abbrevs;
++
++- if (first_abbrev == NULL)
+++ if (list->first_abbrev == NULL)
++ continue;
++
++- printf (_(" Number TAG (0x%lx)\n"), (long) (last - section->start));
+++ printf (_(" Number TAG (0x%lx)\n"), (long) offset);
++
++- for (entry = first_abbrev; entry; entry = entry->next)
+++ for (entry = list->first_abbrev; entry; entry = entry->next)
++ {
++ abbrev_attr *attr;
++
++ printf (" %ld %s [%s]\n",
++- entry->entry,
+++ entry->number,
++ get_TAG_name (entry->tag),
++ entry->children ? _("has children") : _("no children"));
++
++@@ -6013,7 +6354,9 @@ display_loclists_list (struct dwarf_section *section,
++
++ SAFE_BYTE_GET_AND_INC (llet, start, 1, section_end);
++
++- if (vstart && llet == DW_LLE_offset_pair)
+++ if (vstart && (llet == DW_LLE_offset_pair
+++ || llet == DW_LLE_start_end
+++ || llet == DW_LLE_start_length))
++ {
++ off = offset + (vstart - *start_ptr);
++
++@@ -6034,7 +6377,18 @@ display_loclists_list (struct dwarf_section *section,
++ break;
++ case DW_LLE_offset_pair:
++ READ_ULEB (begin, start, section_end);
+++ begin += base_address;
++ READ_ULEB (end, start, section_end);
+++ end += base_address;
+++ break;
+++ case DW_LLE_start_end:
+++ SAFE_BYTE_GET_AND_INC (begin, start, pointer_size, section_end);
+++ SAFE_BYTE_GET_AND_INC (end, start, pointer_size, section_end);
+++ break;
+++ case DW_LLE_start_length:
+++ SAFE_BYTE_GET_AND_INC (begin, start, pointer_size, section_end);
+++ READ_ULEB (end, start, section_end);
+++ end += begin;
++ break;
++ case DW_LLE_base_address:
++ SAFE_BYTE_GET_AND_INC (base_address, start, pointer_size,
++@@ -6061,7 +6415,9 @@ display_loclists_list (struct dwarf_section *section,
++ }
++ if (llet == DW_LLE_end_of_list)
++ break;
++- if (llet != DW_LLE_offset_pair)
+++ if (llet != DW_LLE_offset_pair
+++ && llet != DW_LLE_start_end
+++ && llet != DW_LLE_start_length)
++ continue;
++
++ if (start + 2 > section_end)
++@@ -6073,8 +6429,8 @@ display_loclists_list (struct dwarf_section *section,
++
++ READ_ULEB (length, start, section_end);
++
++- print_dwarf_vma (begin + base_address, pointer_size);
++- print_dwarf_vma (end + base_address, pointer_size);
+++ print_dwarf_vma (begin, pointer_size);
+++ print_dwarf_vma (end, pointer_size);
++
++ putchar ('(');
++ need_frame_base = decode_location_expression (start,
++@@ -7082,8 +7438,15 @@ display_debug_rnglists_list (unsigned char *start, unsigned char *finish,
++ if (rlet == DW_RLE_base_address)
++ continue;
++
++- print_dwarf_vma (begin + base_address, pointer_size);
++- print_dwarf_vma (end + base_address, pointer_size);
+++ /* Only a DW_RLE_offset_pair needs the base address added. */
+++ if (rlet == DW_RLE_offset_pair)
+++ {
+++ begin += base_address;
+++ end += base_address;
+++ }
+++
+++ print_dwarf_vma (begin, pointer_size);
+++ print_dwarf_vma (end, pointer_size);
++
++ if (begin == end)
++ fputs (_("(start == end)"), stdout);
++@@ -10747,8 +11110,12 @@ free_debug_memory (void)
++ {
++ unsigned int i;
++
++- free_abbrevs ();
+++ free_all_abbrevs ();
++
+++ free (cu_abbrev_map);
+++ cu_abbrev_map = NULL;
+++ next_free_abbrev_map_entry = 0;
+++
++ for (i = 0; i < max; i++)
++ free_debug_section ((enum dwarf_section_display_enum) i);
++
++diff --git a/binutils/testsuite/binutils-all/dw5.W b/binutils/testsuite/binutils-all/dw5.W
++index 2eccb03c5a..cb949ad49c 100644
++--- a/binutils/testsuite/binutils-all/dw5.W
+++++ b/binutils/testsuite/binutils-all/dw5.W
++@@ -3,6 +3,7 @@ Contents of the .debug_info section:
++ Compilation Unit @ offset 0x0:
++ Length: 0x160 \(32-bit\)
++ Version: 5
+++ Unit Type: DW_UT_compile \(1\)
++ Abbrev Offset: 0x0
++ Pointer Size: 8
++ <0><c>: Abbrev Number: 6 \(DW_TAG_compile_unit\)
++diff --git a/binutils/testsuite/binutils-all/dwarf-attributes.W b/binutils/testsuite/binutils-all/dwarf-attributes.W
++index 3a4e740988..4e8386ae88 100644
++--- a/binutils/testsuite/binutils-all/dwarf-attributes.W
+++++ b/binutils/testsuite/binutils-all/dwarf-attributes.W
++@@ -3,6 +3,7 @@ Contents of the .debug_info section:
++ Compilation Unit @ offset 0x0:
++ Length: 0x40 \(32-bit\)
++ Version: 5
+++ Unit Type: DW_UT_compile \(1\)
++ Abbrev Offset: 0x0
++ Pointer Size: 4
++ <0><c>: Abbrev Number: 1 \(User TAG value: 0x5555\)
++diff --git a/binutils/testsuite/binutils-all/x86-64/pr26808.dump b/binutils/testsuite/binutils-all/x86-64/pr26808.dump
++new file mode 100644
++index 0000000000..f64f9d008f
++--- /dev/null
+++++ b/binutils/testsuite/binutils-all/x86-64/pr26808.dump
++@@ -0,0 +1,1440 @@
+++Contents of the .debug_info.dwo section:
+++
+++ Compilation Unit @ offset 0x0:
+++ Length: 0x178 (32-bit)
+++ Version: 4
+++ Abbrev Offset: 0x0
+++ Pointer Size: 8
+++ Section contributions:
+++ .debug_abbrev.dwo: 0x0 0x154
+++ .debug_line.dwo: 0x0 0x40
+++ .debug_loc.dwo: 0x0 0x0
+++ .debug_str_offsets.dwo: 0x0 0x14
+++ <0><b>: Abbrev Number: 12 (DW_TAG_compile_unit)
+++ <c> DW_AT_producer : GNU C++ 4.7.x-google 20120720 (prerelease)
+++ <37> DW_AT_language : 4 (C++)
+++ <38> DW_AT_name : dwp_test_main.cc
+++ <49> DW_AT_comp_dir : /home/ccoutant/opensource/binutils-git/binutils/gold/testsuite
+++ <88> DW_AT_GNU_dwo_id : 0xe5ba51d95c9aebc8
+++ <1><90>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <91> DW_AT_byte_size : 4
+++ <92> DW_AT_encoding : 5 (signed)
+++ <93> DW_AT_name : int
+++ <1><97>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <98> DW_AT_byte_size : 1
+++ <99> DW_AT_encoding : 2 (boolean)
+++ <9a> DW_AT_name : bool
+++ <1><9f>: Abbrev Number: 13 (DW_TAG_subprogram)
+++ <a0> DW_AT_external : 1
+++ <a0> DW_AT_name : main
+++ <a5> DW_AT_decl_file : 1
+++ <a6> DW_AT_decl_line : 30
+++ <a7> DW_AT_type : <0x90>
+++ <ab> DW_AT_low_pc : (addr_index: 0x0): <no .debug_addr section>
+++ <ac> DW_AT_high_pc : 0x304
+++ <b4> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <b6> DW_AT_GNU_all_tail_call_sites: 1
+++ <b6> DW_AT_sibling : <0x11b>
+++ <2><ba>: Abbrev Number: 14 (DW_TAG_lexical_block)
+++ <bb> DW_AT_low_pc : (addr_index: 0x1): <no .debug_addr section>
+++ <bc> DW_AT_high_pc : 0x2fa
+++ <3><c4>: Abbrev Number: 15 (DW_TAG_variable)
+++ <c5> DW_AT_name : c1
+++ <c8> DW_AT_decl_file : 1
+++ <c9> DW_AT_decl_line : 32
+++ <ca> DW_AT_type : signature: 0xb5faa2a4b7a919c4
+++ <d2> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32)
+++ <3><d5>: Abbrev Number: 15 (DW_TAG_variable)
+++ <d6> DW_AT_name : c2
+++ <d9> DW_AT_decl_file : 1
+++ <da> DW_AT_decl_line : 33
+++ <db> DW_AT_type : signature: 0xab98c7bc886f5266
+++ <e3> DW_AT_location : 2 byte block: 91 50 (DW_OP_fbreg: -48)
+++ <3><e6>: Abbrev Number: 16 (DW_TAG_variable)
+++ <e7> DW_AT_name : __PRETTY_FUNCTION__
+++ <fb> DW_AT_type : <0x13f>
+++ <ff> DW_AT_artificial : 1
+++ <ff> DW_AT_location : 2 byte block: fb 2 (DW_OP_GNU_addr_index <0x2>)
+++ <3><102>: Abbrev Number: 14 (DW_TAG_lexical_block)
+++ <103> DW_AT_low_pc : (addr_index: 0x3): <no .debug_addr section>
+++ <104> DW_AT_high_pc : 0x2f
+++ <4><10c>: Abbrev Number: 17 (DW_TAG_variable)
+++ <10d> DW_AT_name : i
+++ <10f> DW_AT_decl_file : 1
+++ <110> DW_AT_decl_line : 37
+++ <111> DW_AT_type : <0x90>
+++ <115> DW_AT_location : 2 byte block: 91 6c (DW_OP_fbreg: -20)
+++ <4><118>: Abbrev Number: 0
+++ <3><119>: Abbrev Number: 0
+++ <2><11a>: Abbrev Number: 0
+++ <1><11b>: Abbrev Number: 18 (DW_TAG_array_type)
+++ <11c> DW_AT_type : <0x137>
+++ <120> DW_AT_sibling : <0x12b>
+++ <2><124>: Abbrev Number: 19 (DW_TAG_subrange_type)
+++ <125> DW_AT_type : <0x12b>
+++ <129> DW_AT_upper_bound : 10
+++ <2><12a>: Abbrev Number: 0
+++ <1><12b>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <12c> DW_AT_byte_size : 8
+++ <12d> DW_AT_encoding : 7 (unsigned)
+++ <12e> DW_AT_name : sizetype
+++ <1><137>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <138> DW_AT_byte_size : 1
+++ <139> DW_AT_encoding : 6 (signed char)
+++ <13a> DW_AT_name : char
+++ <1><13f>: Abbrev Number: 20 (DW_TAG_const_type)
+++ <140> DW_AT_type : <0x11b>
+++ <1><144>: Abbrev Number: 21 (DW_TAG_variable)
+++ <145> DW_AT_name : c3
+++ <148> DW_AT_decl_file : 2
+++ <149> DW_AT_decl_line : 57
+++ <14a> DW_AT_type : signature: 0xb534bdc1f01629bb
+++ <152> DW_AT_external : 1
+++ <152> DW_AT_declaration : 1
+++ <1><152>: Abbrev Number: 22 (DW_TAG_variable)
+++ <153> DW_AT_name : v3
+++ <156> DW_AT_decl_file : 2
+++ <157> DW_AT_decl_line : 60
+++ <158> DW_AT_type : <0x90>
+++ <15c> DW_AT_external : 1
+++ <15c> DW_AT_declaration : 1
+++ <1><15c>: Abbrev Number: 18 (DW_TAG_array_type)
+++ <15d> DW_AT_type : <0x137>
+++ <161> DW_AT_sibling : <0x167>
+++ <2><165>: Abbrev Number: 23 (DW_TAG_subrange_type)
+++ <2><166>: Abbrev Number: 0
+++ <1><167>: Abbrev Number: 22 (DW_TAG_variable)
+++ <168> DW_AT_name : v4
+++ <16b> DW_AT_decl_file : 2
+++ <16c> DW_AT_decl_line : 61
+++ <16d> DW_AT_type : <0x15c>
+++ <171> DW_AT_external : 1
+++ <171> DW_AT_declaration : 1
+++ <1><171>: Abbrev Number: 22 (DW_TAG_variable)
+++ <172> DW_AT_name : v5
+++ <175> DW_AT_decl_file : 2
+++ <176> DW_AT_decl_line : 62
+++ <177> DW_AT_type : <0x15c>
+++ <17b> DW_AT_external : 1
+++ <17b> DW_AT_declaration : 1
+++ <1><17b>: Abbrev Number: 0
+++ Compilation Unit @ offset 0x17c:
+++ Length: 0x5af (32-bit)
+++ Version: 4
+++ Abbrev Offset: 0x0
+++ Pointer Size: 8
+++ Section contributions:
+++ .debug_abbrev.dwo: 0x154 0x21d
+++ .debug_line.dwo: 0x40 0x3d
+++ .debug_loc.dwo: 0x0 0x0
+++ .debug_str_offsets.dwo: 0x14 0x44
+++ <0><187>: Abbrev Number: 12 (DW_TAG_compile_unit)
+++ <188> DW_AT_producer : GNU C++ 4.7.x-google 20120720 (prerelease)
+++ <1b3> DW_AT_language : 4 (C++)
+++ <1b4> DW_AT_name : dwp_test_1.cc
+++ <1c2> DW_AT_comp_dir : /home/ccoutant/opensource/binutils-git/binutils/gold/testsuite
+++ <201> DW_AT_GNU_dwo_id : 0x52f9c6092fdc3727
+++ <1><209>: Abbrev Number: 13 (DW_TAG_class_type)
+++ <20a> DW_AT_name : C1
+++ <20d> DW_AT_signature : signature: 0xb5faa2a4b7a919c4
+++ <215> DW_AT_declaration : 1
+++ <215> DW_AT_sibling : <0x242>
+++ <2><219>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <21a> DW_AT_external : 1
+++ <21a> DW_AT_name : (indexed string: 0x0): testcase1
+++ <21b> DW_AT_decl_file : 1
+++ <21c> DW_AT_decl_line : 28
+++ <21d> DW_AT_linkage_name: (indexed string: 0xc): _ZN2C19testcase1Ev
+++ <21e> DW_AT_type : <0x249>
+++ <222> DW_AT_accessibility: 1 (public)
+++ <223> DW_AT_declaration : 1
+++ <2><223>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <224> DW_AT_external : 1
+++ <224> DW_AT_name : (indexed string: 0x1): testcase2
+++ <225> DW_AT_decl_file : 1
+++ <226> DW_AT_decl_line : 31
+++ <227> DW_AT_linkage_name: (indexed string: 0xd): _ZN2C19testcase2Ev
+++ <228> DW_AT_type : <0x249>
+++ <22c> DW_AT_accessibility: 1 (public)
+++ <22d> DW_AT_declaration : 1
+++ <2><22d>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <22e> DW_AT_external : 1
+++ <22e> DW_AT_name : (indexed string: 0x4): testcase3
+++ <22f> DW_AT_decl_file : 1
+++ <230> DW_AT_decl_line : 32
+++ <231> DW_AT_linkage_name: (indexed string: 0xe): _ZN2C19testcase3Ev
+++ <232> DW_AT_type : <0x249>
+++ <236> DW_AT_accessibility: 1 (public)
+++ <237> DW_AT_declaration : 1
+++ <2><237>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <238> DW_AT_external : 1
+++ <238> DW_AT_name : (indexed string: 0xa): testcase4
+++ <239> DW_AT_decl_file : 1
+++ <23a> DW_AT_decl_line : 33
+++ <23b> DW_AT_linkage_name: (indexed string: 0xf): _ZN2C19testcase4Ev
+++ <23c> DW_AT_type : <0x249>
+++ <240> DW_AT_accessibility: 1 (public)
+++ <241> DW_AT_declaration : 1
+++ <2><241>: Abbrev Number: 0
+++ <1><242>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <243> DW_AT_byte_size : 4
+++ <244> DW_AT_encoding : 5 (signed)
+++ <245> DW_AT_name : int
+++ <1><249>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <24a> DW_AT_byte_size : 1
+++ <24b> DW_AT_encoding : 2 (boolean)
+++ <24c> DW_AT_name : bool
+++ <1><251>: Abbrev Number: 15 (DW_TAG_pointer_type)
+++ <252> DW_AT_byte_size : 8
+++ <253> DW_AT_type : signature: 0xb5faa2a4b7a919c4
+++ <1><25b>: Abbrev Number: 13 (DW_TAG_class_type)
+++ <25c> DW_AT_name : C2
+++ <25f> DW_AT_signature : signature: 0xab98c7bc886f5266
+++ <267> DW_AT_declaration : 1
+++ <267> DW_AT_sibling : <0x294>
+++ <2><26b>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <26c> DW_AT_external : 1
+++ <26c> DW_AT_name : (indexed string: 0x0): testcase1
+++ <26d> DW_AT_decl_file : 1
+++ <26e> DW_AT_decl_line : 40
+++ <26f> DW_AT_linkage_name: (indexed string: 0x7): _ZN2C29testcase1Ev
+++ <270> DW_AT_type : <0x249>
+++ <274> DW_AT_accessibility: 1 (public)
+++ <275> DW_AT_declaration : 1
+++ <2><275>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <276> DW_AT_external : 1
+++ <276> DW_AT_name : (indexed string: 0x1): testcase2
+++ <277> DW_AT_decl_file : 1
+++ <278> DW_AT_decl_line : 41
+++ <279> DW_AT_linkage_name: (indexed string: 0x8): _ZN2C29testcase2Ev
+++ <27a> DW_AT_type : <0x249>
+++ <27e> DW_AT_accessibility: 1 (public)
+++ <27f> DW_AT_declaration : 1
+++ <2><27f>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <280> DW_AT_external : 1
+++ <280> DW_AT_name : (indexed string: 0x4): testcase3
+++ <281> DW_AT_decl_file : 1
+++ <282> DW_AT_decl_line : 42
+++ <283> DW_AT_linkage_name: (indexed string: 0x9): _ZN2C29testcase3Ev
+++ <284> DW_AT_type : <0x249>
+++ <288> DW_AT_accessibility: 1 (public)
+++ <289> DW_AT_declaration : 1
+++ <2><289>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <28a> DW_AT_external : 1
+++ <28a> DW_AT_name : (indexed string: 0xa): testcase4
+++ <28b> DW_AT_decl_file : 1
+++ <28c> DW_AT_decl_line : 43
+++ <28d> DW_AT_linkage_name: (indexed string: 0xb): _ZN2C29testcase4Ev
+++ <28e> DW_AT_type : <0x249>
+++ <292> DW_AT_accessibility: 1 (public)
+++ <293> DW_AT_declaration : 1
+++ <2><293>: Abbrev Number: 0
+++ <1><294>: Abbrev Number: 15 (DW_TAG_pointer_type)
+++ <295> DW_AT_byte_size : 8
+++ <296> DW_AT_type : signature: 0xab98c7bc886f5266
+++ <1><29e>: Abbrev Number: 13 (DW_TAG_class_type)
+++ <29f> DW_AT_name : C3
+++ <2a2> DW_AT_signature : signature: 0xb534bdc1f01629bb
+++ <2aa> DW_AT_declaration : 1
+++ <2aa> DW_AT_sibling : <0x2cd>
+++ <2><2ae>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <2af> DW_AT_external : 1
+++ <2af> DW_AT_name : (indexed string: 0x0): testcase1
+++ <2b0> DW_AT_decl_file : 1
+++ <2b1> DW_AT_decl_line : 50
+++ <2b2> DW_AT_linkage_name: (indexed string: 0x2): _ZN2C39testcase1Ev
+++ <2b3> DW_AT_type : <0x249>
+++ <2b7> DW_AT_accessibility: 1 (public)
+++ <2b8> DW_AT_declaration : 1
+++ <2><2b8>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <2b9> DW_AT_external : 1
+++ <2b9> DW_AT_name : (indexed string: 0x1): testcase2
+++ <2ba> DW_AT_decl_file : 1
+++ <2bb> DW_AT_decl_line : 51
+++ <2bc> DW_AT_linkage_name: (indexed string: 0x3): _ZN2C39testcase2Ev
+++ <2bd> DW_AT_type : <0x249>
+++ <2c1> DW_AT_accessibility: 1 (public)
+++ <2c2> DW_AT_declaration : 1
+++ <2><2c2>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <2c3> DW_AT_external : 1
+++ <2c3> DW_AT_name : (indexed string: 0x4): testcase3
+++ <2c4> DW_AT_decl_file : 1
+++ <2c5> DW_AT_decl_line : 52
+++ <2c6> DW_AT_linkage_name: (indexed string: 0x5): _ZN2C39testcase3Ev
+++ <2c7> DW_AT_type : <0x249>
+++ <2cb> DW_AT_accessibility: 1 (public)
+++ <2cc> DW_AT_declaration : 1
+++ <2><2cc>: Abbrev Number: 0
+++ <1><2cd>: Abbrev Number: 15 (DW_TAG_pointer_type)
+++ <2ce> DW_AT_byte_size : 8
+++ <2cf> DW_AT_type : signature: 0xb534bdc1f01629bb
+++ <1><2d7>: Abbrev Number: 16 (DW_TAG_subprogram)
+++ <2d8> DW_AT_external : 1
+++ <2d8> DW_AT_name : f13i
+++ <2dd> DW_AT_decl_file : 1
+++ <2de> DW_AT_decl_line : 70
+++ <2df> DW_AT_linkage_name: _Z4f13iv
+++ <2e8> DW_AT_low_pc : (addr_index: 0x0): <no .debug_addr section>
+++ <2e9> DW_AT_high_pc : 0x6
+++ <2f1> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <2f3> DW_AT_GNU_all_call_sites: 1
+++ <1><2f3>: Abbrev Number: 17 (DW_TAG_subprogram)
+++ <2f4> DW_AT_specification: <0x219>
+++ <2f8> DW_AT_decl_file : 2
+++ <2f9> DW_AT_decl_line : 30
+++ <2fa> DW_AT_low_pc : (addr_index: 0x1): <no .debug_addr section>
+++ <2fb> DW_AT_high_pc : 0x20
+++ <303> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <305> DW_AT_object_pointer: <0x30d>
+++ <309> DW_AT_GNU_all_tail_call_sites: 1
+++ <309> DW_AT_sibling : <0x317>
+++ <2><30d>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <30e> DW_AT_name : (indexed string: 0x10): this
+++ <30f> DW_AT_type : <0x317>
+++ <313> DW_AT_artificial : 1
+++ <313> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><316>: Abbrev Number: 0
+++ <1><317>: Abbrev Number: 19 (DW_TAG_const_type)
+++ <318> DW_AT_type : <0x251>
+++ <1><31c>: Abbrev Number: 20 (DW_TAG_subprogram)
+++ <31d> DW_AT_specification: <0x223>
+++ <321> DW_AT_decl_file : 2
+++ <322> DW_AT_decl_line : 38
+++ <323> DW_AT_low_pc : (addr_index: 0x2): <no .debug_addr section>
+++ <324> DW_AT_high_pc : 0x18
+++ <32c> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <32e> DW_AT_object_pointer: <0x336>
+++ <332> DW_AT_GNU_all_call_sites: 1
+++ <332> DW_AT_sibling : <0x340>
+++ <2><336>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <337> DW_AT_name : (indexed string: 0x10): this
+++ <338> DW_AT_type : <0x317>
+++ <33c> DW_AT_artificial : 1
+++ <33c> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><33f>: Abbrev Number: 0
+++ <1><340>: Abbrev Number: 20 (DW_TAG_subprogram)
+++ <341> DW_AT_specification: <0x22d>
+++ <345> DW_AT_decl_file : 2
+++ <346> DW_AT_decl_line : 46
+++ <347> DW_AT_low_pc : (addr_index: 0x3): <no .debug_addr section>
+++ <348> DW_AT_high_pc : 0x18
+++ <350> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <352> DW_AT_object_pointer: <0x35a>
+++ <356> DW_AT_GNU_all_call_sites: 1
+++ <356> DW_AT_sibling : <0x364>
+++ <2><35a>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <35b> DW_AT_name : (indexed string: 0x10): this
+++ <35c> DW_AT_type : <0x317>
+++ <360> DW_AT_artificial : 1
+++ <360> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><363>: Abbrev Number: 0
+++ <1><364>: Abbrev Number: 20 (DW_TAG_subprogram)
+++ <365> DW_AT_specification: <0x237>
+++ <369> DW_AT_decl_file : 2
+++ <36a> DW_AT_decl_line : 54
+++ <36b> DW_AT_low_pc : (addr_index: 0x4): <no .debug_addr section>
+++ <36c> DW_AT_high_pc : 0x16
+++ <374> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <376> DW_AT_object_pointer: <0x37e>
+++ <37a> DW_AT_GNU_all_call_sites: 1
+++ <37a> DW_AT_sibling : <0x388>
+++ <2><37e>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <37f> DW_AT_name : (indexed string: 0x10): this
+++ <380> DW_AT_type : <0x317>
+++ <384> DW_AT_artificial : 1
+++ <384> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><387>: Abbrev Number: 0
+++ <1><388>: Abbrev Number: 20 (DW_TAG_subprogram)
+++ <389> DW_AT_specification: <0x26b>
+++ <38d> DW_AT_decl_file : 2
+++ <38e> DW_AT_decl_line : 62
+++ <38f> DW_AT_low_pc : (addr_index: 0x5): <no .debug_addr section>
+++ <390> DW_AT_high_pc : 0x16
+++ <398> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <39a> DW_AT_object_pointer: <0x3a2>
+++ <39e> DW_AT_GNU_all_call_sites: 1
+++ <39e> DW_AT_sibling : <0x3ac>
+++ <2><3a2>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <3a3> DW_AT_name : (indexed string: 0x10): this
+++ <3a4> DW_AT_type : <0x3ac>
+++ <3a8> DW_AT_artificial : 1
+++ <3a8> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><3ab>: Abbrev Number: 0
+++ <1><3ac>: Abbrev Number: 19 (DW_TAG_const_type)
+++ <3ad> DW_AT_type : <0x294>
+++ <1><3b1>: Abbrev Number: 20 (DW_TAG_subprogram)
+++ <3b2> DW_AT_specification: <0x275>
+++ <3b6> DW_AT_decl_file : 2
+++ <3b7> DW_AT_decl_line : 72
+++ <3b8> DW_AT_low_pc : (addr_index: 0x6): <no .debug_addr section>
+++ <3b9> DW_AT_high_pc : 0x1b
+++ <3c1> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <3c3> DW_AT_object_pointer: <0x3cb>
+++ <3c7> DW_AT_GNU_all_call_sites: 1
+++ <3c7> DW_AT_sibling : <0x3d5>
+++ <2><3cb>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <3cc> DW_AT_name : (indexed string: 0x10): this
+++ <3cd> DW_AT_type : <0x3ac>
+++ <3d1> DW_AT_artificial : 1
+++ <3d1> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><3d4>: Abbrev Number: 0
+++ <1><3d5>: Abbrev Number: 20 (DW_TAG_subprogram)
+++ <3d6> DW_AT_specification: <0x27f>
+++ <3da> DW_AT_decl_file : 2
+++ <3db> DW_AT_decl_line : 82
+++ <3dc> DW_AT_low_pc : (addr_index: 0x7): <no .debug_addr section>
+++ <3dd> DW_AT_high_pc : 0x1b
+++ <3e5> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <3e7> DW_AT_object_pointer: <0x3ef>
+++ <3eb> DW_AT_GNU_all_call_sites: 1
+++ <3eb> DW_AT_sibling : <0x3f9>
+++ <2><3ef>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <3f0> DW_AT_name : (indexed string: 0x10): this
+++ <3f1> DW_AT_type : <0x3ac>
+++ <3f5> DW_AT_artificial : 1
+++ <3f5> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><3f8>: Abbrev Number: 0
+++ <1><3f9>: Abbrev Number: 20 (DW_TAG_subprogram)
+++ <3fa> DW_AT_specification: <0x289>
+++ <3fe> DW_AT_decl_file : 2
+++ <3ff> DW_AT_decl_line : 92
+++ <400> DW_AT_low_pc : (addr_index: 0x8): <no .debug_addr section>
+++ <401> DW_AT_high_pc : 0x19
+++ <409> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <40b> DW_AT_object_pointer: <0x413>
+++ <40f> DW_AT_GNU_all_call_sites: 1
+++ <40f> DW_AT_sibling : <0x41d>
+++ <2><413>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <414> DW_AT_name : (indexed string: 0x10): this
+++ <415> DW_AT_type : <0x3ac>
+++ <419> DW_AT_artificial : 1
+++ <419> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><41c>: Abbrev Number: 0
+++ <1><41d>: Abbrev Number: 20 (DW_TAG_subprogram)
+++ <41e> DW_AT_specification: <0x2ae>
+++ <422> DW_AT_decl_file : 2
+++ <423> DW_AT_decl_line : 102
+++ <424> DW_AT_low_pc : (addr_index: 0x9): <no .debug_addr section>
+++ <425> DW_AT_high_pc : 0x19
+++ <42d> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <42f> DW_AT_object_pointer: <0x437>
+++ <433> DW_AT_GNU_all_call_sites: 1
+++ <433> DW_AT_sibling : <0x441>
+++ <2><437>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <438> DW_AT_name : (indexed string: 0x10): this
+++ <439> DW_AT_type : <0x441>
+++ <43d> DW_AT_artificial : 1
+++ <43d> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><440>: Abbrev Number: 0
+++ <1><441>: Abbrev Number: 19 (DW_TAG_const_type)
+++ <442> DW_AT_type : <0x2cd>
+++ <1><446>: Abbrev Number: 17 (DW_TAG_subprogram)
+++ <447> DW_AT_specification: <0x2b8>
+++ <44b> DW_AT_decl_file : 2
+++ <44c> DW_AT_decl_line : 112
+++ <44d> DW_AT_low_pc : (addr_index: 0xa): <no .debug_addr section>
+++ <44e> DW_AT_high_pc : 0x1f
+++ <456> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <458> DW_AT_object_pointer: <0x460>
+++ <45c> DW_AT_GNU_all_tail_call_sites: 1
+++ <45c> DW_AT_sibling : <0x46a>
+++ <2><460>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <461> DW_AT_name : (indexed string: 0x10): this
+++ <462> DW_AT_type : <0x441>
+++ <466> DW_AT_artificial : 1
+++ <466> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><469>: Abbrev Number: 0
+++ <1><46a>: Abbrev Number: 21 (DW_TAG_subprogram)
+++ <46b> DW_AT_external : 1
+++ <46b> DW_AT_name : f11a
+++ <470> DW_AT_decl_file : 2
+++ <471> DW_AT_decl_line : 120
+++ <472> DW_AT_linkage_name: _Z4f11av
+++ <47b> DW_AT_type : <0x242>
+++ <47f> DW_AT_low_pc : (addr_index: 0xb): <no .debug_addr section>
+++ <480> DW_AT_high_pc : 0xb
+++ <488> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <48a> DW_AT_GNU_all_call_sites: 1
+++ <1><48a>: Abbrev Number: 17 (DW_TAG_subprogram)
+++ <48b> DW_AT_specification: <0x2c2>
+++ <48f> DW_AT_decl_file : 2
+++ <490> DW_AT_decl_line : 126
+++ <491> DW_AT_low_pc : (addr_index: 0xc): <no .debug_addr section>
+++ <492> DW_AT_high_pc : 0x20
+++ <49a> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <49c> DW_AT_object_pointer: <0x4a4>
+++ <4a0> DW_AT_GNU_all_tail_call_sites: 1
+++ <4a0> DW_AT_sibling : <0x4ae>
+++ <2><4a4>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <4a5> DW_AT_name : (indexed string: 0x10): this
+++ <4a6> DW_AT_type : <0x441>
+++ <4aa> DW_AT_artificial : 1
+++ <4aa> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><4ad>: Abbrev Number: 0
+++ <1><4ae>: Abbrev Number: 22 (DW_TAG_subprogram)
+++ <4af> DW_AT_external : 1
+++ <4af> DW_AT_name : t12
+++ <4b3> DW_AT_decl_file : 2
+++ <4b4> DW_AT_decl_line : 134
+++ <4b5> DW_AT_linkage_name: _Z3t12v
+++ <4bd> DW_AT_type : <0x249>
+++ <4c1> DW_AT_low_pc : (addr_index: 0xd): <no .debug_addr section>
+++ <4c2> DW_AT_high_pc : 0x19
+++ <4ca> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <4cc> DW_AT_GNU_all_tail_call_sites: 1
+++ <1><4cc>: Abbrev Number: 22 (DW_TAG_subprogram)
+++ <4cd> DW_AT_external : 1
+++ <4cd> DW_AT_name : t13
+++ <4d1> DW_AT_decl_file : 2
+++ <4d2> DW_AT_decl_line : 142
+++ <4d3> DW_AT_linkage_name: _Z3t13v
+++ <4db> DW_AT_type : <0x249>
+++ <4df> DW_AT_low_pc : (addr_index: 0xe): <no .debug_addr section>
+++ <4e0> DW_AT_high_pc : 0x14
+++ <4e8> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <4ea> DW_AT_GNU_all_tail_call_sites: 1
+++ <1><4ea>: Abbrev Number: 23 (DW_TAG_subprogram)
+++ <4eb> DW_AT_external : 1
+++ <4eb> DW_AT_name : t14
+++ <4ef> DW_AT_decl_file : 2
+++ <4f0> DW_AT_decl_line : 150
+++ <4f1> DW_AT_linkage_name: _Z3t14v
+++ <4f9> DW_AT_type : <0x249>
+++ <4fd> DW_AT_low_pc : (addr_index: 0xf): <no .debug_addr section>
+++ <4fe> DW_AT_high_pc : 0x61
+++ <506> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <508> DW_AT_GNU_all_tail_call_sites: 1
+++ <508> DW_AT_sibling : <0x532>
+++ <2><50c>: Abbrev Number: 24 (DW_TAG_lexical_block)
+++ <50d> DW_AT_low_pc : (addr_index: 0x10): <no .debug_addr section>
+++ <50e> DW_AT_high_pc : 0x57
+++ <3><516>: Abbrev Number: 25 (DW_TAG_variable)
+++ <517> DW_AT_name : s1
+++ <51a> DW_AT_decl_file : 2
+++ <51b> DW_AT_decl_line : 152
+++ <51c> DW_AT_type : <0x532>
+++ <520> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <3><523>: Abbrev Number: 25 (DW_TAG_variable)
+++ <524> DW_AT_name : s2
+++ <527> DW_AT_decl_file : 2
+++ <528> DW_AT_decl_line : 153
+++ <529> DW_AT_type : <0x532>
+++ <52d> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32)
+++ <3><530>: Abbrev Number: 0
+++ <2><531>: Abbrev Number: 0
+++ <1><532>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <533> DW_AT_byte_size : 8
+++ <534> DW_AT_type : <0x538>
+++ <1><538>: Abbrev Number: 19 (DW_TAG_const_type)
+++ <539> DW_AT_type : <0x53d>
+++ <1><53d>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <53e> DW_AT_byte_size : 1
+++ <53f> DW_AT_encoding : 6 (signed char)
+++ <540> DW_AT_name : char
+++ <1><545>: Abbrev Number: 23 (DW_TAG_subprogram)
+++ <546> DW_AT_external : 1
+++ <546> DW_AT_name : t15
+++ <54a> DW_AT_decl_file : 2
+++ <54b> DW_AT_decl_line : 163
+++ <54c> DW_AT_linkage_name: _Z3t15v
+++ <554> DW_AT_type : <0x249>
+++ <558> DW_AT_low_pc : (addr_index: 0x11): <no .debug_addr section>
+++ <559> DW_AT_high_pc : 0x5d
+++ <561> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <563> DW_AT_GNU_all_tail_call_sites: 1
+++ <563> DW_AT_sibling : <0x58d>
+++ <2><567>: Abbrev Number: 24 (DW_TAG_lexical_block)
+++ <568> DW_AT_low_pc : (addr_index: 0x12): <no .debug_addr section>
+++ <569> DW_AT_high_pc : 0x53
+++ <3><571>: Abbrev Number: 25 (DW_TAG_variable)
+++ <572> DW_AT_name : s1
+++ <575> DW_AT_decl_file : 2
+++ <576> DW_AT_decl_line : 165
+++ <577> DW_AT_type : <0x58d>
+++ <57b> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <3><57e>: Abbrev Number: 25 (DW_TAG_variable)
+++ <57f> DW_AT_name : s2
+++ <582> DW_AT_decl_file : 2
+++ <583> DW_AT_decl_line : 166
+++ <584> DW_AT_type : <0x58d>
+++ <588> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32)
+++ <3><58b>: Abbrev Number: 0
+++ <2><58c>: Abbrev Number: 0
+++ <1><58d>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <58e> DW_AT_byte_size : 8
+++ <58f> DW_AT_type : <0x593>
+++ <1><593>: Abbrev Number: 19 (DW_TAG_const_type)
+++ <594> DW_AT_type : <0x598>
+++ <1><598>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <599> DW_AT_byte_size : 4
+++ <59a> DW_AT_encoding : 5 (signed)
+++ <59b> DW_AT_name : wchar_t
+++ <1><5a3>: Abbrev Number: 22 (DW_TAG_subprogram)
+++ <5a4> DW_AT_external : 1
+++ <5a4> DW_AT_name : t16
+++ <5a8> DW_AT_decl_file : 2
+++ <5a9> DW_AT_decl_line : 176
+++ <5aa> DW_AT_linkage_name: _Z3t16v
+++ <5b2> DW_AT_type : <0x249>
+++ <5b6> DW_AT_low_pc : (addr_index: 0x13): <no .debug_addr section>
+++ <5b7> DW_AT_high_pc : 0x13
+++ <5bf> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <5c1> DW_AT_GNU_all_tail_call_sites: 1
+++ <1><5c1>: Abbrev Number: 26 (DW_TAG_subprogram)
+++ <5c2> DW_AT_external : 1
+++ <5c2> DW_AT_name : t17
+++ <5c6> DW_AT_decl_file : 2
+++ <5c7> DW_AT_decl_line : 184
+++ <5c8> DW_AT_linkage_name: _Z3t17v
+++ <5d0> DW_AT_type : <0x249>
+++ <5d4> DW_AT_low_pc : (addr_index: 0x14): <no .debug_addr section>
+++ <5d5> DW_AT_high_pc : 0x5f
+++ <5dd> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <5df> DW_AT_GNU_all_call_sites: 1
+++ <5df> DW_AT_sibling : <0x612>
+++ <2><5e3>: Abbrev Number: 24 (DW_TAG_lexical_block)
+++ <5e4> DW_AT_low_pc : (addr_index: 0x15): <no .debug_addr section>
+++ <5e5> DW_AT_high_pc : 0x59
+++ <3><5ed>: Abbrev Number: 25 (DW_TAG_variable)
+++ <5ee> DW_AT_name : c
+++ <5f0> DW_AT_decl_file : 2
+++ <5f1> DW_AT_decl_line : 186
+++ <5f2> DW_AT_type : <0x53d>
+++ <5f6> DW_AT_location : 2 byte block: 91 6f (DW_OP_fbreg: -17)
+++ <3><5f9>: Abbrev Number: 24 (DW_TAG_lexical_block)
+++ <5fa> DW_AT_low_pc : (addr_index: 0x16): <no .debug_addr section>
+++ <5fb> DW_AT_high_pc : 0x50
+++ <4><603>: Abbrev Number: 25 (DW_TAG_variable)
+++ <604> DW_AT_name : i
+++ <606> DW_AT_decl_file : 2
+++ <607> DW_AT_decl_line : 187
+++ <608> DW_AT_type : <0x242>
+++ <60c> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <4><60f>: Abbrev Number: 0
+++ <3><610>: Abbrev Number: 0
+++ <2><611>: Abbrev Number: 0
+++ <1><612>: Abbrev Number: 23 (DW_TAG_subprogram)
+++ <613> DW_AT_external : 1
+++ <613> DW_AT_name : t18
+++ <617> DW_AT_decl_file : 2
+++ <618> DW_AT_decl_line : 199
+++ <619> DW_AT_linkage_name: _Z3t18v
+++ <621> DW_AT_type : <0x249>
+++ <625> DW_AT_low_pc : (addr_index: 0x17): <no .debug_addr section>
+++ <626> DW_AT_high_pc : 0x5f
+++ <62e> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <630> DW_AT_GNU_all_tail_call_sites: 1
+++ <630> DW_AT_sibling : <0x67a>
+++ <2><634>: Abbrev Number: 24 (DW_TAG_lexical_block)
+++ <635> DW_AT_low_pc : (addr_index: 0x18): <no .debug_addr section>
+++ <636> DW_AT_high_pc : 0x55
+++ <3><63e>: Abbrev Number: 25 (DW_TAG_variable)
+++ <63f> DW_AT_name : c
+++ <641> DW_AT_decl_file : 2
+++ <642> DW_AT_decl_line : 201
+++ <643> DW_AT_type : <0x53d>
+++ <647> DW_AT_location : 2 byte block: 91 6f (DW_OP_fbreg: -17)
+++ <3><64a>: Abbrev Number: 24 (DW_TAG_lexical_block)
+++ <64b> DW_AT_low_pc : (addr_index: 0x19): <no .debug_addr section>
+++ <64c> DW_AT_high_pc : 0x4c
+++ <4><654>: Abbrev Number: 25 (DW_TAG_variable)
+++ <655> DW_AT_name : i
+++ <657> DW_AT_decl_file : 2
+++ <658> DW_AT_decl_line : 202
+++ <659> DW_AT_type : <0x242>
+++ <65d> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <4><660>: Abbrev Number: 24 (DW_TAG_lexical_block)
+++ <661> DW_AT_low_pc : (addr_index: 0x1a): <no .debug_addr section>
+++ <662> DW_AT_high_pc : 0x34
+++ <5><66a>: Abbrev Number: 25 (DW_TAG_variable)
+++ <66b> DW_AT_name : s
+++ <66d> DW_AT_decl_file : 2
+++ <66e> DW_AT_decl_line : 204
+++ <66f> DW_AT_type : <0x532>
+++ <673> DW_AT_location : 2 byte block: 91 60 (DW_OP_fbreg: -32)
+++ <5><676>: Abbrev Number: 0
+++ <4><677>: Abbrev Number: 0
+++ <3><678>: Abbrev Number: 0
+++ <2><679>: Abbrev Number: 0
+++ <1><67a>: Abbrev Number: 27 (DW_TAG_variable)
+++ <67b> DW_AT_name : c3
+++ <67e> DW_AT_decl_file : 1
+++ <67f> DW_AT_decl_line : 57
+++ <680> DW_AT_type : signature: 0xb534bdc1f01629bb
+++ <688> DW_AT_external : 1
+++ <688> DW_AT_declaration : 1
+++ <1><688>: Abbrev Number: 28 (DW_TAG_variable)
+++ <689> DW_AT_name : v2
+++ <68c> DW_AT_decl_file : 1
+++ <68d> DW_AT_decl_line : 59
+++ <68e> DW_AT_type : <0x242>
+++ <692> DW_AT_external : 1
+++ <692> DW_AT_declaration : 1
+++ <1><692>: Abbrev Number: 28 (DW_TAG_variable)
+++ <693> DW_AT_name : v3
+++ <696> DW_AT_decl_file : 1
+++ <697> DW_AT_decl_line : 60
+++ <698> DW_AT_type : <0x242>
+++ <69c> DW_AT_external : 1
+++ <69c> DW_AT_declaration : 1
+++ <1><69c>: Abbrev Number: 29 (DW_TAG_array_type)
+++ <69d> DW_AT_type : <0x53d>
+++ <6a1> DW_AT_sibling : <0x6a7>
+++ <2><6a5>: Abbrev Number: 30 (DW_TAG_subrange_type)
+++ <2><6a6>: Abbrev Number: 0
+++ <1><6a7>: Abbrev Number: 28 (DW_TAG_variable)
+++ <6a8> DW_AT_name : v4
+++ <6ab> DW_AT_decl_file : 1
+++ <6ac> DW_AT_decl_line : 61
+++ <6ad> DW_AT_type : <0x69c>
+++ <6b1> DW_AT_external : 1
+++ <6b1> DW_AT_declaration : 1
+++ <1><6b1>: Abbrev Number: 28 (DW_TAG_variable)
+++ <6b2> DW_AT_name : v5
+++ <6b5> DW_AT_decl_file : 1
+++ <6b6> DW_AT_decl_line : 62
+++ <6b7> DW_AT_type : <0x69c>
+++ <6bb> DW_AT_external : 1
+++ <6bb> DW_AT_declaration : 1
+++ <1><6bb>: Abbrev Number: 29 (DW_TAG_array_type)
+++ <6bc> DW_AT_type : <0x532>
+++ <6c0> DW_AT_sibling : <0x6c6>
+++ <2><6c4>: Abbrev Number: 30 (DW_TAG_subrange_type)
+++ <2><6c5>: Abbrev Number: 0
+++ <1><6c6>: Abbrev Number: 28 (DW_TAG_variable)
+++ <6c7> DW_AT_name : t17data
+++ <6cf> DW_AT_decl_file : 1
+++ <6d0> DW_AT_decl_line : 83
+++ <6d1> DW_AT_type : <0x6bb>
+++ <6d5> DW_AT_external : 1
+++ <6d5> DW_AT_declaration : 1
+++ <1><6d5>: Abbrev Number: 31 (DW_TAG_variable)
+++ <6d6> DW_AT_name : p6
+++ <6d9> DW_AT_decl_file : 2
+++ <6da> DW_AT_decl_line : 69
+++ <6db> DW_AT_type : <0x6e2>
+++ <6df> DW_AT_external : 1
+++ <6df> DW_AT_location : 2 byte block: fb 1b (DW_OP_GNU_addr_index <0x1b>)
+++ <1><6e2>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <6e3> DW_AT_byte_size : 8
+++ <6e4> DW_AT_type : <0x242>
+++ <1><6e8>: Abbrev Number: 31 (DW_TAG_variable)
+++ <6e9> DW_AT_name : p7
+++ <6ec> DW_AT_decl_file : 2
+++ <6ed> DW_AT_decl_line : 79
+++ <6ee> DW_AT_type : <0x6e2>
+++ <6f2> DW_AT_external : 1
+++ <6f2> DW_AT_location : 2 byte block: fb 1c (DW_OP_GNU_addr_index <0x1c>)
+++ <1><6f5>: Abbrev Number: 31 (DW_TAG_variable)
+++ <6f6> DW_AT_name : p8
+++ <6f9> DW_AT_decl_file : 2
+++ <6fa> DW_AT_decl_line : 89
+++ <6fb> DW_AT_type : <0x702>
+++ <6ff> DW_AT_external : 1
+++ <6ff> DW_AT_location : 2 byte block: fb 1d (DW_OP_GNU_addr_index <0x1d>)
+++ <1><702>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <703> DW_AT_byte_size : 8
+++ <704> DW_AT_type : <0x53d>
+++ <1><708>: Abbrev Number: 31 (DW_TAG_variable)
+++ <709> DW_AT_name : p9
+++ <70c> DW_AT_decl_file : 2
+++ <70d> DW_AT_decl_line : 99
+++ <70e> DW_AT_type : <0x702>
+++ <712> DW_AT_external : 1
+++ <712> DW_AT_location : 2 byte block: fb 1e (DW_OP_GNU_addr_index <0x1e>)
+++ <1><715>: Abbrev Number: 9 (DW_TAG_subroutine_type)
+++ <716> DW_AT_type : <0x242>
+++ <1><71a>: Abbrev Number: 31 (DW_TAG_variable)
+++ <71b> DW_AT_name : pfn
+++ <71f> DW_AT_decl_file : 2
+++ <720> DW_AT_decl_line : 109
+++ <721> DW_AT_type : <0x728>
+++ <725> DW_AT_external : 1
+++ <725> DW_AT_location : 2 byte block: fb 1f (DW_OP_GNU_addr_index <0x1f>)
+++ <1><728>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <729> DW_AT_byte_size : 8
+++ <72a> DW_AT_type : <0x715>
+++ <1><72e>: Abbrev Number: 0
+++ Compilation Unit @ offset 0x72f:
+++ Length: 0xcb (32-bit)
+++ Version: 4
+++ Abbrev Offset: 0x0
+++ Pointer Size: 8
+++ Section contributions:
+++ .debug_abbrev.dwo: 0x371 0xbd
+++ .debug_line.dwo: 0x7d 0x3e
+++ .debug_loc.dwo: 0x0 0x0
+++ .debug_str_offsets.dwo: 0x0 0x0
+++ <0><73a>: Abbrev Number: 10 (DW_TAG_compile_unit)
+++ <73b> DW_AT_producer : GNU C++ 4.7.x-google 20120720 (prerelease)
+++ <766> DW_AT_language : 4 (C++)
+++ <767> DW_AT_name : dwp_test_1b.cc
+++ <776> DW_AT_comp_dir : /home/ccoutant/opensource/binutils-git/binutils/gold/testsuite
+++ <7b5> DW_AT_GNU_dwo_id : 0xbd6ec13ea247eff6
+++ <1><7bd>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <7be> DW_AT_byte_size : 4
+++ <7bf> DW_AT_encoding : 5 (signed)
+++ <7c0> DW_AT_name : int
+++ <1><7c4>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <7c5> DW_AT_byte_size : 1
+++ <7c6> DW_AT_encoding : 2 (boolean)
+++ <7c7> DW_AT_name : bool
+++ <1><7cc>: Abbrev Number: 11 (DW_TAG_subprogram)
+++ <7cd> DW_AT_external : 1
+++ <7cd> DW_AT_name : t16a
+++ <7d2> DW_AT_decl_file : 1
+++ <7d3> DW_AT_decl_line : 32
+++ <7d4> DW_AT_linkage_name: _Z4t16av
+++ <7dd> DW_AT_type : <0x7c4>
+++ <7e1> DW_AT_low_pc : (addr_index: 0x0): <no .debug_addr section>
+++ <7e2> DW_AT_high_pc : 0x13
+++ <7ea> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <7ec> DW_AT_GNU_all_tail_call_sites: 1
+++ <1><7ec>: Abbrev Number: 12 (DW_TAG_variable)
+++ <7ed> DW_AT_name : c3
+++ <7f0> DW_AT_decl_file : 1
+++ <7f1> DW_AT_decl_line : 29
+++ <7f2> DW_AT_type : signature: 0xb534bdc1f01629bb
+++ <7fa> DW_AT_external : 1
+++ <7fa> DW_AT_location : 2 byte block: fb 1 (DW_OP_GNU_addr_index <0x1>)
+++ <1><7fd>: Abbrev Number: 0
+++ Compilation Unit @ offset 0x7fe:
+++ Length: 0x329 (32-bit)
+++ Version: 4
+++ Abbrev Offset: 0x0
+++ Pointer Size: 8
+++ Section contributions:
+++ .debug_abbrev.dwo: 0x42e 0x1f2
+++ .debug_line.dwo: 0xbb 0x3d
+++ .debug_loc.dwo: 0x0 0x0
+++ .debug_str_offsets.dwo: 0x58 0x18
+++ <0><809>: Abbrev Number: 12 (DW_TAG_compile_unit)
+++ <80a> DW_AT_producer : GNU C++ 4.7.x-google 20120720 (prerelease)
+++ <835> DW_AT_language : 4 (C++)
+++ <836> DW_AT_name : dwp_test_2.cc
+++ <844> DW_AT_comp_dir : /home/ccoutant/opensource/binutils-git/binutils/gold/testsuite
+++ <883> DW_AT_GNU_dwo_id : 0xcf0cab718ce0f8b9
+++ <1><88b>: Abbrev Number: 13 (DW_TAG_class_type)
+++ <88c> DW_AT_name : C1
+++ <88f> DW_AT_signature : signature: 0xb5faa2a4b7a919c4
+++ <897> DW_AT_declaration : 1
+++ <897> DW_AT_sibling : <0x8b7>
+++ <2><89b>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <89c> DW_AT_external : 1
+++ <89c> DW_AT_name : t1a
+++ <8a0> DW_AT_decl_file : 1
+++ <8a1> DW_AT_decl_line : 29
+++ <8a2> DW_AT_linkage_name: (indexed string: 0x4): _ZN2C13t1aEv
+++ <8a3> DW_AT_type : <0x8be>
+++ <8a7> DW_AT_accessibility: 1 (public)
+++ <8a8> DW_AT_declaration : 1
+++ <2><8a8>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <8a9> DW_AT_external : 1
+++ <8a9> DW_AT_name : t1_2
+++ <8ae> DW_AT_decl_file : 1
+++ <8af> DW_AT_decl_line : 30
+++ <8b0> DW_AT_linkage_name: (indexed string: 0x5): _ZN2C14t1_2Ev
+++ <8b1> DW_AT_type : <0x8b7>
+++ <8b5> DW_AT_accessibility: 1 (public)
+++ <8b6> DW_AT_declaration : 1
+++ <2><8b6>: Abbrev Number: 0
+++ <1><8b7>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <8b8> DW_AT_byte_size : 4
+++ <8b9> DW_AT_encoding : 5 (signed)
+++ <8ba> DW_AT_name : int
+++ <1><8be>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <8bf> DW_AT_byte_size : 1
+++ <8c0> DW_AT_encoding : 2 (boolean)
+++ <8c1> DW_AT_name : bool
+++ <1><8c6>: Abbrev Number: 15 (DW_TAG_pointer_type)
+++ <8c7> DW_AT_byte_size : 8
+++ <8c8> DW_AT_type : signature: 0xb5faa2a4b7a919c4
+++ <1><8d0>: Abbrev Number: 13 (DW_TAG_class_type)
+++ <8d1> DW_AT_name : C3
+++ <8d4> DW_AT_signature : signature: 0xb534bdc1f01629bb
+++ <8dc> DW_AT_declaration : 1
+++ <8dc> DW_AT_sibling : <0x8ed>
+++ <2><8e0>: Abbrev Number: 14 (DW_TAG_subprogram)
+++ <8e1> DW_AT_external : 1
+++ <8e1> DW_AT_name : f4
+++ <8e4> DW_AT_decl_file : 1
+++ <8e5> DW_AT_decl_line : 53
+++ <8e6> DW_AT_linkage_name: (indexed string: 0x3): _ZN2C32f4Ev
+++ <8e7> DW_AT_type : <0x8fc>
+++ <8eb> DW_AT_accessibility: 1 (public)
+++ <8ec> DW_AT_declaration : 1
+++ <2><8ec>: Abbrev Number: 0
+++ <1><8ed>: Abbrev Number: 15 (DW_TAG_pointer_type)
+++ <8ee> DW_AT_byte_size : 8
+++ <8ef> DW_AT_type : signature: 0xb534bdc1f01629bb
+++ <1><8f7>: Abbrev Number: 9 (DW_TAG_subroutine_type)
+++ <8f8> DW_AT_type : <0x8be>
+++ <1><8fc>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <8fd> DW_AT_byte_size : 8
+++ <8fe> DW_AT_type : <0x8f7>
+++ <1><902>: Abbrev Number: 16 (DW_TAG_subprogram)
+++ <903> DW_AT_external : 1
+++ <903> DW_AT_name : f13i
+++ <908> DW_AT_decl_file : 1
+++ <909> DW_AT_decl_line : 70
+++ <90a> DW_AT_linkage_name: _Z4f13iv
+++ <913> DW_AT_low_pc : (addr_index: 0x0): <no .debug_addr section>
+++ <914> DW_AT_high_pc : 0x6
+++ <91c> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <91e> DW_AT_GNU_all_call_sites: 1
+++ <1><91e>: Abbrev Number: 17 (DW_TAG_subprogram)
+++ <91f> DW_AT_specification: <0x8a8>
+++ <923> DW_AT_decl_file : 2
+++ <924> DW_AT_low_pc : (addr_index: 0x1): <no .debug_addr section>
+++ <925> DW_AT_high_pc : 0xf
+++ <92d> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <92f> DW_AT_object_pointer: <0x937>
+++ <933> DW_AT_GNU_all_call_sites: 1
+++ <933> DW_AT_sibling : <0x945>
+++ <2><937>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <938> DW_AT_name : this
+++ <93d> DW_AT_type : <0x945>
+++ <941> DW_AT_artificial : 1
+++ <941> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><944>: Abbrev Number: 0
+++ <1><945>: Abbrev Number: 19 (DW_TAG_const_type)
+++ <946> DW_AT_type : <0x8c6>
+++ <1><94a>: Abbrev Number: 20 (DW_TAG_subprogram)
+++ <94b> DW_AT_specification: <0x89b>
+++ <94f> DW_AT_decl_file : 2
+++ <950> DW_AT_decl_line : 36
+++ <951> DW_AT_low_pc : (addr_index: 0x2): <no .debug_addr section>
+++ <952> DW_AT_high_pc : 0x20
+++ <95a> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <95c> DW_AT_object_pointer: <0x964>
+++ <960> DW_AT_GNU_all_tail_call_sites: 1
+++ <960> DW_AT_sibling : <0x972>
+++ <2><964>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <965> DW_AT_name : this
+++ <96a> DW_AT_type : <0x945>
+++ <96e> DW_AT_artificial : 1
+++ <96e> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><971>: Abbrev Number: 0
+++ <1><972>: Abbrev Number: 21 (DW_TAG_subprogram)
+++ <973> DW_AT_external : 1
+++ <973> DW_AT_name : f10
+++ <977> DW_AT_decl_file : 2
+++ <978> DW_AT_decl_line : 72
+++ <979> DW_AT_linkage_name: _Z3f10v
+++ <981> DW_AT_type : <0x8b7>
+++ <985> DW_AT_low_pc : (addr_index: 0x3): <no .debug_addr section>
+++ <986> DW_AT_high_pc : 0xb
+++ <98e> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <990> DW_AT_GNU_all_call_sites: 1
+++ <1><990>: Abbrev Number: 22 (DW_TAG_subprogram)
+++ <991> DW_AT_external : 1
+++ <991> DW_AT_name : f11b
+++ <996> DW_AT_decl_file : 2
+++ <997> DW_AT_decl_line : 80
+++ <998> DW_AT_linkage_name: _Z4f11bPFivE
+++ <9a5> DW_AT_type : <0x8b7>
+++ <9a9> DW_AT_low_pc : (addr_index: 0x4): <no .debug_addr section>
+++ <9aa> DW_AT_high_pc : 0x14
+++ <9b2> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <9b4> DW_AT_GNU_all_tail_call_sites: 1
+++ <9b4> DW_AT_sibling : <0x9c7>
+++ <2><9b8>: Abbrev Number: 23 (DW_TAG_formal_parameter)
+++ <9b9> DW_AT_name : pfn
+++ <9bd> DW_AT_decl_file : 2
+++ <9be> DW_AT_decl_line : 80
+++ <9bf> DW_AT_type : <0x9cc>
+++ <9c3> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><9c6>: Abbrev Number: 0
+++ <1><9c7>: Abbrev Number: 9 (DW_TAG_subroutine_type)
+++ <9c8> DW_AT_type : <0x8b7>
+++ <1><9cc>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <9cd> DW_AT_byte_size : 8
+++ <9ce> DW_AT_type : <0x9c7>
+++ <1><9d2>: Abbrev Number: 24 (DW_TAG_subprogram)
+++ <9d3> DW_AT_specification: <0x8e0>
+++ <9d7> DW_AT_decl_file : 2
+++ <9d8> DW_AT_decl_line : 88
+++ <9d9> DW_AT_low_pc : (addr_index: 0x5): <no .debug_addr section>
+++ <9da> DW_AT_high_pc : 0xf
+++ <9e2> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <9e4> DW_AT_object_pointer: <0x9ec>
+++ <9e8> DW_AT_GNU_all_call_sites: 1
+++ <9e8> DW_AT_sibling : <0x9fa>
+++ <2><9ec>: Abbrev Number: 18 (DW_TAG_formal_parameter)
+++ <9ed> DW_AT_name : this
+++ <9f2> DW_AT_type : <0x9fa>
+++ <9f6> DW_AT_artificial : 1
+++ <9f6> DW_AT_location : 2 byte block: 91 68 (DW_OP_fbreg: -24)
+++ <2><9f9>: Abbrev Number: 0
+++ <1><9fa>: Abbrev Number: 19 (DW_TAG_const_type)
+++ <9fb> DW_AT_type : <0x8ed>
+++ <1><9ff>: Abbrev Number: 25 (DW_TAG_subroutine_type)
+++ <1><a00>: Abbrev Number: 21 (DW_TAG_subprogram)
+++ <a01> DW_AT_external : 1
+++ <a01> DW_AT_name : f13
+++ <a05> DW_AT_decl_file : 2
+++ <a06> DW_AT_decl_line : 96
+++ <a07> DW_AT_linkage_name: _Z3f13v
+++ <a0f> DW_AT_type : <0xa1e>
+++ <a13> DW_AT_low_pc : (addr_index: 0x6): <no .debug_addr section>
+++ <a14> DW_AT_high_pc : 0xb
+++ <a1c> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <a1e> DW_AT_GNU_all_call_sites: 1
+++ <1><a1e>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <a1f> DW_AT_byte_size : 8
+++ <a20> DW_AT_type : <0x9ff>
+++ <1><a24>: Abbrev Number: 21 (DW_TAG_subprogram)
+++ <a25> DW_AT_external : 1
+++ <a25> DW_AT_name : f14
+++ <a29> DW_AT_decl_file : 2
+++ <a2a> DW_AT_decl_line : 104
+++ <a2b> DW_AT_linkage_name: _Z3f14v
+++ <a33> DW_AT_type : <0xa42>
+++ <a37> DW_AT_low_pc : (addr_index: 0x7): <no .debug_addr section>
+++ <a38> DW_AT_high_pc : 0xb
+++ <a40> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <a42> DW_AT_GNU_all_call_sites: 1
+++ <1><a42>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <a43> DW_AT_byte_size : 8
+++ <a44> DW_AT_type : <0xa48>
+++ <1><a48>: Abbrev Number: 19 (DW_TAG_const_type)
+++ <a49> DW_AT_type : <0xa4d>
+++ <1><a4d>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <a4e> DW_AT_byte_size : 1
+++ <a4f> DW_AT_encoding : 6 (signed char)
+++ <a50> DW_AT_name : char
+++ <1><a55>: Abbrev Number: 21 (DW_TAG_subprogram)
+++ <a56> DW_AT_external : 1
+++ <a56> DW_AT_name : f15
+++ <a5a> DW_AT_decl_file : 2
+++ <a5b> DW_AT_decl_line : 112
+++ <a5c> DW_AT_linkage_name: _Z3f15v
+++ <a64> DW_AT_type : <0xa73>
+++ <a68> DW_AT_low_pc : (addr_index: 0x8): <no .debug_addr section>
+++ <a69> DW_AT_high_pc : 0xb
+++ <a71> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <a73> DW_AT_GNU_all_call_sites: 1
+++ <1><a73>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <a74> DW_AT_byte_size : 8
+++ <a75> DW_AT_type : <0xa79>
+++ <1><a79>: Abbrev Number: 19 (DW_TAG_const_type)
+++ <a7a> DW_AT_type : <0xa7e>
+++ <1><a7e>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <a7f> DW_AT_byte_size : 4
+++ <a80> DW_AT_encoding : 5 (signed)
+++ <a81> DW_AT_name : wchar_t
+++ <1><a89>: Abbrev Number: 26 (DW_TAG_subprogram)
+++ <a8a> DW_AT_external : 1
+++ <a8a> DW_AT_name : f18
+++ <a8e> DW_AT_decl_file : 2
+++ <a8f> DW_AT_decl_line : 127
+++ <a90> DW_AT_linkage_name: _Z3f18i
+++ <a98> DW_AT_type : <0xa42>
+++ <a9c> DW_AT_low_pc : (addr_index: 0x9): <no .debug_addr section>
+++ <a9d> DW_AT_high_pc : 0x44
+++ <aa5> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
+++ <aa7> DW_AT_GNU_all_call_sites: 1
+++ <aa7> DW_AT_sibling : <0xab8>
+++ <2><aab>: Abbrev Number: 23 (DW_TAG_formal_parameter)
+++ <aac> DW_AT_name : i
+++ <aae> DW_AT_decl_file : 2
+++ <aaf> DW_AT_decl_line : 127
+++ <ab0> DW_AT_type : <0x8b7>
+++ <ab4> DW_AT_location : 2 byte block: 91 6c (DW_OP_fbreg: -20)
+++ <2><ab7>: Abbrev Number: 0
+++ <1><ab8>: Abbrev Number: 27 (DW_TAG_variable)
+++ <ab9> DW_AT_name : v2
+++ <abc> DW_AT_decl_file : 2
+++ <abd> DW_AT_decl_line : 43
+++ <abe> DW_AT_type : <0x8b7>
+++ <ac2> DW_AT_external : 1
+++ <ac2> DW_AT_location : 2 byte block: fb a (DW_OP_GNU_addr_index <0xa>)
+++ <1><ac5>: Abbrev Number: 27 (DW_TAG_variable)
+++ <ac6> DW_AT_name : v3
+++ <ac9> DW_AT_decl_file : 2
+++ <aca> DW_AT_decl_line : 48
+++ <acb> DW_AT_type : <0x8b7>
+++ <acf> DW_AT_external : 1
+++ <acf> DW_AT_location : 2 byte block: fb b (DW_OP_GNU_addr_index <0xb>)
+++ <1><ad2>: Abbrev Number: 28 (DW_TAG_array_type)
+++ <ad3> DW_AT_type : <0xa4d>
+++ <ad7> DW_AT_sibling : <0xae2>
+++ <2><adb>: Abbrev Number: 29 (DW_TAG_subrange_type)
+++ <adc> DW_AT_type : <0xae2>
+++ <ae0> DW_AT_upper_bound : 12
+++ <2><ae1>: Abbrev Number: 0
+++ <1><ae2>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <ae3> DW_AT_byte_size : 8
+++ <ae4> DW_AT_encoding : 7 (unsigned)
+++ <ae5> DW_AT_name : sizetype
+++ <1><aee>: Abbrev Number: 27 (DW_TAG_variable)
+++ <aef> DW_AT_name : v4
+++ <af2> DW_AT_decl_file : 2
+++ <af3> DW_AT_decl_line : 52
+++ <af4> DW_AT_type : <0xad2>
+++ <af8> DW_AT_external : 1
+++ <af8> DW_AT_location : 2 byte block: fb c (DW_OP_GNU_addr_index <0xc>)
+++ <1><afb>: Abbrev Number: 27 (DW_TAG_variable)
+++ <afc> DW_AT_name : v5
+++ <aff> DW_AT_decl_file : 2
+++ <b00> DW_AT_decl_line : 57
+++ <b01> DW_AT_type : <0xad2>
+++ <b05> DW_AT_external : 1
+++ <b05> DW_AT_location : 2 byte block: fb d (DW_OP_GNU_addr_index <0xd>)
+++ <1><b08>: Abbrev Number: 28 (DW_TAG_array_type)
+++ <b09> DW_AT_type : <0xa42>
+++ <b0d> DW_AT_sibling : <0xb18>
+++ <2><b11>: Abbrev Number: 29 (DW_TAG_subrange_type)
+++ <b12> DW_AT_type : <0xae2>
+++ <b16> DW_AT_upper_bound : 4
+++ <2><b17>: Abbrev Number: 0
+++ <1><b18>: Abbrev Number: 27 (DW_TAG_variable)
+++ <b19> DW_AT_name : t17data
+++ <b21> DW_AT_decl_file : 2
+++ <b22> DW_AT_decl_line : 119
+++ <b23> DW_AT_type : <0xb08>
+++ <b27> DW_AT_external : 1
+++ <b27> DW_AT_location : 2 byte block: fb e (DW_OP_GNU_addr_index <0xe>)
+++ <1><b2a>: Abbrev Number: 0
+++
+++Contents of the .debug_types.dwo section:
+++
+++ Compilation Unit @ offset 0x0:
+++ Length: 0xf7 (32-bit)
+++ Version: 4
+++ Abbrev Offset: 0x0
+++ Pointer Size: 8
+++ Signature: 0xb534bdc1f01629bb
+++ Type Offset: 0x25
+++ Section contributions:
+++ .debug_abbrev.dwo: 0x0 0x154
+++ .debug_line.dwo: 0x0 0x40
+++ .debug_loc.dwo: 0x0 0x0
+++ .debug_str_offsets.dwo: 0x0 0x14
+++ <0><17>: Abbrev Number: 1 (DW_TAG_type_unit)
+++ <18> DW_AT_language : 4 (C++)
+++ <19> DW_AT_GNU_odr_signature: 0x880a5c4d6e59da8a
+++ <21> DW_AT_stmt_list : 0x0
+++ <1><25>: Abbrev Number: 2 (DW_TAG_class_type)
+++ <26> DW_AT_name : C3
+++ <29> DW_AT_byte_size : 4
+++ <2a> DW_AT_decl_file : 2
+++ <2b> DW_AT_decl_line : 47
+++ <2c> DW_AT_sibling : <0xda>
+++ <2><30>: Abbrev Number: 3 (DW_TAG_member)
+++ <31> DW_AT_name : (indexed string: 0x3): member1
+++ <32> DW_AT_decl_file : 2
+++ <33> DW_AT_decl_line : 54
+++ <34> DW_AT_type : <0xda>
+++ <38> DW_AT_data_member_location: 0
+++ <39> DW_AT_accessibility: 1 (public)
+++ <2><3a>: Abbrev Number: 4 (DW_TAG_subprogram)
+++ <3b> DW_AT_external : 1
+++ <3b> DW_AT_name : (indexed string: 0x0): testcase1
+++ <3c> DW_AT_decl_file : 2
+++ <3d> DW_AT_decl_line : 50
+++ <3e> DW_AT_linkage_name: _ZN2C39testcase1Ev
+++ <51> DW_AT_type : <0xe1>
+++ <55> DW_AT_accessibility: 1 (public)
+++ <56> DW_AT_declaration : 1
+++ <56> DW_AT_object_pointer: <0x5e>
+++ <5a> DW_AT_sibling : <0x64>
+++ <3><5e>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <5f> DW_AT_type : <0xe9>
+++ <63> DW_AT_artificial : 1
+++ <3><63>: Abbrev Number: 0
+++ <2><64>: Abbrev Number: 4 (DW_TAG_subprogram)
+++ <65> DW_AT_external : 1
+++ <65> DW_AT_name : (indexed string: 0x1): testcase2
+++ <66> DW_AT_decl_file : 2
+++ <67> DW_AT_decl_line : 51
+++ <68> DW_AT_linkage_name: _ZN2C39testcase2Ev
+++ <7b> DW_AT_type : <0xe1>
+++ <7f> DW_AT_accessibility: 1 (public)
+++ <80> DW_AT_declaration : 1
+++ <80> DW_AT_object_pointer: <0x88>
+++ <84> DW_AT_sibling : <0x8e>
+++ <3><88>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <89> DW_AT_type : <0xe9>
+++ <8d> DW_AT_artificial : 1
+++ <3><8d>: Abbrev Number: 0
+++ <2><8e>: Abbrev Number: 4 (DW_TAG_subprogram)
+++ <8f> DW_AT_external : 1
+++ <8f> DW_AT_name : (indexed string: 0x2): testcase3
+++ <90> DW_AT_decl_file : 2
+++ <91> DW_AT_decl_line : 52
+++ <92> DW_AT_linkage_name: _ZN2C39testcase3Ev
+++ <a5> DW_AT_type : <0xe1>
+++ <a9> DW_AT_accessibility: 1 (public)
+++ <aa> DW_AT_declaration : 1
+++ <aa> DW_AT_object_pointer: <0xb2>
+++ <ae> DW_AT_sibling : <0xb8>
+++ <3><b2>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <b3> DW_AT_type : <0xe9>
+++ <b7> DW_AT_artificial : 1
+++ <3><b7>: Abbrev Number: 0
+++ <2><b8>: Abbrev Number: 6 (DW_TAG_subprogram)
+++ <b9> DW_AT_external : 1
+++ <b9> DW_AT_name : f4
+++ <bc> DW_AT_decl_file : 2
+++ <bd> DW_AT_decl_line : 53
+++ <be> DW_AT_linkage_name: _ZN2C32f4Ev
+++ <ca> DW_AT_type : <0xef>
+++ <ce> DW_AT_accessibility: 1 (public)
+++ <cf> DW_AT_declaration : 1
+++ <cf> DW_AT_object_pointer: <0xd3>
+++ <3><d3>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <d4> DW_AT_type : <0xe9>
+++ <d8> DW_AT_artificial : 1
+++ <3><d8>: Abbrev Number: 0
+++ <2><d9>: Abbrev Number: 0
+++ <1><da>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <db> DW_AT_byte_size : 4
+++ <dc> DW_AT_encoding : 5 (signed)
+++ <dd> DW_AT_name : int
+++ <1><e1>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <e2> DW_AT_byte_size : 1
+++ <e3> DW_AT_encoding : 2 (boolean)
+++ <e4> DW_AT_name : bool
+++ <1><e9>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <ea> DW_AT_byte_size : 8
+++ <eb> DW_AT_type : <0x25>
+++ <1><ef>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <f0> DW_AT_byte_size : 8
+++ <f1> DW_AT_type : <0xf5>
+++ <1><f5>: Abbrev Number: 9 (DW_TAG_subroutine_type)
+++ <f6> DW_AT_type : <0xe1>
+++ <1><fa>: Abbrev Number: 0
+++ Compilation Unit @ offset 0xfb:
+++ Length: 0xf1 (32-bit)
+++ Version: 4
+++ Abbrev Offset: 0x0
+++ Pointer Size: 8
+++ Signature: 0xab98c7bc886f5266
+++ Type Offset: 0x25
+++ Section contributions:
+++ .debug_abbrev.dwo: 0x0 0x154
+++ .debug_line.dwo: 0x0 0x40
+++ .debug_loc.dwo: 0x0 0x0
+++ .debug_str_offsets.dwo: 0x0 0x14
+++ <0><112>: Abbrev Number: 1 (DW_TAG_type_unit)
+++ <113> DW_AT_language : 4 (C++)
+++ <114> DW_AT_GNU_odr_signature: 0xae4af0d8bfcef94b
+++ <11c> DW_AT_stmt_list : 0x0
+++ <1><120>: Abbrev Number: 2 (DW_TAG_class_type)
+++ <121> DW_AT_name : C2
+++ <124> DW_AT_byte_size : 4
+++ <125> DW_AT_decl_file : 2
+++ <126> DW_AT_decl_line : 37
+++ <127> DW_AT_sibling : <0x1da>
+++ <2><12b>: Abbrev Number: 3 (DW_TAG_member)
+++ <12c> DW_AT_name : (indexed string: 0x3): member1
+++ <12d> DW_AT_decl_file : 2
+++ <12e> DW_AT_decl_line : 44
+++ <12f> DW_AT_type : <0x1da>
+++ <133> DW_AT_data_member_location: 0
+++ <134> DW_AT_accessibility: 1 (public)
+++ <2><135>: Abbrev Number: 4 (DW_TAG_subprogram)
+++ <136> DW_AT_external : 1
+++ <136> DW_AT_name : (indexed string: 0x0): testcase1
+++ <137> DW_AT_decl_file : 2
+++ <138> DW_AT_decl_line : 40
+++ <139> DW_AT_linkage_name: _ZN2C29testcase1Ev
+++ <14c> DW_AT_type : <0x1e1>
+++ <150> DW_AT_accessibility: 1 (public)
+++ <151> DW_AT_declaration : 1
+++ <151> DW_AT_object_pointer: <0x159>
+++ <155> DW_AT_sibling : <0x15f>
+++ <3><159>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <15a> DW_AT_type : <0x1e9>
+++ <15e> DW_AT_artificial : 1
+++ <3><15e>: Abbrev Number: 0
+++ <2><15f>: Abbrev Number: 4 (DW_TAG_subprogram)
+++ <160> DW_AT_external : 1
+++ <160> DW_AT_name : (indexed string: 0x1): testcase2
+++ <161> DW_AT_decl_file : 2
+++ <162> DW_AT_decl_line : 41
+++ <163> DW_AT_linkage_name: _ZN2C29testcase2Ev
+++ <176> DW_AT_type : <0x1e1>
+++ <17a> DW_AT_accessibility: 1 (public)
+++ <17b> DW_AT_declaration : 1
+++ <17b> DW_AT_object_pointer: <0x183>
+++ <17f> DW_AT_sibling : <0x189>
+++ <3><183>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <184> DW_AT_type : <0x1e9>
+++ <188> DW_AT_artificial : 1
+++ <3><188>: Abbrev Number: 0
+++ <2><189>: Abbrev Number: 4 (DW_TAG_subprogram)
+++ <18a> DW_AT_external : 1
+++ <18a> DW_AT_name : (indexed string: 0x2): testcase3
+++ <18b> DW_AT_decl_file : 2
+++ <18c> DW_AT_decl_line : 42
+++ <18d> DW_AT_linkage_name: _ZN2C29testcase3Ev
+++ <1a0> DW_AT_type : <0x1e1>
+++ <1a4> DW_AT_accessibility: 1 (public)
+++ <1a5> DW_AT_declaration : 1
+++ <1a5> DW_AT_object_pointer: <0x1ad>
+++ <1a9> DW_AT_sibling : <0x1b3>
+++ <3><1ad>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <1ae> DW_AT_type : <0x1e9>
+++ <1b2> DW_AT_artificial : 1
+++ <3><1b2>: Abbrev Number: 0
+++ <2><1b3>: Abbrev Number: 10 (DW_TAG_subprogram)
+++ <1b4> DW_AT_external : 1
+++ <1b4> DW_AT_name : (indexed string: 0x4): testcase4
+++ <1b5> DW_AT_decl_file : 2
+++ <1b6> DW_AT_decl_line : 43
+++ <1b7> DW_AT_linkage_name: _ZN2C29testcase4Ev
+++ <1ca> DW_AT_type : <0x1e1>
+++ <1ce> DW_AT_accessibility: 1 (public)
+++ <1cf> DW_AT_declaration : 1
+++ <1cf> DW_AT_object_pointer: <0x1d3>
+++ <3><1d3>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <1d4> DW_AT_type : <0x1e9>
+++ <1d8> DW_AT_artificial : 1
+++ <3><1d8>: Abbrev Number: 0
+++ <2><1d9>: Abbrev Number: 0
+++ <1><1da>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <1db> DW_AT_byte_size : 4
+++ <1dc> DW_AT_encoding : 5 (signed)
+++ <1dd> DW_AT_name : int
+++ <1><1e1>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <1e2> DW_AT_byte_size : 1
+++ <1e3> DW_AT_encoding : 2 (boolean)
+++ <1e4> DW_AT_name : bool
+++ <1><1e9>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <1ea> DW_AT_byte_size : 8
+++ <1eb> DW_AT_type : <0x120>
+++ <1><1ef>: Abbrev Number: 0
+++ Compilation Unit @ offset 0x1f0:
+++ Length: 0x141 (32-bit)
+++ Version: 4
+++ Abbrev Offset: 0x0
+++ Pointer Size: 8
+++ Signature: 0xb5faa2a4b7a919c4
+++ Type Offset: 0x25
+++ Section contributions:
+++ .debug_abbrev.dwo: 0x0 0x154
+++ .debug_line.dwo: 0x0 0x40
+++ .debug_loc.dwo: 0x0 0x0
+++ .debug_str_offsets.dwo: 0x0 0x14
+++ <0><207>: Abbrev Number: 1 (DW_TAG_type_unit)
+++ <208> DW_AT_language : 4 (C++)
+++ <209> DW_AT_GNU_odr_signature: 0xc7fbeb753b05ade3
+++ <211> DW_AT_stmt_list : 0x0
+++ <1><215>: Abbrev Number: 2 (DW_TAG_class_type)
+++ <216> DW_AT_name : C1
+++ <219> DW_AT_byte_size : 4
+++ <21a> DW_AT_decl_file : 2
+++ <21b> DW_AT_decl_line : 25
+++ <21c> DW_AT_sibling : <0x31f>
+++ <2><220>: Abbrev Number: 3 (DW_TAG_member)
+++ <221> DW_AT_name : (indexed string: 0x3): member1
+++ <222> DW_AT_decl_file : 2
+++ <223> DW_AT_decl_line : 34
+++ <224> DW_AT_type : <0x31f>
+++ <228> DW_AT_data_member_location: 0
+++ <229> DW_AT_accessibility: 1 (public)
+++ <2><22a>: Abbrev Number: 4 (DW_TAG_subprogram)
+++ <22b> DW_AT_external : 1
+++ <22b> DW_AT_name : (indexed string: 0x0): testcase1
+++ <22c> DW_AT_decl_file : 2
+++ <22d> DW_AT_decl_line : 28
+++ <22e> DW_AT_linkage_name: _ZN2C19testcase1Ev
+++ <241> DW_AT_type : <0x326>
+++ <245> DW_AT_accessibility: 1 (public)
+++ <246> DW_AT_declaration : 1
+++ <246> DW_AT_object_pointer: <0x24e>
+++ <24a> DW_AT_sibling : <0x254>
+++ <3><24e>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <24f> DW_AT_type : <0x32e>
+++ <253> DW_AT_artificial : 1
+++ <3><253>: Abbrev Number: 0
+++ <2><254>: Abbrev Number: 11 (DW_TAG_subprogram)
+++ <255> DW_AT_external : 1
+++ <255> DW_AT_name : t1a
+++ <259> DW_AT_decl_file : 2
+++ <25a> DW_AT_decl_line : 29
+++ <25b> DW_AT_linkage_name: _ZN2C13t1aEv
+++ <268> DW_AT_type : <0x326>
+++ <26c> DW_AT_accessibility: 1 (public)
+++ <26d> DW_AT_declaration : 1
+++ <26d> DW_AT_object_pointer: <0x275>
+++ <271> DW_AT_sibling : <0x27b>
+++ <3><275>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <276> DW_AT_type : <0x32e>
+++ <27a> DW_AT_artificial : 1
+++ <3><27a>: Abbrev Number: 0
+++ <2><27b>: Abbrev Number: 11 (DW_TAG_subprogram)
+++ <27c> DW_AT_external : 1
+++ <27c> DW_AT_name : t1_2
+++ <281> DW_AT_decl_file : 2
+++ <282> DW_AT_decl_line : 30
+++ <283> DW_AT_linkage_name: _ZN2C14t1_2Ev
+++ <291> DW_AT_type : <0x31f>
+++ <295> DW_AT_accessibility: 1 (public)
+++ <296> DW_AT_declaration : 1
+++ <296> DW_AT_object_pointer: <0x29e>
+++ <29a> DW_AT_sibling : <0x2a4>
+++ <3><29e>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <29f> DW_AT_type : <0x32e>
+++ <2a3> DW_AT_artificial : 1
+++ <3><2a3>: Abbrev Number: 0
+++ <2><2a4>: Abbrev Number: 4 (DW_TAG_subprogram)
+++ <2a5> DW_AT_external : 1
+++ <2a5> DW_AT_name : (indexed string: 0x1): testcase2
+++ <2a6> DW_AT_decl_file : 2
+++ <2a7> DW_AT_decl_line : 31
+++ <2a8> DW_AT_linkage_name: _ZN2C19testcase2Ev
+++ <2bb> DW_AT_type : <0x326>
+++ <2bf> DW_AT_accessibility: 1 (public)
+++ <2c0> DW_AT_declaration : 1
+++ <2c0> DW_AT_object_pointer: <0x2c8>
+++ <2c4> DW_AT_sibling : <0x2ce>
+++ <3><2c8>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <2c9> DW_AT_type : <0x32e>
+++ <2cd> DW_AT_artificial : 1
+++ <3><2cd>: Abbrev Number: 0
+++ <2><2ce>: Abbrev Number: 4 (DW_TAG_subprogram)
+++ <2cf> DW_AT_external : 1
+++ <2cf> DW_AT_name : (indexed string: 0x2): testcase3
+++ <2d0> DW_AT_decl_file : 2
+++ <2d1> DW_AT_decl_line : 32
+++ <2d2> DW_AT_linkage_name: _ZN2C19testcase3Ev
+++ <2e5> DW_AT_type : <0x326>
+++ <2e9> DW_AT_accessibility: 1 (public)
+++ <2ea> DW_AT_declaration : 1
+++ <2ea> DW_AT_object_pointer: <0x2f2>
+++ <2ee> DW_AT_sibling : <0x2f8>
+++ <3><2f2>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <2f3> DW_AT_type : <0x32e>
+++ <2f7> DW_AT_artificial : 1
+++ <3><2f7>: Abbrev Number: 0
+++ <2><2f8>: Abbrev Number: 10 (DW_TAG_subprogram)
+++ <2f9> DW_AT_external : 1
+++ <2f9> DW_AT_name : (indexed string: 0x4): testcase4
+++ <2fa> DW_AT_decl_file : 2
+++ <2fb> DW_AT_decl_line : 33
+++ <2fc> DW_AT_linkage_name: _ZN2C19testcase4Ev
+++ <30f> DW_AT_type : <0x326>
+++ <313> DW_AT_accessibility: 1 (public)
+++ <314> DW_AT_declaration : 1
+++ <314> DW_AT_object_pointer: <0x318>
+++ <3><318>: Abbrev Number: 5 (DW_TAG_formal_parameter)
+++ <319> DW_AT_type : <0x32e>
+++ <31d> DW_AT_artificial : 1
+++ <3><31d>: Abbrev Number: 0
+++ <2><31e>: Abbrev Number: 0
+++ <1><31f>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <320> DW_AT_byte_size : 4
+++ <321> DW_AT_encoding : 5 (signed)
+++ <322> DW_AT_name : int
+++ <1><326>: Abbrev Number: 7 (DW_TAG_base_type)
+++ <327> DW_AT_byte_size : 1
+++ <328> DW_AT_encoding : 2 (boolean)
+++ <329> DW_AT_name : bool
+++ <1><32e>: Abbrev Number: 8 (DW_TAG_pointer_type)
+++ <32f> DW_AT_byte_size : 8
+++ <330> DW_AT_type : <0x215>
+++ <1><334>: Abbrev Number: 0
+++
++diff --git a/binutils/testsuite/binutils-all/x86-64/pr26808.dwp.bz2 b/binutils/testsuite/binutils-all/x86-64/pr26808.dwp.bz2
++new file mode 100644
++index 0000000000..75cce36f8b
++Binary files /dev/null and b/binutils/testsuite/binutils-all/x86-64/pr26808.dwp.bz2 differ
++diff --git a/binutils/testsuite/binutils-all/x86-64/x86-64.exp b/binutils/testsuite/binutils-all/x86-64/x86-64.exp
++index 7bd49ab619..5f02ed35ad 100644
++--- a/binutils/testsuite/binutils-all/x86-64/x86-64.exp
+++++ b/binutils/testsuite/binutils-all/x86-64/x86-64.exp
++@@ -27,3 +27,34 @@ foreach t $test_list {
++ verbose [file rootname $t]
++ run_dump_test [file rootname $t]
++ }
+++
+++set t $srcdir/$subdir/pr26808.dwp.bz2
+++# We need to strip the ".bz2", but can leave the dirname.
+++set test $subdir/[file tail $t]
+++set testname [file rootname $test]
+++verbose $testname
+++if {[catch "system \"bzip2 -dc $t > $tempfile\""] != 0} {
+++ untested "bzip2 -dc ($testname)"
+++} else {
+++ send_log "$READELF -wi $tempfile > tmpdir/pr26808.out 2> /dev/null\n"
+++ verbose "$READELF -wi $tempfile > tmpdir/pr26808.out 2> /dev/null" 1
+++ set got [catch "system \"$READELF -wi $tempfile > tmpdir/pr26808.out 2> /dev/null\""]
+++
+++ if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]]} then {
+++ fail $testname
+++ } else {
+++ send_log "cmp tmpdir/pr26808.out $srcdir/$subdir/pr26808.dump\n"
+++ verbose "cmp tmpdir/pr26808.out $srcdir/$subdir/pr26808.dump" 1
+++ set status [remote_exec build cmp "tmpdir/pr26808.out $srcdir/$subdir/pr26808.dump"]
+++ set exec_output [lindex $status 1]
+++ set exec_output [prune_warnings $exec_output]
+++
+++ if [string match "" $exec_output] then {
+++ pass "readelf -wi ($testname)"
+++ } else {
+++ send_log "$exec_output\n"
+++ verbose "$exec_output" 1
+++ fail "readelf -wi ($testname)"
+++ }
+++ }
+++}
++diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
++index efb82c5770..fa1d20e5d9 100644
++--- a/elfcpp/ChangeLog
+++++ b/elfcpp/ChangeLog
++@@ -1,3 +1,10 @@
+++2020-11-16 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-09-25 Alan Modra <amodra@gmail.com>
+++
+++ * dwarf.h (DW_FIRST_UT, DW_UT, DW_END_UT): Define.
+++
++ 2020-07-04 Nick Clifton <nickc@redhat.com>
++
++ Binutils 2.35 branch created.
++diff --git a/elfcpp/dwarf.h b/elfcpp/dwarf.h
++index 1221f37f8a..d5e06d4d7d 100644
++--- a/elfcpp/dwarf.h
+++++ b/elfcpp/dwarf.h
++@@ -81,6 +81,11 @@ namespace elfcpp
++ #define DW_IDX_DUP(name, value) , name = value
++ #define DW_END_IDX };
++
+++#define DW_FIRST_UT(name, value) enum dwarf_unit_type { \
+++ name = value
+++#define DW_UT(name, value) , name = value
+++#define DW_END_UT };
+++
++ #include "dwarf2.def"
++
++ #undef DW_FIRST_TAG
++@@ -117,6 +122,10 @@ namespace elfcpp
++ #undef DW_IDX_DUP
++ #undef DW_END_IDX
++
+++#undef DW_FIRST_UT
+++#undef DW_UT
+++#undef DW_END_UT
+++
++ // Frame unwind information.
++
++ enum DW_EH_PE
++diff --git a/gas/ChangeLog b/gas/ChangeLog
++index 26c703531d..3ac2f7b72e 100644
++--- a/gas/ChangeLog
+++++ b/gas/ChangeLog
++@@ -1,3 +1,171 @@
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-10-16 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ PR gas/25878
+++ PR gas/26740
+++ * dwarf2dbg.c (file_entry): Remove auto_assigned.
+++ (assign_file_to_slot): Remove the auto_assign argument.
+++ (allocate_filenum): Updated.
+++ (allocate_filename_to_slot): Reuse the input file entry in the
+++ file table.
+++ (dwarf2_where): Replace as_where with as_where_physical.
+++ * testsuite/gas/i386/dwarf5-line-1.d: New file.
+++ * testsuite/gas/i386/dwarf5-line-1.s: Likewise.
+++ * testsuite/gas/i386/i386.exp: Run dwarf5-line-1.
+++
+++ 2020-10-17 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ PR gas/25878
+++ PR gas/26740
+++ * dwarf2dbg.c (allocate_filename_to_slot): Don't reuse the slot 1
+++ here.
+++ (dwarf2_where): Restore as_where.
+++ (dwarf2_directive_filename): Clear the slot 1 if it was assigned
+++ to the input file.
+++ * testsuite/gas/i386/dwarf5-line-2.d: New file.
+++ * testsuite/gas/i386/dwarf5-line-2.s: Likewise.
+++ * testsuite/gas/i386/dwarf5-line-3.d: Likewise.
+++ * testsuite/gas/i386/dwarf5-line-3.s: Likewise.
+++ * testsuite/gas/i386/i386.exp: Run dwarf5-line-2 and
+++ dwarf5-line-3.
+++
+++ 2020-10-26 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ PR gas/26778
+++ * * dwarf2dbg.c (num_of_auto_assigned): New.
+++ (allocate_filenum): Increment num_of_auto_assigned.
+++ (dwarf2_directive_filename): Clear the slots auto-assigned
+++ before the first .file <NUMBER> directive was seen.
+++ * testsuite/gas/i386/dwarf4-line-1.d: New file.
+++ * testsuite/gas/i386/dwarf4-line-1.s: Likewise.
+++ * testsuite/gas/i386/i386.exp: Run dwarf4-line-1.
+++
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-09-23 Mark Wielaard <mark@klomp.org>
+++
+++ * testsuite/gas/elf/dwarf-5-cu.d: Adjust expected output.
+++
+++2020-11-05 Alex Coplan <alex.coplan@arm.com>
+++
+++ * config/tc-aarch64.c (aarch64_cpus): Add neoverse-n2.
+++ * doc/c-aarch64.texi: Document support for Neoverse N2.
+++
+++2020-10-21 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+++
+++ PR target/26763
+++ * config/tc-arm.c (parse_address_main): Add new MVE addressing mode
+++ check.
+++ * testsuite/gas/arm/mve-vldr-vstr-bad.d: New test.
+++ * testsuite/gas/arm/mve-vldr-vstr-bad.l: Likewise.
+++ * testsuite/gas/arm/mve-vldr-vstr-bad.s: Likewise.
+++
+++2020-10-09 Alex Coplan <alex.coplan@arm.com>
+++
+++ * config/tc-arm.c (arm_cpus): Add Neoverse N2.
+++ * doc/c-arm.texi: Document -mcpu=neoverse-n2.
+++
+++2020-10-09 Alex Coplan <alex.coplan@arm.com>
+++
+++ * config/tc-arm.c (arm_cpus): Add Neoverse V1.
+++ * doc/c-arm.texi: Document Neoverse V1 support.
+++
+++2020-10-07 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ 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.
+++
+++2020-10-07 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ 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.
+++
+++2020-10-07 Jan Beulich <jbeulich@suse.com>
+++
+++ * testsuite/gas/i386/evex-no-scale-64.d,
+++ testsuite/gas/i386/addr32.d,
+++ testsuite/gas/i386/x86-64-addr32-intel.d,
+++ testsuite/gas/i386/x86-64-addr32.d: Adjust expectations.
+++
+++2020-10-06 Alex Coplan <alex.coplan@arm.com>
+++
+++ 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.
+++
+++2020-10-02 Alex Coplan <alex.coplan@arm.com>
+++
+++ * config/tc-aarch64.c (aarch64_cpus): Add Neoverse V1.
+++ * doc/c-aarch64.texi: Document Neoverse V1 support.
+++
+++2020-09-24 Alan Modra <amodra@gmail.com>
+++
+++ Apply from master
+++ 2020-08-19 Alan Modra <amodra@gmail.com>
+++ * testsuite/gas/ppc/int128.s: Correct vcmpuq.
+++ * testsuite/gas/ppc/int128.d: Update.
+++ * testsuite/gas/ppc/xvtlsbb.d: Update.
+++
+++ 2020-08-10 Alan Modra <amodra@gmail.com>
+++ * 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.
+++
+++ 2020-08-10 Alan Modra <amodra@gmail.com>
+++ * testsuite/gas/ppc/power8.d: Update.
+++ * testsuite/gas/ppc/vsx2.d: Update.
+++
+++ 2020-08-10 Alan Modra <amodra@gmail.com>
+++ * 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.
+++
++ 2020-09-19 Nick Clifton <nickc@redhat.com>
++
++ This is the 2.35.1 point release.
++diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
++index ecb15d2343..12eb13594c 100644
++--- a/gas/config/tc-aarch64.c
+++++ b/gas/config/tc-aarch64.c
++@@ -247,12 +247,6 @@ set_fatal_syntax_error (const char *error)
++ present. */
++ #define COND_ALWAYS 0x10
++
++-typedef struct
++-{
++- const char *template;
++- unsigned long value;
++-} asm_barrier_opt;
++-
++ typedef struct
++ {
++ const char *template;
++@@ -3994,7 +3988,7 @@ static int
++ parse_barrier (char **str)
++ {
++ char *p, *q;
++- const asm_barrier_opt *o;
+++ const struct aarch64_name_value_pair *o;
++
++ p = q = *str;
++ while (ISALPHA (*q))
++@@ -8936,6 +8930,25 @@ static const struct aarch64_cpu_option_table aarch64_cpus[] = {
++ | AARCH64_FEATURE_DOTPROD
++ | AARCH64_FEATURE_PROFILE),
++ "Neoverse N1"},
+++ {"neoverse-n2", AARCH64_FEATURE (AARCH64_ARCH_V8_5,
+++ AARCH64_FEATURE_BFLOAT16
+++ | AARCH64_FEATURE_I8MM
+++ | AARCH64_FEATURE_F16
+++ | AARCH64_FEATURE_SVE
+++ | AARCH64_FEATURE_SVE2
+++ | AARCH64_FEATURE_SVE2_BITPERM
+++ | AARCH64_FEATURE_MEMTAG
+++ | AARCH64_FEATURE_RNG),
+++ "Neoverse N2"},
+++ {"neoverse-v1", AARCH64_FEATURE (AARCH64_ARCH_V8_4,
+++ AARCH64_FEATURE_PROFILE
+++ | AARCH64_FEATURE_CVADP
+++ | AARCH64_FEATURE_SVE
+++ | AARCH64_FEATURE_SSBS
+++ | AARCH64_FEATURE_RNG
+++ | AARCH64_FEATURE_F16
+++ | AARCH64_FEATURE_BFLOAT16
+++ | AARCH64_FEATURE_I8MM), "Neoverse V1"},
++ {"qdf24xx", AARCH64_FEATURE (AARCH64_ARCH_V8,
++ AARCH64_FEATURE_CRC | AARCH64_FEATURE_CRYPTO
++ | AARCH64_FEATURE_RDMA),
++diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
++index e0d0cbd546..64475d6672 100644
++--- a/gas/config/tc-arm.c
+++++ b/gas/config/tc-arm.c
++@@ -5936,7 +5936,15 @@ parse_address_main (char **str, int i, int group_relocations,
++
++ if (skip_past_char (&p, '[') == FAIL)
++ {
++- if (skip_past_char (&p, '=') == FAIL)
+++ if (group_type == GROUP_MVE
+++ && (reg = arm_reg_parse (&p, REG_TYPE_RN)) != FAIL)
+++ {
+++ /* [r0-r15] expected as argument but receiving r0-r15 without
+++ [] brackets. */
+++ inst.error = BAD_SYNTAX;
+++ return PARSE_OPERAND_FAIL;
+++ }
+++ else if (skip_past_char (&p, '=') == FAIL)
++ {
++ /* Bare address - translate to PC-relative offset. */
++ inst.relocs[0].pc_rel = 1;
++@@ -31587,6 +31595,16 @@ static const struct arm_cpu_option_table arm_cpus[] =
++ ARM_CPU_OPT ("neoverse-n1", "Neoverse N1", ARM_ARCH_V8_2A,
++ ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST),
++ FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD),
+++ ARM_CPU_OPT ("neoverse-n2", "Neoverse N2", ARM_ARCH_V8_5A,
+++ ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST
+++ | ARM_EXT2_BF16
+++ | ARM_EXT2_I8MM),
+++ FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_4),
+++ ARM_CPU_OPT ("neoverse-v1", "Neoverse V1", ARM_ARCH_V8_4A,
+++ ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST
+++ | ARM_EXT2_BF16
+++ | ARM_EXT2_I8MM),
+++ FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_4),
++ /* ??? XSCALE is really an architecture. */
++ ARM_CPU_OPT ("xscale", NULL, ARM_ARCH_XSCALE,
++ ARM_ARCH_NONE,
++diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
++index 037fe4d18b..623ac77307 100644
++--- a/gas/config/tc-i386.c
+++++ b/gas/config/tc-i386.c
++@@ -7115,6 +7115,23 @@ process_suffix (void)
++ unsigned int op;
++ enum { need_word, need_dword, need_qword } need;
++
+++ /* Check the register operand for the address size prefix if
+++ the memory operand has no real registers, like symbol, DISP
+++ or symbol(%rip). */
+++ if (i.mem_operands == 1
+++ && i.reg_operands == 1
+++ && i.operands == 2
+++ && i.types[1].bitfield.class == Reg
+++ && (flag_code == CODE_32BIT
+++ ? i.op[1].regs->reg_type.bitfield.word
+++ : i.op[1].regs->reg_type.bitfield.dword)
+++ && ((i.base_reg == NULL && i.index_reg == NULL)
+++ || (i.base_reg
+++ && i.base_reg->reg_num == RegIP
+++ && i.base_reg->reg_type.bitfield.qword))
+++ && !add_prefix (ADDR_PREFIX_OPCODE))
+++ return 0;
+++
++ if (flag_code == CODE_32BIT)
++ need = i.prefix[ADDR_PREFIX] ? need_word : need_dword;
++ else if (i.prefix[ADDR_PREFIX])
++diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
++index aa989e7d1c..9719341c54 100644
++--- a/gas/config/tc-ppc.c
+++++ b/gas/config/tc-ppc.c
++@@ -3335,6 +3335,15 @@ md_assemble (char *str)
++ }
++
++ insn = opcode->opcode;
+++ if (!target_big_endian
+++ && ((insn & ~(1 << 26)) == 46u << 26
+++ || (insn & ~(0xc0 << 1)) == (31u << 26 | 533 << 1)))
+++ {
+++ /* lmw, stmw, lswi, lswx, stswi, stswx */
+++ as_bad (_("`%s' invalid when little-endian"), str);
+++ ppc_clear_labels ();
+++ return;
+++ }
++
++ str = s;
++ while (ISSPACE (*str))
++diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
++index 86b6efc52b..f5d2669574 100644
++--- a/gas/doc/c-aarch64.texi
+++++ b/gas/doc/c-aarch64.texi
++@@ -72,6 +72,8 @@ on the target processor. The following processor names are recognized:
++ @code{exynos-m1},
++ @code{falkor},
++ @code{neoverse-n1},
+++@code{neoverse-n2},
+++@code{neoverse-v1},
++ @code{neoverse-e1},
++ @code{qdf24xx},
++ @code{saphira},
++diff --git a/gas/doc/c-arm.texi b/gas/doc/c-arm.texi
++index 9180360577..16c94de675 100644
++--- a/gas/doc/c-arm.texi
+++++ b/gas/doc/c-arm.texi
++@@ -151,6 +151,8 @@ recognized:
++ @code{marvell-pj4},
++ @code{marvell-whitney},
++ @code{neoverse-n1},
+++@code{neoverse-n2},
+++@code{neoverse-v1},
++ @code{xgene1},
++ @code{xgene2},
++ @code{ep9312} (ARM920 with Cirrus Maverick coprocessor),
++diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
++index 6899a840ef..1160cafc13 100644
++--- a/gas/dwarf2dbg.c
+++++ b/gas/dwarf2dbg.c
++@@ -211,7 +211,6 @@ struct file_entry
++ {
++ const char * filename;
++ unsigned int dir;
++- bfd_boolean auto_assigned;
++ unsigned char md5[NUM_MD5_BYTES];
++ };
++
++@@ -219,6 +218,7 @@ struct file_entry
++ static struct file_entry *files;
++ static unsigned int files_in_use;
++ static unsigned int files_allocated;
+++static unsigned int num_of_auto_assigned;
++
++ /* Table of directories used by .debug_line. */
++ static char ** dirs = NULL;
++@@ -633,7 +633,7 @@ get_directory_table_entry (const char * dirname,
++ }
++
++ static bfd_boolean
++-assign_file_to_slot (unsigned long i, const char *file, unsigned int dir, bfd_boolean auto_assign)
+++assign_file_to_slot (unsigned long i, const char *file, unsigned int dir)
++ {
++ if (i >= files_allocated)
++ {
++@@ -653,7 +653,6 @@ assign_file_to_slot (unsigned long i, const char *file, unsigned int dir, bfd_bo
++
++ files[i].filename = file;
++ files[i].dir = dir;
++- files[i].auto_assigned = auto_assign;
++ memset (files[i].md5, 0, NUM_MD5_BYTES);
++
++ if (files_in_use < i + 1)
++@@ -717,9 +716,11 @@ allocate_filenum (const char * pathname)
++ return i;
++ }
++
++- if (!assign_file_to_slot (i, file, dir, TRUE))
+++ if (!assign_file_to_slot (i, file, dir))
++ return -1;
++
+++ num_of_auto_assigned++;
+++
++ last_used = i;
++ last_used_dir_len = dir_len;
++
++@@ -792,30 +793,15 @@ allocate_filename_to_slot (const char * dirname,
++ }
++
++ fail:
++- /* If NUM was previously allocated automatically then
++- choose another slot for it, so that we can reuse NUM. */
++- if (files[num].auto_assigned)
++- {
++- /* Find an unused slot. */
++- for (i = 1; i < files_in_use; ++i)
++- if (files[i].filename == NULL)
++- break;
++- if (! assign_file_to_slot (i, files[num].filename, files[num].dir, TRUE))
++- return FALSE;
++- files[num].filename = NULL;
++- }
++- else
++- {
++- as_bad (_("file table slot %u is already occupied by a different file (%s%s%s vs %s%s%s)"),
++- num,
++- dir == NULL ? "" : dir,
++- dir == NULL ? "" : "/",
++- files[num].filename,
++- dirname == NULL ? "" : dirname,
++- dirname == NULL ? "" : "/",
++- filename);
++- return FALSE;
++- }
+++ as_bad (_("file table slot %u is already occupied by a different file (%s%s%s vs %s%s%s)"),
+++ num,
+++ dir == NULL ? "" : dir,
+++ dir == NULL ? "" : "/",
+++ files[num].filename,
+++ dirname == NULL ? "" : dirname,
+++ dirname == NULL ? "" : "/",
+++ filename);
+++ return FALSE;
++ }
++
++ if (dirname == NULL)
++@@ -833,7 +819,7 @@ allocate_filename_to_slot (const char * dirname,
++ d = get_directory_table_entry (dirname, dirlen, num == 0);
++ i = num;
++
++- if (! assign_file_to_slot (i, file, d, FALSE))
+++ if (! assign_file_to_slot (i, file, d))
++ return FALSE;
++
++ if (with_md5)
++@@ -1030,6 +1016,7 @@ dwarf2_directive_filename (void)
++ char *filename;
++ const char * dirname = NULL;
++ int filename_len;
+++ unsigned int i;
++
++ /* Continue to accept a bare string and pass it off. */
++ SKIP_WHITESPACE ();
++@@ -1096,6 +1083,18 @@ dwarf2_directive_filename (void)
++ return NULL;
++ }
++
+++ if (num_of_auto_assigned)
+++ {
+++ /* Clear slots auto-assigned before the first .file <NUMBER>
+++ directive was seen. */
+++ if (files_in_use != (num_of_auto_assigned + 1))
+++ abort ();
+++ for (i = 1; i < files_in_use; i++)
+++ files[i].filename = NULL;
+++ files_in_use = 0;
+++ num_of_auto_assigned = 0;
+++ }
+++
++ if (! allocate_filename_to_slot (dirname, filename, (unsigned int) num,
++ with_md5))
++ return NULL;
++diff --git a/gas/testsuite/gas/aarch64/system.d b/gas/testsuite/gas/aarch64/system.d
++index 20d5c20409..c973584af5 100644
++--- a/gas/testsuite/gas/aarch64/system.d
+++++ b/gas/testsuite/gas/aarch64/system.d
++@@ -190,6 +190,7 @@ Disassembly of section \.text:
++ .*: d5033edf isb #0xe
++ .*: d5033fdf isb
++ .*: d5033fdf isb
+++.*: d5033fdf isb
++ .*: d503309f ssbb
++ .*: d503349f pssbb
++ .*: d8000000 prfm pldl1keep, 0 <LABEL1>
++diff --git a/gas/testsuite/gas/aarch64/system.s b/gas/testsuite/gas/aarch64/system.s
++index 9d86f66806..6f494f885a 100644
++--- a/gas/testsuite/gas/aarch64/system.s
+++++ b/gas/testsuite/gas/aarch64/system.s
++@@ -44,6 +44,7 @@
++ all_barriers op=isb, from=0, to=15
++
++ isb
+++ isb sy
++ ssbb
++ pssbb
++
++diff --git a/gas/testsuite/gas/arm/mve-vldr-vstr-bad.d b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.d
++new file mode 100644
++index 0000000000..8989688f0f
++--- /dev/null
+++++ b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.d
++@@ -0,0 +1,5 @@
+++#name: bad MVE VLDR VSTR wrong error message for addressing mode without [].
+++#as: -march=armv8.1-m.main+mve.fp -mthumb -mfloat-abi=hard
+++#error_output: mve-vldr-vstr-bad.l
+++
+++.*: +file format .*arm.*
++diff --git a/gas/testsuite/gas/arm/mve-vldr-vstr-bad.l b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.l
++new file mode 100644
++index 0000000000..2df3a37ac0
++--- /dev/null
+++++ b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.l
++@@ -0,0 +1,811 @@
+++[^:]*: Assembler messages:
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r0'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r0'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r1'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r1'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r2'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r2'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r4'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r4'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r7'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r7'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r8'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r8'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r10'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r10'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r12'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r12'
+++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r14'
+++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r14'
+++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r0'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r0'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r1'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r1'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r2'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r2'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r4'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r4'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r7'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r7'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r8'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r8'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r10'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r10'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r12'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r12'
+++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r14'
+++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r14'
+++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r0'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r1'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r2'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r4'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r7'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r8'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r10'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r12'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r14'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r0'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r1'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r2'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r4'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r7'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r8'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r10'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r12'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r14'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r0'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r1'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r2'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r4'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r7'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r8'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r10'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r12'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r14'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r0'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r1'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r2'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r4'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r7'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r8'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r10'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r12'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r14'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r0'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r0'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r1'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r1'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r2'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r2'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r4'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r4'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r7'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r7'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r8'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r8'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r10'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r10'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r12'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r12'
+++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r14'
+++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r14'
+++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r14'
++diff --git a/gas/testsuite/gas/arm/mve-vldr-vstr-bad.s b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.s
++new file mode 100644
++index 0000000000..c72c1296d2
++--- /dev/null
+++++ b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.s
++@@ -0,0 +1,30 @@
+++.syntax unified
+++.thumb
+++
+++.irp op1, 8, 16, 32
+++.irp op2, q0, q1, q2, q4, q7
+++.irp op3, r0, r1, r2, r4, r7, r8, r10, r12, r14
+++vldrb.s\op1 \op2, \op3
+++vldrb.u\op1 \op2, \op3
+++vstrb.\op1 \op2, \op3
+++.endr
+++.endr
+++.endr
+++
+++.irp op1, 16, 32
+++.irp op2, q0, q1, q2, q4, q7
+++.irp op3, r0, r1, r2, r4, r7, r8, r10, r12, r14
+++vldrh.s\op1 \op2, \op3
+++vldrh.u\op1 \op2, \op3
+++vstrh.\op1 \op2, \op3
+++.endr
+++.endr
+++.endr
+++
+++.irp op2, q0, q1, q2, q4, q7
+++.irp op3, r0, r1, r2, r4, r7, r8, r10, r12, r14
+++vldrw.s32 \op2, \op3
+++vldrw.u32 \op2, \op3
+++vstrw.32 \op2, \op3
+++.endr
+++.endr
++diff --git a/gas/testsuite/gas/elf/dwarf-5-cu.d b/gas/testsuite/gas/elf/dwarf-5-cu.d
++index 839b4b7c77..7db20a330b 100644
++--- a/gas/testsuite/gas/elf/dwarf-5-cu.d
+++++ b/gas/testsuite/gas/elf/dwarf-5-cu.d
++@@ -6,6 +6,7 @@
++ Compilation Unit @ offset 0x0:
++ Length: 0x.*
++ Version: 5
+++ Unit Type: DW_UT_compile \(1\)
++ Abbrev Offset: 0x0
++ Pointer Size: .
++ #pass
++diff --git a/gas/testsuite/gas/i386/dwarf4-line-1.d b/gas/testsuite/gas/i386/dwarf4-line-1.d
++new file mode 100644
++index 0000000000..4f8321e9bf
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/dwarf4-line-1.d
++@@ -0,0 +1,50 @@
+++#as: -gdwarf-4
+++#readelf: -wl
+++#name: DWARF4 .debug_line 1
+++
+++Raw dump of debug contents of section \.z?debug_line:
+++
+++ Offset: 0x0
+++ Length: .*
+++ DWARF Version: 4
+++ Prologue Length: .*
+++ Minimum Instruction Length: 1
+++ Maximum Ops per Instruction: 1
+++ Initial value of 'is_stmt': 1
+++ Line Base: -5
+++ Line Range: 14
+++ Opcode Base: 13
+++
+++ Opcodes:
+++ Opcode 1 has 0 args
+++ Opcode 2 has 1 arg
+++ Opcode 3 has 1 arg
+++ Opcode 4 has 1 arg
+++ Opcode 5 has 1 arg
+++ Opcode 6 has 0 args
+++ Opcode 7 has 0 args
+++ Opcode 8 has 0 args
+++ Opcode 9 has 1 arg
+++ Opcode 10 has 0 args
+++ Opcode 11 has 0 args
+++ Opcode 12 has 1 arg
+++
+++ The Directory Table \(offset 0x.*\):
+++ 1 .*/gas/testsuite/gas/i386
+++
+++ The File Name Table \(offset 0x.*\):
+++ Entry Dir Time Size Name
+++ 1 0 0 0 foo.c
+++ 2 0 0 0 foo.h
+++
+++ Line Number Statements:
+++ \[0x.*\] Extended opcode 2: set Address to 0x0
+++ \[0x.*\] Advance Line by 81 to 82
+++ \[0x.*\] Copy
+++ \[0x.*\] Set File Name to entry 2 in the File Name Table
+++ \[0x.*\] Advance Line by -73 to 9
+++ \[0x.*\] Special opcode 19: advance Address by 1 to 0x1 and Line by 0 to 9
+++ \[0x.*\] Advance PC by 3 to 0x4
+++ \[0x.*\] Extended opcode 1: End of Sequence
+++
+++
++diff --git a/gas/testsuite/gas/i386/dwarf4-line-1.s b/gas/testsuite/gas/i386/dwarf4-line-1.s
++new file mode 100644
++index 0000000000..e558fdc050
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/dwarf4-line-1.s
++@@ -0,0 +1,14 @@
+++ .file "foo.c"
+++ .text
+++bar:
+++#APP
+++# 82 "foo.h" 1
+++ nop
+++# 0 "" 2
+++#NO_APP
+++ ret
+++foo:
+++ .file 1 "foo.c"
+++ nop
+++ .file 2 "foo.h"
+++ ret
++diff --git a/gas/testsuite/gas/i386/dwarf5-line-1.d b/gas/testsuite/gas/i386/dwarf5-line-1.d
++new file mode 100644
++index 0000000000..7d602d0594
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/dwarf5-line-1.d
++@@ -0,0 +1,50 @@
+++#as: -gdwarf-5
+++#readelf: -wl
+++#name: DWARF5 .debug_line 1
+++
+++Raw dump of debug contents of section \.z?debug_line:
+++
+++ Offset: 0x0
+++ Length: .*
+++ DWARF Version: 5
+++ Address size \(bytes\): .*
+++ Segment selector \(bytes\): 0
+++ Prologue Length: .*
+++ Minimum Instruction Length: 1
+++ Maximum Ops per Instruction: 1
+++ Initial value of 'is_stmt': 1
+++ Line Base: -5
+++ Line Range: 14
+++ Opcode Base: 13
+++
+++ Opcodes:
+++ Opcode 1 has 0 args
+++ Opcode 2 has 1 arg
+++ Opcode 3 has 1 arg
+++ Opcode 4 has 1 arg
+++ Opcode 5 has 1 arg
+++ Opcode 6 has 0 args
+++ Opcode 7 has 0 args
+++ Opcode 8 has 0 args
+++ Opcode 9 has 1 arg
+++ Opcode 10 has 0 args
+++ Opcode 11 has 0 args
+++ Opcode 12 has 1 arg
+++
+++ The Directory Table \(offset 0x.*, lines 2, columns 1\):
+++ Entry Name
+++ 0 \(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386
+++ 1 \(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386
+++
+++ The File Name Table \(offset 0x.*, lines 2, columns 3\):
+++ Entry Dir MD5 Name
+++ 0 0 0xbbd69fc03ce253b2dbaab2522dd519ae \(indirect line string, offset: 0x.*\): core.c
+++ 1 0 0x00000000000000000000000000000000 \(indirect line string, offset: 0x.*\): types.h
+++
+++ Line Number Statements:
+++ \[0x.*\] Extended opcode 2: set Address to 0x0
+++ \[0x.*\] Special opcode 8: advance Address by 0 to 0x0 and Line by 3 to 4
+++ \[0x.*\] Advance PC by 1 to 0x1
+++ \[0x.*\] Extended opcode 1: End of Sequence
+++
+++
++diff --git a/gas/testsuite/gas/i386/dwarf5-line-1.s b/gas/testsuite/gas/i386/dwarf5-line-1.s
++new file mode 100644
++index 0000000000..6e343ad0d3
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/dwarf5-line-1.s
++@@ -0,0 +1,6 @@
+++ .text
+++ .global kretprobe_trampoline
+++kretprobe_trampoline:
+++ ret
+++ .file 0 "core.c" md5 0xbbd69fc03ce253b2dbaab2522dd519ae
+++ .file 1 "types.h"
++diff --git a/gas/testsuite/gas/i386/dwarf5-line-2.d b/gas/testsuite/gas/i386/dwarf5-line-2.d
++new file mode 100644
++index 0000000000..302a2d8fcc
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/dwarf5-line-2.d
++@@ -0,0 +1,49 @@
+++#as: -gdwarf-5
+++#readelf: -wl
+++#name: DWARF5 .debug_line 2
+++
+++Raw dump of debug contents of section \.z?debug_line:
+++
+++ Offset: 0x0
+++ Length: .*
+++ DWARF Version: 5
+++ Address size \(bytes\): .*
+++ Segment selector \(bytes\): 0
+++ Prologue Length: .*
+++ Minimum Instruction Length: 1
+++ Maximum Ops per Instruction: 1
+++ Initial value of 'is_stmt': 1
+++ Line Base: -5
+++ Line Range: 14
+++ Opcode Base: 13
+++
+++ Opcodes:
+++ Opcode 1 has 0 args
+++ Opcode 2 has 1 arg
+++ Opcode 3 has 1 arg
+++ Opcode 4 has 1 arg
+++ Opcode 5 has 1 arg
+++ Opcode 6 has 0 args
+++ Opcode 7 has 0 args
+++ Opcode 8 has 0 args
+++ Opcode 9 has 1 arg
+++ Opcode 10 has 0 args
+++ Opcode 11 has 0 args
+++ Opcode 12 has 1 arg
+++
+++ The Directory Table \(offset 0x.*, lines 2, columns 1\):
+++ Entry Name
+++ 0 \(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386
+++ 1 \(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386
+++
+++ The File Name Table \(offset 0x.*, lines 1, columns 3\):
+++ Entry Dir MD5 Name
+++ 0 0 0xbbd69fc03ce253b2dbaab2522dd519ae \(indirect line string, offset: 0x.*\): core.c
+++
+++ Line Number Statements:
+++ \[0x.*\] Extended opcode 2: set Address to 0x0
+++ \[0x.*\] Special opcode 8: advance Address by 0 to 0x0 and Line by 3 to 4
+++ \[0x.*\] Advance PC by 1 to 0x1
+++ \[0x.*\] Extended opcode 1: End of Sequence
+++
+++
++diff --git a/gas/testsuite/gas/i386/dwarf5-line-2.s b/gas/testsuite/gas/i386/dwarf5-line-2.s
++new file mode 100644
++index 0000000000..4af7d7061c
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/dwarf5-line-2.s
++@@ -0,0 +1,5 @@
+++ .text
+++ .global kretprobe_trampoline
+++kretprobe_trampoline:
+++ ret
+++ .file 0 "core.c" md5 0xbbd69fc03ce253b2dbaab2522dd519ae
++diff --git a/gas/testsuite/gas/i386/dwarf5-line-3.d b/gas/testsuite/gas/i386/dwarf5-line-3.d
++new file mode 100644
++index 0000000000..6f4ebf0471
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/dwarf5-line-3.d
++@@ -0,0 +1,49 @@
+++#as: -g -gdwarf-5
+++#readelf: -wl
+++#name: DWARF5 .debug_line 2
+++
+++Raw dump of debug contents of section \.z?debug_line:
+++
+++ Offset: 0x0
+++ Length: .*
+++ DWARF Version: 5
+++ Address size \(bytes\): .*
+++ Segment selector \(bytes\): 0
+++ Prologue Length: .*
+++ Minimum Instruction Length: 1
+++ Maximum Ops per Instruction: 1
+++ Initial value of 'is_stmt': 1
+++ Line Base: -5
+++ Line Range: 14
+++ Opcode Base: 13
+++
+++ Opcodes:
+++ Opcode 1 has 0 args
+++ Opcode 2 has 1 arg
+++ Opcode 3 has 1 arg
+++ Opcode 4 has 1 arg
+++ Opcode 5 has 1 arg
+++ Opcode 6 has 0 args
+++ Opcode 7 has 0 args
+++ Opcode 8 has 0 args
+++ Opcode 9 has 1 arg
+++ Opcode 10 has 0 args
+++ Opcode 11 has 0 args
+++ Opcode 12 has 1 arg
+++
+++ The Directory Table \(offset 0x.*, lines 1, columns 1\):
+++ Entry Name
+++ 0 \(indirect line string, offset: 0x.*\): .*
+++
+++ The File Name Table \(offset 0x.*, lines 2, columns 2\):
+++ Entry Dir Name
+++ 0 0 \(indirect line string, offset: 0x.*\): dwarf5-line-2.S
+++ 1 0 \(indirect line string, offset: 0x.*\): dwarf5-line-2.S
+++
+++ Line Number Statements:
+++ \[0x.*\] Extended opcode 2: set Address to 0x0
+++ \[0x.*\] Special opcode 7: advance Address by 0 to 0x0 and Line by 2 to 3
+++ \[0x.*\] Advance PC by 1 to 0x1
+++ \[0x.*\] Extended opcode 1: End of Sequence
+++
+++
++diff --git a/gas/testsuite/gas/i386/dwarf5-line-3.s b/gas/testsuite/gas/i386/dwarf5-line-3.s
++new file mode 100644
++index 0000000000..52e259d103
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/dwarf5-line-3.s
++@@ -0,0 +1,10 @@
+++# 1 "foo.S"
+++# 1 "<built-in>"
+++# 1 "<command-line>"
+++# 31 "<command-line>"
+++# 1 "/usr/include/stdc-predef.h" 1 3 4
+++# 32 "<command-line>" 2
+++# 1 "dwarf5-line-2.S"
+++ .text
+++lbasename:
+++ .nop
++diff --git a/gas/testsuite/gas/i386/enqcmd-16bit.d b/gas/testsuite/gas/i386/enqcmd-16bit.d
++new file mode 100644
++index 0000000000..04e8706d29
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/enqcmd-16bit.d
++@@ -0,0 +1,21 @@
+++#as: -I${srcdir}/$subdir
+++#objdump: -dw -Mi8086
+++#name: i386 16-bit ENQCMD[S] insns
+++
+++.*: +file format .*
+++
+++Disassembly of section .text:
+++
+++0+ <_start>:
+++ +[a-f0-9]+: 67 0f 38 f9 01 movdiri %eax,\(%ecx\)
+++ +[a-f0-9]+: 67 66 0f 38 f8 01 movdir64b \(%ecx\),%eax
+++ +[a-f0-9]+: 66 0f 38 f8 04 movdir64b \(%si\),%ax
+++ +[a-f0-9]+: 66 0f 38 f8 0e 00 00 movdir64b 0x0,%cx
+++ +[a-f0-9]+: 66 0f 38 f8 0e 34 12 movdir64b 0x1234,%cx
+++ +[a-f0-9]+: 67 0f 38 f9 01 movdiri %eax,\(%ecx\)
+++ +[a-f0-9]+: 67 0f 38 f9 01 movdiri %eax,\(%ecx\)
+++ +[a-f0-9]+: 67 66 0f 38 f8 01 movdir64b \(%ecx\),%eax
+++ +[a-f0-9]+: 66 0f 38 f8 04 movdir64b \(%si\),%ax
+++ +[a-f0-9]+: 66 0f 38 f8 0e 00 00 movdir64b 0x0,%cx
+++ +[a-f0-9]+: 66 0f 38 f8 0e 34 12 movdir64b 0x1234,%cx
+++#pass
++diff --git a/gas/testsuite/gas/i386/enqcmd-16bit.s b/gas/testsuite/gas/i386/enqcmd-16bit.s
++new file mode 100644
++index 0000000000..1f21cec363
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/enqcmd-16bit.s
++@@ -0,0 +1,4 @@
+++# Check ENQCMD[S] 16-bit instructions
+++
+++ .code16
+++.include "movdir.s"
++diff --git a/gas/testsuite/gas/i386/enqcmd-intel.d b/gas/testsuite/gas/i386/enqcmd-intel.d
++index b38c3ed6ee..e1d30dacd7 100644
++--- a/gas/testsuite/gas/i386/enqcmd-intel.d
+++++ b/gas/testsuite/gas/i386/enqcmd-intel.d
++@@ -8,13 +8,21 @@
++
++ Disassembly of section \.text:
++
++-00000000 <_start>:
++-[ ]*[a-f0-9]+:[ ]*f2 0f 38 f8 01[ ]*enqcmd eax,\[ecx\]
++-[ ]*[a-f0-9]+:[ ]*67 f2 0f 38 f8 04[ ]*enqcmd ax,\[si\]
++-[ ]*[a-f0-9]+:[ ]*f3 0f 38 f8 01[ ]*enqcmds eax,\[ecx\]
++-[ ]*[a-f0-9]+:[ ]*67 f3 0f 38 f8 04[ ]*enqcmds ax,\[si\]
++-[ ]*[a-f0-9]+:[ ]*f2 0f 38 f8 01[ ]*enqcmd eax,\[ecx\]
++-[ ]*[a-f0-9]+:[ ]*67 f2 0f 38 f8 04[ ]*enqcmd ax,\[si\]
++-[ ]*[a-f0-9]+:[ ]*f3 0f 38 f8 01[ ]*enqcmds eax,\[ecx\]
++-[ ]*[a-f0-9]+:[ ]*67 f3 0f 38 f8 04[ ]*enqcmds ax,\[si\]
+++0+ <_start>:
+++ +[a-f0-9]+: f2 0f 38 f8 01 enqcmd eax,\[ecx\]
+++ +[a-f0-9]+: 67 f2 0f 38 f8 04 enqcmd ax,\[si\]
+++ +[a-f0-9]+: f3 0f 38 f8 01 enqcmds eax,\[ecx\]
+++ +[a-f0-9]+: 67 f3 0f 38 f8 04 enqcmds ax,\[si\]
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0e 00 00 enqcmd cx,ds:0x0
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0e 34 12 enqcmd cx,ds:0x1234
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0e 00 00 enqcmds cx,ds:0x0
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0e 34 12 enqcmds cx,ds:0x1234
+++ +[a-f0-9]+: f2 0f 38 f8 01 enqcmd eax,\[ecx\]
+++ +[a-f0-9]+: 67 f2 0f 38 f8 04 enqcmd ax,\[si\]
+++ +[a-f0-9]+: f3 0f 38 f8 01 enqcmds eax,\[ecx\]
+++ +[a-f0-9]+: 67 f3 0f 38 f8 04 enqcmds ax,\[si\]
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0e 00 00 enqcmd cx,ds:0x0
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0e 34 12 enqcmd cx,ds:0x1234
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0e 00 00 enqcmds cx,ds:0x0
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0e 34 12 enqcmds cx,ds:0x1234
++ #pass
++diff --git a/gas/testsuite/gas/i386/enqcmd.d b/gas/testsuite/gas/i386/enqcmd.d
++index c601185ba3..99b9c0a729 100644
++--- a/gas/testsuite/gas/i386/enqcmd.d
+++++ b/gas/testsuite/gas/i386/enqcmd.d
++@@ -8,13 +8,21 @@
++
++ Disassembly of section \.text:
++
++-00000000 <_start>:
++-[ ]*[a-f0-9]+:[ ]*f2 0f 38 f8 01[ ]*enqcmd \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*67 f2 0f 38 f8 04[ ]*enqcmd \(%si\),%ax
++-[ ]*[a-f0-9]+:[ ]*f3 0f 38 f8 01[ ]*enqcmds \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*67 f3 0f 38 f8 04[ ]*enqcmds \(%si\),%ax
++-[ ]*[a-f0-9]+:[ ]*f2 0f 38 f8 01[ ]*enqcmd \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*67 f2 0f 38 f8 04[ ]*enqcmd \(%si\),%ax
++-[ ]*[a-f0-9]+:[ ]*f3 0f 38 f8 01[ ]*enqcmds \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*67 f3 0f 38 f8 04[ ]*enqcmds \(%si\),%ax
+++0+ <_start>:
+++ +[a-f0-9]+: f2 0f 38 f8 01 enqcmd \(%ecx\),%eax
+++ +[a-f0-9]+: 67 f2 0f 38 f8 04 enqcmd \(%si\),%ax
+++ +[a-f0-9]+: f3 0f 38 f8 01 enqcmds \(%ecx\),%eax
+++ +[a-f0-9]+: 67 f3 0f 38 f8 04 enqcmds \(%si\),%ax
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0e 00 00 enqcmd 0x0,%cx
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0e 34 12 enqcmd 0x1234,%cx
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0e 00 00 enqcmds 0x0,%cx
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0e 34 12 enqcmds 0x1234,%cx
+++ +[a-f0-9]+: f2 0f 38 f8 01 enqcmd \(%ecx\),%eax
+++ +[a-f0-9]+: 67 f2 0f 38 f8 04 enqcmd \(%si\),%ax
+++ +[a-f0-9]+: f3 0f 38 f8 01 enqcmds \(%ecx\),%eax
+++ +[a-f0-9]+: 67 f3 0f 38 f8 04 enqcmds \(%si\),%ax
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0e 00 00 enqcmd 0x0,%cx
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0e 34 12 enqcmd 0x1234,%cx
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0e 00 00 enqcmds 0x0,%cx
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0e 34 12 enqcmds 0x1234,%cx
++ #pass
++diff --git a/gas/testsuite/gas/i386/enqcmd.s b/gas/testsuite/gas/i386/enqcmd.s
++index 0a23b25a6f..f7195fa723 100644
++--- a/gas/testsuite/gas/i386/enqcmd.s
+++++ b/gas/testsuite/gas/i386/enqcmd.s
++@@ -7,9 +7,17 @@ _start:
++ enqcmd (%si),%ax
++ enqcmds (%ecx),%eax
++ enqcmds (%si),%ax
+++ enqcmd foo, %cx
+++ enqcmd 0x1234, %cx
+++ enqcmds foo, %cx
+++ enqcmds 0x1234, %cx
++
++ .intel_syntax noprefix
++ enqcmd eax,[ecx]
++ enqcmd ax,[si]
++ enqcmds eax,[ecx]
++ enqcmds ax,[si]
+++ enqcmd cx,ds:foo
+++ enqcmd cx,ds:0x1234
+++ enqcmds cx,ds:foo
+++ enqcmds cx,ds:0x1234
++diff --git a/gas/testsuite/gas/i386/evex-no-scale-64.d b/gas/testsuite/gas/i386/evex-no-scale-64.d
++index 6c9f68faf2..33623656ee 100644
++--- a/gas/testsuite/gas/i386/evex-no-scale-64.d
+++++ b/gas/testsuite/gas/i386/evex-no-scale-64.d
++@@ -10,5 +10,5 @@ Disassembly of section .text:
++ +[a-f0-9]+: 62 f1 7c 48 28 04 05 40 00 00 00 vmovaps 0x40\(,%rax,1\),%zmm0
++ +[a-f0-9]+: 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40,%zmm0
++ +[a-f0-9]+: 67 62 f1 7c 48 28 04 05 40 00 00 00 vmovaps 0x40\(,%eax,1\),%zmm0
++- +[a-f0-9]+: 67 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40,%zmm0
+++ +[a-f0-9]+: 67 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40\(,%eiz,1\),%zmm0
++ +[a-f0-9]+: 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40,%zmm0
++diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
++index 6563aae246..3039c36a30 100644
++--- a/gas/testsuite/gas/i386/i386.exp
+++++ b/gas/testsuite/gas/i386/i386.exp
++@@ -475,9 +475,11 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
++ run_dump_test "cldemote-intel"
++ run_dump_test "movdir"
++ run_dump_test "movdir-intel"
+++ run_dump_test "movdir-16bit"
++ run_list_test "movdir64b-reg"
++ run_dump_test "enqcmd"
++ run_dump_test "enqcmd-intel"
+++ run_dump_test "enqcmd-16bit"
++ run_list_test "enqcmd-inval"
++ run_dump_test "serialize"
++ run_dump_test "tsxldtrk"
++@@ -594,6 +596,10 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
++ run_dump_test "dwarf2-line-2"
++ run_dump_test "dwarf2-line-3"
++ run_dump_test "dwarf2-line-4"
+++ run_dump_test "dwarf4-line-1"
+++ run_dump_test "dwarf5-line-1"
+++ run_dump_test "dwarf5-line-2"
+++ run_dump_test "dwarf5-line-3"
++
++ run_dump_test "dw2-compress-2"
++ run_dump_test "dw2-compressed-2"
++diff --git a/gas/testsuite/gas/i386/movdir-16bit.d b/gas/testsuite/gas/i386/movdir-16bit.d
++new file mode 100644
++index 0000000000..ac5d82507f
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/movdir-16bit.d
++@@ -0,0 +1,21 @@
+++#as: -I${srcdir}/$subdir
+++#objdump: -dw -Mi8086
+++#name: i386 16-bit MOVDIR[I,64B] insns
+++
+++.*: +file format .*
+++
+++Disassembly of section .text:
+++
+++0+ <_start>:
+++ +[a-f0-9]+: 67 0f 38 f9 01 movdiri %eax,\(%ecx\)
+++ +[a-f0-9]+: 67 66 0f 38 f8 01 movdir64b \(%ecx\),%eax
+++ +[a-f0-9]+: 66 0f 38 f8 04 movdir64b \(%si\),%ax
+++ +[a-f0-9]+: 66 0f 38 f8 0e 00 00 movdir64b 0x0,%cx
+++ +[a-f0-9]+: 66 0f 38 f8 0e 34 12 movdir64b 0x1234,%cx
+++ +[a-f0-9]+: 67 0f 38 f9 01 movdiri %eax,\(%ecx\)
+++ +[a-f0-9]+: 67 0f 38 f9 01 movdiri %eax,\(%ecx\)
+++ +[a-f0-9]+: 67 66 0f 38 f8 01 movdir64b \(%ecx\),%eax
+++ +[a-f0-9]+: 66 0f 38 f8 04 movdir64b \(%si\),%ax
+++ +[a-f0-9]+: 66 0f 38 f8 0e 00 00 movdir64b 0x0,%cx
+++ +[a-f0-9]+: 66 0f 38 f8 0e 34 12 movdir64b 0x1234,%cx
+++#pass
++diff --git a/gas/testsuite/gas/i386/movdir-16bit.s b/gas/testsuite/gas/i386/movdir-16bit.s
++new file mode 100644
++index 0000000000..27f5fda5a5
++--- /dev/null
+++++ b/gas/testsuite/gas/i386/movdir-16bit.s
++@@ -0,0 +1,4 @@
+++# Check MOVDIR[I,64B] 16-bit instructions
+++
+++ .code16
+++.include "movdir.s"
++diff --git a/gas/testsuite/gas/i386/movdir-intel.d b/gas/testsuite/gas/i386/movdir-intel.d
++index 04f58a7892..56f4fa929a 100644
++--- a/gas/testsuite/gas/i386/movdir-intel.d
+++++ b/gas/testsuite/gas/i386/movdir-intel.d
++@@ -8,19 +8,16 @@
++
++ Disassembly of section \.text:
++
++-00000000 <_start>:
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[ecx\],eax
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b eax,\[ecx\]
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 04[ ]*movdir64b ax,\[si\]
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[ecx\],eax
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[ecx\],eax
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b eax,\[ecx\]
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 04[ ]*movdir64b ax,\[si\]
++-[ ]*[a-f0-9]+:[ ]*67 0f 38 f9 01[ ]*movdiri DWORD PTR \[bx\+di\],eax
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b ax,\[bx\+di\]
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 04 67[ ]*movdir64b eax,\[edi\+eiz\*2\]
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[ecx\],eax
++-[ ]*[a-f0-9]+:[ ]*67 0f 38 f9 01[ ]*movdiri DWORD PTR \[bx\+di\],eax
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b ax,\[bx\+di\]
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 04 90[ ]*movdir64b eax,\[eax\+edx\*4\]
+++0+ <_start>:
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri DWORD PTR \[ecx\],eax
+++ +[a-f0-9]+: 66 0f 38 f8 01 movdir64b eax,\[ecx\]
+++ +[a-f0-9]+: 67 66 0f 38 f8 04 movdir64b ax,\[si\]
+++ +[a-f0-9]+: 67 66 0f 38 f8 0e 00 00 movdir64b cx,ds:0x0
+++ +[a-f0-9]+: 67 66 0f 38 f8 0e 34 12 movdir64b cx,ds:0x1234
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri DWORD PTR \[ecx\],eax
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri DWORD PTR \[ecx\],eax
+++ +[a-f0-9]+: 66 0f 38 f8 01 movdir64b eax,\[ecx\]
+++ +[a-f0-9]+: 67 66 0f 38 f8 04 movdir64b ax,\[si\]
+++ +[a-f0-9]+: 67 66 0f 38 f8 0e 00 00 movdir64b cx,ds:0x0
+++ +[a-f0-9]+: 67 66 0f 38 f8 0e 34 12 movdir64b cx,ds:0x1234
++ #pass
++diff --git a/gas/testsuite/gas/i386/movdir.d b/gas/testsuite/gas/i386/movdir.d
++index 192dad9920..a8f324bdde 100644
++--- a/gas/testsuite/gas/i386/movdir.d
+++++ b/gas/testsuite/gas/i386/movdir.d
++@@ -8,19 +8,16 @@
++
++ Disassembly of section \.text:
++
++-00000000 <_start>:
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%ecx\)
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 04[ ]*movdir64b \(%si\),%ax
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%ecx\)
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%ecx\)
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 04[ ]*movdir64b \(%si\),%ax
++-[ ]*[a-f0-9]+:[ ]*67 0f 38 f9 01[ ]*movdiri %eax,\(%bx,%di\)
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b \(%bx,%di\),%ax
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 04 67[ ]*movdir64b \(%edi,%eiz,2\),%eax
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%ecx\)
++-[ ]*[a-f0-9]+:[ ]*67 0f 38 f9 01[ ]*movdiri %eax,\(%bx,%di\)
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b \(%bx,%di\),%ax
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 04 90[ ]*movdir64b \(%eax,%edx,4\),%eax
+++0+ <_start>:
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri %eax,\(%ecx\)
+++ +[a-f0-9]+: 66 0f 38 f8 01 movdir64b \(%ecx\),%eax
+++ +[a-f0-9]+: 67 66 0f 38 f8 04 movdir64b \(%si\),%ax
+++ +[a-f0-9]+: 67 66 0f 38 f8 0e 00 00 movdir64b 0x0,%cx
+++ +[a-f0-9]+: 67 66 0f 38 f8 0e 34 12 movdir64b 0x1234,%cx
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri %eax,\(%ecx\)
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri %eax,\(%ecx\)
+++ +[a-f0-9]+: 66 0f 38 f8 01 movdir64b \(%ecx\),%eax
+++ +[a-f0-9]+: 67 66 0f 38 f8 04 movdir64b \(%si\),%ax
+++ +[a-f0-9]+: 67 66 0f 38 f8 0e 00 00 movdir64b 0x0,%cx
+++ +[a-f0-9]+: 67 66 0f 38 f8 0e 34 12 movdir64b 0x1234,%cx
++ #pass
++diff --git a/gas/testsuite/gas/i386/movdir.s b/gas/testsuite/gas/i386/movdir.s
++index 29c381ca23..00c57db141 100644
++--- a/gas/testsuite/gas/i386/movdir.s
+++++ b/gas/testsuite/gas/i386/movdir.s
++@@ -3,19 +3,16 @@
++ .allow_index_reg
++ .text
++ _start:
++- .rept 2
++ movdiri %eax, (%ecx)
++ movdir64b (%ecx),%eax
++ movdir64b (%si),%ax
+++ movdir64b foo, %cx
+++ movdir64b 0x1234, %cx
++
++ .intel_syntax noprefix
++ movdiri [ecx], eax
++ movdiri dword ptr [ecx], eax
++ movdir64b eax,[ecx]
++ movdir64b ax,[si]
++-
++- .att_syntax prefix
++- .code16
++- .endr
++-
++- nop
+++ movdir64b cx,ds:foo
+++ movdir64b cx,ds:0x1234
++diff --git a/gas/testsuite/gas/i386/x86-64-addr32-intel.d b/gas/testsuite/gas/i386/x86-64-addr32-intel.d
++index 7a25d40162..0988457b34 100644
++--- a/gas/testsuite/gas/i386/x86-64-addr32-intel.d
+++++ b/gas/testsuite/gas/i386/x86-64-addr32-intel.d
++@@ -11,15 +11,15 @@ Disassembly of section .text:
++ [ ]*[a-f0-9]+: 67 48 8d 80 00 00 00 00[ ]+lea[ ]+rax,\[eax\+0x0\].*
++ [ ]*[a-f0-9]+: 67 49 8d 80 00 00 00 00[ ]+lea[ ]+rax,\[r8d\+0x0\].*
++ [ ]*[a-f0-9]+: 67 48 8d 05 00 00 00 00[ ]+lea[ ]+rax,\[eip\+0x0\].*
++-[ ]*[a-f0-9]+: 67 48 8d 04 25 00 00 00 00 lea[ ]+rax,ds:0x0 .*
+++[ ]*[a-f0-9]+: 67 48 8d 04 25 00 00 00 00 lea[ ]+rax,\[eiz\*1\+0x0\].*
++ [ ]*[a-f0-9]+: 67 a0 98 08 60 00 addr32 mov al,ds:0x600898
++ [ ]*[a-f0-9]+: 67 66 a1 98 08 60 00 addr32 mov ax,ds:0x600898
++ [ ]*[a-f0-9]+: 67 a1 98 08 60 00 addr32 mov eax,ds:0x600898
++ [ ]*[a-f0-9]+: 67 48 a1 98 08 60 00 addr32 mov rax,ds:0x600898
++ [ ]*[a-f0-9]+: 67 48 a1 98 08 80 00 addr32 mov rax,ds:0x800898
++-[ ]*[a-f0-9]+: 67 48 8b 1c 25 98 08 80 00 mov[ ]+rbx,QWORD PTR ds:0x800898
+++[ ]*[a-f0-9]+: 67 48 8b 1c 25 98 08 80 00 mov[ ]+rbx,QWORD PTR \[eiz\*1\+0x800898\]
++ [ ]*[a-f0-9]+: 67 48 a1 ef cd ab 89 addr32 mov rax,ds:0x89abcdef
++-[ ]*[a-f0-9]+: 67 48 8b 1c 25 ef cd ab 89 mov[ ]+rbx,QWORD PTR ds:0x89abcdef
+++[ ]*[a-f0-9]+: 67 48 8b 1c 25 ef cd ab 89 mov[ ]+rbx,QWORD PTR \[eiz\*1\+0x89abcdef\]
++ [ ]*[a-f0-9]+: 67 48 b8 ef cd ab 89 00 00 00 00 addr32 movabs rax,0x89abcdef
++ [ ]*[a-f0-9]+: 67 48 bb ef cd ab 89 00 00 00 00 addr32 movabs rbx,0x89abcdef
++ [ ]*[a-f0-9]+: 67 a2 98 08 60 00 addr32 mov ds:0x600898,al
++@@ -27,9 +27,9 @@ Disassembly of section .text:
++ [ ]*[a-f0-9]+: 67 a3 98 08 60 00 addr32 mov ds:0x600898,eax
++ [ ]*[a-f0-9]+: 67 48 a3 98 08 60 00 addr32 mov ds:0x600898,rax
++ [ ]*[a-f0-9]+: 67 48 a3 98 08 80 00 addr32 mov ds:0x800898,rax
++-[ ]*[a-f0-9]+: 67 48 89 1c 25 98 08 80 00 mov[ ]+QWORD PTR ds:0x800898,rbx
+++[ ]*[a-f0-9]+: 67 48 89 1c 25 98 08 80 00 mov[ ]+QWORD PTR \[eiz\*1\+0x800898\],rbx
++ [ ]*[a-f0-9]+: 67 48 a3 ef cd ab 89 addr32 mov ds:0x89abcdef,rax
++-[ ]*[a-f0-9]+: 67 48 89 1c 25 ef cd ab 89 mov[ ]+QWORD PTR ds:0x89abcdef,rbx
++-[ ]*[a-f0-9]+: 67 89 04 25 11 22 33 ff mov[ ]+DWORD PTR ds:0xff332211,eax
+++[ ]*[a-f0-9]+: 67 48 89 1c 25 ef cd ab 89 mov[ ]+QWORD PTR \[eiz\*1\+0x89abcdef\],rbx
+++[ ]*[a-f0-9]+: 67 89 04 25 11 22 33 ff mov[ ]+DWORD PTR \[eiz\*1\+0xff332211\],eax
++ [ ]*[a-f0-9]+: 67 89 04 65 11 22 33 ff mov[ ]+DWORD PTR \[eiz\*2\+0xff332211\],eax
++ #pass
++diff --git a/gas/testsuite/gas/i386/x86-64-addr32.d b/gas/testsuite/gas/i386/x86-64-addr32.d
++index c513f0dd8e..d9481a7439 100644
++--- a/gas/testsuite/gas/i386/x86-64-addr32.d
+++++ b/gas/testsuite/gas/i386/x86-64-addr32.d
++@@ -10,15 +10,15 @@ Disassembly of section .text:
++ [ ]*[a-f0-9]+: 67 48 8d 80 00 00 00 00[ ]+lea[ ]+0x0\(%eax\),%rax.*
++ [ ]*[a-f0-9]+: 67 49 8d 80 00 00 00 00[ ]+lea[ ]+0x0\(%r8d\),%rax.*
++ [ ]*[a-f0-9]+: 67 48 8d 05 00 00 00 00[ ]+lea[ ]+0x0\(%eip\),%rax.*
++-[ ]*[a-f0-9]+: 67 48 8d 04 25 00 00 00 00[ ]+lea[ ]+0x0,%rax.*
+++[ ]*[a-f0-9]+: 67 48 8d 04 25 00 00 00 00[ ]+lea[ ]+0x0\(,%eiz,1\),%rax.*
++ [ ]*[a-f0-9]+: 67 a0 98 08 60 00 addr32 mov 0x600898,%al
++ [ ]*[a-f0-9]+: 67 66 a1 98 08 60 00 addr32 mov 0x600898,%ax
++ [ ]*[a-f0-9]+: 67 a1 98 08 60 00 addr32 mov 0x600898,%eax
++ [ ]*[a-f0-9]+: 67 48 a1 98 08 60 00 addr32 mov 0x600898,%rax
++ [ ]*[a-f0-9]+: 67 48 a1 98 08 80 00 addr32 mov 0x800898,%rax
++-[ ]*[a-f0-9]+: 67 48 8b 1c 25 98 08 80 00 mov[ ]+0x800898,%rbx
+++[ ]*[a-f0-9]+: 67 48 8b 1c 25 98 08 80 00 mov[ ]+0x800898\(,%eiz,1\),%rbx
++ [ ]*[a-f0-9]+: 67 48 a1 ef cd ab 89 addr32 mov 0x89abcdef,%rax
++-[ ]*[a-f0-9]+: 67 48 8b 1c 25 ef cd ab 89 mov[ ]+0x89abcdef,%rbx
+++[ ]*[a-f0-9]+: 67 48 8b 1c 25 ef cd ab 89 mov[ ]+0x89abcdef\(,%eiz,1\),%rbx
++ [ ]*[a-f0-9]+: 67 48 b8 ef cd ab 89 00 00 00 00 addr32 movabs \$0x89abcdef,%rax
++ [ ]*[a-f0-9]+: 67 48 bb ef cd ab 89 00 00 00 00 addr32 movabs \$0x89abcdef,%rbx
++ [ ]*[a-f0-9]+: 67 a2 98 08 60 00 addr32 mov %al,0x600898
++@@ -26,9 +26,9 @@ Disassembly of section .text:
++ [ ]*[a-f0-9]+: 67 a3 98 08 60 00 addr32 mov %eax,0x600898
++ [ ]*[a-f0-9]+: 67 48 a3 98 08 60 00 addr32 mov %rax,0x600898
++ [ ]*[a-f0-9]+: 67 48 a3 98 08 80 00 addr32 mov %rax,0x800898
++-[ ]*[a-f0-9]+: 67 48 89 1c 25 98 08 80 00 mov[ ]+%rbx,0x800898
+++[ ]*[a-f0-9]+: 67 48 89 1c 25 98 08 80 00 mov[ ]+%rbx,0x800898\(,%eiz,1\)
++ [ ]*[a-f0-9]+: 67 48 a3 ef cd ab 89 addr32 mov %rax,0x89abcdef
++-[ ]*[a-f0-9]+: 67 48 89 1c 25 ef cd ab 89 mov[ ]+%rbx,0x89abcdef
++-[ ]*[a-f0-9]+: 67 89 04 25 11 22 33 ff mov[ ]+%eax,0xff332211
+++[ ]*[a-f0-9]+: 67 48 89 1c 25 ef cd ab 89 mov[ ]+%rbx,0x89abcdef\(,%eiz,1\)
+++[ ]*[a-f0-9]+: 67 89 04 25 11 22 33 ff mov[ ]+%eax,0xff332211\(,%eiz,1\)
++ [ ]*[a-f0-9]+: 67 89 04 65 11 22 33 ff mov[ ]+%eax,0xff332211\(,%eiz,2\)
++ #pass
++diff --git a/gas/testsuite/gas/i386/x86-64-enqcmd-intel.d b/gas/testsuite/gas/i386/x86-64-enqcmd-intel.d
++index e483d570b9..d8dc7facba 100644
++--- a/gas/testsuite/gas/i386/x86-64-enqcmd-intel.d
+++++ b/gas/testsuite/gas/i386/x86-64-enqcmd-intel.d
++@@ -9,12 +9,32 @@
++ Disassembly of section \.text:
++
++ 0+ <_start>:
++-[ ]*[a-f0-9]+:[ ]*f2 0f 38 f8 01[ ]*enqcmd rax,\[rcx\]
++-[ ]*[a-f0-9]+:[ ]*67 f2 0f 38 f8 01[ ]*enqcmd eax,\[ecx\]
++-[ ]*[a-f0-9]+:[ ]*f3 0f 38 f8 01[ ]*enqcmds rax,\[rcx\]
++-[ ]*[a-f0-9]+:[ ]*67 f3 0f 38 f8 01[ ]*enqcmds eax,\[ecx\]
++-[ ]*[a-f0-9]+:[ ]*f2 0f 38 f8 01[ ]*enqcmd rax,\[rcx\]
++-[ ]*[a-f0-9]+:[ ]*67 f2 0f 38 f8 01[ ]*enqcmd eax,\[ecx\]
++-[ ]*[a-f0-9]+:[ ]*f3 0f 38 f8 01[ ]*enqcmds rax,\[rcx\]
++-[ ]*[a-f0-9]+:[ ]*67 f3 0f 38 f8 01[ ]*enqcmds eax,\[ecx\]
+++ +[a-f0-9]+: f2 0f 38 f8 01 enqcmd rax,\[rcx\]
+++ +[a-f0-9]+: 67 f2 0f 38 f8 01 enqcmd eax,\[ecx\]
+++ +[a-f0-9]+: f3 0f 38 f8 01 enqcmds rax,\[rcx\]
+++ +[a-f0-9]+: 67 f3 0f 38 f8 01 enqcmds eax,\[ecx\]
+++ +[a-f0-9]+: f2 0f 38 f8 0d 00 00 00 00 enqcmd rcx,\[rip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0d 00 00 00 00 enqcmd ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0d 00 00 00 00 enqcmd ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: f3 0f 38 f8 0d 00 00 00 00 enqcmds rcx,\[rip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0d 00 00 00 00 enqcmds ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0d 00 00 00 00 enqcmds ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0c 25 00 00 00 00 enqcmd ecx,\[eiz\*1\+0x0\]
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0c 25 78 56 34 12 enqcmd ecx,\[eiz\*1\+0x12345678\]
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0c 25 00 00 00 00 enqcmds ecx,\[eiz\*1\+0x0\]
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0c 25 78 56 34 12 enqcmds ecx,\[eiz\*1\+0x12345678\]
+++ +[a-f0-9]+: f2 0f 38 f8 01 enqcmd rax,\[rcx\]
+++ +[a-f0-9]+: 67 f2 0f 38 f8 01 enqcmd eax,\[ecx\]
+++ +[a-f0-9]+: f3 0f 38 f8 01 enqcmds rax,\[rcx\]
+++ +[a-f0-9]+: 67 f3 0f 38 f8 01 enqcmds eax,\[ecx\]
+++ +[a-f0-9]+: f2 0f 38 f8 0d 00 00 00 00 enqcmd rcx,\[rip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0d 00 00 00 00 enqcmd ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0d 00 00 00 00 enqcmd ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: f3 0f 38 f8 0d 00 00 00 00 enqcmds rcx,\[rip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0d 00 00 00 00 enqcmds ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0d 00 00 00 00 enqcmds ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0c 25 00 00 00 00 enqcmd ecx,\[eiz\*1\+0x0\]
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0c 25 78 56 34 12 enqcmd ecx,\[eiz\*1\+0x12345678\]
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0c 25 00 00 00 00 enqcmds ecx,\[eiz\*1\+0x0\]
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0c 25 78 56 34 12 enqcmds ecx,\[eiz\*1\+0x12345678\]
++ #pass
++diff --git a/gas/testsuite/gas/i386/x86-64-enqcmd.d b/gas/testsuite/gas/i386/x86-64-enqcmd.d
++index 337febf320..e6f627ff09 100644
++--- a/gas/testsuite/gas/i386/x86-64-enqcmd.d
+++++ b/gas/testsuite/gas/i386/x86-64-enqcmd.d
++@@ -9,12 +9,32 @@
++ Disassembly of section \.text:
++
++ 0+ <_start>:
++-[ ]*[a-f0-9]+:[ ]*f2 0f 38 f8 01[ ]*enqcmd \(%rcx\),%rax
++-[ ]*[a-f0-9]+:[ ]*67 f2 0f 38 f8 01[ ]*enqcmd \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*f3 0f 38 f8 01[ ]*enqcmds \(%rcx\),%rax
++-[ ]*[a-f0-9]+:[ ]*67 f3 0f 38 f8 01[ ]*enqcmds \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*f2 0f 38 f8 01[ ]*enqcmd \(%rcx\),%rax
++-[ ]*[a-f0-9]+:[ ]*67 f2 0f 38 f8 01[ ]*enqcmd \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*f3 0f 38 f8 01[ ]*enqcmds \(%rcx\),%rax
++-[ ]*[a-f0-9]+:[ ]*67 f3 0f 38 f8 01[ ]*enqcmds \(%ecx\),%eax
+++ +[a-f0-9]+: f2 0f 38 f8 01 enqcmd \(%rcx\),%rax
+++ +[a-f0-9]+: 67 f2 0f 38 f8 01 enqcmd \(%ecx\),%eax
+++ +[a-f0-9]+: f3 0f 38 f8 01 enqcmds \(%rcx\),%rax
+++ +[a-f0-9]+: 67 f3 0f 38 f8 01 enqcmds \(%ecx\),%eax
+++ +[a-f0-9]+: f2 0f 38 f8 0d 00 00 00 00 enqcmd 0x0\(%rip\),%rcx #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0d 00 00 00 00 enqcmd 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0d 00 00 00 00 enqcmd 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: f3 0f 38 f8 0d 00 00 00 00 enqcmds 0x0\(%rip\),%rcx #.*
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0d 00 00 00 00 enqcmds 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0d 00 00 00 00 enqcmds 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0c 25 00 00 00 00 enqcmd 0x0\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0c 25 78 56 34 12 enqcmd 0x12345678\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0c 25 00 00 00 00 enqcmds 0x0\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0c 25 78 56 34 12 enqcmds 0x12345678\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: f2 0f 38 f8 01 enqcmd \(%rcx\),%rax
+++ +[a-f0-9]+: 67 f2 0f 38 f8 01 enqcmd \(%ecx\),%eax
+++ +[a-f0-9]+: f3 0f 38 f8 01 enqcmds \(%rcx\),%rax
+++ +[a-f0-9]+: 67 f3 0f 38 f8 01 enqcmds \(%ecx\),%eax
+++ +[a-f0-9]+: f2 0f 38 f8 0d 00 00 00 00 enqcmd 0x0\(%rip\),%rcx #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0d 00 00 00 00 enqcmd 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0d 00 00 00 00 enqcmd 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: f3 0f 38 f8 0d 00 00 00 00 enqcmds 0x0\(%rip\),%rcx #.*
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0d 00 00 00 00 enqcmds 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0d 00 00 00 00 enqcmds 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0c 25 00 00 00 00 enqcmd 0x0\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: 67 f2 0f 38 f8 0c 25 78 56 34 12 enqcmd 0x12345678\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0c 25 00 00 00 00 enqcmds 0x0\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: 67 f3 0f 38 f8 0c 25 78 56 34 12 enqcmds 0x12345678\(,%eiz,1\),%ecx
++ #pass
++diff --git a/gas/testsuite/gas/i386/x86-64-enqcmd.s b/gas/testsuite/gas/i386/x86-64-enqcmd.s
++index f790b28fc2..a03a5ffc5f 100644
++--- a/gas/testsuite/gas/i386/x86-64-enqcmd.s
+++++ b/gas/testsuite/gas/i386/x86-64-enqcmd.s
++@@ -7,9 +7,29 @@ _start:
++ enqcmd (%ecx),%eax
++ enqcmds (%rcx),%rax
++ enqcmds (%ecx),%eax
+++ enqcmd foo(%rip),%rcx
+++ enqcmd foo(%rip),%ecx
+++ enqcmd foo(%eip),%ecx
+++ enqcmds foo(%rip),%rcx
+++ enqcmds foo(%rip),%ecx
+++ enqcmds foo(%eip),%ecx
+++ enqcmd foo, %ecx
+++ enqcmd 0x12345678, %ecx
+++ enqcmds foo, %ecx
+++ enqcmds 0x12345678, %ecx
++
++ .intel_syntax noprefix
++ enqcmd rax,[rcx]
++ enqcmd eax,[ecx]
++ enqcmds rax,[rcx]
++ enqcmds eax,[ecx]
+++ enqcmd rcx,[rip+foo]
+++ enqcmd ecx,[rip+foo]
+++ enqcmd ecx,[eip+foo]
+++ enqcmds rcx,[rip+foo]
+++ enqcmds ecx,[rip+foo]
+++ enqcmds ecx,[eip+foo]
+++ enqcmd ecx,ds:foo
+++ enqcmd ecx,ds:0x12345678
+++ enqcmds ecx,ds:foo
+++ enqcmds ecx,ds:0x12345678
++diff --git a/gas/testsuite/gas/i386/x86-64-movdir-intel.d b/gas/testsuite/gas/i386/x86-64-movdir-intel.d
++index 0f3a5abd61..a35bc6ca5d 100644
++--- a/gas/testsuite/gas/i386/x86-64-movdir-intel.d
+++++ b/gas/testsuite/gas/i386/x86-64-movdir-intel.d
++@@ -9,13 +9,23 @@
++ Disassembly of section \.text:
++
++ 0+ <_start>:
++-[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri QWORD PTR \[rcx\],rax
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b rax,\[rcx\]
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b eax,\[ecx]
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[rcx\],eax
++-[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri QWORD PTR \[rcx\],rax
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[rcx\],eax
++-[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri QWORD PTR \[rcx\],rax
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b rax,\[rcx\]
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b eax,\[ecx\]
+++ +[a-f0-9]+: 48 0f 38 f9 01 movdiri QWORD PTR \[rcx\],rax
+++ +[a-f0-9]+: 66 0f 38 f8 01 movdir64b rax,\[rcx\]
+++ +[a-f0-9]+: 67 66 0f 38 f8 01 movdir64b eax,\[ecx\]
+++ +[a-f0-9]+: 66 0f 38 f8 0d 00 00 00 00 movdir64b rcx,\[rip\+0x0\] #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0d 00 00 00 00 movdir64b ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0d 00 00 00 00 movdir64b ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0c 25 00 00 00 00 movdir64b ecx,\[eiz\*1\+0x0\]
+++ +[a-f0-9]+: 67 66 0f 38 f8 0c 25 78 56 34 12 movdir64b ecx,\[eiz\*1\+0x12345678\]
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri DWORD PTR \[rcx\],eax
+++ +[a-f0-9]+: 48 0f 38 f9 01 movdiri QWORD PTR \[rcx\],rax
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri DWORD PTR \[rcx\],eax
+++ +[a-f0-9]+: 48 0f 38 f9 01 movdiri QWORD PTR \[rcx\],rax
+++ +[a-f0-9]+: 66 0f 38 f8 01 movdir64b rax,\[rcx\]
+++ +[a-f0-9]+: 67 66 0f 38 f8 01 movdir64b eax,\[ecx\]
+++ +[a-f0-9]+: 66 0f 38 f8 0d 00 00 00 00 movdir64b rcx,\[rip\+0x0\] #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0d 00 00 00 00 movdir64b ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0d 00 00 00 00 movdir64b ecx,\[eip\+0x0\] #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0c 25 00 00 00 00 movdir64b ecx,\[eiz\*1\+0x0\]
+++ +[a-f0-9]+: 67 66 0f 38 f8 0c 25 78 56 34 12 movdir64b ecx,\[eiz\*1\+0x12345678\]
++ #pass
++diff --git a/gas/testsuite/gas/i386/x86-64-movdir.d b/gas/testsuite/gas/i386/x86-64-movdir.d
++index 2deab8928e..d65787177d 100644
++--- a/gas/testsuite/gas/i386/x86-64-movdir.d
+++++ b/gas/testsuite/gas/i386/x86-64-movdir.d
++@@ -9,13 +9,23 @@
++ Disassembly of section \.text:
++
++ 0+ <_start>:
++-[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri %rax,\(%rcx\)
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b \(%rcx\),%rax
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b \(%ecx\),%eax
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%rcx\)
++-[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri %rax,\(%rcx\)
++-[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%rcx\)
++-[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri %rax,\(%rcx\)
++-[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b \(%rcx\),%rax
++-[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b \(%ecx\),%eax
+++ +[a-f0-9]+: 48 0f 38 f9 01 movdiri %rax,\(%rcx\)
+++ +[a-f0-9]+: 66 0f 38 f8 01 movdir64b \(%rcx\),%rax
+++ +[a-f0-9]+: 67 66 0f 38 f8 01 movdir64b \(%ecx\),%eax
+++ +[a-f0-9]+: 66 0f 38 f8 0d 00 00 00 00 movdir64b 0x0\(%rip\),%rcx #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0d 00 00 00 00 movdir64b 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0d 00 00 00 00 movdir64b 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0c 25 00 00 00 00 movdir64b 0x0\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: 67 66 0f 38 f8 0c 25 78 56 34 12 movdir64b 0x12345678\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri %eax,\(%rcx\)
+++ +[a-f0-9]+: 48 0f 38 f9 01 movdiri %rax,\(%rcx\)
+++ +[a-f0-9]+: 0f 38 f9 01 movdiri %eax,\(%rcx\)
+++ +[a-f0-9]+: 48 0f 38 f9 01 movdiri %rax,\(%rcx\)
+++ +[a-f0-9]+: 66 0f 38 f8 01 movdir64b \(%rcx\),%rax
+++ +[a-f0-9]+: 67 66 0f 38 f8 01 movdir64b \(%ecx\),%eax
+++ +[a-f0-9]+: 66 0f 38 f8 0d 00 00 00 00 movdir64b 0x0\(%rip\),%rcx #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0d 00 00 00 00 movdir64b 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0d 00 00 00 00 movdir64b 0x0\(%eip\),%ecx #.*
+++ +[a-f0-9]+: 67 66 0f 38 f8 0c 25 00 00 00 00 movdir64b 0x0\(,%eiz,1\),%ecx
+++ +[a-f0-9]+: 67 66 0f 38 f8 0c 25 78 56 34 12 movdir64b 0x12345678\(,%eiz,1\),%ecx
++ #pass
++diff --git a/gas/testsuite/gas/i386/x86-64-movdir.s b/gas/testsuite/gas/i386/x86-64-movdir.s
++index 6f9032dc4b..ad69bb1322 100644
++--- a/gas/testsuite/gas/i386/x86-64-movdir.s
+++++ b/gas/testsuite/gas/i386/x86-64-movdir.s
++@@ -6,6 +6,11 @@ _start:
++ movdiri %rax, (%rcx)
++ movdir64b (%rcx),%rax
++ movdir64b (%ecx),%eax
+++ movdir64b foo(%rip),%rcx
+++ movdir64b foo(%rip),%ecx
+++ movdir64b foo(%eip),%ecx
+++ movdir64b foo, %ecx
+++ movdir64b 0x12345678, %ecx
++
++ .intel_syntax noprefix
++ movdiri [rcx],eax
++@@ -14,3 +19,8 @@ _start:
++ movdiri qword ptr [rcx],rax
++ movdir64b rax,[rcx]
++ movdir64b eax,[ecx]
+++ movdir64b rcx,[rip+foo]
+++ movdir64b ecx,[rip+foo]
+++ movdir64b ecx,[eip+foo]
+++ movdir64b ecx,ds:foo
+++ movdir64b ecx,ds:0x12345678
++diff --git a/gas/testsuite/gas/ppc/476.d b/gas/testsuite/gas/ppc/476.d
++index 7818b86b13..0b75d75ae2 100644
++--- a/gas/testsuite/gas/ppc/476.d
+++++ b/gas/testsuite/gas/ppc/476.d
++@@ -7,491 +7,485 @@
++ Disassembly of section \.text:
++
++ 0+00 <ppc476>:
++- 0: (7c 64 2a 14|14 2a 64 7c) add r3,r4,r5
++- 4: (7c 64 2a 15|15 2a 64 7c) add\. r3,r4,r5
++- 8: (7c 64 28 14|14 28 64 7c) addc r3,r4,r5
++- c: (7c 64 28 15|15 28 64 7c) addc\. r3,r4,r5
++- 10: (7c 64 2c 14|14 2c 64 7c) addco r3,r4,r5
++- 14: (7c 64 2c 15|15 2c 64 7c) addco\. r3,r4,r5
++- 18: (7c 64 29 14|14 29 64 7c) adde r3,r4,r5
++- 1c: (7c 64 29 15|15 29 64 7c) adde\. r3,r4,r5
++- 20: (7c 64 2d 14|14 2d 64 7c) addeo r3,r4,r5
++- 24: (7c 64 2d 15|15 2d 64 7c) addeo\. r3,r4,r5
++- 28: (38 64 ff 80|80 ff 64 38) addi r3,r4,-128
++- 2c: (30 64 ff 80|80 ff 64 30) addic r3,r4,-128
++- 30: (34 64 ff 80|80 ff 64 34) addic\. r3,r4,-128
++- 34: (3c 64 ff 80|80 ff 64 3c) addis r3,r4,-128
++- 38: (7c 64 01 d4|d4 01 64 7c) addme r3,r4
++- 3c: (7c 64 01 d5|d5 01 64 7c) addme\. r3,r4
++- 40: (7c 64 05 d4|d4 05 64 7c) addmeo r3,r4
++- 44: (7c 64 05 d5|d5 05 64 7c) addmeo\. r3,r4
++- 48: (7c 64 2e 14|14 2e 64 7c) addo r3,r4,r5
++- 4c: (7c 64 2e 15|15 2e 64 7c) addo\. r3,r4,r5
++- 50: (7c 64 01 94|94 01 64 7c) addze r3,r4
++- 54: (7c 64 01 95|95 01 64 7c) addze\. r3,r4
++- 58: (7c 64 05 94|94 05 64 7c) addzeo r3,r4
++- 5c: (7c 64 05 95|95 05 64 7c) addzeo\. r3,r4
++- 60: (7c 83 28 38|38 28 83 7c) and r3,r4,r5
++- 64: (7c 83 28 39|39 28 83 7c) and\. r3,r4,r5
++- 68: (7d cd 78 78|78 78 cd 7d) andc r13,r14,r15
++- 6c: (7e 30 90 79|79 90 30 7e) andc\. r16,r17,r18
++- 70: (70 83 de ad|ad de 83 70) andi\. r3,r4,57005
++- 74: (74 83 de ad|ad de 83 74) andis\. r3,r4,57005
++- 78: (48 00 00 02|02 00 00 48) ba 0 <ppc476>
++- 7c: (40 01 00 00|00 00 01 40) bdnzf gt,7c <ppc476\+0x7c>
++- 80: (40 85 00 02|02 00 85 40) blea cr1,0 <ppc476>
++- 84: (4d 80 04 20|20 04 80 4d) bltctr
++- 88: (4c 8a 04 20|20 04 8a 4c) bnectr cr2
++- 8c: (4c 86 04 20|20 04 86 4c) bnectr cr1
++- 90: (4c 86 04 20|20 04 86 4c) bnectr cr1
++- 94: (4d 80 04 21|21 04 80 4d) bltctrl
++- 98: (4c 8a 04 21|21 04 8a 4c) bnectrl cr2
++- 9c: (4c 86 04 21|21 04 86 4c) bnectrl cr1
++- a0: (4c 86 04 21|21 04 86 4c) bnectrl cr1
++- a4: (40 43 00 01|01 00 43 40) bdzfl so,a4 <ppc476\+0xa4>
++- a8: (4d 80 00 20|20 00 80 4d) bltlr
++- ac: (4c 8a 00 20|20 00 8a 4c) bnelr cr2
++- b0: (4c 86 00 20|20 00 86 4c) bnelr cr1
++- b4: (4c 86 00 20|20 00 86 4c) bnelr cr1
++- b8: (4d 80 00 21|21 00 80 4d) bltlrl
++- bc: (4c 8a 00 21|21 00 8a 4c) bnelrl cr2
++- c0: (4c 86 00 21|21 00 86 4c) bnelrl cr1
++- c4: (4c 86 00 21|21 00 86 4c) bnelrl cr1
++- c8: (48 00 00 00|00 00 00 48) b c8 <ppc476\+0xc8>
++- cc: (48 00 00 01|01 00 00 48) bl cc <ppc476\+0xcc>
++- d0: (54 83 00 36|36 00 83 54) rlwinm r3,r4,0,0,27
++- d4: (7c 03 20 00|00 20 03 7c) cmpw r3,r4
++- d8: (7f 83 20 00|00 20 83 7f) cmpw cr7,r3,r4
++- dc: (7c 83 2b f8|f8 2b 83 7c) cmpb r3,r4,r5
++- e0: (7c 83 2b f8|f8 2b 83 7c) cmpb r3,r4,r5
++- e4: (2c 03 ff 59|59 ff 03 2c) cmpwi r3,-167
++- e8: (2f 83 ff 59|59 ff 83 2f) cmpwi cr7,r3,-167
++- ec: (7c 03 20 40|40 20 03 7c) cmplw r3,r4
++- f0: (7f 83 20 40|40 20 83 7f) cmplw cr7,r3,r4
++- f4: (28 03 00 a7|a7 00 03 28) cmplwi r3,167
++- f8: (2b 83 00 a7|a7 00 83 2b) cmplwi cr7,r3,167
++- fc: (7c 03 20 40|40 20 03 7c) cmplw r3,r4
++- 100: (28 03 00 a7|a7 00 03 28) cmplwi r3,167
++- 104: (7c 03 20 00|00 20 03 7c) cmpw r3,r4
++- 108: (2c 03 ff 59|59 ff 03 2c) cmpwi r3,-167
++- 10c: (7d 6a 00 34|34 00 6a 7d) cntlzw r10,r11
++- 110: (7d 6a 00 35|35 00 6a 7d) cntlzw\. r10,r11
++- 114: (4c 85 32 02|02 32 85 4c) crand 4\*cr1\+lt,4\*cr1\+gt,4\*cr1\+eq
++- 118: (4c 64 29 02|02 29 64 4c) crandc so,4\*cr1\+lt,4\*cr1\+gt
++- 11c: (4c e0 0a 42|42 0a e0 4c) creqv 4\*cr1\+so,lt,gt
++- 120: (4c 22 19 c2|c2 19 22 4c) crnand gt,eq,so
++- 124: (4c 01 10 42|42 10 01 4c) crnor lt,gt,eq
++- 128: (4c a6 3b 82|82 3b a6 4c) cror 4\*cr1\+gt,4\*cr1\+eq,4\*cr1\+so
++- 12c: (4c 43 23 42|42 23 43 4c) crorc eq,so,4\*cr1\+lt
++- 130: (4c c7 01 82|82 01 c7 4c) crxor 4\*cr1\+eq,4\*cr1\+so,lt
++- 134: (7c 09 55 ec|ec 55 09 7c) dcba r9,r10
++- 138: (7c 06 38 ac|ac 38 06 7c) dcbf r6,r7
++- 13c: (7c 06 38 ac|ac 38 06 7c) dcbf r6,r7
++- 140: (7c 06 3b ac|ac 3b 06 7c) dcbi r6,r7
++- 144: (7c 85 33 0c|0c 33 85 7c) dcblc 4,r5,r6
++- 148: (7c 06 38 6c|6c 38 06 7c) dcbst r6,r7
++- 14c: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
++- 150: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
++- 154: (7d 05 32 2c|2c 32 05 7d) dcbt 8,r5,r6
++- 158: (7c e8 49 4c|4c 49 e8 7c) dcbtls 7,r8,r9
++- 15c: (7c 06 39 ec|ec 39 06 7c) dcbtst r6,r7
++- 160: (7c 06 39 ec|ec 39 06 7c) dcbtst r6,r7
++- 164: (7d 26 39 ec|ec 39 26 7d) dcbtst 9,r6,r7
++- 168: (7d 4b 61 0c|0c 61 4b 7d) dcbtstls 10,r11,r12
++- 16c: (7c 01 17 ec|ec 17 01 7c) dcbz r1,r2
++- 170: (7c 05 37 ec|ec 37 05 7c) dcbz r5,r6
++- 174: (7c 00 03 8c|8c 03 00 7c) dccci
++- 178: (7c 00 03 8c|8c 03 00 7c) dccci
++- 17c: (7c 00 03 8c|8c 03 00 7c) dccci
++- 180: (7c 20 03 8c|8c 03 20 7c) dci 1
++- 184: (7d 4b 63 d6|d6 63 4b 7d) divw r10,r11,r12
++- 188: (7d 6c 6b d7|d7 6b 6c 7d) divw\. r11,r12,r13
++- 18c: (7d 4b 67 d6|d6 67 4b 7d) divwo r10,r11,r12
++- 190: (7d 6c 6f d7|d7 6f 6c 7d) divwo\. r11,r12,r13
++- 194: (7d 4b 63 96|96 63 4b 7d) divwu r10,r11,r12
++- 198: (7d 6c 6b 97|97 6b 6c 7d) divwu\. r11,r12,r13
++- 19c: (7d 4b 67 96|96 67 4b 7d) divwuo r10,r11,r12
++- 1a0: (7d 6c 6f 97|97 6f 6c 7d) divwuo\. r11,r12,r13
++- 1a4: (7c 83 28 9c|9c 28 83 7c) dlmzb r3,r4,r5
++- 1a8: (7c 83 28 9d|9d 28 83 7c) dlmzb\. r3,r4,r5
++- 1ac: (7d 6a 62 38|38 62 6a 7d) eqv r10,r11,r12
++- 1b0: (7d 6a 62 39|39 62 6a 7d) eqv\. r10,r11,r12
++- 1b4: (54 83 20 26|26 20 83 54) rlwinm r3,r4,4,0,19
++- 1b8: (7c 83 07 74|74 07 83 7c) extsb r3,r4
++- 1bc: (7c 83 07 75|75 07 83 7c) extsb\. r3,r4
++- 1c0: (7c 83 07 34|34 07 83 7c) extsh r3,r4
++- 1c4: (7c 83 07 35|35 07 83 7c) extsh\. r3,r4
++- 1c8: (fe a0 fa 10|10 fa a0 fe) fabs f21,f31
++- 1cc: (fe a0 fa 11|11 fa a0 fe) fabs\. f21,f31
++- 1d0: (fd 4b 60 2a|2a 60 4b fd) fadd f10,f11,f12
++- 1d4: (fd 4b 60 2b|2b 60 4b fd) fadd\. f10,f11,f12
++- 1d8: (ed 4b 60 2a|2a 60 4b ed) fadds f10,f11,f12
++- 1dc: (ed 4b 60 2b|2b 60 4b ed) fadds\. f10,f11,f12
++- 1e0: (fd 40 5e 9c|9c 5e 40 fd) fcfid f10,f11
++- 1e4: (fd 40 5e 9d|9d 5e 40 fd) fcfid\. f10,f11
++- 1e8: (fd 8a 58 40|40 58 8a fd) fcmpo cr3,f10,f11
++- 1ec: (fd 84 28 00|00 28 84 fd) fcmpu cr3,f4,f5
++- 1f0: (fd 4b 60 10|10 60 4b fd) fcpsgn f10,f11,f12
++- 1f4: (fd 4b 60 11|11 60 4b fd) fcpsgn\. f10,f11,f12
++- 1f8: (fd 40 5e 5c|5c 5e 40 fd) fctid f10,f11
++- 1fc: (fd 40 5e 5d|5d 5e 40 fd) fctid\. f10,f11
++- 200: (fd 40 5e 5e|5e 5e 40 fd) fctidz f10,f11
++- 204: (fd 40 5e 5f|5f 5e 40 fd) fctidz\. f10,f11
++- 208: (fd 40 58 1c|1c 58 40 fd) fctiw f10,f11
++- 20c: (fd 40 58 1d|1d 58 40 fd) fctiw\. f10,f11
++- 210: (fd 40 58 1e|1e 58 40 fd) fctiwz f10,f11
++- 214: (fd 40 58 1f|1f 58 40 fd) fctiwz\. f10,f11
++- 218: (fd 4b 60 24|24 60 4b fd) fdiv f10,f11,f12
++- 21c: (fd 4b 60 25|25 60 4b fd) fdiv\. f10,f11,f12
++- 220: (ed 4b 60 24|24 60 4b ed) fdivs f10,f11,f12
++- 224: (ed 4b 60 25|25 60 4b ed) fdivs\. f10,f11,f12
++- 228: (fd 4b 6b 3a|3a 6b 4b fd) fmadd f10,f11,f12,f13
++- 22c: (fd 4b 6b 3b|3b 6b 4b fd) fmadd\. f10,f11,f12,f13
++- 230: (ed 4b 6b 3a|3a 6b 4b ed) fmadds f10,f11,f12,f13
++- 234: (ed 4b 6b 3b|3b 6b 4b ed) fmadds\. f10,f11,f12,f13
++- 238: (fc 60 20 90|90 20 60 fc) fmr f3,f4
++- 23c: (fc 60 20 91|91 20 60 fc) fmr\. f3,f4
++- 240: (fd 4b 6b 38|38 6b 4b fd) fmsub f10,f11,f12,f13
++- 244: (fd 4b 6b 39|39 6b 4b fd) fmsub\. f10,f11,f12,f13
++- 248: (ed 4b 6b 38|38 6b 4b ed) fmsubs f10,f11,f12,f13
++- 24c: (ed 4b 6b 39|39 6b 4b ed) fmsubs\. f10,f11,f12,f13
++- 250: (fd 4b 03 32|32 03 4b fd) fmul f10,f11,f12
++- 254: (fd 4b 03 33|33 03 4b fd) fmul\. f10,f11,f12
++- 258: (ed 4b 03 32|32 03 4b ed) fmuls f10,f11,f12
++- 25c: (ed 4b 03 33|33 03 4b ed) fmuls\. f10,f11,f12
++- 260: (fe 80 f1 10|10 f1 80 fe) fnabs f20,f30
++- 264: (fe 80 f1 11|11 f1 80 fe) fnabs\. f20,f30
++- 268: (fc 60 20 50|50 20 60 fc) fneg f3,f4
++- 26c: (fc 60 20 51|51 20 60 fc) fneg\. f3,f4
++- 270: (fd 4b 6b 3e|3e 6b 4b fd) fnmadd f10,f11,f12,f13
++- 274: (fd 4b 6b 3f|3f 6b 4b fd) fnmadd\. f10,f11,f12,f13
++- 278: (ed 4b 6b 3e|3e 6b 4b ed) fnmadds f10,f11,f12,f13
++- 27c: (ed 4b 6b 3f|3f 6b 4b ed) fnmadds\. f10,f11,f12,f13
++- 280: (fd 4b 6b 3c|3c 6b 4b fd) fnmsub f10,f11,f12,f13
++- 284: (fd 4b 6b 3d|3d 6b 4b fd) fnmsub\. f10,f11,f12,f13
++- 288: (ed 4b 6b 3c|3c 6b 4b ed) fnmsubs f10,f11,f12,f13
++- 28c: (ed 4b 6b 3d|3d 6b 4b ed) fnmsubs\. f10,f11,f12,f13
++- 290: (fd c0 78 30|30 78 c0 fd) fre f14,f15
++- 294: (fd c0 78 31|31 78 c0 fd) fre\. f14,f15
++- 298: (ed c0 78 30|30 78 c0 ed) fres f14,f15
++- 29c: (ed c0 78 31|31 78 c0 ed) fres\. f14,f15
++- 2a0: (fd 40 5b d0|d0 5b 40 fd) frim f10,f11
++- 2a4: (fd 40 5b d1|d1 5b 40 fd) frim\. f10,f11
++- 2a8: (fd 40 5b 10|10 5b 40 fd) frin f10,f11
++- 2ac: (fd 40 5b 11|11 5b 40 fd) frin\. f10,f11
++- 2b0: (fd 40 5b 90|90 5b 40 fd) frip f10,f11
++- 2b4: (fd 40 5b 91|91 5b 40 fd) frip\. f10,f11
++- 2b8: (fd 40 5b 50|50 5b 40 fd) friz f10,f11
++- 2bc: (fd 40 5b 51|51 5b 40 fd) friz\. f10,f11
++- 2c0: (fc c0 38 18|18 38 c0 fc) frsp f6,f7
++- 2c4: (fd 00 48 19|19 48 00 fd) frsp\. f8,f9
++- 2c8: (fd c0 78 34|34 78 c0 fd) frsqrte f14,f15
++- 2cc: (fd c0 78 35|35 78 c0 fd) frsqrte\. f14,f15
++- 2d0: (ed c0 78 34|34 78 c0 ed) frsqrtes f14,f15
++- 2d4: (ed c0 78 35|35 78 c0 ed) frsqrtes\. f14,f15
++- 2d8: (fd 4b 6b 2e|2e 6b 4b fd) fsel f10,f11,f12,f13
++- 2dc: (fd 4b 6b 2f|2f 6b 4b fd) fsel\. f10,f11,f12,f13
++- 2e0: (fd 40 58 2c|2c 58 40 fd) fsqrt f10,f11
++- 2e4: (fd 40 58 2d|2d 58 40 fd) fsqrt\. f10,f11
++- 2e8: (ed 40 58 2c|2c 58 40 ed) fsqrts f10,f11
++- 2ec: (ed 40 58 2d|2d 58 40 ed) fsqrts\. f10,f11
++- 2f0: (fd 4b 60 28|28 60 4b fd) fsub f10,f11,f12
++- 2f4: (fd 4b 60 29|29 60 4b fd) fsub\. f10,f11,f12
++- 2f8: (ed 4b 60 28|28 60 4b ed) fsubs f10,f11,f12
++- 2fc: (ed 4b 60 29|29 60 4b ed) fsubs\. f10,f11,f12
++- 300: (7c 03 27 ac|ac 27 03 7c) icbi r3,r4
++- 304: (7e 11 91 cc|cc 91 11 7e) icblc 16,r17,r18
++- 308: (7c a8 48 2c|2c 48 a8 7c) icbt 5,r8,r9
++- 30c: (7d ae 7b cc|cc 7b ae 7d) icbtls 13,r14,r15
++- 310: (7c 00 07 8c|8c 07 00 7c) iccci
++- 314: (7c 00 07 8c|8c 07 00 7c) iccci
++- 318: (7c 00 07 8c|8c 07 00 7c) iccci
++- 31c: (7c 20 07 8c|8c 07 20 7c) ici 1
++- 320: (7c 03 27 cc|cc 27 03 7c) icread r3,r4
++- 324: (50 83 65 36|36 65 83 50) rlwimi r3,r4,12,20,27
++- 328: (7c 43 27 1e|1e 27 43 7c) isel r2,r3,r4,28
++- 32c: (4c 00 01 2c|2c 01 00 4c) isync
++- 330: (89 21 00 00|00 00 21 89) lbz r9,0\(r1\)
++- 334: (8d 41 00 01|01 00 41 8d) lbzu r10,1\(r1\)
++- 338: (7e 95 b0 ee|ee b0 95 7e) lbzux r20,r21,r22
++- 33c: (7c 64 28 ae|ae 28 64 7c) lbzx r3,r4,r5
++- 340: (ca a1 00 08|08 00 a1 ca) lfd f21,8\(r1\)
++- 344: (ce c1 00 10|10 00 c1 ce) lfdu f22,16\(r1\)
++- 348: (7e 95 b4 ee|ee b4 95 7e) lfdux f20,r21,r22
++- 34c: (7d ae 7c ae|ae 7c ae 7d) lfdx f13,r14,r15
++- 350: (7d 43 26 ae|ae 26 43 7d) lfiwax f10,r3,r4
++- 354: (c2 61 00 00|00 00 61 c2) lfs f19,0\(r1\)
++- 358: (c6 81 00 04|04 00 81 c6) lfsu f20,4\(r1\)
++- 35c: (7d 4b 64 6e|6e 64 4b 7d) lfsux f10,r11,r12
++- 360: (7d 4b 64 2e|2e 64 4b 7d) lfsx f10,r11,r12
++- 364: (a9 e1 00 06|06 00 e1 a9) lha r15,6\(r1\)
++- 368: (ae 01 00 08|08 00 01 ae) lhau r16,8\(r1\)
++- 36c: (7d 2a 5a ee|ee 5a 2a 7d) lhaux r9,r10,r11
++- 370: (7d 2a 5a ae|ae 5a 2a 7d) lhax r9,r10,r11
++- 374: (7c 64 2e 2c|2c 2e 64 7c) lhbrx r3,r4,r5
++- 378: (a1 a1 00 00|00 00 a1 a1) lhz r13,0\(r1\)
++- 37c: (a5 c1 00 02|02 00 c1 a5) lhzu r14,2\(r1\)
++- 380: (7e 96 c2 6e|6e c2 96 7e) lhzux r20,r22,r24
++- 384: (7e f8 ca 2e|2e ca f8 7e) lhzx r23,r24,r25
++- 388: (b8 61 ff f0|f0 ff 61 b8) lmw r3,-16\(r1\)
++- 38c: (7c a4 84 aa|aa 84 a4 7c) lswi r5,r4,16
++- 390: (7c 64 2c 2a|2a 2c 64 7c) lswx r3,r4,r5
++- 394: (7c 64 28 28|28 28 64 7c) lwarx r3,r4,r5
++- 398: (7c 64 28 28|28 28 64 7c) lwarx r3,r4,r5
++- 39c: (7c 64 28 29|29 28 64 7c) lwarx r3,r4,r5,1
++- 3a0: (7c 64 2c 2c|2c 2c 64 7c) lwbrx r3,r4,r5
++- 3a4: (80 c7 00 00|00 00 c7 80) lwz r6,0\(r7\)
++- 3a8: (84 61 00 10|10 00 61 84) lwzu r3,16\(r1\)
++- 3ac: (7c 64 28 6e|6e 28 64 7c) lwzux r3,r4,r5
++- 3b0: (7c 64 28 2e|2e 28 64 7c) lwzx r3,r4,r5
++- 3b4: (10 64 29 58|58 29 64 10) macchw r3,r4,r5
++- 3b8: (10 64 29 59|59 29 64 10) macchw\. r3,r4,r5
++- 3bc: (10 64 2d 58|58 2d 64 10) macchwo r3,r4,r5
++- 3c0: (10 64 2d 59|59 2d 64 10) macchwo\. r3,r4,r5
++- 3c4: (10 64 29 d8|d8 29 64 10) macchws r3,r4,r5
++- 3c8: (10 64 29 d9|d9 29 64 10) macchws\. r3,r4,r5
++- 3cc: (10 64 2d d8|d8 2d 64 10) macchwso r3,r4,r5
++- 3d0: (10 64 2d d9|d9 2d 64 10) macchwso\. r3,r4,r5
++- 3d4: (10 64 29 98|98 29 64 10) macchwsu r3,r4,r5
++- 3d8: (10 64 29 99|99 29 64 10) macchwsu\. r3,r4,r5
++- 3dc: (10 64 2d 98|98 2d 64 10) macchwsuo r3,r4,r5
++- 3e0: (10 64 2d 99|99 2d 64 10) macchwsuo\. r3,r4,r5
++- 3e4: (10 64 29 18|18 29 64 10) macchwu r3,r4,r5
++- 3e8: (10 64 29 19|19 29 64 10) macchwu\. r3,r4,r5
++- 3ec: (10 64 2d 18|18 2d 64 10) macchwuo r3,r4,r5
++- 3f0: (10 64 2d 19|19 2d 64 10) macchwuo\. r3,r4,r5
++- 3f4: (10 64 28 58|58 28 64 10) machhw r3,r4,r5
++- 3f8: (10 64 28 59|59 28 64 10) machhw\. r3,r4,r5
++- 3fc: (10 64 2c 58|58 2c 64 10) machhwo r3,r4,r5
++- 400: (10 64 2c 59|59 2c 64 10) machhwo\. r3,r4,r5
++- 404: (10 64 28 d8|d8 28 64 10) machhws r3,r4,r5
++- 408: (10 64 28 d9|d9 28 64 10) machhws\. r3,r4,r5
++- 40c: (10 64 2c d8|d8 2c 64 10) machhwso r3,r4,r5
++- 410: (10 64 2c d9|d9 2c 64 10) machhwso\. r3,r4,r5
++- 414: (10 64 28 98|98 28 64 10) machhwsu r3,r4,r5
++- 418: (10 64 28 99|99 28 64 10) machhwsu\. r3,r4,r5
++- 41c: (10 64 2c 98|98 2c 64 10) machhwsuo r3,r4,r5
++- 420: (10 64 2c 99|99 2c 64 10) machhwsuo\. r3,r4,r5
++- 424: (10 64 28 18|18 28 64 10) machhwu r3,r4,r5
++- 428: (10 64 28 19|19 28 64 10) machhwu\. r3,r4,r5
++- 42c: (10 64 2c 18|18 2c 64 10) machhwuo r3,r4,r5
++- 430: (10 64 2c 19|19 2c 64 10) machhwuo\. r3,r4,r5
++- 434: (10 64 2b 58|58 2b 64 10) maclhw r3,r4,r5
++- 438: (10 64 2b 59|59 2b 64 10) maclhw\. r3,r4,r5
++- 43c: (10 64 2f 58|58 2f 64 10) maclhwo r3,r4,r5
++- 440: (10 64 2f 59|59 2f 64 10) maclhwo\. r3,r4,r5
++- 444: (10 64 2b d8|d8 2b 64 10) maclhws r3,r4,r5
++- 448: (10 64 2b d9|d9 2b 64 10) maclhws\. r3,r4,r5
++- 44c: (10 64 2f d8|d8 2f 64 10) maclhwso r3,r4,r5
++- 450: (10 64 2f d9|d9 2f 64 10) maclhwso\. r3,r4,r5
++- 454: (10 64 2b 98|98 2b 64 10) maclhwsu r3,r4,r5
++- 458: (10 64 2b 99|99 2b 64 10) maclhwsu\. r3,r4,r5
++- 45c: (10 64 2f 98|98 2f 64 10) maclhwsuo r3,r4,r5
++- 460: (10 64 2f 99|99 2f 64 10) maclhwsuo\. r3,r4,r5
++- 464: (10 64 2b 18|18 2b 64 10) maclhwu r3,r4,r5
++- 468: (10 64 2b 19|19 2b 64 10) maclhwu\. r3,r4,r5
++- 46c: (10 64 2f 18|18 2f 64 10) maclhwuo r3,r4,r5
++- 470: (10 64 2f 19|19 2f 64 10) maclhwuo\. r3,r4,r5
++- 474: (7c 00 06 ac|ac 06 00 7c) mbar
++- 478: (7c 00 06 ac|ac 06 00 7c) mbar
++- 47c: (7c 20 06 ac|ac 06 20 7c) mbar 1
++- 480: (4c 04 00 00|00 00 04 4c) mcrf cr0,cr1
++- 484: (fd 90 00 80|80 00 90 fd) mcrfs cr3,cr4
++- 488: (7d 80 04 00|00 04 80 7d) mcrxr cr3
++- 48c: (7c 60 00 26|26 00 60 7c) mfcr r3
++- 490: (7c 60 00 26|26 00 60 7c) mfcr r3
++- 494: (7c aa 3a 86|86 3a aa 7c) mfdcr r5,234
++- 498: (7c 64 02 46|46 02 64 7c) mfdcrux r3,r4
++- 49c: (7c 85 02 06|06 02 85 7c) mfdcrx r4,r5
++- 4a0: (ff c0 04 8e|8e 04 c0 ff) mffs f30
++- 4a4: (ff e0 04 8f|8f 04 e0 ff) mffs\. f31
++- 4a8: (7e 60 00 a6|a6 00 60 7e) mfmsr r19
++- 4ac: (7c 78 00 26|26 00 78 7c) mfocrf r3,128
++- 4b0: (7c 60 22 a6|a6 22 60 7c) mfspr r3,128
++- 4b4: (7c 6c 42 a6|a6 42 6c 7c) mftb r3
++- 4b8: (7c 00 04 ac|ac 04 00 7c) msync
++- 4bc: (7c 78 01 20|20 01 78 7c) mtocrf 128,r3
++- 4c0: (7c 6f f1 20|20 f1 6f 7c) mtcr r3
++- 4c4: (7d 10 6b 86|86 6b 10 7d) mtdcr 432,r8
++- 4c8: (7c 83 03 46|46 03 83 7c) mtdcrux r3,r4
++- 4cc: (7c e6 03 06|06 03 e6 7c) mtdcrx r6,r7
++- 4d0: (fc 60 00 8c|8c 00 60 fc) mtfsb0 3
++- 4d4: (fc 60 00 8d|8d 00 60 fc) mtfsb0\. 3
++- 4d8: (fc 60 00 4c|4c 00 60 fc) mtfsb1 3
++- 4dc: (fc 60 00 4d|4d 00 60 fc) mtfsb1\. 3
++- 4e0: (fc 0c 55 8e|8e 55 0c fc) mtfsf 6,f10
++- 4e4: (fc 0c 55 8e|8e 55 0c fc) mtfsf 6,f10
++- 4e8: (fc 0d 55 8e|8e 55 0d fc) mtfsf 6,f10,0,1
++- 4ec: (fe 0c 55 8e|8e 55 0c fe) mtfsf 6,f10,1
++- 4f0: (fc 0c 5d 8f|8f 5d 0c fc) mtfsf\. 6,f11
++- 4f4: (fc 0c 5d 8f|8f 5d 0c fc) mtfsf\. 6,f11
++- 4f8: (fc 0d 5d 8f|8f 5d 0d fc) mtfsf\. 6,f11,0,1
++- 4fc: (fe 0c 5d 8f|8f 5d 0c fe) mtfsf\. 6,f11,1
++- 500: (ff 00 01 0c|0c 01 00 ff) mtfsfi 6,0
++- 504: (ff 00 01 0c|0c 01 00 ff) mtfsfi 6,0
++- 508: (ff 00 01 0c|0c 01 00 ff) mtfsfi 6,0
++- 50c: (ff 01 01 0c|0c 01 01 ff) mtfsfi 6,0,1
++- 510: (ff 00 f1 0d|0d f1 00 ff) mtfsfi\. 6,15
++- 514: (ff 00 f1 0d|0d f1 00 ff) mtfsfi\. 6,15
++- 518: (ff 00 f1 0d|0d f1 00 ff) mtfsfi\. 6,15
++- 51c: (ff 01 f1 0d|0d f1 01 ff) mtfsfi\. 6,15,1
++- 520: (7d 40 01 24|24 01 40 7d) mtmsr r10
++- 524: (7c 78 01 20|20 01 78 7c) mtocrf 128,r3
++- 528: (7c 60 23 a6|a6 23 60 7c) mtspr 128,r3
++- 52c: (10 64 29 50|50 29 64 10) mulchw r3,r4,r5
++- 530: (10 64 29 51|51 29 64 10) mulchw\. r3,r4,r5
++- 534: (10 64 29 10|10 29 64 10) mulchwu r3,r4,r5
++- 538: (10 64 29 11|11 29 64 10) mulchwu\. r3,r4,r5
++- 53c: (10 64 28 50|50 28 64 10) mulhhw r3,r4,r5
++- 540: (10 64 28 51|51 28 64 10) mulhhw\. r3,r4,r5
++- 544: (10 64 28 10|10 28 64 10) mulhhwu r3,r4,r5
++- 548: (10 64 28 11|11 28 64 10) mulhhwu\. r3,r4,r5
++- 54c: (7c 64 28 96|96 28 64 7c) mulhw r3,r4,r5
++- 550: (7c 64 28 97|97 28 64 7c) mulhw\. r3,r4,r5
++- 554: (7c 64 28 16|16 28 64 7c) mulhwu r3,r4,r5
++- 558: (7c 64 28 17|17 28 64 7c) mulhwu\. r3,r4,r5
++- 55c: (10 64 2b 50|50 2b 64 10) mullhw r3,r4,r5
++- 560: (10 64 2b 51|51 2b 64 10) mullhw\. r3,r4,r5
++- 564: (10 64 2b 10|10 2b 64 10) mullhwu r3,r4,r5
++- 568: (10 64 2b 11|11 2b 64 10) mullhwu\. r3,r4,r5
++- 56c: (1c 64 00 05|05 00 64 1c) mulli r3,r4,5
++- 570: (7c 64 29 d6|d6 29 64 7c) mullw r3,r4,r5
++- 574: (7c 64 29 d7|d7 29 64 7c) mullw\. r3,r4,r5
++- 578: (7c 64 2d d6|d6 2d 64 7c) mullwo r3,r4,r5
++- 57c: (7c 64 2d d7|d7 2d 64 7c) mullwo\. r3,r4,r5
++- 580: (7f bc f3 b8|b8 f3 bc 7f) nand r28,r29,r30
++- 584: (7f bc f3 b9|b9 f3 bc 7f) nand\. r28,r29,r30
++- 588: (7c 64 00 d0|d0 00 64 7c) neg r3,r4
++- 58c: (7c 64 00 d1|d1 00 64 7c) neg\. r3,r4
++- 590: (7e 11 04 d0|d0 04 11 7e) nego r16,r17
++- 594: (7e 53 04 d1|d1 04 53 7e) nego\. r18,r19
++- 598: (10 64 29 5c|5c 29 64 10) nmacchw r3,r4,r5
++- 59c: (10 64 29 5d|5d 29 64 10) nmacchw\. r3,r4,r5
++- 5a0: (10 64 2d 5c|5c 2d 64 10) nmacchwo r3,r4,r5
++- 5a4: (10 64 2d 5d|5d 2d 64 10) nmacchwo\. r3,r4,r5
++- 5a8: (10 64 29 dc|dc 29 64 10) nmacchws r3,r4,r5
++- 5ac: (10 64 29 dd|dd 29 64 10) nmacchws\. r3,r4,r5
++- 5b0: (10 64 2d dc|dc 2d 64 10) nmacchwso r3,r4,r5
++- 5b4: (10 64 2d dd|dd 2d 64 10) nmacchwso\. r3,r4,r5
++- 5b8: (10 64 28 5c|5c 28 64 10) nmachhw r3,r4,r5
++- 5bc: (10 64 28 5d|5d 28 64 10) nmachhw\. r3,r4,r5
++- 5c0: (10 64 2c 5c|5c 2c 64 10) nmachhwo r3,r4,r5
++- 5c4: (10 64 2c 5d|5d 2c 64 10) nmachhwo\. r3,r4,r5
++- 5c8: (10 64 28 dc|dc 28 64 10) nmachhws r3,r4,r5
++- 5cc: (10 64 28 dd|dd 28 64 10) nmachhws\. r3,r4,r5
++- 5d0: (10 64 2c dc|dc 2c 64 10) nmachhwso r3,r4,r5
++- 5d4: (10 64 2c dd|dd 2c 64 10) nmachhwso\. r3,r4,r5
++- 5d8: (10 64 2b 5c|5c 2b 64 10) nmaclhw r3,r4,r5
++- 5dc: (10 64 2b 5d|5d 2b 64 10) nmaclhw\. r3,r4,r5
++- 5e0: (10 64 2f 5c|5c 2f 64 10) nmaclhwo r3,r4,r5
++- 5e4: (10 64 2f 5d|5d 2f 64 10) nmaclhwo\. r3,r4,r5
++- 5e8: (10 64 2b dc|dc 2b 64 10) nmaclhws r3,r4,r5
++- 5ec: (10 64 2b dd|dd 2b 64 10) nmaclhws\. r3,r4,r5
++- 5f0: (10 64 2f dc|dc 2f 64 10) nmaclhwso r3,r4,r5
++- 5f4: (10 64 2f dd|dd 2f 64 10) nmaclhwso\. r3,r4,r5
++- 5f8: (7e b4 b0 f8|f8 b0 b4 7e) nor r20,r21,r22
++- 5fc: (7e b4 b0 f9|f9 b0 b4 7e) nor\. r20,r21,r22
++- 600: (7c 40 23 78|78 23 40 7c) or r0,r2,r4
++- 604: (7d cc 83 79|79 83 cc 7d) or\. r12,r14,r16
++- 608: (7e 0f 8b 38|38 8b 0f 7e) orc r15,r16,r17
++- 60c: (7e 72 a3 39|39 a3 72 7e) orc\. r18,r19,r20
++- 610: (60 21 00 00|00 00 21 60) ori r1,r1,0
++- 614: (64 83 de ad|ad de 83 64) oris r3,r4,57005
++- 618: (7c 83 00 f4|f4 00 83 7c) popcntb r3,r4
++- 61c: (7c 83 01 34|34 01 83 7c) prtyw r3,r4
++- 620: (4c 00 00 66|66 00 00 4c) rfci
++- 624: (4c 00 00 64|64 00 00 4c) rfi
++- 628: (4c 00 00 4c|4c 00 00 4c) rfmci
++- 62c: (50 83 65 36|36 65 83 50) rlwimi r3,r4,12,20,27
++- 630: (50 83 65 37|37 65 83 50) rlwimi\. r3,r4,12,20,27
++- 634: (54 83 00 36|36 00 83 54) rlwinm r3,r4,0,0,27
++- 638: (54 83 d1 be|be d1 83 54) rlwinm r3,r4,26,6,31
++- 63c: (54 83 20 26|26 20 83 54) rlwinm r3,r4,4,0,19
++- 640: (54 83 00 37|37 00 83 54) rlwinm\. r3,r4,0,0,27
++- 644: (5c 83 28 3e|3e 28 83 5c) rotlw r3,r4,r5
++- 648: (5c 83 28 3f|3f 28 83 5c) rotlw\. r3,r4,r5
++- 64c: (5c 83 28 3e|3e 28 83 5c) rotlw r3,r4,r5
++- 650: (5c 83 28 3f|3f 28 83 5c) rotlw\. r3,r4,r5
++- 654: (44 00 00 02|02 00 00 44) sc
++- 658: (7c 83 28 30|30 28 83 7c) slw r3,r4,r5
++- 65c: (7c 83 28 31|31 28 83 7c) slw\. r3,r4,r5
++- 660: (7c 83 2e 30|30 2e 83 7c) sraw r3,r4,r5
++- 664: (7c 83 2e 31|31 2e 83 7c) sraw\. r3,r4,r5
++- 668: (7c 83 86 70|70 86 83 7c) srawi r3,r4,16
++- 66c: (7c 83 86 71|71 86 83 7c) srawi\. r3,r4,16
++- 670: (7c 83 2c 30|30 2c 83 7c) srw r3,r4,r5
++- 674: (7c 83 2c 31|31 2c 83 7c) srw\. r3,r4,r5
++- 678: (54 83 d1 be|be d1 83 54) rlwinm r3,r4,26,6,31
++- 67c: (99 61 00 02|02 00 61 99) stb r11,2\(r1\)
++- 680: (9d 81 00 03|03 00 81 9d) stbu r12,3\(r1\)
++- 684: (7d ae 79 ee|ee 79 ae 7d) stbux r13,r14,r15
++- 688: (7c 64 29 ae|ae 29 64 7c) stbx r3,r4,r5
++- 68c: (db 21 00 20|20 00 21 db) stfd f25,32\(r1\)
++- 690: (df 41 00 28|28 00 41 df) stfdu f26,40\(r1\)
++- 694: (7c 01 15 ee|ee 15 01 7c) stfdux f0,r1,r2
++- 698: (7f be fd ae|ae fd be 7f) stfdx f29,r30,r31
++- 69c: (7d 43 27 ae|ae 27 43 7d) stfiwx f10,r3,r4
++- 6a0: (d2 e1 00 14|14 00 e1 d2) stfs f23,20\(r1\)
++- 6a4: (d7 01 00 18|18 00 01 d7) stfsu f24,24\(r1\)
++- 6a8: (7f 5b e5 6e|6e e5 5b 7f) stfsux f26,r27,r28
++- 6ac: (7e f8 cd 2e|2e cd f8 7e) stfsx f23,r24,r25
++- 6b0: (b2 21 00 0a|0a 00 21 b2) sth r17,10\(r1\)
++- 6b4: (7c c7 47 2c|2c 47 c7 7c) sthbrx r6,r7,r8
++- 6b8: (b6 41 00 0c|0c 00 41 b6) sthu r18,12\(r1\)
++- 6bc: (7e b6 bb 6e|6e bb b6 7e) sthux r21,r22,r23
++- 6c0: (7d 8d 73 2e|2e 73 8d 7d) sthx r12,r13,r14
++- 6c4: (bc c1 ff f0|f0 ff c1 bc) stmw r6,-16\(r1\)
++- 6c8: (7c 64 85 aa|aa 85 64 7c) stswi r3,r4,16
++- 6cc: (7c 64 2d 2a|2a 2d 64 7c) stswx r3,r4,r5
++- 6d0: (90 c7 ff f0|f0 ff c7 90) stw r6,-16\(r7\)
++- 6d4: (7c 64 2d 2c|2c 2d 64 7c) stwbrx r3,r4,r5
++- 6d8: (7c 64 29 2d|2d 29 64 7c) stwcx\. r3,r4,r5
++- 6dc: (94 61 00 10|10 00 61 94) stwu r3,16\(r1\)
++- 6e0: (7c 64 29 6e|6e 29 64 7c) stwux r3,r4,r5
++- 6e4: (7c 64 29 2e|2e 29 64 7c) stwx r3,r4,r5
++- 6e8: (7c 64 28 50|50 28 64 7c) subf r3,r4,r5
++- 6ec: (7c 64 28 51|51 28 64 7c) subf\. r3,r4,r5
++- 6f0: (7c 64 28 10|10 28 64 7c) subfc r3,r4,r5
++- 6f4: (7c 64 28 11|11 28 64 7c) subfc\. r3,r4,r5
++- 6f8: (7c 64 2c 10|10 2c 64 7c) subfco r3,r4,r5
++- 6fc: (7c 64 2c 11|11 2c 64 7c) subfco\. r3,r4,r5
++- 700: (7c 64 29 10|10 29 64 7c) subfe r3,r4,r5
++- 704: (7c 64 29 11|11 29 64 7c) subfe\. r3,r4,r5
++- 708: (7c 64 2d 10|10 2d 64 7c) subfeo r3,r4,r5
++- 70c: (7c 64 2d 11|11 2d 64 7c) subfeo\. r3,r4,r5
++- 710: (20 64 00 05|05 00 64 20) subfic r3,r4,5
++- 714: (7c 64 01 d0|d0 01 64 7c) subfme r3,r4
++- 718: (7c 64 01 d1|d1 01 64 7c) subfme\. r3,r4
++- 71c: (7c 64 05 d0|d0 05 64 7c) subfmeo r3,r4
++- 720: (7c 64 05 d1|d1 05 64 7c) subfmeo\. r3,r4
++- 724: (7c 64 2c 50|50 2c 64 7c) subfo r3,r4,r5
++- 728: (7c 64 2c 51|51 2c 64 7c) subfo\. r3,r4,r5
++- 72c: (7c 64 01 90|90 01 64 7c) subfze r3,r4
++- 730: (7c 64 01 91|91 01 64 7c) subfze\. r3,r4
++- 734: (7c 64 05 90|90 05 64 7c) subfzeo r3,r4
++- 738: (7c 64 05 91|91 05 64 7c) subfzeo\. r3,r4
++- 73c: (7c 07 46 24|24 46 07 7c) tlbivax r7,r8
++- 740: (7c 22 3f 64|64 3f 22 7c) tlbre r1,r2,7
++- 744: (7c 0b 67 24|24 67 0b 7c) tlbsx r11,r12
++- 748: (7d 8d 77 24|24 77 8d 7d) tlbsx r12,r13,r14
++- 74c: (7d 8d 77 25|25 77 8d 7d) tlbsx\. r12,r13,r14
++- 750: (7c 00 04 6c|6c 04 00 7c) tlbsync
++- 754: (7c 00 07 a4|a4 07 00 7c) tlbwe
++- 758: (7c 00 07 a4|a4 07 00 7c) tlbwe
++- 75c: (7c 21 0f a4|a4 0f 21 7c) tlbwe r1,r1,1
++- 760: (7f e0 00 08|08 00 e0 7f) trap
++- 764: (7f e0 00 08|08 00 e0 7f) trap
++- 768: (7c 83 20 08|08 20 83 7c) tweq r3,r4
++- 76c: (7c a3 20 08|08 20 a3 7c) twlge r3,r4
++- 770: (7c 83 20 08|08 20 83 7c) tweq r3,r4
++- 774: (0d 03 00 0f|0f 00 03 0d) twgti r3,15
++- 778: (0c c3 00 0f|0f 00 c3 0c) twllei r3,15
++- 77c: (0d 03 00 0f|0f 00 03 0d) twgti r3,15
++- 780: (7c a3 20 08|08 20 a3 7c) twlge r3,r4
++- 784: (0c c3 00 0f|0f 00 c3 0c) twllei r3,15
++- 788: (7c 60 01 06|06 01 60 7c) wrtee r3
++- 78c: (7c 00 81 46|46 81 00 7c) wrteei 1
++- 790: (7f dd fa 78|78 fa dd 7f) xor r29,r30,r31
++- 794: (7f dd fa 79|79 fa dd 7f) xor\. r29,r30,r31
++- 798: (68 83 de ad|ad de 83 68) xori r3,r4,57005
++- 79c: (6c 83 de ad|ad de 83 6c) xoris r3,r4,57005
+++.*: (7c 64 2a 14|14 2a 64 7c) add r3,r4,r5
+++.*: (7c 64 2a 15|15 2a 64 7c) add\. r3,r4,r5
+++.*: (7c 64 28 14|14 28 64 7c) addc r3,r4,r5
+++.*: (7c 64 28 15|15 28 64 7c) addc\. r3,r4,r5
+++.*: (7c 64 2c 14|14 2c 64 7c) addco r3,r4,r5
+++.*: (7c 64 2c 15|15 2c 64 7c) addco\. r3,r4,r5
+++.*: (7c 64 29 14|14 29 64 7c) adde r3,r4,r5
+++.*: (7c 64 29 15|15 29 64 7c) adde\. r3,r4,r5
+++.*: (7c 64 2d 14|14 2d 64 7c) addeo r3,r4,r5
+++.*: (7c 64 2d 15|15 2d 64 7c) addeo\. r3,r4,r5
+++.*: (38 64 ff 80|80 ff 64 38) addi r3,r4,-128
+++.*: (30 64 ff 80|80 ff 64 30) addic r3,r4,-128
+++.*: (34 64 ff 80|80 ff 64 34) addic\. r3,r4,-128
+++.*: (3c 64 ff 80|80 ff 64 3c) addis r3,r4,-128
+++.*: (7c 64 01 d4|d4 01 64 7c) addme r3,r4
+++.*: (7c 64 01 d5|d5 01 64 7c) addme\. r3,r4
+++.*: (7c 64 05 d4|d4 05 64 7c) addmeo r3,r4
+++.*: (7c 64 05 d5|d5 05 64 7c) addmeo\. r3,r4
+++.*: (7c 64 2e 14|14 2e 64 7c) addo r3,r4,r5
+++.*: (7c 64 2e 15|15 2e 64 7c) addo\. r3,r4,r5
+++.*: (7c 64 01 94|94 01 64 7c) addze r3,r4
+++.*: (7c 64 01 95|95 01 64 7c) addze\. r3,r4
+++.*: (7c 64 05 94|94 05 64 7c) addzeo r3,r4
+++.*: (7c 64 05 95|95 05 64 7c) addzeo\. r3,r4
+++.*: (7c 83 28 38|38 28 83 7c) and r3,r4,r5
+++.*: (7c 83 28 39|39 28 83 7c) and\. r3,r4,r5
+++.*: (7d cd 78 78|78 78 cd 7d) andc r13,r14,r15
+++.*: (7e 30 90 79|79 90 30 7e) andc\. r16,r17,r18
+++.*: (70 83 de ad|ad de 83 70) andi\. r3,r4,57005
+++.*: (74 83 de ad|ad de 83 74) andis\. r3,r4,57005
+++.*: (48 00 00 02|02 00 00 48) ba 0 <ppc476>
+++.*: (40 01 00 00|00 00 01 40) bdnzf gt,7c <ppc476\+0x7c>
+++.*: (40 85 00 02|02 00 85 40) blea cr1,0 <ppc476>
+++.*: (4d 80 04 20|20 04 80 4d) bltctr
+++.*: (4c 8a 04 20|20 04 8a 4c) bnectr cr2
+++.*: (4c 86 04 20|20 04 86 4c) bnectr cr1
+++.*: (4c 86 04 20|20 04 86 4c) bnectr cr1
+++.*: (4d 80 04 21|21 04 80 4d) bltctrl
+++.*: (4c 8a 04 21|21 04 8a 4c) bnectrl cr2
+++.*: (4c 86 04 21|21 04 86 4c) bnectrl cr1
+++.*: (4c 86 04 21|21 04 86 4c) bnectrl cr1
+++.*: (40 43 00 01|01 00 43 40) bdzfl so,a4 <ppc476\+0xa4>
+++.*: (4d 80 00 20|20 00 80 4d) bltlr
+++.*: (4c 8a 00 20|20 00 8a 4c) bnelr cr2
+++.*: (4c 86 00 20|20 00 86 4c) bnelr cr1
+++.*: (4c 86 00 20|20 00 86 4c) bnelr cr1
+++.*: (4d 80 00 21|21 00 80 4d) bltlrl
+++.*: (4c 8a 00 21|21 00 8a 4c) bnelrl cr2
+++.*: (4c 86 00 21|21 00 86 4c) bnelrl cr1
+++.*: (4c 86 00 21|21 00 86 4c) bnelrl cr1
+++.*: (48 00 00 00|00 00 00 48) b c8 <ppc476\+0xc8>
+++.*: (48 00 00 01|01 00 00 48) bl cc <ppc476\+0xcc>
+++.*: (54 83 00 36|36 00 83 54) rlwinm r3,r4,0,0,27
+++.*: (7c 03 20 00|00 20 03 7c) cmpw r3,r4
+++.*: (7f 83 20 00|00 20 83 7f) cmpw cr7,r3,r4
+++.*: (7c 83 2b f8|f8 2b 83 7c) cmpb r3,r4,r5
+++.*: (7c 83 2b f8|f8 2b 83 7c) cmpb r3,r4,r5
+++.*: (2c 03 ff 59|59 ff 03 2c) cmpwi r3,-167
+++.*: (2f 83 ff 59|59 ff 83 2f) cmpwi cr7,r3,-167
+++.*: (7c 03 20 40|40 20 03 7c) cmplw r3,r4
+++.*: (7f 83 20 40|40 20 83 7f) cmplw cr7,r3,r4
+++.*: (28 03 00 a7|a7 00 03 28) cmplwi r3,167
+++.*: (2b 83 00 a7|a7 00 83 2b) cmplwi cr7,r3,167
+++.*: (7c 03 20 40|40 20 03 7c) cmplw r3,r4
+++.*: (28 03 00 a7|a7 00 03 28) cmplwi r3,167
+++.*: (7c 03 20 00|00 20 03 7c) cmpw r3,r4
+++.*: (2c 03 ff 59|59 ff 03 2c) cmpwi r3,-167
+++.*: (7d 6a 00 34|34 00 6a 7d) cntlzw r10,r11
+++.*: (7d 6a 00 35|35 00 6a 7d) cntlzw\. r10,r11
+++.*: (4c 85 32 02|02 32 85 4c) crand 4\*cr1\+lt,4\*cr1\+gt,4\*cr1\+eq
+++.*: (4c 64 29 02|02 29 64 4c) crandc so,4\*cr1\+lt,4\*cr1\+gt
+++.*: (4c e0 0a 42|42 0a e0 4c) creqv 4\*cr1\+so,lt,gt
+++.*: (4c 22 19 c2|c2 19 22 4c) crnand gt,eq,so
+++.*: (4c 01 10 42|42 10 01 4c) crnor lt,gt,eq
+++.*: (4c a6 3b 82|82 3b a6 4c) cror 4\*cr1\+gt,4\*cr1\+eq,4\*cr1\+so
+++.*: (4c 43 23 42|42 23 43 4c) crorc eq,so,4\*cr1\+lt
+++.*: (4c c7 01 82|82 01 c7 4c) crxor 4\*cr1\+eq,4\*cr1\+so,lt
+++.*: (7c 09 55 ec|ec 55 09 7c) dcba r9,r10
+++.*: (7c 06 38 ac|ac 38 06 7c) dcbf r6,r7
+++.*: (7c 06 38 ac|ac 38 06 7c) dcbf r6,r7
+++.*: (7c 06 3b ac|ac 3b 06 7c) dcbi r6,r7
+++.*: (7c 85 33 0c|0c 33 85 7c) dcblc 4,r5,r6
+++.*: (7c 06 38 6c|6c 38 06 7c) dcbst r6,r7
+++.*: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
+++.*: (7c 05 32 2c|2c 32 05 7c) dcbt r5,r6
+++.*: (7d 05 32 2c|2c 32 05 7d) dcbt 8,r5,r6
+++.*: (7c e8 49 4c|4c 49 e8 7c) dcbtls 7,r8,r9
+++.*: (7c 06 39 ec|ec 39 06 7c) dcbtst r6,r7
+++.*: (7c 06 39 ec|ec 39 06 7c) dcbtst r6,r7
+++.*: (7d 26 39 ec|ec 39 26 7d) dcbtst 9,r6,r7
+++.*: (7d 4b 61 0c|0c 61 4b 7d) dcbtstls 10,r11,r12
+++.*: (7c 01 17 ec|ec 17 01 7c) dcbz r1,r2
+++.*: (7c 05 37 ec|ec 37 05 7c) dcbz r5,r6
+++.*: (7c 00 03 8c|8c 03 00 7c) dccci
+++.*: (7c 00 03 8c|8c 03 00 7c) dccci
+++.*: (7c 00 03 8c|8c 03 00 7c) dccci
+++.*: (7c 20 03 8c|8c 03 20 7c) dci 1
+++.*: (7d 4b 63 d6|d6 63 4b 7d) divw r10,r11,r12
+++.*: (7d 6c 6b d7|d7 6b 6c 7d) divw\. r11,r12,r13
+++.*: (7d 4b 67 d6|d6 67 4b 7d) divwo r10,r11,r12
+++.*: (7d 6c 6f d7|d7 6f 6c 7d) divwo\. r11,r12,r13
+++.*: (7d 4b 63 96|96 63 4b 7d) divwu r10,r11,r12
+++.*: (7d 6c 6b 97|97 6b 6c 7d) divwu\. r11,r12,r13
+++.*: (7d 4b 67 96|96 67 4b 7d) divwuo r10,r11,r12
+++.*: (7d 6c 6f 97|97 6f 6c 7d) divwuo\. r11,r12,r13
+++.*: (7c 83 28 9c|9c 28 83 7c) dlmzb r3,r4,r5
+++.*: (7c 83 28 9d|9d 28 83 7c) dlmzb\. r3,r4,r5
+++.*: (7d 6a 62 38|38 62 6a 7d) eqv r10,r11,r12
+++.*: (7d 6a 62 39|39 62 6a 7d) eqv\. r10,r11,r12
+++.*: (54 83 20 26|26 20 83 54) rlwinm r3,r4,4,0,19
+++.*: (7c 83 07 74|74 07 83 7c) extsb r3,r4
+++.*: (7c 83 07 75|75 07 83 7c) extsb\. r3,r4
+++.*: (7c 83 07 34|34 07 83 7c) extsh r3,r4
+++.*: (7c 83 07 35|35 07 83 7c) extsh\. r3,r4
+++.*: (fe a0 fa 10|10 fa a0 fe) fabs f21,f31
+++.*: (fe a0 fa 11|11 fa a0 fe) fabs\. f21,f31
+++.*: (fd 4b 60 2a|2a 60 4b fd) fadd f10,f11,f12
+++.*: (fd 4b 60 2b|2b 60 4b fd) fadd\. f10,f11,f12
+++.*: (ed 4b 60 2a|2a 60 4b ed) fadds f10,f11,f12
+++.*: (ed 4b 60 2b|2b 60 4b ed) fadds\. f10,f11,f12
+++.*: (fd 40 5e 9c|9c 5e 40 fd) fcfid f10,f11
+++.*: (fd 40 5e 9d|9d 5e 40 fd) fcfid\. f10,f11
+++.*: (fd 8a 58 40|40 58 8a fd) fcmpo cr3,f10,f11
+++.*: (fd 84 28 00|00 28 84 fd) fcmpu cr3,f4,f5
+++.*: (fd 4b 60 10|10 60 4b fd) fcpsgn f10,f11,f12
+++.*: (fd 4b 60 11|11 60 4b fd) fcpsgn\. f10,f11,f12
+++.*: (fd 40 5e 5c|5c 5e 40 fd) fctid f10,f11
+++.*: (fd 40 5e 5d|5d 5e 40 fd) fctid\. f10,f11
+++.*: (fd 40 5e 5e|5e 5e 40 fd) fctidz f10,f11
+++.*: (fd 40 5e 5f|5f 5e 40 fd) fctidz\. f10,f11
+++.*: (fd 40 58 1c|1c 58 40 fd) fctiw f10,f11
+++.*: (fd 40 58 1d|1d 58 40 fd) fctiw\. f10,f11
+++.*: (fd 40 58 1e|1e 58 40 fd) fctiwz f10,f11
+++.*: (fd 40 58 1f|1f 58 40 fd) fctiwz\. f10,f11
+++.*: (fd 4b 60 24|24 60 4b fd) fdiv f10,f11,f12
+++.*: (fd 4b 60 25|25 60 4b fd) fdiv\. f10,f11,f12
+++.*: (ed 4b 60 24|24 60 4b ed) fdivs f10,f11,f12
+++.*: (ed 4b 60 25|25 60 4b ed) fdivs\. f10,f11,f12
+++.*: (fd 4b 6b 3a|3a 6b 4b fd) fmadd f10,f11,f12,f13
+++.*: (fd 4b 6b 3b|3b 6b 4b fd) fmadd\. f10,f11,f12,f13
+++.*: (ed 4b 6b 3a|3a 6b 4b ed) fmadds f10,f11,f12,f13
+++.*: (ed 4b 6b 3b|3b 6b 4b ed) fmadds\. f10,f11,f12,f13
+++.*: (fc 60 20 90|90 20 60 fc) fmr f3,f4
+++.*: (fc 60 20 91|91 20 60 fc) fmr\. f3,f4
+++.*: (fd 4b 6b 38|38 6b 4b fd) fmsub f10,f11,f12,f13
+++.*: (fd 4b 6b 39|39 6b 4b fd) fmsub\. f10,f11,f12,f13
+++.*: (ed 4b 6b 38|38 6b 4b ed) fmsubs f10,f11,f12,f13
+++.*: (ed 4b 6b 39|39 6b 4b ed) fmsubs\. f10,f11,f12,f13
+++.*: (fd 4b 03 32|32 03 4b fd) fmul f10,f11,f12
+++.*: (fd 4b 03 33|33 03 4b fd) fmul\. f10,f11,f12
+++.*: (ed 4b 03 32|32 03 4b ed) fmuls f10,f11,f12
+++.*: (ed 4b 03 33|33 03 4b ed) fmuls\. f10,f11,f12
+++.*: (fe 80 f1 10|10 f1 80 fe) fnabs f20,f30
+++.*: (fe 80 f1 11|11 f1 80 fe) fnabs\. f20,f30
+++.*: (fc 60 20 50|50 20 60 fc) fneg f3,f4
+++.*: (fc 60 20 51|51 20 60 fc) fneg\. f3,f4
+++.*: (fd 4b 6b 3e|3e 6b 4b fd) fnmadd f10,f11,f12,f13
+++.*: (fd 4b 6b 3f|3f 6b 4b fd) fnmadd\. f10,f11,f12,f13
+++.*: (ed 4b 6b 3e|3e 6b 4b ed) fnmadds f10,f11,f12,f13
+++.*: (ed 4b 6b 3f|3f 6b 4b ed) fnmadds\. f10,f11,f12,f13
+++.*: (fd 4b 6b 3c|3c 6b 4b fd) fnmsub f10,f11,f12,f13
+++.*: (fd 4b 6b 3d|3d 6b 4b fd) fnmsub\. f10,f11,f12,f13
+++.*: (ed 4b 6b 3c|3c 6b 4b ed) fnmsubs f10,f11,f12,f13
+++.*: (ed 4b 6b 3d|3d 6b 4b ed) fnmsubs\. f10,f11,f12,f13
+++.*: (fd c0 78 30|30 78 c0 fd) fre f14,f15
+++.*: (fd c0 78 31|31 78 c0 fd) fre\. f14,f15
+++.*: (ed c0 78 30|30 78 c0 ed) fres f14,f15
+++.*: (ed c0 78 31|31 78 c0 ed) fres\. f14,f15
+++.*: (fd 40 5b d0|d0 5b 40 fd) frim f10,f11
+++.*: (fd 40 5b d1|d1 5b 40 fd) frim\. f10,f11
+++.*: (fd 40 5b 10|10 5b 40 fd) frin f10,f11
+++.*: (fd 40 5b 11|11 5b 40 fd) frin\. f10,f11
+++.*: (fd 40 5b 90|90 5b 40 fd) frip f10,f11
+++.*: (fd 40 5b 91|91 5b 40 fd) frip\. f10,f11
+++.*: (fd 40 5b 50|50 5b 40 fd) friz f10,f11
+++.*: (fd 40 5b 51|51 5b 40 fd) friz\. f10,f11
+++.*: (fc c0 38 18|18 38 c0 fc) frsp f6,f7
+++.*: (fd 00 48 19|19 48 00 fd) frsp\. f8,f9
+++.*: (fd c0 78 34|34 78 c0 fd) frsqrte f14,f15
+++.*: (fd c0 78 35|35 78 c0 fd) frsqrte\. f14,f15
+++.*: (ed c0 78 34|34 78 c0 ed) frsqrtes f14,f15
+++.*: (ed c0 78 35|35 78 c0 ed) frsqrtes\. f14,f15
+++.*: (fd 4b 6b 2e|2e 6b 4b fd) fsel f10,f11,f12,f13
+++.*: (fd 4b 6b 2f|2f 6b 4b fd) fsel\. f10,f11,f12,f13
+++.*: (fd 40 58 2c|2c 58 40 fd) fsqrt f10,f11
+++.*: (fd 40 58 2d|2d 58 40 fd) fsqrt\. f10,f11
+++.*: (ed 40 58 2c|2c 58 40 ed) fsqrts f10,f11
+++.*: (ed 40 58 2d|2d 58 40 ed) fsqrts\. f10,f11
+++.*: (fd 4b 60 28|28 60 4b fd) fsub f10,f11,f12
+++.*: (fd 4b 60 29|29 60 4b fd) fsub\. f10,f11,f12
+++.*: (ed 4b 60 28|28 60 4b ed) fsubs f10,f11,f12
+++.*: (ed 4b 60 29|29 60 4b ed) fsubs\. f10,f11,f12
+++.*: (7c 03 27 ac|ac 27 03 7c) icbi r3,r4
+++.*: (7e 11 91 cc|cc 91 11 7e) icblc 16,r17,r18
+++.*: (7c a8 48 2c|2c 48 a8 7c) icbt 5,r8,r9
+++.*: (7d ae 7b cc|cc 7b ae 7d) icbtls 13,r14,r15
+++.*: (7c 00 07 8c|8c 07 00 7c) iccci
+++.*: (7c 00 07 8c|8c 07 00 7c) iccci
+++.*: (7c 00 07 8c|8c 07 00 7c) iccci
+++.*: (7c 20 07 8c|8c 07 20 7c) ici 1
+++.*: (7c 03 27 cc|cc 27 03 7c) icread r3,r4
+++.*: (50 83 65 36|36 65 83 50) rlwimi r3,r4,12,20,27
+++.*: (7c 43 27 1e|1e 27 43 7c) isel r2,r3,r4,28
+++.*: (4c 00 01 2c|2c 01 00 4c) isync
+++.*: (89 21 00 00|00 00 21 89) lbz r9,0\(r1\)
+++.*: (8d 41 00 01|01 00 41 8d) lbzu r10,1\(r1\)
+++.*: (7e 95 b0 ee|ee b0 95 7e) lbzux r20,r21,r22
+++.*: (7c 64 28 ae|ae 28 64 7c) lbzx r3,r4,r5
+++.*: (ca a1 00 08|08 00 a1 ca) lfd f21,8\(r1\)
+++.*: (ce c1 00 10|10 00 c1 ce) lfdu f22,16\(r1\)
+++.*: (7e 95 b4 ee|ee b4 95 7e) lfdux f20,r21,r22
+++.*: (7d ae 7c ae|ae 7c ae 7d) lfdx f13,r14,r15
+++.*: (7d 43 26 ae|ae 26 43 7d) lfiwax f10,r3,r4
+++.*: (c2 61 00 00|00 00 61 c2) lfs f19,0\(r1\)
+++.*: (c6 81 00 04|04 00 81 c6) lfsu f20,4\(r1\)
+++.*: (7d 4b 64 6e|6e 64 4b 7d) lfsux f10,r11,r12
+++.*: (7d 4b 64 2e|2e 64 4b 7d) lfsx f10,r11,r12
+++.*: (a9 e1 00 06|06 00 e1 a9) lha r15,6\(r1\)
+++.*: (ae 01 00 08|08 00 01 ae) lhau r16,8\(r1\)
+++.*: (7d 2a 5a ee|ee 5a 2a 7d) lhaux r9,r10,r11
+++.*: (7d 2a 5a ae|ae 5a 2a 7d) lhax r9,r10,r11
+++.*: (7c 64 2e 2c|2c 2e 64 7c) lhbrx r3,r4,r5
+++.*: (a1 a1 00 00|00 00 a1 a1) lhz r13,0\(r1\)
+++.*: (a5 c1 00 02|02 00 c1 a5) lhzu r14,2\(r1\)
+++.*: (7e 96 c2 6e|6e c2 96 7e) lhzux r20,r22,r24
+++.*: (7e f8 ca 2e|2e ca f8 7e) lhzx r23,r24,r25
+++.*: (7c 64 28 28|28 28 64 7c) lwarx r3,r4,r5
+++.*: (7c 64 28 28|28 28 64 7c) lwarx r3,r4,r5
+++.*: (7c 64 28 29|29 28 64 7c) lwarx r3,r4,r5,1
+++.*: (7c 64 2c 2c|2c 2c 64 7c) lwbrx r3,r4,r5
+++.*: (80 c7 00 00|00 00 c7 80) lwz r6,0\(r7\)
+++.*: (84 61 00 10|10 00 61 84) lwzu r3,16\(r1\)
+++.*: (7c 64 28 6e|6e 28 64 7c) lwzux r3,r4,r5
+++.*: (7c 64 28 2e|2e 28 64 7c) lwzx r3,r4,r5
+++.*: (10 64 29 58|58 29 64 10) macchw r3,r4,r5
+++.*: (10 64 29 59|59 29 64 10) macchw\. r3,r4,r5
+++.*: (10 64 2d 58|58 2d 64 10) macchwo r3,r4,r5
+++.*: (10 64 2d 59|59 2d 64 10) macchwo\. r3,r4,r5
+++.*: (10 64 29 d8|d8 29 64 10) macchws r3,r4,r5
+++.*: (10 64 29 d9|d9 29 64 10) macchws\. r3,r4,r5
+++.*: (10 64 2d d8|d8 2d 64 10) macchwso r3,r4,r5
+++.*: (10 64 2d d9|d9 2d 64 10) macchwso\. r3,r4,r5
+++.*: (10 64 29 98|98 29 64 10) macchwsu r3,r4,r5
+++.*: (10 64 29 99|99 29 64 10) macchwsu\. r3,r4,r5
+++.*: (10 64 2d 98|98 2d 64 10) macchwsuo r3,r4,r5
+++.*: (10 64 2d 99|99 2d 64 10) macchwsuo\. r3,r4,r5
+++.*: (10 64 29 18|18 29 64 10) macchwu r3,r4,r5
+++.*: (10 64 29 19|19 29 64 10) macchwu\. r3,r4,r5
+++.*: (10 64 2d 18|18 2d 64 10) macchwuo r3,r4,r5
+++.*: (10 64 2d 19|19 2d 64 10) macchwuo\. r3,r4,r5
+++.*: (10 64 28 58|58 28 64 10) machhw r3,r4,r5
+++.*: (10 64 28 59|59 28 64 10) machhw\. r3,r4,r5
+++.*: (10 64 2c 58|58 2c 64 10) machhwo r3,r4,r5
+++.*: (10 64 2c 59|59 2c 64 10) machhwo\. r3,r4,r5
+++.*: (10 64 28 d8|d8 28 64 10) machhws r3,r4,r5
+++.*: (10 64 28 d9|d9 28 64 10) machhws\. r3,r4,r5
+++.*: (10 64 2c d8|d8 2c 64 10) machhwso r3,r4,r5
+++.*: (10 64 2c d9|d9 2c 64 10) machhwso\. r3,r4,r5
+++.*: (10 64 28 98|98 28 64 10) machhwsu r3,r4,r5
+++.*: (10 64 28 99|99 28 64 10) machhwsu\. r3,r4,r5
+++.*: (10 64 2c 98|98 2c 64 10) machhwsuo r3,r4,r5
+++.*: (10 64 2c 99|99 2c 64 10) machhwsuo\. r3,r4,r5
+++.*: (10 64 28 18|18 28 64 10) machhwu r3,r4,r5
+++.*: (10 64 28 19|19 28 64 10) machhwu\. r3,r4,r5
+++.*: (10 64 2c 18|18 2c 64 10) machhwuo r3,r4,r5
+++.*: (10 64 2c 19|19 2c 64 10) machhwuo\. r3,r4,r5
+++.*: (10 64 2b 58|58 2b 64 10) maclhw r3,r4,r5
+++.*: (10 64 2b 59|59 2b 64 10) maclhw\. r3,r4,r5
+++.*: (10 64 2f 58|58 2f 64 10) maclhwo r3,r4,r5
+++.*: (10 64 2f 59|59 2f 64 10) maclhwo\. r3,r4,r5
+++.*: (10 64 2b d8|d8 2b 64 10) maclhws r3,r4,r5
+++.*: (10 64 2b d9|d9 2b 64 10) maclhws\. r3,r4,r5
+++.*: (10 64 2f d8|d8 2f 64 10) maclhwso r3,r4,r5
+++.*: (10 64 2f d9|d9 2f 64 10) maclhwso\. r3,r4,r5
+++.*: (10 64 2b 98|98 2b 64 10) maclhwsu r3,r4,r5
+++.*: (10 64 2b 99|99 2b 64 10) maclhwsu\. r3,r4,r5
+++.*: (10 64 2f 98|98 2f 64 10) maclhwsuo r3,r4,r5
+++.*: (10 64 2f 99|99 2f 64 10) maclhwsuo\. r3,r4,r5
+++.*: (10 64 2b 18|18 2b 64 10) maclhwu r3,r4,r5
+++.*: (10 64 2b 19|19 2b 64 10) maclhwu\. r3,r4,r5
+++.*: (10 64 2f 18|18 2f 64 10) maclhwuo r3,r4,r5
+++.*: (10 64 2f 19|19 2f 64 10) maclhwuo\. r3,r4,r5
+++.*: (7c 00 06 ac|ac 06 00 7c) mbar
+++.*: (7c 00 06 ac|ac 06 00 7c) mbar
+++.*: (7c 20 06 ac|ac 06 20 7c) mbar 1
+++.*: (4c 04 00 00|00 00 04 4c) mcrf cr0,cr1
+++.*: (fd 90 00 80|80 00 90 fd) mcrfs cr3,cr4
+++.*: (7d 80 04 00|00 04 80 7d) mcrxr cr3
+++.*: (7c 60 00 26|26 00 60 7c) mfcr r3
+++.*: (7c 60 00 26|26 00 60 7c) mfcr r3
+++.*: (7c aa 3a 86|86 3a aa 7c) mfdcr r5,234
+++.*: (7c 64 02 46|46 02 64 7c) mfdcrux r3,r4
+++.*: (7c 85 02 06|06 02 85 7c) mfdcrx r4,r5
+++.*: (ff c0 04 8e|8e 04 c0 ff) mffs f30
+++.*: (ff e0 04 8f|8f 04 e0 ff) mffs\. f31
+++.*: (7e 60 00 a6|a6 00 60 7e) mfmsr r19
+++.*: (7c 78 00 26|26 00 78 7c) mfocrf r3,128
+++.*: (7c 60 22 a6|a6 22 60 7c) mfspr r3,128
+++.*: (7c 6c 42 a6|a6 42 6c 7c) mftb r3
+++.*: (7c 00 04 ac|ac 04 00 7c) msync
+++.*: (7c 78 01 20|20 01 78 7c) mtocrf 128,r3
+++.*: (7c 6f f1 20|20 f1 6f 7c) mtcr r3
+++.*: (7d 10 6b 86|86 6b 10 7d) mtdcr 432,r8
+++.*: (7c 83 03 46|46 03 83 7c) mtdcrux r3,r4
+++.*: (7c e6 03 06|06 03 e6 7c) mtdcrx r6,r7
+++.*: (fc 60 00 8c|8c 00 60 fc) mtfsb0 3
+++.*: (fc 60 00 8d|8d 00 60 fc) mtfsb0\. 3
+++.*: (fc 60 00 4c|4c 00 60 fc) mtfsb1 3
+++.*: (fc 60 00 4d|4d 00 60 fc) mtfsb1\. 3
+++.*: (fc 0c 55 8e|8e 55 0c fc) mtfsf 6,f10
+++.*: (fc 0c 55 8e|8e 55 0c fc) mtfsf 6,f10
+++.*: (fc 0d 55 8e|8e 55 0d fc) mtfsf 6,f10,0,1
+++.*: (fe 0c 55 8e|8e 55 0c fe) mtfsf 6,f10,1
+++.*: (fc 0c 5d 8f|8f 5d 0c fc) mtfsf\. 6,f11
+++.*: (fc 0c 5d 8f|8f 5d 0c fc) mtfsf\. 6,f11
+++.*: (fc 0d 5d 8f|8f 5d 0d fc) mtfsf\. 6,f11,0,1
+++.*: (fe 0c 5d 8f|8f 5d 0c fe) mtfsf\. 6,f11,1
+++.*: (ff 00 01 0c|0c 01 00 ff) mtfsfi 6,0
+++.*: (ff 00 01 0c|0c 01 00 ff) mtfsfi 6,0
+++.*: (ff 00 01 0c|0c 01 00 ff) mtfsfi 6,0
+++.*: (ff 01 01 0c|0c 01 01 ff) mtfsfi 6,0,1
+++.*: (ff 00 f1 0d|0d f1 00 ff) mtfsfi\. 6,15
+++.*: (ff 00 f1 0d|0d f1 00 ff) mtfsfi\. 6,15
+++.*: (ff 00 f1 0d|0d f1 00 ff) mtfsfi\. 6,15
+++.*: (ff 01 f1 0d|0d f1 01 ff) mtfsfi\. 6,15,1
+++.*: (7d 40 01 24|24 01 40 7d) mtmsr r10
+++.*: (7c 78 01 20|20 01 78 7c) mtocrf 128,r3
+++.*: (7c 60 23 a6|a6 23 60 7c) mtspr 128,r3
+++.*: (10 64 29 50|50 29 64 10) mulchw r3,r4,r5
+++.*: (10 64 29 51|51 29 64 10) mulchw\. r3,r4,r5
+++.*: (10 64 29 10|10 29 64 10) mulchwu r3,r4,r5
+++.*: (10 64 29 11|11 29 64 10) mulchwu\. r3,r4,r5
+++.*: (10 64 28 50|50 28 64 10) mulhhw r3,r4,r5
+++.*: (10 64 28 51|51 28 64 10) mulhhw\. r3,r4,r5
+++.*: (10 64 28 10|10 28 64 10) mulhhwu r3,r4,r5
+++.*: (10 64 28 11|11 28 64 10) mulhhwu\. r3,r4,r5
+++.*: (7c 64 28 96|96 28 64 7c) mulhw r3,r4,r5
+++.*: (7c 64 28 97|97 28 64 7c) mulhw\. r3,r4,r5
+++.*: (7c 64 28 16|16 28 64 7c) mulhwu r3,r4,r5
+++.*: (7c 64 28 17|17 28 64 7c) mulhwu\. r3,r4,r5
+++.*: (10 64 2b 50|50 2b 64 10) mullhw r3,r4,r5
+++.*: (10 64 2b 51|51 2b 64 10) mullhw\. r3,r4,r5
+++.*: (10 64 2b 10|10 2b 64 10) mullhwu r3,r4,r5
+++.*: (10 64 2b 11|11 2b 64 10) mullhwu\. r3,r4,r5
+++.*: (1c 64 00 05|05 00 64 1c) mulli r3,r4,5
+++.*: (7c 64 29 d6|d6 29 64 7c) mullw r3,r4,r5
+++.*: (7c 64 29 d7|d7 29 64 7c) mullw\. r3,r4,r5
+++.*: (7c 64 2d d6|d6 2d 64 7c) mullwo r3,r4,r5
+++.*: (7c 64 2d d7|d7 2d 64 7c) mullwo\. r3,r4,r5
+++.*: (7f bc f3 b8|b8 f3 bc 7f) nand r28,r29,r30
+++.*: (7f bc f3 b9|b9 f3 bc 7f) nand\. r28,r29,r30
+++.*: (7c 64 00 d0|d0 00 64 7c) neg r3,r4
+++.*: (7c 64 00 d1|d1 00 64 7c) neg\. r3,r4
+++.*: (7e 11 04 d0|d0 04 11 7e) nego r16,r17
+++.*: (7e 53 04 d1|d1 04 53 7e) nego\. r18,r19
+++.*: (10 64 29 5c|5c 29 64 10) nmacchw r3,r4,r5
+++.*: (10 64 29 5d|5d 29 64 10) nmacchw\. r3,r4,r5
+++.*: (10 64 2d 5c|5c 2d 64 10) nmacchwo r3,r4,r5
+++.*: (10 64 2d 5d|5d 2d 64 10) nmacchwo\. r3,r4,r5
+++.*: (10 64 29 dc|dc 29 64 10) nmacchws r3,r4,r5
+++.*: (10 64 29 dd|dd 29 64 10) nmacchws\. r3,r4,r5
+++.*: (10 64 2d dc|dc 2d 64 10) nmacchwso r3,r4,r5
+++.*: (10 64 2d dd|dd 2d 64 10) nmacchwso\. r3,r4,r5
+++.*: (10 64 28 5c|5c 28 64 10) nmachhw r3,r4,r5
+++.*: (10 64 28 5d|5d 28 64 10) nmachhw\. r3,r4,r5
+++.*: (10 64 2c 5c|5c 2c 64 10) nmachhwo r3,r4,r5
+++.*: (10 64 2c 5d|5d 2c 64 10) nmachhwo\. r3,r4,r5
+++.*: (10 64 28 dc|dc 28 64 10) nmachhws r3,r4,r5
+++.*: (10 64 28 dd|dd 28 64 10) nmachhws\. r3,r4,r5
+++.*: (10 64 2c dc|dc 2c 64 10) nmachhwso r3,r4,r5
+++.*: (10 64 2c dd|dd 2c 64 10) nmachhwso\. r3,r4,r5
+++.*: (10 64 2b 5c|5c 2b 64 10) nmaclhw r3,r4,r5
+++.*: (10 64 2b 5d|5d 2b 64 10) nmaclhw\. r3,r4,r5
+++.*: (10 64 2f 5c|5c 2f 64 10) nmaclhwo r3,r4,r5
+++.*: (10 64 2f 5d|5d 2f 64 10) nmaclhwo\. r3,r4,r5
+++.*: (10 64 2b dc|dc 2b 64 10) nmaclhws r3,r4,r5
+++.*: (10 64 2b dd|dd 2b 64 10) nmaclhws\. r3,r4,r5
+++.*: (10 64 2f dc|dc 2f 64 10) nmaclhwso r3,r4,r5
+++.*: (10 64 2f dd|dd 2f 64 10) nmaclhwso\. r3,r4,r5
+++.*: (7e b4 b0 f8|f8 b0 b4 7e) nor r20,r21,r22
+++.*: (7e b4 b0 f9|f9 b0 b4 7e) nor\. r20,r21,r22
+++.*: (7c 40 23 78|78 23 40 7c) or r0,r2,r4
+++.*: (7d cc 83 79|79 83 cc 7d) or\. r12,r14,r16
+++.*: (7e 0f 8b 38|38 8b 0f 7e) orc r15,r16,r17
+++.*: (7e 72 a3 39|39 a3 72 7e) orc\. r18,r19,r20
+++.*: (60 21 00 00|00 00 21 60) ori r1,r1,0
+++.*: (64 83 de ad|ad de 83 64) oris r3,r4,57005
+++.*: (7c 83 00 f4|f4 00 83 7c) popcntb r3,r4
+++.*: (7c 83 01 34|34 01 83 7c) prtyw r3,r4
+++.*: (4c 00 00 66|66 00 00 4c) rfci
+++.*: (4c 00 00 64|64 00 00 4c) rfi
+++.*: (4c 00 00 4c|4c 00 00 4c) rfmci
+++.*: (50 83 65 36|36 65 83 50) rlwimi r3,r4,12,20,27
+++.*: (50 83 65 37|37 65 83 50) rlwimi\. r3,r4,12,20,27
+++.*: (54 83 00 36|36 00 83 54) rlwinm r3,r4,0,0,27
+++.*: (54 83 d1 be|be d1 83 54) rlwinm r3,r4,26,6,31
+++.*: (54 83 20 26|26 20 83 54) rlwinm r3,r4,4,0,19
+++.*: (54 83 00 37|37 00 83 54) rlwinm\. r3,r4,0,0,27
+++.*: (5c 83 28 3e|3e 28 83 5c) rotlw r3,r4,r5
+++.*: (5c 83 28 3f|3f 28 83 5c) rotlw\. r3,r4,r5
+++.*: (5c 83 28 3e|3e 28 83 5c) rotlw r3,r4,r5
+++.*: (5c 83 28 3f|3f 28 83 5c) rotlw\. r3,r4,r5
+++.*: (44 00 00 02|02 00 00 44) sc
+++.*: (7c 83 28 30|30 28 83 7c) slw r3,r4,r5
+++.*: (7c 83 28 31|31 28 83 7c) slw\. r3,r4,r5
+++.*: (7c 83 2e 30|30 2e 83 7c) sraw r3,r4,r5
+++.*: (7c 83 2e 31|31 2e 83 7c) sraw\. r3,r4,r5
+++.*: (7c 83 86 70|70 86 83 7c) srawi r3,r4,16
+++.*: (7c 83 86 71|71 86 83 7c) srawi\. r3,r4,16
+++.*: (7c 83 2c 30|30 2c 83 7c) srw r3,r4,r5
+++.*: (7c 83 2c 31|31 2c 83 7c) srw\. r3,r4,r5
+++.*: (54 83 d1 be|be d1 83 54) rlwinm r3,r4,26,6,31
+++.*: (99 61 00 02|02 00 61 99) stb r11,2\(r1\)
+++.*: (9d 81 00 03|03 00 81 9d) stbu r12,3\(r1\)
+++.*: (7d ae 79 ee|ee 79 ae 7d) stbux r13,r14,r15
+++.*: (7c 64 29 ae|ae 29 64 7c) stbx r3,r4,r5
+++.*: (db 21 00 20|20 00 21 db) stfd f25,32\(r1\)
+++.*: (df 41 00 28|28 00 41 df) stfdu f26,40\(r1\)
+++.*: (7c 01 15 ee|ee 15 01 7c) stfdux f0,r1,r2
+++.*: (7f be fd ae|ae fd be 7f) stfdx f29,r30,r31
+++.*: (7d 43 27 ae|ae 27 43 7d) stfiwx f10,r3,r4
+++.*: (d2 e1 00 14|14 00 e1 d2) stfs f23,20\(r1\)
+++.*: (d7 01 00 18|18 00 01 d7) stfsu f24,24\(r1\)
+++.*: (7f 5b e5 6e|6e e5 5b 7f) stfsux f26,r27,r28
+++.*: (7e f8 cd 2e|2e cd f8 7e) stfsx f23,r24,r25
+++.*: (b2 21 00 0a|0a 00 21 b2) sth r17,10\(r1\)
+++.*: (7c c7 47 2c|2c 47 c7 7c) sthbrx r6,r7,r8
+++.*: (b6 41 00 0c|0c 00 41 b6) sthu r18,12\(r1\)
+++.*: (7e b6 bb 6e|6e bb b6 7e) sthux r21,r22,r23
+++.*: (7d 8d 73 2e|2e 73 8d 7d) sthx r12,r13,r14
+++.*: (90 c7 ff f0|f0 ff c7 90) stw r6,-16\(r7\)
+++.*: (7c 64 2d 2c|2c 2d 64 7c) stwbrx r3,r4,r5
+++.*: (7c 64 29 2d|2d 29 64 7c) stwcx\. r3,r4,r5
+++.*: (94 61 00 10|10 00 61 94) stwu r3,16\(r1\)
+++.*: (7c 64 29 6e|6e 29 64 7c) stwux r3,r4,r5
+++.*: (7c 64 29 2e|2e 29 64 7c) stwx r3,r4,r5
+++.*: (7c 64 28 50|50 28 64 7c) subf r3,r4,r5
+++.*: (7c 64 28 51|51 28 64 7c) subf\. r3,r4,r5
+++.*: (7c 64 28 10|10 28 64 7c) subfc r3,r4,r5
+++.*: (7c 64 28 11|11 28 64 7c) subfc\. r3,r4,r5
+++.*: (7c 64 2c 10|10 2c 64 7c) subfco r3,r4,r5
+++.*: (7c 64 2c 11|11 2c 64 7c) subfco\. r3,r4,r5
+++.*: (7c 64 29 10|10 29 64 7c) subfe r3,r4,r5
+++.*: (7c 64 29 11|11 29 64 7c) subfe\. r3,r4,r5
+++.*: (7c 64 2d 10|10 2d 64 7c) subfeo r3,r4,r5
+++.*: (7c 64 2d 11|11 2d 64 7c) subfeo\. r3,r4,r5
+++.*: (20 64 00 05|05 00 64 20) subfic r3,r4,5
+++.*: (7c 64 01 d0|d0 01 64 7c) subfme r3,r4
+++.*: (7c 64 01 d1|d1 01 64 7c) subfme\. r3,r4
+++.*: (7c 64 05 d0|d0 05 64 7c) subfmeo r3,r4
+++.*: (7c 64 05 d1|d1 05 64 7c) subfmeo\. r3,r4
+++.*: (7c 64 2c 50|50 2c 64 7c) subfo r3,r4,r5
+++.*: (7c 64 2c 51|51 2c 64 7c) subfo\. r3,r4,r5
+++.*: (7c 64 01 90|90 01 64 7c) subfze r3,r4
+++.*: (7c 64 01 91|91 01 64 7c) subfze\. r3,r4
+++.*: (7c 64 05 90|90 05 64 7c) subfzeo r3,r4
+++.*: (7c 64 05 91|91 05 64 7c) subfzeo\. r3,r4
+++.*: (7c 07 46 24|24 46 07 7c) tlbivax r7,r8
+++.*: (7c 22 3f 64|64 3f 22 7c) tlbre r1,r2,7
+++.*: (7c 0b 67 24|24 67 0b 7c) tlbsx r11,r12
+++.*: (7d 8d 77 24|24 77 8d 7d) tlbsx r12,r13,r14
+++.*: (7d 8d 77 25|25 77 8d 7d) tlbsx\. r12,r13,r14
+++.*: (7c 00 04 6c|6c 04 00 7c) tlbsync
+++.*: (7c 00 07 a4|a4 07 00 7c) tlbwe
+++.*: (7c 00 07 a4|a4 07 00 7c) tlbwe
+++.*: (7c 21 0f a4|a4 0f 21 7c) tlbwe r1,r1,1
+++.*: (7f e0 00 08|08 00 e0 7f) trap
+++.*: (7f e0 00 08|08 00 e0 7f) trap
+++.*: (7c 83 20 08|08 20 83 7c) tweq r3,r4
+++.*: (7c a3 20 08|08 20 a3 7c) twlge r3,r4
+++.*: (7c 83 20 08|08 20 83 7c) tweq r3,r4
+++.*: (0d 03 00 0f|0f 00 03 0d) twgti r3,15
+++.*: (0c c3 00 0f|0f 00 c3 0c) twllei r3,15
+++.*: (0d 03 00 0f|0f 00 03 0d) twgti r3,15
+++.*: (7c a3 20 08|08 20 a3 7c) twlge r3,r4
+++.*: (0c c3 00 0f|0f 00 c3 0c) twllei r3,15
+++.*: (7c 60 01 06|06 01 60 7c) wrtee r3
+++.*: (7c 00 81 46|46 81 00 7c) wrteei 1
+++.*: (7f dd fa 78|78 fa dd 7f) xor r29,r30,r31
+++.*: (7f dd fa 79|79 fa dd 7f) xor\. r29,r30,r31
+++.*: (68 83 de ad|ad de 83 68) xori r3,r4,57005
+++.*: (6c 83 de ad|ad de 83 6c) xoris r3,r4,57005
++diff --git a/gas/testsuite/gas/ppc/476.s b/gas/testsuite/gas/ppc/476.s
++index da6fb7152f..db5d9e153b 100644
++--- a/gas/testsuite/gas/ppc/476.s
+++++ b/gas/testsuite/gas/ppc/476.s
++@@ -226,9 +226,6 @@ ppc476:
++ lhzu 14,2(1)
++ lhzux 20,22,24
++ lhzx 23,24,25
++- lmw 3,-16(1)
++- lswi 5,4,16
++- lswx 3,4,5
++ lwarx 3,4,5
++ lwarx 3,4,5,0
++ lwarx 3,4,5,1
++@@ -433,9 +430,6 @@ ppc476:
++ sthu 18,12(1)
++ sthux 21,22,23
++ sthx 12,13,14
++- stmw 6,-16(1)
++- stswi 3,4,16
++- stswx 3,4,5
++ stw 6,-16(7)
++ stwbrx 3,4,5
++ stwcx. 3,4,5
++diff --git a/gas/testsuite/gas/ppc/a2.d b/gas/testsuite/gas/ppc/a2.d
++index fa7211943a..517ec1c368 100644
++--- a/gas/testsuite/gas/ppc/a2.d
+++++ b/gas/testsuite/gas/ppc/a2.d
++@@ -9,577 +9,569 @@
++ Disassembly of section \.text:
++
++ 0+00 <start>:
++- 0: (7c 85 32 15|15 32 85 7c) add\. r4,r5,r6
++- 4: (7c 85 32 14|14 32 85 7c) add r4,r5,r6
++- 8: (7c 85 30 15|15 30 85 7c) addc\. r4,r5,r6
++- c: (7c 85 30 14|14 30 85 7c) addc r4,r5,r6
++- 10: (7c 85 34 15|15 34 85 7c) addco\. r4,r5,r6
++- 14: (7c 85 34 14|14 34 85 7c) addco r4,r5,r6
++- 18: (7c 85 31 15|15 31 85 7c) adde\. r4,r5,r6
++- 1c: (7c 85 31 14|14 31 85 7c) adde r4,r5,r6
++- 20: (7c 85 35 15|15 35 85 7c) addeo\. r4,r5,r6
++- 24: (7c 85 35 14|14 35 85 7c) addeo r4,r5,r6
++- 28: (38 85 00 0d|0d 00 85 38) addi r4,r5,13
++- 2c: (38 85 ff f3|f3 ff 85 38) addi r4,r5,-13
++- 30: (34 85 00 0d|0d 00 85 34) addic\. r4,r5,13
++- 34: (34 85 ff f3|f3 ff 85 34) addic\. r4,r5,-13
++- 38: (30 85 00 0d|0d 00 85 30) addic r4,r5,13
++- 3c: (30 85 ff f3|f3 ff 85 30) addic r4,r5,-13
++- 40: (3c 85 00 17|17 00 85 3c) addis r4,r5,23
++- 44: (3c 85 ff e9|e9 ff 85 3c) addis r4,r5,-23
++- 48: (7c 85 01 d5|d5 01 85 7c) addme\. r4,r5
++- 4c: (7c 85 01 d4|d4 01 85 7c) addme r4,r5
++- 50: (7c 85 05 d5|d5 05 85 7c) addmeo\. r4,r5
++- 54: (7c 85 05 d4|d4 05 85 7c) addmeo r4,r5
++- 58: (7c 85 36 15|15 36 85 7c) addo\. r4,r5,r6
++- 5c: (7c 85 36 14|14 36 85 7c) addo r4,r5,r6
++- 60: (7c 85 01 95|95 01 85 7c) addze\. r4,r5
++- 64: (7c 85 01 94|94 01 85 7c) addze r4,r5
++- 68: (7c 85 05 95|95 05 85 7c) addzeo\. r4,r5
++- 6c: (7c 85 05 94|94 05 85 7c) addzeo r4,r5
++- 70: (7c a4 30 39|39 30 a4 7c) and\. r4,r5,r6
++- 74: (7c a4 30 38|38 30 a4 7c) and r4,r5,r6
++- 78: (7c a4 30 79|79 30 a4 7c) andc\. r4,r5,r6
++- 7c: (7c a4 30 78|78 30 a4 7c) andc r4,r5,r6
++- 80: (70 a4 00 06|06 00 a4 70) andi\. r4,r5,6
++- 84: (74 a4 00 06|06 00 a4 74) andis\. r4,r5,6
++- 88: (00 00 02 00|00 02 00 00) attn
++- 8c: (48 00 00 02|02 00 00 48) ba 0 <start>
++- 8c: R_PPC(|64)_ADDR24 label_abs
++- 90: (40 8a 00 00|00 00 8a 40) bne cr2,90 <start\+0x90>
++- 90: R_PPC(|64)_REL14 foo
++- 94: (40 ca 00 00|00 00 ca 40) bne- cr2,94 <start\+0x94>
++- 94: R_PPC(|64)_REL14 foo
++- 98: (40 ea 00 00|00 00 ea 40) bne\+ cr2,98 <start\+0x98>
++- 98: R_PPC(|64)_REL14 foo
++- 9c: (40 85 00 02|02 00 85 40) blea cr1,0 <start>
++- 9c: R_PPC(|64)_ADDR14 foo_abs
++- a0: (40 c5 00 02|02 00 c5 40) blea- cr1,0 <start>
++- a0: R_PPC(|64)_ADDR14 foo_abs
++- a4: (40 e5 00 02|02 00 e5 40) blea\+ cr1,0 <start>
++- a4: R_PPC(|64)_ADDR14 foo_abs
++- a8: (4c 86 0c 20|20 0c 86 4c) bcctr 4,4\*cr1\+eq,1
++- ac: (4c c6 04 20|20 04 c6 4c) bnectr- cr1
++- b0: (4c e6 04 20|20 04 e6 4c) bnectr\+ cr1
++- b4: (4c 86 0c 21|21 0c 86 4c) bcctrl 4,4\*cr1\+eq,1
++- b8: (4c c6 04 21|21 04 c6 4c) bnectrl- cr1
++- bc: (4c e6 04 21|21 04 e6 4c) bnectrl\+ cr1
++- c0: (40 8a 00 01|01 00 8a 40) bnel cr2,c0 <start\+0xc0>
++- c0: R_PPC(|64)_REL14 foo
++- c4: (40 ca 00 01|01 00 ca 40) bnel- cr2,c4 <start\+0xc4>
++- c4: R_PPC(|64)_REL14 foo
++- c8: (40 ea 00 01|01 00 ea 40) bnel\+ cr2,c8 <start\+0xc8>
++- c8: R_PPC(|64)_REL14 foo
++- cc: (40 85 00 03|03 00 85 40) blela cr1,0 <start>
++- cc: R_PPC(|64)_ADDR14 foo_abs
++- d0: (40 c5 00 03|03 00 c5 40) blela- cr1,0 <start>
++- d0: R_PPC(|64)_ADDR14 foo_abs
++- d4: (40 e5 00 03|03 00 e5 40) blela\+ cr1,0 <start>
++- d4: R_PPC(|64)_ADDR14 foo_abs
++- d8: (4c 86 08 20|20 08 86 4c) bclr 4,4\*cr1\+eq,1
++- dc: (4c c6 00 20|20 00 c6 4c) bnelr- cr1
++- e0: (4c e6 00 20|20 00 e6 4c) bnelr\+ cr1
++- e4: (4c 86 08 21|21 08 86 4c) bclrl 4,4\*cr1\+eq,1
++- e8: (4c c6 00 21|21 00 c6 4c) bnelrl- cr1
++- ec: (4c e6 00 21|21 00 e6 4c) bnelrl\+ cr1
++- f0: (48 00 00 00|00 00 00 48) b f0 <start\+0xf0>
++- f0: R_PPC(|64)_REL24 label
++- f4: (48 00 00 03|03 00 00 48) bla 0 <start>
++- f4: R_PPC(|64)_ADDR24 label_abs
++- f8: (48 00 00 01|01 00 00 48) bl f8 <start\+0xf8>
++- f8: R_PPC(|64)_REL24 label
++- fc: (7d 6a 61 f8|f8 61 6a 7d) bpermd r10,r11,r12
++- 100: (7c a7 40 00|00 40 a7 7c) cmpd cr1,r7,r8
++- 104: (7d 6a 63 f8|f8 63 6a 7d) cmpb r10,r11,r12
++- 108: (2c aa 00 0d|0d 00 aa 2c) cmpdi cr1,r10,13
++- 10c: (2c aa ff f3|f3 ff aa 2c) cmpdi cr1,r10,-13
++- 110: (7c a7 40 40|40 40 a7 7c) cmpld cr1,r7,r8
++- 114: (28 aa 00 64|64 00 aa 28) cmpldi cr1,r10,100
++- 118: (7e b4 00 75|75 00 b4 7e) cntlzd\. r20,r21
++- 11c: (7e b4 00 74|74 00 b4 7e) cntlzd r20,r21
++- 120: (7e b4 00 35|35 00 b4 7e) cntlzw\. r20,r21
++- 124: (7e b4 00 34|34 00 b4 7e) cntlzw r20,r21
++- 128: (4c 22 1a 02|02 1a 22 4c) crand gt,eq,so
++- 12c: (4c 22 19 02|02 19 22 4c) crandc gt,eq,so
++- 130: (4c 22 1a 42|42 1a 22 4c) creqv gt,eq,so
++- 134: (4c 22 19 c2|c2 19 22 4c) crnand gt,eq,so
++- 138: (4c 22 18 42|42 18 22 4c) crnor gt,eq,so
++- 13c: (4c 22 1b 82|82 1b 22 4c) cror gt,eq,so
++- 140: (4c 22 1b 42|42 1b 22 4c) crorc gt,eq,so
++- 144: (4c 22 19 82|82 19 22 4c) crxor gt,eq,so
++- 148: (7c 0a 5d ec|ec 5d 0a 7c) dcba r10,r11
++- 14c: (7c 0a 58 ac|ac 58 0a 7c) dcbf r10,r11
++- 150: (7c 2a 58 ac|ac 58 2a 7c) dcbfl r10,r11
++- 154: (7c 0a 58 fe|fe 58 0a 7c) dcbfep r10,r11
++- 158: (7c 0a 5b ac|ac 5b 0a 7c) dcbi r10,r11
++- 15c: (7c 0a 5b 0c|0c 5b 0a 7c) dcblc r10,r11
++- 160: (7c 2a 5b 0c|0c 5b 2a 7c) dcblc 1,r10,r11
++- 164: (7c 0a 58 6c|6c 58 0a 7c) dcbst r10,r11
++- 168: (7c 0a 58 7e|7e 58 0a 7c) dcbstep r10,r11
++- 16c: (7c 0a 5a 2c|2c 5a 0a 7c) dcbt r10,r11
++- 170: (7c 2a 5a 2c|2c 5a 2a 7c) dcbt 1,r10,r11
++- 174: (7d 4b 62 7e|7e 62 4b 7d) dcbtep r10,r11,r12
++- 178: (7c 0a 59 4c|4c 59 0a 7c) dcbtls r10,r11
++- 17c: (7c 2a 59 4c|4c 59 2a 7c) dcbtls 1,r10,r11
++- 180: (7c 0a 59 ec|ec 59 0a 7c) dcbtst r10,r11
++- 184: (7c 2a 59 ec|ec 59 2a 7c) dcbtst 1,r10,r11
++- 188: (7d 4b 61 fe|fe 61 4b 7d) dcbtstep r10,r11,r12
++- 18c: (7c 0a 59 0c|0c 59 0a 7c) dcbtstls r10,r11
++- 190: (7c 2a 59 0c|0c 59 2a 7c) dcbtstls 1,r10,r11
++- 194: (7c 0a 5f ec|ec 5f 0a 7c) dcbz r10,r11
++- 198: (7c 0a 5f fe|fe 5f 0a 7c) dcbzep r10,r11
++- 19c: (7c 00 03 8c|8c 03 00 7c) dccci
++- 1a0: (7c 00 03 8c|8c 03 00 7c) dccci
++- 1a4: (7c 00 03 8c|8c 03 00 7c) dccci
++- 1a8: (7d 40 03 8c|8c 03 40 7d) dci 10
++- 1ac: (7e 95 b3 d3|d3 b3 95 7e) divd\. r20,r21,r22
++- 1b0: (7e 95 b3 d2|d2 b3 95 7e) divd r20,r21,r22
++- 1b4: (7e 95 b7 d3|d3 b7 95 7e) divdo\. r20,r21,r22
++- 1b8: (7e 95 b7 d2|d2 b7 95 7e) divdo r20,r21,r22
++- 1bc: (7e 95 b3 93|93 b3 95 7e) divdu\. r20,r21,r22
++- 1c0: (7e 95 b3 92|92 b3 95 7e) divdu r20,r21,r22
++- 1c4: (7e 95 b7 93|93 b7 95 7e) divduo\. r20,r21,r22
++- 1c8: (7e 95 b7 92|92 b7 95 7e) divduo r20,r21,r22
++- 1cc: (7e 95 b3 d7|d7 b3 95 7e) divw\. r20,r21,r22
++- 1d0: (7e 95 b3 d6|d6 b3 95 7e) divw r20,r21,r22
++- 1d4: (7e 95 b7 d7|d7 b7 95 7e) divwo\. r20,r21,r22
++- 1d8: (7e 95 b7 d6|d6 b7 95 7e) divwo r20,r21,r22
++- 1dc: (7e 95 b3 97|97 b3 95 7e) divwu\. r20,r21,r22
++- 1e0: (7e 95 b3 96|96 b3 95 7e) divwu r20,r21,r22
++- 1e4: (7e 95 b7 97|97 b7 95 7e) divwuo\. r20,r21,r22
++- 1e8: (7e 95 b7 96|96 b7 95 7e) divwuo r20,r21,r22
++- 1ec: (7e b4 b2 39|39 b2 b4 7e) eqv\. r20,r21,r22
++- 1f0: (7e b4 b2 38|38 b2 b4 7e) eqv r20,r21,r22
++- 1f4: (7c 0a 58 66|66 58 0a 7c) eratilx 0,r10,r11
++- 1f8: (7c 2a 58 66|66 58 2a 7c) eratilx 1,r10,r11
++- 1fc: (7c ea 58 66|66 58 ea 7c) eratilx 7,r10,r11
++- 200: (7d 4b 66 66|66 66 4b 7d) erativax r10,r11,r12
++- 204: (7d 4b 01 66|66 01 4b 7d) eratre r10,r11,0
++- 208: (7d 4b 19 66|66 19 4b 7d) eratre r10,r11,3
++- 20c: (7d 4b 61 27|27 61 4b 7d) eratsx\. r10,r11,r12
++- 210: (7d 4b 61 26|26 61 4b 7d) eratsx r10,r11,r12
++- 214: (7d 4b 01 a6|a6 01 4b 7d) eratwe r10,r11,0
++- 218: (7d 4b 19 a6|a6 19 4b 7d) eratwe r10,r11,3
++- 21c: (7d 6a 07 75|75 07 6a 7d) extsb\. r10,r11
++- 220: (7d 6a 07 74|74 07 6a 7d) extsb r10,r11
++- 224: (7d 6a 07 35|35 07 6a 7d) extsh\. r10,r11
++- 228: (7d 6a 07 34|34 07 6a 7d) extsh r10,r11
++- 22c: (7d 6a 07 b5|b5 07 6a 7d) extsw\. r10,r11
++- 230: (7d 6a 07 b4|b4 07 6a 7d) extsw r10,r11
++- 234: (fe 80 aa 11|11 aa 80 fe) fabs\. f20,f21
++- 238: (fe 80 aa 10|10 aa 80 fe) fabs f20,f21
++- 23c: (fe 95 b0 2b|2b b0 95 fe) fadd\. f20,f21,f22
++- 240: (fe 95 b0 2a|2a b0 95 fe) fadd f20,f21,f22
++- 244: (ee 95 b0 2b|2b b0 95 ee) fadds\. f20,f21,f22
++- 248: (ee 95 b0 2a|2a b0 95 ee) fadds f20,f21,f22
++- 24c: (fe 80 ae 9d|9d ae 80 fe) fcfid\. f20,f21
++- 250: (fe 80 ae 9c|9c ae 80 fe) fcfid f20,f21
++- 254: (fc 14 a8 40|40 a8 14 fc) fcmpo cr0,f20,f21
++- 258: (fc 94 a8 40|40 a8 94 fc) fcmpo cr1,f20,f21
++- 25c: (fc 14 a8 00|00 a8 14 fc) fcmpu cr0,f20,f21
++- 260: (fc 94 a8 00|00 a8 94 fc) fcmpu cr1,f20,f21
++- 264: (fe 95 b0 11|11 b0 95 fe) fcpsgn\. f20,f21,f22
++- 268: (fe 95 b0 10|10 b0 95 fe) fcpsgn f20,f21,f22
++- 26c: (fe 80 ae 5d|5d ae 80 fe) fctid\. f20,f21
++- 270: (fe 80 ae 5c|5c ae 80 fe) fctid f20,f21
++- 274: (fe 80 ae 5f|5f ae 80 fe) fctidz\. f20,f21
++- 278: (fe 80 ae 5e|5e ae 80 fe) fctidz f20,f21
++- 27c: (fe 80 a8 1d|1d a8 80 fe) fctiw\. f20,f21
++- 280: (fe 80 a8 1c|1c a8 80 fe) fctiw f20,f21
++- 284: (fe 80 a8 1f|1f a8 80 fe) fctiwz\. f20,f21
++- 288: (fe 80 a8 1e|1e a8 80 fe) fctiwz f20,f21
++- 28c: (fe 95 b0 25|25 b0 95 fe) fdiv\. f20,f21,f22
++- 290: (fe 95 b0 24|24 b0 95 fe) fdiv f20,f21,f22
++- 294: (ee 95 b0 25|25 b0 95 ee) fdivs\. f20,f21,f22
++- 298: (ee 95 b0 24|24 b0 95 ee) fdivs f20,f21,f22
++- 29c: (fe 95 bd bb|bb bd 95 fe) fmadd\. f20,f21,f22,f23
++- 2a0: (fe 95 bd ba|ba bd 95 fe) fmadd f20,f21,f22,f23
++- 2a4: (ee 95 bd bb|bb bd 95 ee) fmadds\. f20,f21,f22,f23
++- 2a8: (ee 95 bd ba|ba bd 95 ee) fmadds f20,f21,f22,f23
++- 2ac: (fe 80 a8 91|91 a8 80 fe) fmr\. f20,f21
++- 2b0: (fe 80 a8 90|90 a8 80 fe) fmr f20,f21
++- 2b4: (fe 95 bd b9|b9 bd 95 fe) fmsub\. f20,f21,f22,f23
++- 2b8: (fe 95 bd b8|b8 bd 95 fe) fmsub f20,f21,f22,f23
++- 2bc: (ee 95 bd b9|b9 bd 95 ee) fmsubs\. f20,f21,f22,f23
++- 2c0: (ee 95 bd b8|b8 bd 95 ee) fmsubs f20,f21,f22,f23
++- 2c4: (fe 95 05 b3|b3 05 95 fe) fmul\. f20,f21,f22
++- 2c8: (fe 95 05 b2|b2 05 95 fe) fmul f20,f21,f22
++- 2cc: (ee 95 05 b3|b3 05 95 ee) fmuls\. f20,f21,f22
++- 2d0: (ee 95 05 b2|b2 05 95 ee) fmuls f20,f21,f22
++- 2d4: (fe 80 a9 11|11 a9 80 fe) fnabs\. f20,f21
++- 2d8: (fe 80 a9 10|10 a9 80 fe) fnabs f20,f21
++- 2dc: (fe 80 a8 51|51 a8 80 fe) fneg\. f20,f21
++- 2e0: (fe 80 a8 50|50 a8 80 fe) fneg f20,f21
++- 2e4: (fe 95 bd bf|bf bd 95 fe) fnmadd\. f20,f21,f22,f23
++- 2e8: (fe 95 bd be|be bd 95 fe) fnmadd f20,f21,f22,f23
++- 2ec: (ee 95 bd bf|bf bd 95 ee) fnmadds\. f20,f21,f22,f23
++- 2f0: (ee 95 bd be|be bd 95 ee) fnmadds f20,f21,f22,f23
++- 2f4: (fe 95 bd bd|bd bd 95 fe) fnmsub\. f20,f21,f22,f23
++- 2f8: (fe 95 bd bc|bc bd 95 fe) fnmsub f20,f21,f22,f23
++- 2fc: (ee 95 bd bd|bd bd 95 ee) fnmsubs\. f20,f21,f22,f23
++- 300: (ee 95 bd bc|bc bd 95 ee) fnmsubs f20,f21,f22,f23
++- 304: (fe 80 a8 31|31 a8 80 fe) fre\. f20,f21
++- 308: (fe 80 a8 30|30 a8 80 fe) fre f20,f21
++- 30c: (fe 80 a8 31|31 a8 80 fe) fre\. f20,f21
++- 310: (fe 80 a8 30|30 a8 80 fe) fre f20,f21
++- 314: (fe 81 a8 31|31 a8 81 fe) fre\. f20,f21,1
++- 318: (fe 81 a8 30|30 a8 81 fe) fre f20,f21,1
++- 31c: (ee 80 a8 31|31 a8 80 ee) fres\. f20,f21
++- 320: (ee 80 a8 30|30 a8 80 ee) fres f20,f21
++- 324: (ee 80 a8 31|31 a8 80 ee) fres\. f20,f21
++- 328: (ee 80 a8 30|30 a8 80 ee) fres f20,f21
++- 32c: (ee 81 a8 31|31 a8 81 ee) fres\. f20,f21,1
++- 330: (ee 81 a8 30|30 a8 81 ee) fres f20,f21,1
++- 334: (fe 80 ab d1|d1 ab 80 fe) frim\. f20,f21
++- 338: (fe 80 ab d0|d0 ab 80 fe) frim f20,f21
++- 33c: (fe 80 ab 11|11 ab 80 fe) frin\. f20,f21
++- 340: (fe 80 ab 10|10 ab 80 fe) frin f20,f21
++- 344: (fe 80 ab 91|91 ab 80 fe) frip\. f20,f21
++- 348: (fe 80 ab 90|90 ab 80 fe) frip f20,f21
++- 34c: (fe 80 ab 51|51 ab 80 fe) friz\. f20,f21
++- 350: (fe 80 ab 50|50 ab 80 fe) friz f20,f21
++- 354: (fe 80 a8 19|19 a8 80 fe) frsp\. f20,f21
++- 358: (fe 80 a8 18|18 a8 80 fe) frsp f20,f21
++- 35c: (fe 80 a8 35|35 a8 80 fe) frsqrte\. f20,f21
++- 360: (fe 80 a8 34|34 a8 80 fe) frsqrte f20,f21
++- 364: (fe 80 a8 35|35 a8 80 fe) frsqrte\. f20,f21
++- 368: (fe 80 a8 34|34 a8 80 fe) frsqrte f20,f21
++- 36c: (fe 81 a8 35|35 a8 81 fe) frsqrte\. f20,f21,1
++- 370: (fe 81 a8 34|34 a8 81 fe) frsqrte f20,f21,1
++- 374: (ee 80 a8 34|34 a8 80 ee) frsqrtes f20,f21
++- 378: (ee 80 a8 35|35 a8 80 ee) frsqrtes\. f20,f21
++- 37c: (ee 80 a8 34|34 a8 80 ee) frsqrtes f20,f21
++- 380: (ee 80 a8 35|35 a8 80 ee) frsqrtes\. f20,f21
++- 384: (ee 81 a8 34|34 a8 81 ee) frsqrtes f20,f21,1
++- 388: (ee 81 a8 35|35 a8 81 ee) frsqrtes\. f20,f21,1
++- 38c: (fe 95 bd af|af bd 95 fe) fsel\. f20,f21,f22,f23
++- 390: (fe 95 bd ae|ae bd 95 fe) fsel f20,f21,f22,f23
++- 394: (fe 80 a8 2d|2d a8 80 fe) fsqrt\. f20,f21
++- 398: (fe 80 a8 2c|2c a8 80 fe) fsqrt f20,f21
++- 39c: (ee 80 a8 2d|2d a8 80 ee) fsqrts\. f20,f21
++- 3a0: (ee 80 a8 2c|2c a8 80 ee) fsqrts f20,f21
++- 3a4: (fe 95 b0 29|29 b0 95 fe) fsub\. f20,f21,f22
++- 3a8: (fe 95 b0 28|28 b0 95 fe) fsub f20,f21,f22
++- 3ac: (ee 95 b0 29|29 b0 95 ee) fsubs\. f20,f21,f22
++- 3b0: (ee 95 b0 28|28 b0 95 ee) fsubs f20,f21,f22
++- 3b4: (7c 0a 5f ac|ac 5f 0a 7c) icbi r10,r11
++- 3b8: (7c 0a 5f be|be 5f 0a 7c) icbiep r10,r11
++- 3bc: (7c 0a 58 2c|2c 58 0a 7c) icbt r10,r11
++- 3c0: (7c ea 58 2c|2c 58 ea 7c) icbt 7,r10,r11
++- 3c4: (7c 0a 5b cc|cc 5b 0a 7c) icbtls r10,r11
++- 3c8: (7c ea 5b cc|cc 5b ea 7c) icbtls 7,r10,r11
++- 3cc: (7c 00 07 8c|8c 07 00 7c) iccci
++- 3d0: (7c 00 07 8c|8c 07 00 7c) iccci
++- 3d4: (7c 00 07 8c|8c 07 00 7c) iccci
++- 3d8: (7d 40 07 8c|8c 07 40 7d) ici 10
++- 3dc: (7d 4b 63 2d|2d 63 4b 7d) icswx\. r10,r11,r12
++- 3e0: (7d 4b 63 2c|2c 63 4b 7d) icswx r10,r11,r12
++- 3e4: (7d 4b 65 de|de 65 4b 7d) isel r10,r11,r12,23
++- 3e8: (4c 00 01 2c|2c 01 00 4c) isync
++- 3ec: (7d 4b 60 be|be 60 4b 7d) lbepx r10,r11,r12
++- 3f0: (89 4b ff ef|ef ff 4b 89) lbz r10,-17\(r11\)
++- 3f4: (89 4b 00 11|11 00 4b 89) lbz r10,17\(r11\)
++- 3f8: (8d 4b ff ff|ff ff 4b 8d) lbzu r10,-1\(r11\)
++- 3fc: (8d 4b 00 01|01 00 4b 8d) lbzu r10,1\(r11\)
++- 400: (7d 4b 68 ee|ee 68 4b 7d) lbzux r10,r11,r13
++- 404: (7d 4b 68 ae|ae 68 4b 7d) lbzx r10,r11,r13
++- 408: (e9 4b ff f8|f8 ff 4b e9) ld r10,-8\(r11\)
++- 40c: (e9 4b 00 08|08 00 4b e9) ld r10,8\(r11\)
++- 410: (7d 4b 60 a8|a8 60 4b 7d) ldarx r10,r11,r12
++- 414: (7d 4b 60 a9|a9 60 4b 7d) ldarx r10,r11,r12,1
++- 418: (7d 4b 64 28|28 64 4b 7d) ldbrx r10,r11,r12
++- 41c: (7d 4b 60 3a|3a 60 4b 7d) ldepx r10,r11,r12
++- 420: (e9 4b ff f9|f9 ff 4b e9) ldu r10,-8\(r11\)
++- 424: (e9 4b 00 09|09 00 4b e9) ldu r10,8\(r11\)
++- 428: (7d 4b 60 6a|6a 60 4b 7d) ldux r10,r11,r12
++- 42c: (7d 4b 60 2a|2a 60 4b 7d) ldx r10,r11,r12
++- 430: (ca 8a ff f8|f8 ff 8a ca) lfd f20,-8\(r10\)
++- 434: (ca 8a 00 08|08 00 8a ca) lfd f20,8\(r10\)
++- 438: (7e 8a 5c be|be 5c 8a 7e) lfdepx f20,r10,r11
++- 43c: (ce 8a ff f8|f8 ff 8a ce) lfdu f20,-8\(r10\)
++- 440: (ce 8a 00 08|08 00 8a ce) lfdu f20,8\(r10\)
++- 444: (7e 8a 5c ee|ee 5c 8a 7e) lfdux f20,r10,r11
++- 448: (7e 8a 5c ae|ae 5c 8a 7e) lfdx f20,r10,r11
++- 44c: (7e 8a 5e ae|ae 5e 8a 7e) lfiwax f20,r10,r11
++- 450: (7e 8a 5e ee|ee 5e 8a 7e) lfiwzx f20,r10,r11
++- 454: (c2 8a ff fc|fc ff 8a c2) lfs f20,-4\(r10\)
++- 458: (c2 8a 00 04|04 00 8a c2) lfs f20,4\(r10\)
++- 45c: (c6 8a ff fc|fc ff 8a c6) lfsu f20,-4\(r10\)
++- 460: (c6 8a 00 04|04 00 8a c6) lfsu f20,4\(r10\)
++- 464: (7e 8a 5c 6e|6e 5c 8a 7e) lfsux f20,r10,r11
++- 468: (7e 8a 5c 2e|2e 5c 8a 7e) lfsx f20,r10,r11
++- 46c: (a9 4b 00 02|02 00 4b a9) lha r10,2\(r11\)
++- 470: (ad 4b ff fe|fe ff 4b ad) lhau r10,-2\(r11\)
++- 474: (7d 4b 62 ee|ee 62 4b 7d) lhaux r10,r11,r12
++- 478: (7d 4b 62 ae|ae 62 4b 7d) lhax r10,r11,r12
++- 47c: (7d 4b 66 2c|2c 66 4b 7d) lhbrx r10,r11,r12
++- 480: (7d 4b 62 3e|3e 62 4b 7d) lhepx r10,r11,r12
++- 484: (a1 4b ff fe|fe ff 4b a1) lhz r10,-2\(r11\)
++- 488: (a1 4b 00 02|02 00 4b a1) lhz r10,2\(r11\)
++- 48c: (a5 4b ff fe|fe ff 4b a5) lhzu r10,-2\(r11\)
++- 490: (a5 4b 00 02|02 00 4b a5) lhzu r10,2\(r11\)
++- 494: (7d 4b 62 6e|6e 62 4b 7d) lhzux r10,r11,r12
++- 498: (7d 4b 62 2e|2e 62 4b 7d) lhzx r10,r11,r12
++- 49c: (ba 8a 00 10|10 00 8a ba) lmw r20,16\(r10\)
++- 4a0: (7d 4b 0c aa|aa 0c 4b 7d) lswi r10,r11,1
++- 4a4: (7d 8b 04 aa|aa 04 8b 7d) lswi r12,r11,32
++- 4a8: (7d 4b 64 2a|2a 64 4b 7d) lswx r10,r11,r12
++- 4ac: (e9 4b ff fe|fe ff 4b e9) lwa r10,-4\(r11\)
++- 4b0: (e9 4b 00 06|06 00 4b e9) lwa r10,4\(r11\)
++- 4b4: (7d 4b 60 28|28 60 4b 7d) lwarx r10,r11,r12
++- 4b8: (7d 4b 60 29|29 60 4b 7d) lwarx r10,r11,r12,1
++- 4bc: (7d 4b 62 ea|ea 62 4b 7d) lwaux r10,r11,r12
++- 4c0: (7d 4b 62 aa|aa 62 4b 7d) lwax r10,r11,r12
++- 4c4: (7d 4b 64 2c|2c 64 4b 7d) lwbrx r10,r11,r12
++- 4c8: (7d 4b 60 3e|3e 60 4b 7d) lwepx r10,r11,r12
++- 4cc: (81 4b ff fc|fc ff 4b 81) lwz r10,-4\(r11\)
++- 4d0: (81 4b 00 04|04 00 4b 81) lwz r10,4\(r11\)
++- 4d4: (85 4b ff fc|fc ff 4b 85) lwzu r10,-4\(r11\)
++- 4d8: (85 4b 00 04|04 00 4b 85) lwzu r10,4\(r11\)
++- 4dc: (7d 4b 60 6e|6e 60 4b 7d) lwzux r10,r11,r12
++- 4e0: (7d 4b 60 2e|2e 60 4b 7d) lwzx r10,r11,r12
++- 4e4: (7c 00 06 ac|ac 06 00 7c) mbar
++- 4e8: (7c 00 06 ac|ac 06 00 7c) mbar
++- 4ec: (7c 00 06 ac|ac 06 00 7c) mbar
++- 4f0: (7c 20 06 ac|ac 06 20 7c) mbar 1
++- 4f4: (4c 04 00 00|00 00 04 4c) mcrf cr0,cr1
++- 4f8: (fd 90 00 80|80 00 90 fd) mcrfs cr3,cr4
++- 4fc: (7c 00 04 00|00 04 00 7c) mcrxr cr0
++- 500: (7d 80 04 00|00 04 80 7d) mcrxr cr3
++- 504: (7c 60 00 26|26 00 60 7c) mfcr r3
++- 508: (7c 70 20 26|26 20 70 7c) mfocrf r3,2
++- 50c: (7c 70 10 26|26 10 70 7c) mfocrf r3,1
++- 510: (7c 78 00 26|26 00 78 7c) mfocrf r3,128
++- 514: (7d 4a 3a 87|87 3a 4a 7d) mfdcr\. r10,234
++- 518: (7d 4a 3a 86|86 3a 4a 7d) mfdcr r10,234
++- 51c: (7d 4b 02 07|07 02 4b 7d) mfdcrx\. r10,r11
++- 520: (7d 4b 02 06|06 02 4b 7d) mfdcrx r10,r11
++- 524: (fe 80 04 8f|8f 04 80 fe) mffs\. f20
++- 528: (fe 80 04 8e|8e 04 80 fe) mffs f20
++- 52c: (7d 40 00 a6|a6 00 40 7d) mfmsr r10
++- 530: (7c 70 10 26|26 10 70 7c) mfocrf r3,1
++- 534: (7c 78 00 26|26 00 78 7c) mfocrf r3,128
++- 538: (7d 4a 3a a6|a6 3a 4a 7d) mfspr r10,234
++- 53c: (7d 4c 42 a6|a6 42 4c 7d) mftb r10
++- 540: (7d 4d 42 a6|a6 42 4d 7d) mftbu r10
++- 544: (7c 00 51 dc|dc 51 00 7c) msgclr r10
++- 548: (7c 00 51 9c|9c 51 00 7c) msgsnd r10
++- 54c: (7c 60 01 20|20 01 60 7c) mtcrf 0,r3
++- 550: (7c 70 11 20|20 11 70 7c) mtocrf 1,r3
++- 554: (7c 78 01 20|20 01 78 7c) mtocrf 128,r3
++- 558: (7c 6f f1 20|20 f1 6f 7c) mtcr r3
++- 55c: (7d 4a 3b 87|87 3b 4a 7d) mtdcr\. 234,r10
++- 560: (7d 4a 3b 86|86 3b 4a 7d) mtdcr 234,r10
++- 564: (7d 6a 03 07|07 03 6a 7d) mtdcrx\. r10,r11
++- 568: (7d 6a 03 06|06 03 6a 7d) mtdcrx r10,r11
++- 56c: (fc 60 00 8d|8d 00 60 fc) mtfsb0\. 3
++- 570: (fc 60 00 8c|8c 00 60 fc) mtfsb0 3
++- 574: (fc 60 00 4d|4d 00 60 fc) mtfsb1\. 3
++- 578: (fc 60 00 4c|4c 00 60 fc) mtfsb1 3
++- 57c: (fc 0c a5 8f|8f a5 0c fc) mtfsf\. 6,f20
++- 580: (fc 0c a5 8e|8e a5 0c fc) mtfsf 6,f20
++- 584: (fc 0c a5 8f|8f a5 0c fc) mtfsf\. 6,f20
++- 588: (fc 0c a5 8e|8e a5 0c fc) mtfsf 6,f20
++- 58c: (fe 0d a5 8f|8f a5 0d fe) mtfsf\. 6,f20,1,1
++- 590: (fe 0d a5 8e|8e a5 0d fe) mtfsf 6,f20,1,1
++- 594: (ff 00 01 0d|0d 01 00 ff) mtfsfi\. 6,0
++- 598: (ff 00 01 0c|0c 01 00 ff) mtfsfi 6,0
++- 59c: (ff 00 d1 0d|0d d1 00 ff) mtfsfi\. 6,13
++- 5a0: (ff 00 d1 0c|0c d1 00 ff) mtfsfi 6,13
++- 5a4: (ff 01 d1 0d|0d d1 01 ff) mtfsfi\. 6,13,1
++- 5a8: (ff 01 d1 0c|0c d1 01 ff) mtfsfi 6,13,1
++- 5ac: (7d 40 01 24|24 01 40 7d) mtmsr r10
++- 5b0: (7d 40 01 24|24 01 40 7d) mtmsr r10
++- 5b4: (7d 41 01 24|24 01 41 7d) mtmsr r10,1
++- 5b8: (7c 70 11 20|20 11 70 7c) mtocrf 1,r3
++- 5bc: (7c 78 01 20|20 01 78 7c) mtocrf 128,r3
++- 5c0: (7d 4a 3b a6|a6 3b 4a 7d) mtspr 234,r10
++- 5c4: (7e 95 b0 93|93 b0 95 7e) mulhd\. r20,r21,r22
++- 5c8: (7e 95 b0 92|92 b0 95 7e) mulhd r20,r21,r22
++- 5cc: (7e 95 b0 13|13 b0 95 7e) mulhdu\. r20,r21,r22
++- 5d0: (7e 95 b0 12|12 b0 95 7e) mulhdu r20,r21,r22
++- 5d4: (7e 95 b0 97|97 b0 95 7e) mulhw\. r20,r21,r22
++- 5d8: (7e 95 b0 96|96 b0 95 7e) mulhw r20,r21,r22
++- 5dc: (7e 95 b0 17|17 b0 95 7e) mulhwu\. r20,r21,r22
++- 5e0: (7e 95 b0 16|16 b0 95 7e) mulhwu r20,r21,r22
++- 5e4: (7e 95 b1 d3|d3 b1 95 7e) mulld\. r20,r21,r22
++- 5e8: (7e 95 b1 d2|d2 b1 95 7e) mulld r20,r21,r22
++- 5ec: (7e 95 b5 d3|d3 b5 95 7e) mulldo\. r20,r21,r22
++- 5f0: (7e 95 b5 d2|d2 b5 95 7e) mulldo r20,r21,r22
++- 5f4: (1e 95 00 64|64 00 95 1e) mulli r20,r21,100
++- 5f8: (1e 95 ff 9c|9c ff 95 1e) mulli r20,r21,-100
++- 5fc: (7e 95 b1 d7|d7 b1 95 7e) mullw\. r20,r21,r22
++- 600: (7e 95 b1 d6|d6 b1 95 7e) mullw r20,r21,r22
++- 604: (7e 95 b5 d7|d7 b5 95 7e) mullwo\. r20,r21,r22
++- 608: (7e 95 b5 d6|d6 b5 95 7e) mullwo r20,r21,r22
++- 60c: (7e b4 b3 b9|b9 b3 b4 7e) nand\. r20,r21,r22
++- 610: (7e b4 b3 b8|b8 b3 b4 7e) nand r20,r21,r22
++- 614: (7e 95 00 d1|d1 00 95 7e) neg\. r20,r21
++- 618: (7e 95 00 d0|d0 00 95 7e) neg r20,r21
++- 61c: (7e 95 04 d1|d1 04 95 7e) nego\. r20,r21
++- 620: (7e 95 04 d0|d0 04 95 7e) nego r20,r21
++- 624: (7e b4 b0 f9|f9 b0 b4 7e) nor\. r20,r21,r22
++- 628: (7e b4 b0 f8|f8 b0 b4 7e) nor r20,r21,r22
++- 62c: (7e b4 b3 79|79 b3 b4 7e) or\. r20,r21,r22
++- 630: (7e b4 b3 78|78 b3 b4 7e) or r20,r21,r22
++- 634: (7e b4 b3 39|39 b3 b4 7e) orc\. r20,r21,r22
++- 638: (7e b4 b3 38|38 b3 b4 7e) orc r20,r21,r22
++- 63c: (62 b4 10 00|00 10 b4 62) ori r20,r21,4096
++- 640: (66 b4 10 00|00 10 b4 66) oris r20,r21,4096
++- 644: (7d 6a 00 f4|f4 00 6a 7d) popcntb r10,r11
++- 648: (7d 6a 03 f4|f4 03 6a 7d) popcntd r10,r11
++- 64c: (7d 6a 02 f4|f4 02 6a 7d) popcntw r10,r11
++- 650: (7d 6a 01 74|74 01 6a 7d) prtyd r10,r11
++- 654: (7d 6a 01 34|34 01 6a 7d) prtyw r10,r11
++- 658: (4c 00 00 66|66 00 00 4c) rfci
++- 65c: (4c 00 00 cc|cc 00 00 4c) rfgi
++- 660: (4c 00 00 64|64 00 00 4c) rfi
++- 664: (4c 00 00 4c|4c 00 00 4c) rfmci
++- 668: (79 6a 67 f1|f1 67 6a 79) rldcl\. r10,r11,r12,63
++- 66c: (79 6a 67 f0|f0 67 6a 79) rldcl r10,r11,r12,63
++- 670: (79 6a 67 f3|f3 67 6a 79) rldcr\. r10,r11,r12,63
++- 674: (79 6a 67 f2|f2 67 6a 79) rldcr r10,r11,r12,63
++- 678: (79 6a bf e9|e9 bf 6a 79) rldic\. r10,r11,23,63
++- 67c: (79 6a bf e8|e8 bf 6a 79) rldic r10,r11,23,63
++- 680: (79 6a bf e1|e1 bf 6a 79) rldicl\. r10,r11,23,63
++- 684: (79 6a bf e0|e0 bf 6a 79) rldicl r10,r11,23,63
++- 688: (79 6a bf e5|e5 bf 6a 79) rldicr\. r10,r11,23,63
++- 68c: (79 6a bf e4|e4 bf 6a 79) rldicr r10,r11,23,63
++- 690: (79 6a bf ed|ed bf 6a 79) rldimi\. r10,r11,23,63
++- 694: (79 6a bf ec|ec bf 6a 79) rldimi r10,r11,23,63
++- 698: (51 6a b8 3f|3f b8 6a 51) rlwimi\. r10,r11,23,0,31
++- 69c: (51 6a b8 3e|3e b8 6a 51) rlwimi r10,r11,23,0,31
++- 6a0: (55 6a b8 3f|3f b8 6a 55) rotlwi\. r10,r11,23
++- 6a4: (55 6a b8 3e|3e b8 6a 55) rotlwi r10,r11,23
++- 6a8: (5d 6a b8 3f|3f b8 6a 5d) rotlw\. r10,r11,r23
++- 6ac: (5d 6a b8 3e|3e b8 6a 5d) rotlw r10,r11,r23
++- 6b0: (44 00 00 02|02 00 00 44) sc
++- 6b4: (44 00 0c 82|82 0c 00 44) sc 100
++- 6b8: (7d 6a 60 37|37 60 6a 7d) sld\. r10,r11,r12
++- 6bc: (7d 6a 60 36|36 60 6a 7d) sld r10,r11,r12
++- 6c0: (7d 6a 60 31|31 60 6a 7d) slw\. r10,r11,r12
++- 6c4: (7d 6a 60 30|30 60 6a 7d) slw r10,r11,r12
++- 6c8: (7d 6a 66 35|35 66 6a 7d) srad\. r10,r11,r12
++- 6cc: (7d 6a 66 34|34 66 6a 7d) srad r10,r11,r12
++- 6d0: (7d 6a fe 77|77 fe 6a 7d) sradi\. r10,r11,63
++- 6d4: (7d 6a fe 76|76 fe 6a 7d) sradi r10,r11,63
++- 6d8: (7d 6a 66 31|31 66 6a 7d) sraw\. r10,r11,r12
++- 6dc: (7d 6a 66 30|30 66 6a 7d) sraw r10,r11,r12
++- 6e0: (7d 6a fe 71|71 fe 6a 7d) srawi\. r10,r11,31
++- 6e4: (7d 6a fe 70|70 fe 6a 7d) srawi r10,r11,31
++- 6e8: (7d 6a 64 37|37 64 6a 7d) srd\. r10,r11,r12
++- 6ec: (7d 6a 64 36|36 64 6a 7d) srd r10,r11,r12
++- 6f0: (7d 6a 64 31|31 64 6a 7d) srw\. r10,r11,r12
++- 6f4: (7d 6a 64 30|30 64 6a 7d) srw r10,r11,r12
++- 6f8: (99 4b ff ff|ff ff 4b 99) stb r10,-1\(r11\)
++- 6fc: (99 4b 00 01|01 00 4b 99) stb r10,1\(r11\)
++- 700: (7d 4b 61 be|be 61 4b 7d) stbepx r10,r11,r12
++- 704: (9d 4b ff ff|ff ff 4b 9d) stbu r10,-1\(r11\)
++- 708: (9d 4b 00 01|01 00 4b 9d) stbu r10,1\(r11\)
++- 70c: (7d 4b 61 ee|ee 61 4b 7d) stbux r10,r11,r12
++- 710: (7d 4b 61 ae|ae 61 4b 7d) stbx r10,r11,r12
++- 714: (f9 4b ff f8|f8 ff 4b f9) std r10,-8\(r11\)
++- 718: (f9 4b 00 08|08 00 4b f9) std r10,8\(r11\)
++- 71c: (7d 4b 65 28|28 65 4b 7d) stdbrx r10,r11,r12
++- 720: (7d 4b 61 ad|ad 61 4b 7d) stdcx\. r10,r11,r12
++- 724: (7d 4b 61 3a|3a 61 4b 7d) stdepx r10,r11,r12
++- 728: (f9 4b ff f9|f9 ff 4b f9) stdu r10,-8\(r11\)
++- 72c: (f9 4b 00 09|09 00 4b f9) stdu r10,8\(r11\)
++- 730: (7d 4b 61 6a|6a 61 4b 7d) stdux r10,r11,r12
++- 734: (7d 4b 61 2a|2a 61 4b 7d) stdx r10,r11,r12
++- 738: (da 8a ff f8|f8 ff 8a da) stfd f20,-8\(r10\)
++- 73c: (da 8a 00 08|08 00 8a da) stfd f20,8\(r10\)
++- 740: (7e 8a 5d be|be 5d 8a 7e) stfdepx f20,r10,r11
++- 744: (de 8a ff f8|f8 ff 8a de) stfdu f20,-8\(r10\)
++- 748: (de 8a 00 08|08 00 8a de) stfdu f20,8\(r10\)
++- 74c: (7e 8a 5d ee|ee 5d 8a 7e) stfdux f20,r10,r11
++- 750: (7e 8a 5d ae|ae 5d 8a 7e) stfdx f20,r10,r11
++- 754: (7e 8a 5f ae|ae 5f 8a 7e) stfiwx f20,r10,r11
++- 758: (d2 8a ff fc|fc ff 8a d2) stfs f20,-4\(r10\)
++- 75c: (d2 8a 00 04|04 00 8a d2) stfs f20,4\(r10\)
++- 760: (d6 8a ff fc|fc ff 8a d6) stfsu f20,-4\(r10\)
++- 764: (d6 8a 00 04|04 00 8a d6) stfsu f20,4\(r10\)
++- 768: (7e 8a 5d 6e|6e 5d 8a 7e) stfsux f20,r10,r11
++- 76c: (7e 8a 5d 2e|2e 5d 8a 7e) stfsx f20,r10,r11
++- 770: (b1 4b ff fe|fe ff 4b b1) sth r10,-2\(r11\)
++- 774: (b1 4b 00 02|02 00 4b b1) sth r10,2\(r11\)
++- 778: (b1 4b ff fc|fc ff 4b b1) sth r10,-4\(r11\)
++- 77c: (b1 4b 00 04|04 00 4b b1) sth r10,4\(r11\)
++- 780: (7d 4b 67 2c|2c 67 4b 7d) sthbrx r10,r11,r12
++- 784: (7d 4b 63 3e|3e 63 4b 7d) sthepx r10,r11,r12
++- 788: (b5 4b ff fe|fe ff 4b b5) sthu r10,-2\(r11\)
++- 78c: (b5 4b 00 02|02 00 4b b5) sthu r10,2\(r11\)
++- 790: (7d 4b 63 6e|6e 63 4b 7d) sthux r10,r11,r12
++- 794: (7d 4b 63 2e|2e 63 4b 7d) sthx r10,r11,r12
++- 798: (be 8a 00 10|10 00 8a be) stmw r20,16\(r10\)
++- 79c: (7d 4b 0d aa|aa 0d 4b 7d) stswi r10,r11,1
++- 7a0: (7d 4b 05 aa|aa 05 4b 7d) stswi r10,r11,32
++- 7a4: (7d 4b 65 2a|2a 65 4b 7d) stswx r10,r11,r12
++- 7a8: (7d 4b 65 2c|2c 65 4b 7d) stwbrx r10,r11,r12
++- 7ac: (7d 4b 61 2d|2d 61 4b 7d) stwcx\. r10,r11,r12
++- 7b0: (7d 4b 61 3e|3e 61 4b 7d) stwepx r10,r11,r12
++- 7b4: (95 4b ff fc|fc ff 4b 95) stwu r10,-4\(r11\)
++- 7b8: (95 4b 00 04|04 00 4b 95) stwu r10,4\(r11\)
++- 7bc: (7d 4b 61 6e|6e 61 4b 7d) stwux r10,r11,r12
++- 7c0: (7d 4b 61 2e|2e 61 4b 7d) stwx r10,r11,r12
++- 7c4: (7e 95 b0 51|51 b0 95 7e) subf\. r20,r21,r22
++- 7c8: (7e 95 b0 50|50 b0 95 7e) subf r20,r21,r22
++- 7cc: (7e 95 b0 11|11 b0 95 7e) subfc\. r20,r21,r22
++- 7d0: (7e 95 b0 10|10 b0 95 7e) subfc r20,r21,r22
++- 7d4: (7e 95 b4 11|11 b4 95 7e) subfco\. r20,r21,r22
++- 7d8: (7e 95 b4 10|10 b4 95 7e) subfco r20,r21,r22
++- 7dc: (7e 95 b1 11|11 b1 95 7e) subfe\. r20,r21,r22
++- 7e0: (7e 95 b1 10|10 b1 95 7e) subfe r20,r21,r22
++- 7e4: (7e 95 b5 11|11 b5 95 7e) subfeo\. r20,r21,r22
++- 7e8: (7e 95 b5 10|10 b5 95 7e) subfeo r20,r21,r22
++- 7ec: (22 95 00 64|64 00 95 22) subfic r20,r21,100
++- 7f0: (22 95 ff 9c|9c ff 95 22) subfic r20,r21,-100
++- 7f4: (7e 95 01 d1|d1 01 95 7e) subfme\. r20,r21
++- 7f8: (7e 95 01 d0|d0 01 95 7e) subfme r20,r21
++- 7fc: (7e 95 05 d1|d1 05 95 7e) subfmeo\. r20,r21
++- 800: (7e 95 05 d0|d0 05 95 7e) subfmeo r20,r21
++- 804: (7e 95 b4 51|51 b4 95 7e) subfo\. r20,r21,r22
++- 808: (7e 95 b4 50|50 b4 95 7e) subfo r20,r21,r22
++- 80c: (7e 95 01 91|91 01 95 7e) subfze\. r20,r21
++- 810: (7e 95 01 90|90 01 95 7e) subfze r20,r21
++- 814: (7e 95 05 91|91 05 95 7e) subfzeo\. r20,r21
++- 818: (7e 95 05 90|90 05 95 7e) subfzeo r20,r21
++- 81c: (7c 00 04 ac|ac 04 00 7c) hwsync
++- 820: (7c 00 04 ac|ac 04 00 7c) hwsync
++- 824: (7c 00 04 ac|ac 04 00 7c) hwsync
++- 828: (7c 20 04 ac|ac 04 20 7c) lwsync
++- 82c: (7c aa 58 88|88 58 aa 7c) tdlge r10,r11
++- 830: (08 aa 00 64|64 00 aa 08) tdlgei r10,100
++- 834: (08 aa ff 9c|9c ff aa 08) tdlgei r10,-100
++- 838: (7c 6a 58 24|24 58 6a 7c) tlbilxva r10,r11
++- 83c: (7c 0a 5e 24|24 5e 0a 7c) tlbivax r10,r11
++- 840: (7c 00 07 64|64 07 00 7c) tlbre
++- 844: (7d 4b 3f 64|64 3f 4b 7d) tlbre r10,r11,7
++- 848: (7c 0a 5e a5|a5 5e 0a 7c) tlbsrx\. r10,r11
++- 84c: (7d 4b 67 25|25 67 4b 7d) tlbsx\. r10,r11,r12
++- 850: (7d 4b 67 24|24 67 4b 7d) tlbsx r10,r11,r12
++- 854: (7c 00 04 6c|6c 04 00 7c) tlbsync
++- 858: (7c 00 07 a4|a4 07 00 7c) tlbwe
++- 85c: (7d 4b 3f a4|a4 3f 4b 7d) tlbwe r10,r11,7
++- 860: (7c aa 58 08|08 58 aa 7c) twlge r10,r11
++- 864: (0c aa 00 64|64 00 aa 0c) twlgei r10,100
++- 868: (0c aa ff 9c|9c ff aa 0c) twlgei r10,-100
++- 86c: (7c 00 00 7c|7c 00 00 7c) wait
++- 870: (7c 00 00 7c|7c 00 00 7c) wait
++- 874: (7c 20 00 7c|7c 00 20 7c) waitrsv
++- 878: (7c 40 00 7c|7c 00 40 7c) waitimpl
++- 87c: (7c 40 00 7c|7c 00 40 7c) waitimpl
++- 880: (7c 20 00 7c|7c 00 20 7c) waitrsv
++- 884: (7c 00 01 6c|6c 01 00 7c) wchkall
++- 888: (7c 00 01 6c|6c 01 00 7c) wchkall
++- 88c: (7d 80 01 6c|6c 01 80 7d) wchkall cr3
++- 890: (7c 2a 5f 4c|4c 5f 2a 7c) wclr 1,r10,r11
++- 894: (7c 20 07 4c|4c 07 20 7c) wclrall 1
++- 898: (7c 4a 5f 4c|4c 5f 4a 7c) wclrone r10,r11
++- 89c: (7d 40 01 06|06 01 40 7d) wrtee r10
++- 8a0: (7c 00 81 46|46 81 00 7c) wrteei 1
++- 8a4: (7d 6a 62 79|79 62 6a 7d) xor\. r10,r11,r12
++- 8a8: (7d 6a 62 78|78 62 6a 7d) xor r10,r11,r12
++- 8ac: (69 6a 10 00|00 10 6a 69) xori r10,r11,4096
++- 8b0: (6d 6a 10 00|00 10 6a 6d) xoris r10,r11,4096
+++.*: (7c 85 32 15|15 32 85 7c) add\. r4,r5,r6
+++.*: (7c 85 32 14|14 32 85 7c) add r4,r5,r6
+++.*: (7c 85 30 15|15 30 85 7c) addc\. r4,r5,r6
+++.*: (7c 85 30 14|14 30 85 7c) addc r4,r5,r6
+++.*: (7c 85 34 15|15 34 85 7c) addco\. r4,r5,r6
+++.*: (7c 85 34 14|14 34 85 7c) addco r4,r5,r6
+++.*: (7c 85 31 15|15 31 85 7c) adde\. r4,r5,r6
+++.*: (7c 85 31 14|14 31 85 7c) adde r4,r5,r6
+++.*: (7c 85 35 15|15 35 85 7c) addeo\. r4,r5,r6
+++.*: (7c 85 35 14|14 35 85 7c) addeo r4,r5,r6
+++.*: (38 85 00 0d|0d 00 85 38) addi r4,r5,13
+++.*: (38 85 ff f3|f3 ff 85 38) addi r4,r5,-13
+++.*: (34 85 00 0d|0d 00 85 34) addic\. r4,r5,13
+++.*: (34 85 ff f3|f3 ff 85 34) addic\. r4,r5,-13
+++.*: (30 85 00 0d|0d 00 85 30) addic r4,r5,13
+++.*: (30 85 ff f3|f3 ff 85 30) addic r4,r5,-13
+++.*: (3c 85 00 17|17 00 85 3c) addis r4,r5,23
+++.*: (3c 85 ff e9|e9 ff 85 3c) addis r4,r5,-23
+++.*: (7c 85 01 d5|d5 01 85 7c) addme\. r4,r5
+++.*: (7c 85 01 d4|d4 01 85 7c) addme r4,r5
+++.*: (7c 85 05 d5|d5 05 85 7c) addmeo\. r4,r5
+++.*: (7c 85 05 d4|d4 05 85 7c) addmeo r4,r5
+++.*: (7c 85 36 15|15 36 85 7c) addo\. r4,r5,r6
+++.*: (7c 85 36 14|14 36 85 7c) addo r4,r5,r6
+++.*: (7c 85 01 95|95 01 85 7c) addze\. r4,r5
+++.*: (7c 85 01 94|94 01 85 7c) addze r4,r5
+++.*: (7c 85 05 95|95 05 85 7c) addzeo\. r4,r5
+++.*: (7c 85 05 94|94 05 85 7c) addzeo r4,r5
+++.*: (7c a4 30 39|39 30 a4 7c) and\. r4,r5,r6
+++.*: (7c a4 30 38|38 30 a4 7c) and r4,r5,r6
+++.*: (7c a4 30 79|79 30 a4 7c) andc\. r4,r5,r6
+++.*: (7c a4 30 78|78 30 a4 7c) andc r4,r5,r6
+++.*: (70 a4 00 06|06 00 a4 70) andi\. r4,r5,6
+++.*: (74 a4 00 06|06 00 a4 74) andis\. r4,r5,6
+++.*: (00 00 02 00|00 02 00 00) attn
+++.*: (48 00 00 02|02 00 00 48) ba 0 <start>
+++.*: R_PPC(|64)_ADDR24 label_abs
+++.*: (40 8a 00 00|00 00 8a 40) bne cr2,90 <start\+0x90>
+++.*: R_PPC(|64)_REL14 foo
+++.*: (40 ca 00 00|00 00 ca 40) bne- cr2,94 <start\+0x94>
+++.*: R_PPC(|64)_REL14 foo
+++.*: (40 ea 00 00|00 00 ea 40) bne\+ cr2,98 <start\+0x98>
+++.*: R_PPC(|64)_REL14 foo
+++.*: (40 85 00 02|02 00 85 40) blea cr1,0 <start>
+++.*: R_PPC(|64)_ADDR14 foo_abs
+++.*: (40 c5 00 02|02 00 c5 40) blea- cr1,0 <start>
+++.*: R_PPC(|64)_ADDR14 foo_abs
+++.*: (40 e5 00 02|02 00 e5 40) blea\+ cr1,0 <start>
+++.*: R_PPC(|64)_ADDR14 foo_abs
+++.*: (4c 86 0c 20|20 0c 86 4c) bcctr 4,4\*cr1\+eq,1
+++.*: (4c c6 04 20|20 04 c6 4c) bnectr- cr1
+++.*: (4c e6 04 20|20 04 e6 4c) bnectr\+ cr1
+++.*: (4c 86 0c 21|21 0c 86 4c) bcctrl 4,4\*cr1\+eq,1
+++.*: (4c c6 04 21|21 04 c6 4c) bnectrl- cr1
+++.*: (4c e6 04 21|21 04 e6 4c) bnectrl\+ cr1
+++.*: (40 8a 00 01|01 00 8a 40) bnel cr2,c0 <start\+0xc0>
+++.*: R_PPC(|64)_REL14 foo
+++.*: (40 ca 00 01|01 00 ca 40) bnel- cr2,c4 <start\+0xc4>
+++.*: R_PPC(|64)_REL14 foo
+++.*: (40 ea 00 01|01 00 ea 40) bnel\+ cr2,c8 <start\+0xc8>
+++.*: R_PPC(|64)_REL14 foo
+++.*: (40 85 00 03|03 00 85 40) blela cr1,0 <start>
+++.*: R_PPC(|64)_ADDR14 foo_abs
+++.*: (40 c5 00 03|03 00 c5 40) blela- cr1,0 <start>
+++.*: R_PPC(|64)_ADDR14 foo_abs
+++.*: (40 e5 00 03|03 00 e5 40) blela\+ cr1,0 <start>
+++.*: R_PPC(|64)_ADDR14 foo_abs
+++.*: (4c 86 08 20|20 08 86 4c) bclr 4,4\*cr1\+eq,1
+++.*: (4c c6 00 20|20 00 c6 4c) bnelr- cr1
+++.*: (4c e6 00 20|20 00 e6 4c) bnelr\+ cr1
+++.*: (4c 86 08 21|21 08 86 4c) bclrl 4,4\*cr1\+eq,1
+++.*: (4c c6 00 21|21 00 c6 4c) bnelrl- cr1
+++.*: (4c e6 00 21|21 00 e6 4c) bnelrl\+ cr1
+++.*: (48 00 00 00|00 00 00 48) b f0 <start\+0xf0>
+++.*: R_PPC(|64)_REL24 label
+++.*: (48 00 00 03|03 00 00 48) bla 0 <start>
+++.*: R_PPC(|64)_ADDR24 label_abs
+++.*: (48 00 00 01|01 00 00 48) bl f8 <start\+0xf8>
+++.*: R_PPC(|64)_REL24 label
+++.*: (7d 6a 61 f8|f8 61 6a 7d) bpermd r10,r11,r12
+++.*: (7c a7 40 00|00 40 a7 7c) cmpd cr1,r7,r8
+++.*: (7d 6a 63 f8|f8 63 6a 7d) cmpb r10,r11,r12
+++.*: (2c aa 00 0d|0d 00 aa 2c) cmpdi cr1,r10,13
+++.*: (2c aa ff f3|f3 ff aa 2c) cmpdi cr1,r10,-13
+++.*: (7c a7 40 40|40 40 a7 7c) cmpld cr1,r7,r8
+++.*: (28 aa 00 64|64 00 aa 28) cmpldi cr1,r10,100
+++.*: (7e b4 00 75|75 00 b4 7e) cntlzd\. r20,r21
+++.*: (7e b4 00 74|74 00 b4 7e) cntlzd r20,r21
+++.*: (7e b4 00 35|35 00 b4 7e) cntlzw\. r20,r21
+++.*: (7e b4 00 34|34 00 b4 7e) cntlzw r20,r21
+++.*: (4c 22 1a 02|02 1a 22 4c) crand gt,eq,so
+++.*: (4c 22 19 02|02 19 22 4c) crandc gt,eq,so
+++.*: (4c 22 1a 42|42 1a 22 4c) creqv gt,eq,so
+++.*: (4c 22 19 c2|c2 19 22 4c) crnand gt,eq,so
+++.*: (4c 22 18 42|42 18 22 4c) crnor gt,eq,so
+++.*: (4c 22 1b 82|82 1b 22 4c) cror gt,eq,so
+++.*: (4c 22 1b 42|42 1b 22 4c) crorc gt,eq,so
+++.*: (4c 22 19 82|82 19 22 4c) crxor gt,eq,so
+++.*: (7c 0a 5d ec|ec 5d 0a 7c) dcba r10,r11
+++.*: (7c 0a 58 ac|ac 58 0a 7c) dcbf r10,r11
+++.*: (7c 2a 58 ac|ac 58 2a 7c) dcbfl r10,r11
+++.*: (7c 0a 58 fe|fe 58 0a 7c) dcbfep r10,r11
+++.*: (7c 0a 5b ac|ac 5b 0a 7c) dcbi r10,r11
+++.*: (7c 0a 5b 0c|0c 5b 0a 7c) dcblc r10,r11
+++.*: (7c 2a 5b 0c|0c 5b 2a 7c) dcblc 1,r10,r11
+++.*: (7c 0a 58 6c|6c 58 0a 7c) dcbst r10,r11
+++.*: (7c 0a 58 7e|7e 58 0a 7c) dcbstep r10,r11
+++.*: (7c 0a 5a 2c|2c 5a 0a 7c) dcbt r10,r11
+++.*: (7c 2a 5a 2c|2c 5a 2a 7c) dcbt 1,r10,r11
+++.*: (7d 4b 62 7e|7e 62 4b 7d) dcbtep r10,r11,r12
+++.*: (7c 0a 59 4c|4c 59 0a 7c) dcbtls r10,r11
+++.*: (7c 2a 59 4c|4c 59 2a 7c) dcbtls 1,r10,r11
+++.*: (7c 0a 59 ec|ec 59 0a 7c) dcbtst r10,r11
+++.*: (7c 2a 59 ec|ec 59 2a 7c) dcbtst 1,r10,r11
+++.*: (7d 4b 61 fe|fe 61 4b 7d) dcbtstep r10,r11,r12
+++.*: (7c 0a 59 0c|0c 59 0a 7c) dcbtstls r10,r11
+++.*: (7c 2a 59 0c|0c 59 2a 7c) dcbtstls 1,r10,r11
+++.*: (7c 0a 5f ec|ec 5f 0a 7c) dcbz r10,r11
+++.*: (7c 0a 5f fe|fe 5f 0a 7c) dcbzep r10,r11
+++.*: (7c 00 03 8c|8c 03 00 7c) dccci
+++.*: (7c 00 03 8c|8c 03 00 7c) dccci
+++.*: (7c 00 03 8c|8c 03 00 7c) dccci
+++.*: (7d 40 03 8c|8c 03 40 7d) dci 10
+++.*: (7e 95 b3 d3|d3 b3 95 7e) divd\. r20,r21,r22
+++.*: (7e 95 b3 d2|d2 b3 95 7e) divd r20,r21,r22
+++.*: (7e 95 b7 d3|d3 b7 95 7e) divdo\. r20,r21,r22
+++.*: (7e 95 b7 d2|d2 b7 95 7e) divdo r20,r21,r22
+++.*: (7e 95 b3 93|93 b3 95 7e) divdu\. r20,r21,r22
+++.*: (7e 95 b3 92|92 b3 95 7e) divdu r20,r21,r22
+++.*: (7e 95 b7 93|93 b7 95 7e) divduo\. r20,r21,r22
+++.*: (7e 95 b7 92|92 b7 95 7e) divduo r20,r21,r22
+++.*: (7e 95 b3 d7|d7 b3 95 7e) divw\. r20,r21,r22
+++.*: (7e 95 b3 d6|d6 b3 95 7e) divw r20,r21,r22
+++.*: (7e 95 b7 d7|d7 b7 95 7e) divwo\. r20,r21,r22
+++.*: (7e 95 b7 d6|d6 b7 95 7e) divwo r20,r21,r22
+++.*: (7e 95 b3 97|97 b3 95 7e) divwu\. r20,r21,r22
+++.*: (7e 95 b3 96|96 b3 95 7e) divwu r20,r21,r22
+++.*: (7e 95 b7 97|97 b7 95 7e) divwuo\. r20,r21,r22
+++.*: (7e 95 b7 96|96 b7 95 7e) divwuo r20,r21,r22
+++.*: (7e b4 b2 39|39 b2 b4 7e) eqv\. r20,r21,r22
+++.*: (7e b4 b2 38|38 b2 b4 7e) eqv r20,r21,r22
+++.*: (7c 0a 58 66|66 58 0a 7c) eratilx 0,r10,r11
+++.*: (7c 2a 58 66|66 58 2a 7c) eratilx 1,r10,r11
+++.*: (7c ea 58 66|66 58 ea 7c) eratilx 7,r10,r11
+++.*: (7d 4b 66 66|66 66 4b 7d) erativax r10,r11,r12
+++.*: (7d 4b 01 66|66 01 4b 7d) eratre r10,r11,0
+++.*: (7d 4b 19 66|66 19 4b 7d) eratre r10,r11,3
+++.*: (7d 4b 61 27|27 61 4b 7d) eratsx\. r10,r11,r12
+++.*: (7d 4b 61 26|26 61 4b 7d) eratsx r10,r11,r12
+++.*: (7d 4b 01 a6|a6 01 4b 7d) eratwe r10,r11,0
+++.*: (7d 4b 19 a6|a6 19 4b 7d) eratwe r10,r11,3
+++.*: (7d 6a 07 75|75 07 6a 7d) extsb\. r10,r11
+++.*: (7d 6a 07 74|74 07 6a 7d) extsb r10,r11
+++.*: (7d 6a 07 35|35 07 6a 7d) extsh\. r10,r11
+++.*: (7d 6a 07 34|34 07 6a 7d) extsh r10,r11
+++.*: (7d 6a 07 b5|b5 07 6a 7d) extsw\. r10,r11
+++.*: (7d 6a 07 b4|b4 07 6a 7d) extsw r10,r11
+++.*: (fe 80 aa 11|11 aa 80 fe) fabs\. f20,f21
+++.*: (fe 80 aa 10|10 aa 80 fe) fabs f20,f21
+++.*: (fe 95 b0 2b|2b b0 95 fe) fadd\. f20,f21,f22
+++.*: (fe 95 b0 2a|2a b0 95 fe) fadd f20,f21,f22
+++.*: (ee 95 b0 2b|2b b0 95 ee) fadds\. f20,f21,f22
+++.*: (ee 95 b0 2a|2a b0 95 ee) fadds f20,f21,f22
+++.*: (fe 80 ae 9d|9d ae 80 fe) fcfid\. f20,f21
+++.*: (fe 80 ae 9c|9c ae 80 fe) fcfid f20,f21
+++.*: (fc 14 a8 40|40 a8 14 fc) fcmpo cr0,f20,f21
+++.*: (fc 94 a8 40|40 a8 94 fc) fcmpo cr1,f20,f21
+++.*: (fc 14 a8 00|00 a8 14 fc) fcmpu cr0,f20,f21
+++.*: (fc 94 a8 00|00 a8 94 fc) fcmpu cr1,f20,f21
+++.*: (fe 95 b0 11|11 b0 95 fe) fcpsgn\. f20,f21,f22
+++.*: (fe 95 b0 10|10 b0 95 fe) fcpsgn f20,f21,f22
+++.*: (fe 80 ae 5d|5d ae 80 fe) fctid\. f20,f21
+++.*: (fe 80 ae 5c|5c ae 80 fe) fctid f20,f21
+++.*: (fe 80 ae 5f|5f ae 80 fe) fctidz\. f20,f21
+++.*: (fe 80 ae 5e|5e ae 80 fe) fctidz f20,f21
+++.*: (fe 80 a8 1d|1d a8 80 fe) fctiw\. f20,f21
+++.*: (fe 80 a8 1c|1c a8 80 fe) fctiw f20,f21
+++.*: (fe 80 a8 1f|1f a8 80 fe) fctiwz\. f20,f21
+++.*: (fe 80 a8 1e|1e a8 80 fe) fctiwz f20,f21
+++.*: (fe 95 b0 25|25 b0 95 fe) fdiv\. f20,f21,f22
+++.*: (fe 95 b0 24|24 b0 95 fe) fdiv f20,f21,f22
+++.*: (ee 95 b0 25|25 b0 95 ee) fdivs\. f20,f21,f22
+++.*: (ee 95 b0 24|24 b0 95 ee) fdivs f20,f21,f22
+++.*: (fe 95 bd bb|bb bd 95 fe) fmadd\. f20,f21,f22,f23
+++.*: (fe 95 bd ba|ba bd 95 fe) fmadd f20,f21,f22,f23
+++.*: (ee 95 bd bb|bb bd 95 ee) fmadds\. f20,f21,f22,f23
+++.*: (ee 95 bd ba|ba bd 95 ee) fmadds f20,f21,f22,f23
+++.*: (fe 80 a8 91|91 a8 80 fe) fmr\. f20,f21
+++.*: (fe 80 a8 90|90 a8 80 fe) fmr f20,f21
+++.*: (fe 95 bd b9|b9 bd 95 fe) fmsub\. f20,f21,f22,f23
+++.*: (fe 95 bd b8|b8 bd 95 fe) fmsub f20,f21,f22,f23
+++.*: (ee 95 bd b9|b9 bd 95 ee) fmsubs\. f20,f21,f22,f23
+++.*: (ee 95 bd b8|b8 bd 95 ee) fmsubs f20,f21,f22,f23
+++.*: (fe 95 05 b3|b3 05 95 fe) fmul\. f20,f21,f22
+++.*: (fe 95 05 b2|b2 05 95 fe) fmul f20,f21,f22
+++.*: (ee 95 05 b3|b3 05 95 ee) fmuls\. f20,f21,f22
+++.*: (ee 95 05 b2|b2 05 95 ee) fmuls f20,f21,f22
+++.*: (fe 80 a9 11|11 a9 80 fe) fnabs\. f20,f21
+++.*: (fe 80 a9 10|10 a9 80 fe) fnabs f20,f21
+++.*: (fe 80 a8 51|51 a8 80 fe) fneg\. f20,f21
+++.*: (fe 80 a8 50|50 a8 80 fe) fneg f20,f21
+++.*: (fe 95 bd bf|bf bd 95 fe) fnmadd\. f20,f21,f22,f23
+++.*: (fe 95 bd be|be bd 95 fe) fnmadd f20,f21,f22,f23
+++.*: (ee 95 bd bf|bf bd 95 ee) fnmadds\. f20,f21,f22,f23
+++.*: (ee 95 bd be|be bd 95 ee) fnmadds f20,f21,f22,f23
+++.*: (fe 95 bd bd|bd bd 95 fe) fnmsub\. f20,f21,f22,f23
+++.*: (fe 95 bd bc|bc bd 95 fe) fnmsub f20,f21,f22,f23
+++.*: (ee 95 bd bd|bd bd 95 ee) fnmsubs\. f20,f21,f22,f23
+++.*: (ee 95 bd bc|bc bd 95 ee) fnmsubs f20,f21,f22,f23
+++.*: (fe 80 a8 31|31 a8 80 fe) fre\. f20,f21
+++.*: (fe 80 a8 30|30 a8 80 fe) fre f20,f21
+++.*: (fe 80 a8 31|31 a8 80 fe) fre\. f20,f21
+++.*: (fe 80 a8 30|30 a8 80 fe) fre f20,f21
+++.*: (fe 81 a8 31|31 a8 81 fe) fre\. f20,f21,1
+++.*: (fe 81 a8 30|30 a8 81 fe) fre f20,f21,1
+++.*: (ee 80 a8 31|31 a8 80 ee) fres\. f20,f21
+++.*: (ee 80 a8 30|30 a8 80 ee) fres f20,f21
+++.*: (ee 80 a8 31|31 a8 80 ee) fres\. f20,f21
+++.*: (ee 80 a8 30|30 a8 80 ee) fres f20,f21
+++.*: (ee 81 a8 31|31 a8 81 ee) fres\. f20,f21,1
+++.*: (ee 81 a8 30|30 a8 81 ee) fres f20,f21,1
+++.*: (fe 80 ab d1|d1 ab 80 fe) frim\. f20,f21
+++.*: (fe 80 ab d0|d0 ab 80 fe) frim f20,f21
+++.*: (fe 80 ab 11|11 ab 80 fe) frin\. f20,f21
+++.*: (fe 80 ab 10|10 ab 80 fe) frin f20,f21
+++.*: (fe 80 ab 91|91 ab 80 fe) frip\. f20,f21
+++.*: (fe 80 ab 90|90 ab 80 fe) frip f20,f21
+++.*: (fe 80 ab 51|51 ab 80 fe) friz\. f20,f21
+++.*: (fe 80 ab 50|50 ab 80 fe) friz f20,f21
+++.*: (fe 80 a8 19|19 a8 80 fe) frsp\. f20,f21
+++.*: (fe 80 a8 18|18 a8 80 fe) frsp f20,f21
+++.*: (fe 80 a8 35|35 a8 80 fe) frsqrte\. f20,f21
+++.*: (fe 80 a8 34|34 a8 80 fe) frsqrte f20,f21
+++.*: (fe 80 a8 35|35 a8 80 fe) frsqrte\. f20,f21
+++.*: (fe 80 a8 34|34 a8 80 fe) frsqrte f20,f21
+++.*: (fe 81 a8 35|35 a8 81 fe) frsqrte\. f20,f21,1
+++.*: (fe 81 a8 34|34 a8 81 fe) frsqrte f20,f21,1
+++.*: (ee 80 a8 34|34 a8 80 ee) frsqrtes f20,f21
+++.*: (ee 80 a8 35|35 a8 80 ee) frsqrtes\. f20,f21
+++.*: (ee 80 a8 34|34 a8 80 ee) frsqrtes f20,f21
+++.*: (ee 80 a8 35|35 a8 80 ee) frsqrtes\. f20,f21
+++.*: (ee 81 a8 34|34 a8 81 ee) frsqrtes f20,f21,1
+++.*: (ee 81 a8 35|35 a8 81 ee) frsqrtes\. f20,f21,1
+++.*: (fe 95 bd af|af bd 95 fe) fsel\. f20,f21,f22,f23
+++.*: (fe 95 bd ae|ae bd 95 fe) fsel f20,f21,f22,f23
+++.*: (fe 80 a8 2d|2d a8 80 fe) fsqrt\. f20,f21
+++.*: (fe 80 a8 2c|2c a8 80 fe) fsqrt f20,f21
+++.*: (ee 80 a8 2d|2d a8 80 ee) fsqrts\. f20,f21
+++.*: (ee 80 a8 2c|2c a8 80 ee) fsqrts f20,f21
+++.*: (fe 95 b0 29|29 b0 95 fe) fsub\. f20,f21,f22
+++.*: (fe 95 b0 28|28 b0 95 fe) fsub f20,f21,f22
+++.*: (ee 95 b0 29|29 b0 95 ee) fsubs\. f20,f21,f22
+++.*: (ee 95 b0 28|28 b0 95 ee) fsubs f20,f21,f22
+++.*: (7c 0a 5f ac|ac 5f 0a 7c) icbi r10,r11
+++.*: (7c 0a 5f be|be 5f 0a 7c) icbiep r10,r11
+++.*: (7c 0a 58 2c|2c 58 0a 7c) icbt r10,r11
+++.*: (7c ea 58 2c|2c 58 ea 7c) icbt 7,r10,r11
+++.*: (7c 0a 5b cc|cc 5b 0a 7c) icbtls r10,r11
+++.*: (7c ea 5b cc|cc 5b ea 7c) icbtls 7,r10,r11
+++.*: (7c 00 07 8c|8c 07 00 7c) iccci
+++.*: (7c 00 07 8c|8c 07 00 7c) iccci
+++.*: (7c 00 07 8c|8c 07 00 7c) iccci
+++.*: (7d 40 07 8c|8c 07 40 7d) ici 10
+++.*: (7d 4b 63 2d|2d 63 4b 7d) icswx\. r10,r11,r12
+++.*: (7d 4b 63 2c|2c 63 4b 7d) icswx r10,r11,r12
+++.*: (7d 4b 65 de|de 65 4b 7d) isel r10,r11,r12,23
+++.*: (4c 00 01 2c|2c 01 00 4c) isync
+++.*: (7d 4b 60 be|be 60 4b 7d) lbepx r10,r11,r12
+++.*: (89 4b ff ef|ef ff 4b 89) lbz r10,-17\(r11\)
+++.*: (89 4b 00 11|11 00 4b 89) lbz r10,17\(r11\)
+++.*: (8d 4b ff ff|ff ff 4b 8d) lbzu r10,-1\(r11\)
+++.*: (8d 4b 00 01|01 00 4b 8d) lbzu r10,1\(r11\)
+++.*: (7d 4b 68 ee|ee 68 4b 7d) lbzux r10,r11,r13
+++.*: (7d 4b 68 ae|ae 68 4b 7d) lbzx r10,r11,r13
+++.*: (e9 4b ff f8|f8 ff 4b e9) ld r10,-8\(r11\)
+++.*: (e9 4b 00 08|08 00 4b e9) ld r10,8\(r11\)
+++.*: (7d 4b 60 a8|a8 60 4b 7d) ldarx r10,r11,r12
+++.*: (7d 4b 60 a9|a9 60 4b 7d) ldarx r10,r11,r12,1
+++.*: (7d 4b 64 28|28 64 4b 7d) ldbrx r10,r11,r12
+++.*: (7d 4b 60 3a|3a 60 4b 7d) ldepx r10,r11,r12
+++.*: (e9 4b ff f9|f9 ff 4b e9) ldu r10,-8\(r11\)
+++.*: (e9 4b 00 09|09 00 4b e9) ldu r10,8\(r11\)
+++.*: (7d 4b 60 6a|6a 60 4b 7d) ldux r10,r11,r12
+++.*: (7d 4b 60 2a|2a 60 4b 7d) ldx r10,r11,r12
+++.*: (ca 8a ff f8|f8 ff 8a ca) lfd f20,-8\(r10\)
+++.*: (ca 8a 00 08|08 00 8a ca) lfd f20,8\(r10\)
+++.*: (7e 8a 5c be|be 5c 8a 7e) lfdepx f20,r10,r11
+++.*: (ce 8a ff f8|f8 ff 8a ce) lfdu f20,-8\(r10\)
+++.*: (ce 8a 00 08|08 00 8a ce) lfdu f20,8\(r10\)
+++.*: (7e 8a 5c ee|ee 5c 8a 7e) lfdux f20,r10,r11
+++.*: (7e 8a 5c ae|ae 5c 8a 7e) lfdx f20,r10,r11
+++.*: (7e 8a 5e ae|ae 5e 8a 7e) lfiwax f20,r10,r11
+++.*: (7e 8a 5e ee|ee 5e 8a 7e) lfiwzx f20,r10,r11
+++.*: (c2 8a ff fc|fc ff 8a c2) lfs f20,-4\(r10\)
+++.*: (c2 8a 00 04|04 00 8a c2) lfs f20,4\(r10\)
+++.*: (c6 8a ff fc|fc ff 8a c6) lfsu f20,-4\(r10\)
+++.*: (c6 8a 00 04|04 00 8a c6) lfsu f20,4\(r10\)
+++.*: (7e 8a 5c 6e|6e 5c 8a 7e) lfsux f20,r10,r11
+++.*: (7e 8a 5c 2e|2e 5c 8a 7e) lfsx f20,r10,r11
+++.*: (a9 4b 00 02|02 00 4b a9) lha r10,2\(r11\)
+++.*: (ad 4b ff fe|fe ff 4b ad) lhau r10,-2\(r11\)
+++.*: (7d 4b 62 ee|ee 62 4b 7d) lhaux r10,r11,r12
+++.*: (7d 4b 62 ae|ae 62 4b 7d) lhax r10,r11,r12
+++.*: (7d 4b 66 2c|2c 66 4b 7d) lhbrx r10,r11,r12
+++.*: (7d 4b 62 3e|3e 62 4b 7d) lhepx r10,r11,r12
+++.*: (a1 4b ff fe|fe ff 4b a1) lhz r10,-2\(r11\)
+++.*: (a1 4b 00 02|02 00 4b a1) lhz r10,2\(r11\)
+++.*: (a5 4b ff fe|fe ff 4b a5) lhzu r10,-2\(r11\)
+++.*: (a5 4b 00 02|02 00 4b a5) lhzu r10,2\(r11\)
+++.*: (7d 4b 62 6e|6e 62 4b 7d) lhzux r10,r11,r12
+++.*: (7d 4b 62 2e|2e 62 4b 7d) lhzx r10,r11,r12
+++.*: (e9 4b ff fe|fe ff 4b e9) lwa r10,-4\(r11\)
+++.*: (e9 4b 00 06|06 00 4b e9) lwa r10,4\(r11\)
+++.*: (7d 4b 60 28|28 60 4b 7d) lwarx r10,r11,r12
+++.*: (7d 4b 60 29|29 60 4b 7d) lwarx r10,r11,r12,1
+++.*: (7d 4b 62 ea|ea 62 4b 7d) lwaux r10,r11,r12
+++.*: (7d 4b 62 aa|aa 62 4b 7d) lwax r10,r11,r12
+++.*: (7d 4b 64 2c|2c 64 4b 7d) lwbrx r10,r11,r12
+++.*: (7d 4b 60 3e|3e 60 4b 7d) lwepx r10,r11,r12
+++.*: (81 4b ff fc|fc ff 4b 81) lwz r10,-4\(r11\)
+++.*: (81 4b 00 04|04 00 4b 81) lwz r10,4\(r11\)
+++.*: (85 4b ff fc|fc ff 4b 85) lwzu r10,-4\(r11\)
+++.*: (85 4b 00 04|04 00 4b 85) lwzu r10,4\(r11\)
+++.*: (7d 4b 60 6e|6e 60 4b 7d) lwzux r10,r11,r12
+++.*: (7d 4b 60 2e|2e 60 4b 7d) lwzx r10,r11,r12
+++.*: (7c 00 06 ac|ac 06 00 7c) mbar
+++.*: (7c 00 06 ac|ac 06 00 7c) mbar
+++.*: (7c 00 06 ac|ac 06 00 7c) mbar
+++.*: (7c 20 06 ac|ac 06 20 7c) mbar 1
+++.*: (4c 04 00 00|00 00 04 4c) mcrf cr0,cr1
+++.*: (fd 90 00 80|80 00 90 fd) mcrfs cr3,cr4
+++.*: (7c 00 04 00|00 04 00 7c) mcrxr cr0
+++.*: (7d 80 04 00|00 04 80 7d) mcrxr cr3
+++.*: (7c 60 00 26|26 00 60 7c) mfcr r3
+++.*: (7c 70 20 26|26 20 70 7c) mfocrf r3,2
+++.*: (7c 70 10 26|26 10 70 7c) mfocrf r3,1
+++.*: (7c 78 00 26|26 00 78 7c) mfocrf r3,128
+++.*: (7d 4a 3a 87|87 3a 4a 7d) mfdcr\. r10,234
+++.*: (7d 4a 3a 86|86 3a 4a 7d) mfdcr r10,234
+++.*: (7d 4b 02 07|07 02 4b 7d) mfdcrx\. r10,r11
+++.*: (7d 4b 02 06|06 02 4b 7d) mfdcrx r10,r11
+++.*: (fe 80 04 8f|8f 04 80 fe) mffs\. f20
+++.*: (fe 80 04 8e|8e 04 80 fe) mffs f20
+++.*: (7d 40 00 a6|a6 00 40 7d) mfmsr r10
+++.*: (7c 70 10 26|26 10 70 7c) mfocrf r3,1
+++.*: (7c 78 00 26|26 00 78 7c) mfocrf r3,128
+++.*: (7d 4a 3a a6|a6 3a 4a 7d) mfspr r10,234
+++.*: (7d 4c 42 a6|a6 42 4c 7d) mftb r10
+++.*: (7d 4d 42 a6|a6 42 4d 7d) mftbu r10
+++.*: (7c 00 51 dc|dc 51 00 7c) msgclr r10
+++.*: (7c 00 51 9c|9c 51 00 7c) msgsnd r10
+++.*: (7c 60 01 20|20 01 60 7c) mtcrf 0,r3
+++.*: (7c 70 11 20|20 11 70 7c) mtocrf 1,r3
+++.*: (7c 78 01 20|20 01 78 7c) mtocrf 128,r3
+++.*: (7c 6f f1 20|20 f1 6f 7c) mtcr r3
+++.*: (7d 4a 3b 87|87 3b 4a 7d) mtdcr\. 234,r10
+++.*: (7d 4a 3b 86|86 3b 4a 7d) mtdcr 234,r10
+++.*: (7d 6a 03 07|07 03 6a 7d) mtdcrx\. r10,r11
+++.*: (7d 6a 03 06|06 03 6a 7d) mtdcrx r10,r11
+++.*: (fc 60 00 8d|8d 00 60 fc) mtfsb0\. 3
+++.*: (fc 60 00 8c|8c 00 60 fc) mtfsb0 3
+++.*: (fc 60 00 4d|4d 00 60 fc) mtfsb1\. 3
+++.*: (fc 60 00 4c|4c 00 60 fc) mtfsb1 3
+++.*: (fc 0c a5 8f|8f a5 0c fc) mtfsf\. 6,f20
+++.*: (fc 0c a5 8e|8e a5 0c fc) mtfsf 6,f20
+++.*: (fc 0c a5 8f|8f a5 0c fc) mtfsf\. 6,f20
+++.*: (fc 0c a5 8e|8e a5 0c fc) mtfsf 6,f20
+++.*: (fe 0d a5 8f|8f a5 0d fe) mtfsf\. 6,f20,1,1
+++.*: (fe 0d a5 8e|8e a5 0d fe) mtfsf 6,f20,1,1
+++.*: (ff 00 01 0d|0d 01 00 ff) mtfsfi\. 6,0
+++.*: (ff 00 01 0c|0c 01 00 ff) mtfsfi 6,0
+++.*: (ff 00 d1 0d|0d d1 00 ff) mtfsfi\. 6,13
+++.*: (ff 00 d1 0c|0c d1 00 ff) mtfsfi 6,13
+++.*: (ff 01 d1 0d|0d d1 01 ff) mtfsfi\. 6,13,1
+++.*: (ff 01 d1 0c|0c d1 01 ff) mtfsfi 6,13,1
+++.*: (7d 40 01 24|24 01 40 7d) mtmsr r10
+++.*: (7d 40 01 24|24 01 40 7d) mtmsr r10
+++.*: (7d 41 01 24|24 01 41 7d) mtmsr r10,1
+++.*: (7c 70 11 20|20 11 70 7c) mtocrf 1,r3
+++.*: (7c 78 01 20|20 01 78 7c) mtocrf 128,r3
+++.*: (7d 4a 3b a6|a6 3b 4a 7d) mtspr 234,r10
+++.*: (7e 95 b0 93|93 b0 95 7e) mulhd\. r20,r21,r22
+++.*: (7e 95 b0 92|92 b0 95 7e) mulhd r20,r21,r22
+++.*: (7e 95 b0 13|13 b0 95 7e) mulhdu\. r20,r21,r22
+++.*: (7e 95 b0 12|12 b0 95 7e) mulhdu r20,r21,r22
+++.*: (7e 95 b0 97|97 b0 95 7e) mulhw\. r20,r21,r22
+++.*: (7e 95 b0 96|96 b0 95 7e) mulhw r20,r21,r22
+++.*: (7e 95 b0 17|17 b0 95 7e) mulhwu\. r20,r21,r22
+++.*: (7e 95 b0 16|16 b0 95 7e) mulhwu r20,r21,r22
+++.*: (7e 95 b1 d3|d3 b1 95 7e) mulld\. r20,r21,r22
+++.*: (7e 95 b1 d2|d2 b1 95 7e) mulld r20,r21,r22
+++.*: (7e 95 b5 d3|d3 b5 95 7e) mulldo\. r20,r21,r22
+++.*: (7e 95 b5 d2|d2 b5 95 7e) mulldo r20,r21,r22
+++.*: (1e 95 00 64|64 00 95 1e) mulli r20,r21,100
+++.*: (1e 95 ff 9c|9c ff 95 1e) mulli r20,r21,-100
+++.*: (7e 95 b1 d7|d7 b1 95 7e) mullw\. r20,r21,r22
+++.*: (7e 95 b1 d6|d6 b1 95 7e) mullw r20,r21,r22
+++.*: (7e 95 b5 d7|d7 b5 95 7e) mullwo\. r20,r21,r22
+++.*: (7e 95 b5 d6|d6 b5 95 7e) mullwo r20,r21,r22
+++.*: (7e b4 b3 b9|b9 b3 b4 7e) nand\. r20,r21,r22
+++.*: (7e b4 b3 b8|b8 b3 b4 7e) nand r20,r21,r22
+++.*: (7e 95 00 d1|d1 00 95 7e) neg\. r20,r21
+++.*: (7e 95 00 d0|d0 00 95 7e) neg r20,r21
+++.*: (7e 95 04 d1|d1 04 95 7e) nego\. r20,r21
+++.*: (7e 95 04 d0|d0 04 95 7e) nego r20,r21
+++.*: (7e b4 b0 f9|f9 b0 b4 7e) nor\. r20,r21,r22
+++.*: (7e b4 b0 f8|f8 b0 b4 7e) nor r20,r21,r22
+++.*: (7e b4 b3 79|79 b3 b4 7e) or\. r20,r21,r22
+++.*: (7e b4 b3 78|78 b3 b4 7e) or r20,r21,r22
+++.*: (7e b4 b3 39|39 b3 b4 7e) orc\. r20,r21,r22
+++.*: (7e b4 b3 38|38 b3 b4 7e) orc r20,r21,r22
+++.*: (62 b4 10 00|00 10 b4 62) ori r20,r21,4096
+++.*: (66 b4 10 00|00 10 b4 66) oris r20,r21,4096
+++.*: (7d 6a 00 f4|f4 00 6a 7d) popcntb r10,r11
+++.*: (7d 6a 03 f4|f4 03 6a 7d) popcntd r10,r11
+++.*: (7d 6a 02 f4|f4 02 6a 7d) popcntw r10,r11
+++.*: (7d 6a 01 74|74 01 6a 7d) prtyd r10,r11
+++.*: (7d 6a 01 34|34 01 6a 7d) prtyw r10,r11
+++.*: (4c 00 00 66|66 00 00 4c) rfci
+++.*: (4c 00 00 cc|cc 00 00 4c) rfgi
+++.*: (4c 00 00 64|64 00 00 4c) rfi
+++.*: (4c 00 00 4c|4c 00 00 4c) rfmci
+++.*: (79 6a 67 f1|f1 67 6a 79) rldcl\. r10,r11,r12,63
+++.*: (79 6a 67 f0|f0 67 6a 79) rldcl r10,r11,r12,63
+++.*: (79 6a 67 f3|f3 67 6a 79) rldcr\. r10,r11,r12,63
+++.*: (79 6a 67 f2|f2 67 6a 79) rldcr r10,r11,r12,63
+++.*: (79 6a bf e9|e9 bf 6a 79) rldic\. r10,r11,23,63
+++.*: (79 6a bf e8|e8 bf 6a 79) rldic r10,r11,23,63
+++.*: (79 6a bf e1|e1 bf 6a 79) rldicl\. r10,r11,23,63
+++.*: (79 6a bf e0|e0 bf 6a 79) rldicl r10,r11,23,63
+++.*: (79 6a bf e5|e5 bf 6a 79) rldicr\. r10,r11,23,63
+++.*: (79 6a bf e4|e4 bf 6a 79) rldicr r10,r11,23,63
+++.*: (79 6a bf ed|ed bf 6a 79) rldimi\. r10,r11,23,63
+++.*: (79 6a bf ec|ec bf 6a 79) rldimi r10,r11,23,63
+++.*: (51 6a b8 3f|3f b8 6a 51) rlwimi\. r10,r11,23,0,31
+++.*: (51 6a b8 3e|3e b8 6a 51) rlwimi r10,r11,23,0,31
+++.*: (55 6a b8 3f|3f b8 6a 55) rotlwi\. r10,r11,23
+++.*: (55 6a b8 3e|3e b8 6a 55) rotlwi r10,r11,23
+++.*: (5d 6a b8 3f|3f b8 6a 5d) rotlw\. r10,r11,r23
+++.*: (5d 6a b8 3e|3e b8 6a 5d) rotlw r10,r11,r23
+++.*: (44 00 00 02|02 00 00 44) sc
+++.*: (44 00 0c 82|82 0c 00 44) sc 100
+++.*: (7d 6a 60 37|37 60 6a 7d) sld\. r10,r11,r12
+++.*: (7d 6a 60 36|36 60 6a 7d) sld r10,r11,r12
+++.*: (7d 6a 60 31|31 60 6a 7d) slw\. r10,r11,r12
+++.*: (7d 6a 60 30|30 60 6a 7d) slw r10,r11,r12
+++.*: (7d 6a 66 35|35 66 6a 7d) srad\. r10,r11,r12
+++.*: (7d 6a 66 34|34 66 6a 7d) srad r10,r11,r12
+++.*: (7d 6a fe 77|77 fe 6a 7d) sradi\. r10,r11,63
+++.*: (7d 6a fe 76|76 fe 6a 7d) sradi r10,r11,63
+++.*: (7d 6a 66 31|31 66 6a 7d) sraw\. r10,r11,r12
+++.*: (7d 6a 66 30|30 66 6a 7d) sraw r10,r11,r12
+++.*: (7d 6a fe 71|71 fe 6a 7d) srawi\. r10,r11,31
+++.*: (7d 6a fe 70|70 fe 6a 7d) srawi r10,r11,31
+++.*: (7d 6a 64 37|37 64 6a 7d) srd\. r10,r11,r12
+++.*: (7d 6a 64 36|36 64 6a 7d) srd r10,r11,r12
+++.*: (7d 6a 64 31|31 64 6a 7d) srw\. r10,r11,r12
+++.*: (7d 6a 64 30|30 64 6a 7d) srw r10,r11,r12
+++.*: (99 4b ff ff|ff ff 4b 99) stb r10,-1\(r11\)
+++.*: (99 4b 00 01|01 00 4b 99) stb r10,1\(r11\)
+++.*: (7d 4b 61 be|be 61 4b 7d) stbepx r10,r11,r12
+++.*: (9d 4b ff ff|ff ff 4b 9d) stbu r10,-1\(r11\)
+++.*: (9d 4b 00 01|01 00 4b 9d) stbu r10,1\(r11\)
+++.*: (7d 4b 61 ee|ee 61 4b 7d) stbux r10,r11,r12
+++.*: (7d 4b 61 ae|ae 61 4b 7d) stbx r10,r11,r12
+++.*: (f9 4b ff f8|f8 ff 4b f9) std r10,-8\(r11\)
+++.*: (f9 4b 00 08|08 00 4b f9) std r10,8\(r11\)
+++.*: (7d 4b 65 28|28 65 4b 7d) stdbrx r10,r11,r12
+++.*: (7d 4b 61 ad|ad 61 4b 7d) stdcx\. r10,r11,r12
+++.*: (7d 4b 61 3a|3a 61 4b 7d) stdepx r10,r11,r12
+++.*: (f9 4b ff f9|f9 ff 4b f9) stdu r10,-8\(r11\)
+++.*: (f9 4b 00 09|09 00 4b f9) stdu r10,8\(r11\)
+++.*: (7d 4b 61 6a|6a 61 4b 7d) stdux r10,r11,r12
+++.*: (7d 4b 61 2a|2a 61 4b 7d) stdx r10,r11,r12
+++.*: (da 8a ff f8|f8 ff 8a da) stfd f20,-8\(r10\)
+++.*: (da 8a 00 08|08 00 8a da) stfd f20,8\(r10\)
+++.*: (7e 8a 5d be|be 5d 8a 7e) stfdepx f20,r10,r11
+++.*: (de 8a ff f8|f8 ff 8a de) stfdu f20,-8\(r10\)
+++.*: (de 8a 00 08|08 00 8a de) stfdu f20,8\(r10\)
+++.*: (7e 8a 5d ee|ee 5d 8a 7e) stfdux f20,r10,r11
+++.*: (7e 8a 5d ae|ae 5d 8a 7e) stfdx f20,r10,r11
+++.*: (7e 8a 5f ae|ae 5f 8a 7e) stfiwx f20,r10,r11
+++.*: (d2 8a ff fc|fc ff 8a d2) stfs f20,-4\(r10\)
+++.*: (d2 8a 00 04|04 00 8a d2) stfs f20,4\(r10\)
+++.*: (d6 8a ff fc|fc ff 8a d6) stfsu f20,-4\(r10\)
+++.*: (d6 8a 00 04|04 00 8a d6) stfsu f20,4\(r10\)
+++.*: (7e 8a 5d 6e|6e 5d 8a 7e) stfsux f20,r10,r11
+++.*: (7e 8a 5d 2e|2e 5d 8a 7e) stfsx f20,r10,r11
+++.*: (b1 4b ff fe|fe ff 4b b1) sth r10,-2\(r11\)
+++.*: (b1 4b 00 02|02 00 4b b1) sth r10,2\(r11\)
+++.*: (b1 4b ff fc|fc ff 4b b1) sth r10,-4\(r11\)
+++.*: (b1 4b 00 04|04 00 4b b1) sth r10,4\(r11\)
+++.*: (7d 4b 67 2c|2c 67 4b 7d) sthbrx r10,r11,r12
+++.*: (7d 4b 63 3e|3e 63 4b 7d) sthepx r10,r11,r12
+++.*: (b5 4b ff fe|fe ff 4b b5) sthu r10,-2\(r11\)
+++.*: (b5 4b 00 02|02 00 4b b5) sthu r10,2\(r11\)
+++.*: (7d 4b 63 6e|6e 63 4b 7d) sthux r10,r11,r12
+++.*: (7d 4b 63 2e|2e 63 4b 7d) sthx r10,r11,r12
+++.*: (7d 4b 65 2c|2c 65 4b 7d) stwbrx r10,r11,r12
+++.*: (7d 4b 61 2d|2d 61 4b 7d) stwcx\. r10,r11,r12
+++.*: (7d 4b 61 3e|3e 61 4b 7d) stwepx r10,r11,r12
+++.*: (95 4b ff fc|fc ff 4b 95) stwu r10,-4\(r11\)
+++.*: (95 4b 00 04|04 00 4b 95) stwu r10,4\(r11\)
+++.*: (7d 4b 61 6e|6e 61 4b 7d) stwux r10,r11,r12
+++.*: (7d 4b 61 2e|2e 61 4b 7d) stwx r10,r11,r12
+++.*: (7e 95 b0 51|51 b0 95 7e) subf\. r20,r21,r22
+++.*: (7e 95 b0 50|50 b0 95 7e) subf r20,r21,r22
+++.*: (7e 95 b0 11|11 b0 95 7e) subfc\. r20,r21,r22
+++.*: (7e 95 b0 10|10 b0 95 7e) subfc r20,r21,r22
+++.*: (7e 95 b4 11|11 b4 95 7e) subfco\. r20,r21,r22
+++.*: (7e 95 b4 10|10 b4 95 7e) subfco r20,r21,r22
+++.*: (7e 95 b1 11|11 b1 95 7e) subfe\. r20,r21,r22
+++.*: (7e 95 b1 10|10 b1 95 7e) subfe r20,r21,r22
+++.*: (7e 95 b5 11|11 b5 95 7e) subfeo\. r20,r21,r22
+++.*: (7e 95 b5 10|10 b5 95 7e) subfeo r20,r21,r22
+++.*: (22 95 00 64|64 00 95 22) subfic r20,r21,100
+++.*: (22 95 ff 9c|9c ff 95 22) subfic r20,r21,-100
+++.*: (7e 95 01 d1|d1 01 95 7e) subfme\. r20,r21
+++.*: (7e 95 01 d0|d0 01 95 7e) subfme r20,r21
+++.*: (7e 95 05 d1|d1 05 95 7e) subfmeo\. r20,r21
+++.*: (7e 95 05 d0|d0 05 95 7e) subfmeo r20,r21
+++.*: (7e 95 b4 51|51 b4 95 7e) subfo\. r20,r21,r22
+++.*: (7e 95 b4 50|50 b4 95 7e) subfo r20,r21,r22
+++.*: (7e 95 01 91|91 01 95 7e) subfze\. r20,r21
+++.*: (7e 95 01 90|90 01 95 7e) subfze r20,r21
+++.*: (7e 95 05 91|91 05 95 7e) subfzeo\. r20,r21
+++.*: (7e 95 05 90|90 05 95 7e) subfzeo r20,r21
+++.*: (7c 00 04 ac|ac 04 00 7c) hwsync
+++.*: (7c 00 04 ac|ac 04 00 7c) hwsync
+++.*: (7c 00 04 ac|ac 04 00 7c) hwsync
+++.*: (7c 20 04 ac|ac 04 20 7c) lwsync
+++.*: (7c aa 58 88|88 58 aa 7c) tdlge r10,r11
+++.*: (08 aa 00 64|64 00 aa 08) tdlgei r10,100
+++.*: (08 aa ff 9c|9c ff aa 08) tdlgei r10,-100
+++.*: (7c 6a 58 24|24 58 6a 7c) tlbilxva r10,r11
+++.*: (7c 0a 5e 24|24 5e 0a 7c) tlbivax r10,r11
+++.*: (7c 00 07 64|64 07 00 7c) tlbre
+++.*: (7d 4b 3f 64|64 3f 4b 7d) tlbre r10,r11,7
+++.*: (7c 0a 5e a5|a5 5e 0a 7c) tlbsrx\. r10,r11
+++.*: (7d 4b 67 25|25 67 4b 7d) tlbsx\. r10,r11,r12
+++.*: (7d 4b 67 24|24 67 4b 7d) tlbsx r10,r11,r12
+++.*: (7c 00 04 6c|6c 04 00 7c) tlbsync
+++.*: (7c 00 07 a4|a4 07 00 7c) tlbwe
+++.*: (7d 4b 3f a4|a4 3f 4b 7d) tlbwe r10,r11,7
+++.*: (7c aa 58 08|08 58 aa 7c) twlge r10,r11
+++.*: (0c aa 00 64|64 00 aa 0c) twlgei r10,100
+++.*: (0c aa ff 9c|9c ff aa 0c) twlgei r10,-100
+++.*: (7c 00 00 7c|7c 00 00 7c) wait
+++.*: (7c 00 00 7c|7c 00 00 7c) wait
+++.*: (7c 20 00 7c|7c 00 20 7c) waitrsv
+++.*: (7c 40 00 7c|7c 00 40 7c) waitimpl
+++.*: (7c 40 00 7c|7c 00 40 7c) waitimpl
+++.*: (7c 20 00 7c|7c 00 20 7c) waitrsv
+++.*: (7c 00 01 6c|6c 01 00 7c) wchkall
+++.*: (7c 00 01 6c|6c 01 00 7c) wchkall
+++.*: (7d 80 01 6c|6c 01 80 7d) wchkall cr3
+++.*: (7c 2a 5f 4c|4c 5f 2a 7c) wclr 1,r10,r11
+++.*: (7c 20 07 4c|4c 07 20 7c) wclrall 1
+++.*: (7c 4a 5f 4c|4c 5f 4a 7c) wclrone r10,r11
+++.*: (7d 40 01 06|06 01 40 7d) wrtee r10
+++.*: (7c 00 81 46|46 81 00 7c) wrteei 1
+++.*: (7d 6a 62 79|79 62 6a 7d) xor\. r10,r11,r12
+++.*: (7d 6a 62 78|78 62 6a 7d) xor r10,r11,r12
+++.*: (69 6a 10 00|00 10 6a 69) xori r10,r11,4096
+++.*: (6d 6a 10 00|00 10 6a 6d) xoris r10,r11,4096
++ #pass
++diff --git a/gas/testsuite/gas/ppc/a2.s b/gas/testsuite/gas/ppc/a2.s
++index 6893ae8cfe..c3d23ea3de 100644
++--- a/gas/testsuite/gas/ppc/a2.s
+++++ b/gas/testsuite/gas/ppc/a2.s
++@@ -295,10 +295,6 @@ start:
++ lhzu 10,2(11)
++ lhzux 10,11,12
++ lhzx 10,11,12
++- lmw 20,16(10)
++- lswi 10,11,1
++- lswi 12,11,32
++- lswx 10,11,12
++ lwa 10,-4(11)
++ lwa 10,4(11)
++ lwarx 10,11,12,0
++@@ -486,10 +482,6 @@ start:
++ sthu 10,2(11)
++ sthux 10,11,12
++ sthx 10,11,12
++- stmw 20,16(10)
++- stswi 10,11,1
++- stswi 10,11,32
++- stswx 10,11,12
++ stwbrx 10,11,12
++ stwcx. 10,11,12
++ stwepx 10,11,12
++diff --git a/gas/testsuite/gas/ppc/be.d b/gas/testsuite/gas/ppc/be.d
++new file mode 100644
++index 0000000000..9255ddbadf
++--- /dev/null
+++++ b/gas/testsuite/gas/ppc/be.d
++@@ -0,0 +1,17 @@
+++#objdump: -d -Mcom
+++#as: -mcom -be
+++#name: BE only instructions
+++
+++.*
+++
+++Disassembly of section \.text:
+++
+++0+00 <start>:
+++.*: ba 8a 00 10 lmw r20,16\(r10\)
+++.*: 7d 4b 0c aa lswi r10,r11,1
+++.*: 7d 8b 04 aa lswi r12,r11,32
+++.*: 7d 4b 64 2a lswx r10,r11,r12
+++.*: be 8a 00 10 stmw r20,16\(r10\)
+++.*: 7d 4b 0d aa stswi r10,r11,1
+++.*: 7d 4b 05 aa stswi r10,r11,32
+++.*: 7d 4b 65 2a stswx r10,r11,r12
++diff --git a/gas/testsuite/gas/ppc/be.s b/gas/testsuite/gas/ppc/be.s
++new file mode 100644
++index 0000000000..dbbcbb6331
++--- /dev/null
+++++ b/gas/testsuite/gas/ppc/be.s
++@@ -0,0 +1,10 @@
+++ .text
+++start:
+++ lmw 20,16(10)
+++ lswi 10,11,1
+++ lswi 12,11,32
+++ lswx 10,11,12
+++ stmw 20,16(10)
+++ stswi 10,11,1
+++ stswi 10,11,32
+++ stswx 10,11,12
++diff --git a/gas/testsuite/gas/ppc/int128.d b/gas/testsuite/gas/ppc/int128.d
++index c9f14d3360..d7410345ad 100644
++--- a/gas/testsuite/gas/ppc/int128.d
+++++ b/gas/testsuite/gas/ppc/int128.d
++@@ -20,7 +20,7 @@ Disassembly of section \.text:
++ .*: (13 9d f7 0b|0b f7 9d 13) vmodsq v28,v29,v30
++ .*: (13 e0 0e 0b|0b 0e e0 13) vmoduq v31,v0,v1
++ .*: (10 5b 1e 02|02 1e 5b 10) vextsd2q v2,v3
++-.*: (10 04 29 01|01 29 04 10) vcmpuq v4,v5
+++.*: (10 04 29 01|01 29 04 10) vcmpuq cr0,v4,v5
++ .*: (10 86 39 41|41 39 86 10) vcmpsq cr1,v6,v7
++ .*: (11 09 51 c7|c7 51 09 11) vcmpequq v8,v9,v10
++ .*: (11 6c 6d c7|c7 6d 6c 11) vcmpequq. v11,v12,v13
++diff --git a/gas/testsuite/gas/ppc/int128.s b/gas/testsuite/gas/ppc/int128.s
++index 4dce648c36..4561cfe9ee 100644
++--- a/gas/testsuite/gas/ppc/int128.s
+++++ b/gas/testsuite/gas/ppc/int128.s
++@@ -12,7 +12,7 @@ _start:
++ vmodsq 28,29,30
++ vmoduq 31,0,1
++ vextsd2q 2,3
++- vcmpuq 4,5
+++ vcmpuq 0,4,5
++ vcmpsq 1,6,7
++ vcmpequq 8,9,10
++ vcmpequq. 11,12,13
++diff --git a/gas/testsuite/gas/ppc/le_error.d b/gas/testsuite/gas/ppc/le_error.d
++new file mode 100644
++index 0000000000..765004655e
++--- /dev/null
+++++ b/gas/testsuite/gas/ppc/le_error.d
++@@ -0,0 +1,3 @@
+++#as: -mcom -le
+++#source: be.s
+++#error_output: le_error.l
++diff --git a/gas/testsuite/gas/ppc/le_error.l b/gas/testsuite/gas/ppc/le_error.l
++new file mode 100644
++index 0000000000..dd0021b972
++--- /dev/null
+++++ b/gas/testsuite/gas/ppc/le_error.l
++@@ -0,0 +1,9 @@
+++.*Assembler messages:
+++.*invalid when little-endian
+++.*invalid when little-endian
+++.*invalid when little-endian
+++.*invalid when little-endian
+++.*invalid when little-endian
+++.*invalid when little-endian
+++.*invalid when little-endian
+++.*invalid when little-endian
++diff --git a/gas/testsuite/gas/ppc/power8.d b/gas/testsuite/gas/ppc/power8.d
++index dfd3345461..df3f5d410d 100644
++--- a/gas/testsuite/gas/ppc/power8.d
+++++ b/gas/testsuite/gas/ppc/power8.d
++@@ -7,151 +7,151 @@
++ Disassembly of section \.text:
++
++ 0+00 <power8>:
++- 0: (7c 05 07 1d|1d 07 05 7c) tabort\. r5
++- 4: (7c e8 86 1d|1d 86 e8 7c) tabortwc\. 7,r8,r16
++- 8: (7e 8b 56 5d|5d 56 8b 7e) tabortdc\. 20,r11,r10
++- c: (7e 2a 9e 9d|9d 9e 2a 7e) tabortwci\. 17,r10,-13
++- 10: (7f a3 de dd|dd de a3 7f) tabortdci\. 29,r3,-5
++- 14: (7c 00 05 1d|1d 05 00 7c) tbegin\.
++- 18: (7f 80 05 9c|9c 05 80 7f) tcheck cr7
++- 1c: (7c 00 05 5d|5d 05 00 7c) tend\.
++- 20: (7c 00 05 5d|5d 05 00 7c) tend\.
++- 24: (7e 00 05 5d|5d 05 00 7e) tendall\.
++- 28: (7e 00 05 5d|5d 05 00 7e) tendall\.
++- 2c: (7c 18 07 5d|5d 07 18 7c) treclaim\. r24
++- 30: (7c 00 07 dd|dd 07 00 7c) trechkpt\.
++- 34: (7c 00 05 dd|dd 05 00 7c) tsuspend\.
++- 38: (7c 00 05 dd|dd 05 00 7c) tsuspend\.
++- 3c: (7c 20 05 dd|dd 05 20 7c) tresume\.
++- 40: (7c 20 05 dd|dd 05 20 7c) tresume\.
++- 44: (60 42 00 00|00 00 42 60) ori r2,r2,0
++- 48: (60 00 00 00|00 00 00 60) nop
++- 4c: (60 42 00 00|00 00 42 60) ori r2,r2,0
++- 50: (4c 00 01 24|24 01 00 4c) rfebb 0
++- 54: (4c 00 09 24|24 09 00 4c) rfebb
++- 58: (4c 00 09 24|24 09 00 4c) rfebb
++- 5c: (4d d5 04 60|60 04 d5 4d) bgttar- cr5
++- 60: (4c c7 04 61|61 04 c7 4c) bnstarl- cr1
++- 64: (4d ec 04 60|60 04 ec 4d) blttar\+ cr3
++- 68: (4c e2 04 61|61 04 e2 4c) bnetarl\+
++- 6c: (4c 88 0c 60|60 0c 88 4c) bctar 4,4\*cr2\+lt,1
++- 70: (4c 87 14 61|61 14 87 4c) bctarl 4,4\*cr1\+so,2
++- 74: (7c 00 00 3c|3c 00 00 7c) waitasec
++- 78: (7c 00 41 1c|1c 41 00 7c) msgsndp r8
++- 7c: (7c 20 01 26|26 01 20 7c) mtsle 1
++- 80: (7c 00 d9 5c|5c d9 00 7c) msgclrp r27
++- 84: (7d 4a 61 6d|6d 61 4a 7d) stqcx\. r10,r10,r12
++- 88: (7f 80 39 6d|6d 39 80 7f) stqcx\. r28,0,r7
++- 8c: (7f 13 5a 28|28 5a 13 7f) lqarx r24,r19,r11
++- 90: (7e c0 5a 28|28 5a c0 7e) lqarx r22,0,r11
++- 94: (7e 80 32 5c|5c 32 80 7e) mfbhrbe r20,6
++- 98: (7f b1 83 29|29 83 b1 7f) pbt\. r29,r17,r16
++- 9c: (7d c0 3b 29|29 3b c0 7d) pbt\. r14,0,r7
++- a0: (7c 00 03 5c|5c 03 00 7c) clrbhrb
++- a4: (11 6a 05 ed|ed 05 6a 11) vpermxor v11,v10,v0,v23
++- a8: (13 02 39 3c|3c 39 02 13) vaddeuqm v24,v2,v7,v4
++- ac: (11 4a 40 bd|bd 40 4a 11) vaddecuq v10,v10,v8,v2
++- b0: (10 af 44 fe|fe 44 af 10) vsubeuqm v5,v15,v8,v19
++- b4: (11 9f 87 7f|7f 87 9f 11) vsubecuq v12,v31,v16,v29
++- b8: (12 9d 68 88|88 68 9d 12) vmulouw v20,v29,v13
++- bc: (13 a0 d0 89|89 d0 a0 13) vmuluwm v29,v0,v26
++- c0: (11 15 e0 c0|c0 e0 15 11) vaddudm v8,v21,v28
++- c4: (10 3a 08 c2|c2 08 3a 10) vmaxud v1,v26,v1
++- c8: (12 83 08 c4|c4 08 83 12) vrld v20,v3,v1
++- cc: (10 93 58 c7|c7 58 93 10) vcmpequd v4,v19,v11
++- d0: (12 ee f1 00|00 f1 ee 12) vadduqm v23,v14,v30
++- d4: (11 08 69 40|40 69 08 11) vaddcuq v8,v8,v13
++- d8: (13 9b 21 88|88 21 9b 13) vmulosw v28,v27,v4
++- dc: (10 64 21 c2|c2 21 64 10) vmaxsd v3,v4,v4
++- e0: (10 13 aa 88|88 aa 13 10) vmuleuw v0,v19,v21
++- e4: (13 14 9a c2|c2 9a 14 13) vminud v24,v20,v19
++- e8: (10 1c 7a c7|c7 7a 1c 10) vcmpgtud v0,v28,v15
++- ec: (12 a0 13 88|88 13 a0 12) vmulesw v21,v0,v2
++- f0: (11 3a 4b c2|c2 4b 3a 11) vminsd v9,v26,v9
++- f4: (13 3d 5b c4|c4 5b 3d 13) vsrad v25,v29,v11
++- f8: (11 7c 5b c7|c7 5b 7c 11) vcmpgtsd v11,v28,v11
++- fc: (10 a8 d6 01|01 d6 a8 10) bcdadd\. v5,v8,v26,1
++- 100: (10 83 64 08|08 64 83 10) vpmsumb v4,v3,v12
++- 104: (13 5f ae 41|41 ae 5f 13) bcdsub\. v26,v31,v21,1
++- 108: (10 b1 84 48|48 84 b1 10) vpmsumh v5,v17,v16
++- 10c: (12 f1 a4 4e|4e a4 f1 12) vpkudum v23,v17,v20
++- 110: (13 15 ec 88|88 ec 15 13) vpmsumw v24,v21,v29
++- 114: (11 36 6c c8|c8 6c 36 11) vpmsumd v9,v22,v13
++- 118: (12 53 94 ce|ce 94 53 12) vpkudus v18,v19,v18
++- 11c: (13 d0 b5 00|00 b5 d0 13) vsubuqm v30,v16,v22
++- 120: (11 cb 3d 08|08 3d cb 11) vcipher v14,v11,v7
++- 124: (11 42 b5 09|09 b5 42 11) vcipherlast v10,v2,v22
++- 128: (12 e0 6d 0c|0c 6d e0 12) vgbbd v23,v13
++- 12c: (12 19 85 40|40 85 19 12) vsubcuq v16,v25,v16
++- 130: (13 e1 2d 44|44 2d e1 13) vorc v31,v1,v5
++- 134: (10 91 fd 48|48 fd 91 10) vncipher v4,v17,v31
++- 138: (13 02 dd 49|49 dd 02 13) vncipherlast v24,v2,v27
++- 13c: (12 f5 bd 4c|4c bd f5 12) vbpermq v23,v21,v23
++- 140: (13 72 4d 4e|4e 4d 72 13) vpksdus v27,v18,v9
++- 144: (13 7d dd 84|84 dd 7d 13) vnand v27,v29,v27
++- 148: (12 73 c5 c4|c4 c5 73 12) vsld v19,v19,v24
++- 14c: (10 ad 05 c8|c8 05 ad 10) vsbox v5,v13
++- 150: (13 23 3d ce|ce 3d 23 13) vpksdss v25,v3,v7
++- 154: (13 88 04 c7|c7 04 88 13) vcmpequd\. v28,v8,v0
++- 158: (13 40 d6 4e|4e d6 40 13) vupkhsw v26,v26
++- 15c: (10 a7 36 82|82 36 a7 10) vshasigmaw v5,v7,0,6
++- 160: (13 95 76 84|84 76 95 13) veqv v28,v21,v14
++- 164: (10 28 9e 8c|8c 9e 28 10) vmrgow v1,v8,v19
++- 168: (10 0a 56 c2|c2 56 0a 10) vshasigmad v0,v10,0,10
++- 16c: (10 bb 76 c4|c4 76 bb 10) vsrd v5,v27,v14
++- 170: (11 60 6e ce|ce 6e 60 11) vupklsw v11,v13
++- 174: (11 c0 87 02|02 87 c0 11) vclzb v14,v16
++- 178: (12 80 df 03|03 df 80 12) vpopcntb v20,v27
++- 17c: (13 80 5f 42|42 5f 80 13) vclzh v28,v11
++- 180: (13 00 4f 43|43 4f 00 13) vpopcnth v24,v9
++- 184: (13 60 ff 82|82 ff 60 13) vclzw v27,v31
++- 188: (12 20 9f 83|83 9f 20 12) vpopcntw v17,v19
++- 18c: (11 80 ef c2|c2 ef 80 11) vclzd v12,v29
++- 190: (12 e0 b7 c3|c3 b7 e0 12) vpopcntd v23,v22
++- 194: (13 14 ee c7|c7 ee 14 13) vcmpgtud\. v24,v20,v29
++- 198: (11 26 df c7|c7 df 26 11) vcmpgtsd\. v9,v6,v27
++- 19c: (7f ce d0 19|19 d0 ce 7f) lxsiwzx vs62,r14,r26
++- 1a0: (7d 00 c8 19|19 c8 00 7d) lxsiwzx vs40,0,r25
++- 1a4: (7f 20 d0 98|98 d0 20 7f) lxsiwax vs25,0,r26
++- 1a8: (7c 60 18 98|98 18 60 7c) lxsiwax vs3,0,r3
++- 1ac: (7f cc 00 67|67 00 cc 7f) mfvsrd r12,vs62
++- 1b0: (7d 94 00 e6|e6 00 94 7d) mffprwz r20,f12
++- 1b4: (7d c9 71 18|18 71 c9 7d) stxsiwx vs14,r9,r14
++- 1b8: (7e a0 41 18|18 41 a0 7e) stxsiwx vs21,0,r8
++- 1bc: (7e 0b 01 67|67 01 0b 7e) mtvsrd vs48,r11
++- 1c0: (7f f7 01 a7|a7 01 f7 7f) mtvrwa v31,r23
++- 1c4: (7e 1a 01 e6|e6 01 1a 7e) mtfprwz f16,r26
++- 1c8: (7d b3 6c 18|18 6c b3 7d) lxsspx vs13,r19,r13
++- 1cc: (7e 40 6c 18|18 6c 40 7e) lxsspx vs18,0,r13
++- 1d0: (7d 62 25 19|19 25 62 7d) stxsspx vs43,r2,r4
++- 1d4: (7e e0 5d 19|19 5d e0 7e) stxsspx vs55,0,r11
++- 1d8: (f2 d0 c8 05|05 c8 d0 f2) xsaddsp vs54,vs48,vs25
++- 1dc: (f1 d2 08 0c|0c 08 d2 f1) xsmaddasp vs14,vs50,vs1
++- 1e0: (f3 56 50 42|42 50 56 f3) xssubsp vs26,vs22,vs42
++- 1e4: (f3 75 a0 4e|4e a0 75 f3) xsmaddmsp vs27,vs53,vs52
++- 1e8: (f1 00 d8 2a|2a d8 00 f1) xsrsqrtesp vs8,vs59
++- 1ec: (f1 80 48 2e|2e 48 80 f1) xssqrtsp vs12,vs41
++- 1f0: (f3 2b 00 83|83 00 2b f3) xsmulsp vs57,vs11,vs32
++- 1f4: (f0 d4 d0 89|89 d0 d4 f0) xsmsubasp vs38,vs20,vs26
++- 1f8: (f3 53 30 c0|c0 30 53 f3) xsdivsp vs26,vs19,vs6
++- 1fc: (f0 65 b8 cf|cf b8 65 f0) xsmsubmsp vs35,vs37,vs55
++- 200: (f3 60 40 69|69 40 60 f3) xsresp vs59,vs8
++- 204: (f1 81 0c 0f|0f 0c 81 f1) xsnmaddasp vs44,vs33,vs33
++- 208: (f2 3e f4 4c|4c f4 3e f2) xsnmaddmsp vs17,vs62,vs30
++- 20c: (f2 d4 fc 8d|8d fc d4 f2) xsnmsubasp vs54,vs52,vs31
++- 210: (f0 a5 d4 cb|cb d4 a5 f0) xsnmsubmsp vs37,vs5,vs58
++- 214: (f3 d6 65 56|56 65 d6 f3) xxlorc vs30,vs54,vs44
++- 218: (f2 2e ed 91|91 ed 2e f2) xxlnand vs49,vs14,vs29
++- 21c: (f3 d6 f5 d1|d1 f5 d6 f3) xxleqv vs62,vs22,vs30
++- 220: (f3 80 b4 2f|2f b4 80 f3) xscvdpspn vs60,vs54
++- 224: (f2 c0 6c 66|66 6c c0 f2) xsrsp vs22,vs45
++- 228: (f3 40 dc a2|a2 dc 40 f3) xscvuxdsp vs26,vs59
++- 22c: (f0 c0 8c e3|e3 8c c0 f0) xscvsxdsp vs38,vs49
++- 230: (f3 60 d5 2d|2d d5 60 f3) xscvspdpn vs59,vs26
++- 234: (ff 0e 16 8c|8c 16 0e ff) fmrgow f24,f14,f2
++- 238: (fe c7 2f 8c|8c 2f c7 fe) fmrgew f22,f7,f5
++- 23c: (7c 00 71 9c|9c 71 00 7c) msgsnd r14
++- 240: (7c 00 b9 dc|dc b9 00 7c) msgclr r23
+++.*: (7c 05 07 1d|1d 07 05 7c) tabort\. r5
+++.*: (7c e8 86 1d|1d 86 e8 7c) tabortwc\. 7,r8,r16
+++.*: (7e 8b 56 5d|5d 56 8b 7e) tabortdc\. 20,r11,r10
+++.*: (7e 2a 9e 9d|9d 9e 2a 7e) tabortwci\. 17,r10,-13
+++.*: (7f a3 de dd|dd de a3 7f) tabortdci\. 29,r3,-5
+++.*: (7c 00 05 1d|1d 05 00 7c) tbegin\.
+++.*: (7f 80 05 9c|9c 05 80 7f) tcheck cr7
+++.*: (7c 00 05 5d|5d 05 00 7c) tend\.
+++.*: (7c 00 05 5d|5d 05 00 7c) tend\.
+++.*: (7e 00 05 5d|5d 05 00 7e) tendall\.
+++.*: (7e 00 05 5d|5d 05 00 7e) tendall\.
+++.*: (7c 18 07 5d|5d 07 18 7c) treclaim\. r24
+++.*: (7c 00 07 dd|dd 07 00 7c) trechkpt\.
+++.*: (7c 00 05 dd|dd 05 00 7c) tsuspend\.
+++.*: (7c 00 05 dd|dd 05 00 7c) tsuspend\.
+++.*: (7c 20 05 dd|dd 05 20 7c) tresume\.
+++.*: (7c 20 05 dd|dd 05 20 7c) tresume\.
+++.*: (60 42 00 00|00 00 42 60) ori r2,r2,0
+++.*: (60 00 00 00|00 00 00 60) nop
+++.*: (60 42 00 00|00 00 42 60) ori r2,r2,0
+++.*: (4c 00 01 24|24 01 00 4c) rfebb 0
+++.*: (4c 00 09 24|24 09 00 4c) rfebb
+++.*: (4c 00 09 24|24 09 00 4c) rfebb
+++.*: (4d d5 04 60|60 04 d5 4d) bgttar- cr5
+++.*: (4c c7 04 61|61 04 c7 4c) bnstarl- cr1
+++.*: (4d ec 04 60|60 04 ec 4d) blttar\+ cr3
+++.*: (4c e2 04 61|61 04 e2 4c) bnetarl\+
+++.*: (4c 88 0c 60|60 0c 88 4c) bctar 4,4\*cr2\+lt,1
+++.*: (4c 87 14 61|61 14 87 4c) bctarl 4,4\*cr1\+so,2
+++.*: (7c 00 00 3c|3c 00 00 7c) waitasec
+++.*: (7c 00 41 1c|1c 41 00 7c) msgsndp r8
+++.*: (7c 20 01 26|26 01 20 7c) mtsle 1
+++.*: (7c 00 d9 5c|5c d9 00 7c) msgclrp r27
+++.*: (7d 4a 61 6d|6d 61 4a 7d) stqcx\. r10,r10,r12
+++.*: (7f 80 39 6d|6d 39 80 7f) stqcx\. r28,0,r7
+++.*: (7f 13 5a 28|28 5a 13 7f) lqarx r24,r19,r11
+++.*: (7e c0 5a 28|28 5a c0 7e) lqarx r22,0,r11
+++.*: (7e 80 32 5c|5c 32 80 7e) mfbhrbe r20,6
+++.*: (7f b1 83 29|29 83 b1 7f) pbt\. r29,r17,r16
+++.*: (7d c0 3b 29|29 3b c0 7d) pbt\. r14,0,r7
+++.*: (7c 00 03 5c|5c 03 00 7c) clrbhrb
+++.*: (11 6a 05 ed|ed 05 6a 11) vpermxor v11,v10,v0,v23
+++.*: (13 02 39 3c|3c 39 02 13) vaddeuqm v24,v2,v7,v4
+++.*: (11 4a 40 bd|bd 40 4a 11) vaddecuq v10,v10,v8,v2
+++.*: (10 af 44 fe|fe 44 af 10) vsubeuqm v5,v15,v8,v19
+++.*: (11 9f 87 7f|7f 87 9f 11) vsubecuq v12,v31,v16,v29
+++.*: (12 9d 68 88|88 68 9d 12) vmulouw v20,v29,v13
+++.*: (13 a0 d0 89|89 d0 a0 13) vmuluwm v29,v0,v26
+++.*: (11 15 e0 c0|c0 e0 15 11) vaddudm v8,v21,v28
+++.*: (10 3a 08 c2|c2 08 3a 10) vmaxud v1,v26,v1
+++.*: (12 83 08 c4|c4 08 83 12) vrld v20,v3,v1
+++.*: (10 93 58 c7|c7 58 93 10) vcmpequd v4,v19,v11
+++.*: (12 ee f1 00|00 f1 ee 12) vadduqm v23,v14,v30
+++.*: (11 08 69 40|40 69 08 11) vaddcuq v8,v8,v13
+++.*: (13 9b 21 88|88 21 9b 13) vmulosw v28,v27,v4
+++.*: (10 64 21 c2|c2 21 64 10) vmaxsd v3,v4,v4
+++.*: (10 13 aa 88|88 aa 13 10) vmuleuw v0,v19,v21
+++.*: (13 14 9a c2|c2 9a 14 13) vminud v24,v20,v19
+++.*: (10 1c 7a c7|c7 7a 1c 10) vcmpgtud v0,v28,v15
+++.*: (12 a0 13 88|88 13 a0 12) vmulesw v21,v0,v2
+++.*: (11 3a 4b c2|c2 4b 3a 11) vminsd v9,v26,v9
+++.*: (13 3d 5b c4|c4 5b 3d 13) vsrad v25,v29,v11
+++.*: (11 7c 5b c7|c7 5b 7c 11) vcmpgtsd v11,v28,v11
+++.*: (10 a8 d6 01|01 d6 a8 10) bcdadd\. v5,v8,v26,1
+++.*: (10 83 64 08|08 64 83 10) vpmsumb v4,v3,v12
+++.*: (13 5f ae 41|41 ae 5f 13) bcdsub\. v26,v31,v21,1
+++.*: (10 b1 84 48|48 84 b1 10) vpmsumh v5,v17,v16
+++.*: (12 f1 a4 4e|4e a4 f1 12) vpkudum v23,v17,v20
+++.*: (13 15 ec 88|88 ec 15 13) vpmsumw v24,v21,v29
+++.*: (11 36 6c c8|c8 6c 36 11) vpmsumd v9,v22,v13
+++.*: (12 53 94 ce|ce 94 53 12) vpkudus v18,v19,v18
+++.*: (13 d0 b5 00|00 b5 d0 13) vsubuqm v30,v16,v22
+++.*: (11 cb 3d 08|08 3d cb 11) vcipher v14,v11,v7
+++.*: (11 42 b5 09|09 b5 42 11) vcipherlast v10,v2,v22
+++.*: (12 e0 6d 0c|0c 6d e0 12) vgbbd v23,v13
+++.*: (12 19 85 40|40 85 19 12) vsubcuq v16,v25,v16
+++.*: (13 e1 2d 44|44 2d e1 13) vorc v31,v1,v5
+++.*: (10 91 fd 48|48 fd 91 10) vncipher v4,v17,v31
+++.*: (13 02 dd 49|49 dd 02 13) vncipherlast v24,v2,v27
+++.*: (12 f5 bd 4c|4c bd f5 12) vbpermq v23,v21,v23
+++.*: (13 72 4d 4e|4e 4d 72 13) vpksdus v27,v18,v9
+++.*: (13 7d dd 84|84 dd 7d 13) vnand v27,v29,v27
+++.*: (12 73 c5 c4|c4 c5 73 12) vsld v19,v19,v24
+++.*: (10 ad 05 c8|c8 05 ad 10) vsbox v5,v13
+++.*: (13 23 3d ce|ce 3d 23 13) vpksdss v25,v3,v7
+++.*: (13 88 04 c7|c7 04 88 13) vcmpequd\. v28,v8,v0
+++.*: (13 40 d6 4e|4e d6 40 13) vupkhsw v26,v26
+++.*: (10 a7 36 82|82 36 a7 10) vshasigmaw v5,v7,0,6
+++.*: (13 95 76 84|84 76 95 13) veqv v28,v21,v14
+++.*: (10 28 9e 8c|8c 9e 28 10) vmrgow v1,v8,v19
+++.*: (10 0a 56 c2|c2 56 0a 10) vshasigmad v0,v10,0,10
+++.*: (10 bb 76 c4|c4 76 bb 10) vsrd v5,v27,v14
+++.*: (11 60 6e ce|ce 6e 60 11) vupklsw v11,v13
+++.*: (11 c0 87 02|02 87 c0 11) vclzb v14,v16
+++.*: (12 80 df 03|03 df 80 12) vpopcntb v20,v27
+++.*: (13 80 5f 42|42 5f 80 13) vclzh v28,v11
+++.*: (13 00 4f 43|43 4f 00 13) vpopcnth v24,v9
+++.*: (13 60 ff 82|82 ff 60 13) vclzw v27,v31
+++.*: (12 20 9f 83|83 9f 20 12) vpopcntw v17,v19
+++.*: (11 80 ef c2|c2 ef 80 11) vclzd v12,v29
+++.*: (12 e0 b7 c3|c3 b7 e0 12) vpopcntd v23,v22
+++.*: (13 14 ee c7|c7 ee 14 13) vcmpgtud\. v24,v20,v29
+++.*: (11 26 df c7|c7 df 26 11) vcmpgtsd\. v9,v6,v27
+++.*: (7f ce d0 19|19 d0 ce 7f) lxsiwzx vs62,r14,r26
+++.*: (7d 00 c8 19|19 c8 00 7d) lxsiwzx vs40,0,r25
+++.*: (7f 20 d0 98|98 d0 20 7f) lxsiwax vs25,0,r26
+++.*: (7c 60 18 98|98 18 60 7c) lxsiwax vs3,0,r3
+++.*: (7f cc 00 67|67 00 cc 7f) (mfvrd r12,v30|mfvsrd r12,vs62)
+++.*: (7d 94 00 e6|e6 00 94 7d) (mffprwz r20,f12|mfvsrwz r20,vs12)
+++.*: (7d c9 71 18|18 71 c9 7d) stxsiwx vs14,r9,r14
+++.*: (7e a0 41 18|18 41 a0 7e) stxsiwx vs21,0,r8
+++.*: (7e 0b 01 67|67 01 0b 7e) (mtvrd v16,r11|mtvsrd vs48,r11)
+++.*: (7f f7 01 a7|a7 01 f7 7f) (mtvrwa v31,r23|mtvsrwa vs63,r23)
+++.*: (7e 1a 01 e6|e6 01 1a 7e) (mtfprwz f16,r26|mtvsrwz vs16,r26)
+++.*: (7d b3 6c 18|18 6c b3 7d) lxsspx vs13,r19,r13
+++.*: (7e 40 6c 18|18 6c 40 7e) lxsspx vs18,0,r13
+++.*: (7d 62 25 19|19 25 62 7d) stxsspx vs43,r2,r4
+++.*: (7e e0 5d 19|19 5d e0 7e) stxsspx vs55,0,r11
+++.*: (f2 d0 c8 05|05 c8 d0 f2) xsaddsp vs54,vs48,vs25
+++.*: (f1 d2 08 0c|0c 08 d2 f1) xsmaddasp vs14,vs50,vs1
+++.*: (f3 56 50 42|42 50 56 f3) xssubsp vs26,vs22,vs42
+++.*: (f3 75 a0 4e|4e a0 75 f3) xsmaddmsp vs27,vs53,vs52
+++.*: (f1 00 d8 2a|2a d8 00 f1) xsrsqrtesp vs8,vs59
+++.*: (f1 80 48 2e|2e 48 80 f1) xssqrtsp vs12,vs41
+++.*: (f3 2b 00 83|83 00 2b f3) xsmulsp vs57,vs11,vs32
+++.*: (f0 d4 d0 89|89 d0 d4 f0) xsmsubasp vs38,vs20,vs26
+++.*: (f3 53 30 c0|c0 30 53 f3) xsdivsp vs26,vs19,vs6
+++.*: (f0 65 b8 cf|cf b8 65 f0) xsmsubmsp vs35,vs37,vs55
+++.*: (f3 60 40 69|69 40 60 f3) xsresp vs59,vs8
+++.*: (f1 81 0c 0f|0f 0c 81 f1) xsnmaddasp vs44,vs33,vs33
+++.*: (f2 3e f4 4c|4c f4 3e f2) xsnmaddmsp vs17,vs62,vs30
+++.*: (f2 d4 fc 8d|8d fc d4 f2) xsnmsubasp vs54,vs52,vs31
+++.*: (f0 a5 d4 cb|cb d4 a5 f0) xsnmsubmsp vs37,vs5,vs58
+++.*: (f3 d6 65 56|56 65 d6 f3) xxlorc vs30,vs54,vs44
+++.*: (f2 2e ed 91|91 ed 2e f2) xxlnand vs49,vs14,vs29
+++.*: (f3 d6 f5 d1|d1 f5 d6 f3) xxleqv vs62,vs22,vs30
+++.*: (f3 80 b4 2f|2f b4 80 f3) xscvdpspn vs60,vs54
+++.*: (f2 c0 6c 66|66 6c c0 f2) xsrsp vs22,vs45
+++.*: (f3 40 dc a2|a2 dc 40 f3) xscvuxdsp vs26,vs59
+++.*: (f0 c0 8c e3|e3 8c c0 f0) xscvsxdsp vs38,vs49
+++.*: (f3 60 d5 2d|2d d5 60 f3) xscvspdpn vs59,vs26
+++.*: (ff 0e 16 8c|8c 16 0e ff) fmrgow f24,f14,f2
+++.*: (fe c7 2f 8c|8c 2f c7 fe) fmrgew f22,f7,f5
+++.*: (7c 00 71 9c|9c 71 00 7c) msgsnd r14
+++.*: (7c 00 b9 dc|dc b9 00 7c) msgclr r23
++ .*: (7d 00 2e 99|99 2e 00 7d) lxvd2x vs40,0,r5
++ .*: (7d 00 2e 99|99 2e 00 7d) lxvd2x vs40,0,r5
++ .*: (7d 54 36 98|98 36 54 7d) lxvd2x vs10,r20,r6
++@@ -310,4 +310,6 @@ Disassembly of section \.text:
++ .*: (4d 89 04 61|61 04 89 4d) bgttarl cr2
++ .*: (4d 89 04 61|61 04 89 4d) bgttarl cr2
++ .*: (4d 89 1c 61|61 1c 89 4d) bctarl 12,4\*cr2\+gt,3
+++.*: (7f 5a d3 78|78 d3 5a 7f) miso
+++.*: (7f 5a d3 78|78 d3 5a 7f) miso
++ #pass
++diff --git a/gas/testsuite/gas/ppc/power8.s b/gas/testsuite/gas/ppc/power8.s
++index beb1c5e81c..52a3e8ea69 100644
++--- a/gas/testsuite/gas/ppc/power8.s
+++++ b/gas/testsuite/gas/ppc/power8.s
++@@ -302,3 +302,5 @@ power8:
++ bctarl 0b01100,4*cr2+gt
++ bctarl 0b01100,4*cr2+gt,0
++ bctarl 0b01100,4*cr2+gt,3
+++ or 26,26,26
+++ miso
++diff --git a/gas/testsuite/gas/ppc/power9.d b/gas/testsuite/gas/ppc/power9.d
++index 4e7156d46d..45a8f495ae 100644
++--- a/gas/testsuite/gas/ppc/power9.d
+++++ b/gas/testsuite/gas/ppc/power9.d
++@@ -399,4 +399,8 @@ Disassembly of section \.text:
++ .*: (7c 20 20 ac|ac 20 20 7c) dcbfl 0,r4
++ .*: (7c 60 28 ac|ac 28 60 7c) dcbflp 0,r5
++ .*: (7c 60 28 ac|ac 28 60 7c) dcbflp 0,r5
+++.*: (63 ff 00 00|00 00 ff 63) exser
+++.*: (63 ff 00 00|00 00 ff 63) exser
+++.*: (7c 00 18 9c|9c 18 00 7c) msgsndu r3
+++.*: (7c 00 d8 dc|dc d8 00 7c) msgclru r27
++ #pass
++diff --git a/gas/testsuite/gas/ppc/power9.s b/gas/testsuite/gas/ppc/power9.s
++index 69053819ff..2d412b9e66 100644
++--- a/gas/testsuite/gas/ppc/power9.s
+++++ b/gas/testsuite/gas/ppc/power9.s
++@@ -390,3 +390,7 @@ power9:
++ dcbf 0,4,1
++ dcbflp 0,5
++ dcbf 0,5,3
+++ ori 31,31,0
+++ exser
+++ msgsndu 3
+++ msgclru 27
++diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
++index 48c4ce62f3..f2a7b44cdd 100644
++--- a/gas/testsuite/gas/ppc/ppc.exp
+++++ b/gas/testsuite/gas/ppc/ppc.exp
++@@ -76,6 +76,8 @@ if { [istarget powerpc64*-*-*] || [istarget *-*-elf64*]} then {
++ run_dump_test "common"
++ run_dump_test "476"
++ run_dump_test "a2"
+++run_dump_test "be"
+++run_dump_test "le_error"
++ run_dump_test "pr21303"
++ run_dump_test "vle"
++ run_dump_test "vle-reloc"
++diff --git a/gas/testsuite/gas/ppc/vsx2.d b/gas/testsuite/gas/ppc/vsx2.d
++index e7ea585262..4f0b25bd47 100644
++--- a/gas/testsuite/gas/ppc/vsx2.d
+++++ b/gas/testsuite/gas/ppc/vsx2.d
++@@ -7,59 +7,59 @@
++ Disassembly of section \.text:
++
++ 0+00 <vsx2>:
++- 0: (7f ce d0 19|19 d0 ce 7f) lxsiwzx vs62,r14,r26
++- 4: (7d 00 c8 19|19 c8 00 7d) lxsiwzx vs40,0,r25
++- 8: (7f 20 d0 98|98 d0 20 7f) lxsiwax vs25,0,r26
++- c: (7c 60 18 98|98 18 60 7c) lxsiwax vs3,0,r3
++- 10: (7f cc 00 66|66 00 cc 7f) mfvsrd r12,vs30
++- 14: (7f cc 00 66|66 00 cc 7f) mfvsrd r12,vs30
++- 18: (7f cc 00 67|67 00 cc 7f) mfvsrd r12,vs62
++- 1c: (7f cc 00 67|67 00 cc 7f) mfvsrd r12,vs62
++- 20: (7d 94 00 e6|e6 00 94 7d) mffprwz r20,f12
++- 24: (7d 94 00 e6|e6 00 94 7d) mffprwz r20,f12
++- 28: (7d 95 00 e7|e7 00 95 7d) mfvrwz r21,v12
++- 2c: (7d 95 00 e7|e7 00 95 7d) mfvrwz r21,v12
++- 30: (7d c9 71 18|18 71 c9 7d) stxsiwx vs14,r9,r14
++- 34: (7e a0 41 18|18 41 a0 7e) stxsiwx vs21,0,r8
++- 38: (7d 7c 01 66|66 01 7c 7d) mtvsrd vs11,r28
++- 3c: (7d 7c 01 66|66 01 7c 7d) mtvsrd vs11,r28
++- 40: (7d 7d 01 67|67 01 7d 7d) mtvsrd vs43,r29
++- 44: (7d 7d 01 67|67 01 7d 7d) mtvsrd vs43,r29
++- 48: (7f 16 01 a6|a6 01 16 7f) mtfprwa f24,r22
++- 4c: (7f 16 01 a6|a6 01 16 7f) mtfprwa f24,r22
++- 50: (7f 37 01 a7|a7 01 37 7f) mtvrwa v25,r23
++- 54: (7f 37 01 a7|a7 01 37 7f) mtvrwa v25,r23
++- 58: (7f 5b 01 e6|e6 01 5b 7f) mtfprwz f26,r27
++- 5c: (7f 5b 01 e6|e6 01 5b 7f) mtfprwz f26,r27
++- 60: (7f 7c 01 e7|e7 01 7c 7f) mtvrwz v27,r28
++- 64: (7f 7c 01 e7|e7 01 7c 7f) mtvrwz v27,r28
++- 68: (7d b3 6c 18|18 6c b3 7d) lxsspx vs13,r19,r13
++- 6c: (7e 40 6c 18|18 6c 40 7e) lxsspx vs18,0,r13
++- 70: (7d 62 25 19|19 25 62 7d) stxsspx vs43,r2,r4
++- 74: (7e e0 5d 19|19 5d e0 7e) stxsspx vs55,0,r11
++- 78: (f2 d0 c8 05|05 c8 d0 f2) xsaddsp vs54,vs48,vs25
++- 7c: (f1 d2 08 0c|0c 08 d2 f1) xsmaddasp vs14,vs50,vs1
++- 80: (f3 56 50 42|42 50 56 f3) xssubsp vs26,vs22,vs42
++- 84: (f3 75 a0 4e|4e a0 75 f3) xsmaddmsp vs27,vs53,vs52
++- 88: (f1 00 d8 2a|2a d8 00 f1) xsrsqrtesp vs8,vs59
++- 8c: (f1 80 48 2e|2e 48 80 f1) xssqrtsp vs12,vs41
++- 90: (f3 2b 00 83|83 00 2b f3) xsmulsp vs57,vs11,vs32
++- 94: (f0 d4 d0 89|89 d0 d4 f0) xsmsubasp vs38,vs20,vs26
++- 98: (f3 53 30 c0|c0 30 53 f3) xsdivsp vs26,vs19,vs6
++- 9c: (f0 65 b8 cf|cf b8 65 f0) xsmsubmsp vs35,vs37,vs55
++- a0: (f3 60 40 69|69 40 60 f3) xsresp vs59,vs8
++- a4: (f1 81 0c 0f|0f 0c 81 f1) xsnmaddasp vs44,vs33,vs33
++- a8: (f2 3e f4 4c|4c f4 3e f2) xsnmaddmsp vs17,vs62,vs30
++- ac: (f2 d4 fc 8d|8d fc d4 f2) xsnmsubasp vs54,vs52,vs31
++- b0: (f0 a5 d4 cb|cb d4 a5 f0) xsnmsubmsp vs37,vs5,vs58
++- b4: (f3 d6 65 56|56 65 d6 f3) xxlorc vs30,vs54,vs44
++- b8: (f2 2e ed 91|91 ed 2e f2) xxlnand vs49,vs14,vs29
++- bc: (f3 d6 f5 d1|d1 f5 d6 f3) xxleqv vs62,vs22,vs30
++- c0: (f3 80 b4 2f|2f b4 80 f3) xscvdpspn vs60,vs54
++- c4: (f2 c0 6c 66|66 6c c0 f2) xsrsp vs22,vs45
++- c8: (f3 40 dc a2|a2 dc 40 f3) xscvuxdsp vs26,vs59
++- cc: (f0 c0 8c e3|e3 8c c0 f0) xscvsxdsp vs38,vs49
++- d0: (f3 60 d5 2d|2d d5 60 f3) xscvspdpn vs59,vs26
++- d4: (ff 0e 16 8c|8c 16 0e ff) fmrgow f24,f14,f2
++- d8: (fe c7 2f 8c|8c 2f c7 fe) fmrgew f22,f7,f5
+++.*: (7f ce d0 19|19 d0 ce 7f) lxsiwzx vs62,r14,r26
+++.*: (7d 00 c8 19|19 c8 00 7d) lxsiwzx vs40,0,r25
+++.*: (7f 20 d0 98|98 d0 20 7f) lxsiwax vs25,0,r26
+++.*: (7c 60 18 98|98 18 60 7c) lxsiwax vs3,0,r3
+++.*: (7f cc 00 66|66 00 cc 7f) (mffprd r12,f30|mfvsrd r12,vs30)
+++.*: (7f cc 00 66|66 00 cc 7f) (mffprd r12,f30|mfvsrd r12,vs30)
+++.*: (7f cc 00 67|67 00 cc 7f) (mfvrd r12,v30|mfvsrd r12,vs62)
+++.*: (7f cc 00 67|67 00 cc 7f) (mfvrd r12,v30|mfvsrd r12,vs62)
+++.*: (7d 94 00 e6|e6 00 94 7d) (mffprwz r20,f12|mfvsrwz r20,vs12)
+++.*: (7d 94 00 e6|e6 00 94 7d) (mffprwz r20,f12|mfvsrwz r20,vs12)
+++.*: (7d 95 00 e7|e7 00 95 7d) (mfvrwz r21,v12|mfvsrwz r21,vs44)
+++.*: (7d 95 00 e7|e7 00 95 7d) (mfvrwz r21,v12|mfvsrwz r21,vs44)
+++.*: (7d c9 71 18|18 71 c9 7d) stxsiwx vs14,r9,r14
+++.*: (7e a0 41 18|18 41 a0 7e) stxsiwx vs21,0,r8
+++.*: (7d 7c 01 66|66 01 7c 7d) (mtfprd f11,r28|mtvsrd vs11,r28)
+++.*: (7d 7c 01 66|66 01 7c 7d) (mtfprd f11,r28|mtvsrd vs11,r28)
+++.*: (7d 7d 01 67|67 01 7d 7d) (mtvrd v11,r29|mtvsrd vs43,r29)
+++.*: (7d 7d 01 67|67 01 7d 7d) (mtvrd v11,r29|mtvsrd vs43,r29)
+++.*: (7f 16 01 a6|a6 01 16 7f) (mtfprwa f24,r22|mtvsrwa vs24,r22)
+++.*: (7f 16 01 a6|a6 01 16 7f) (mtfprwa f24,r22|mtvsrwa vs24,r22)
+++.*: (7f 37 01 a7|a7 01 37 7f) (mtvrwa v25,r23|mtvsrwa vs57,r23)
+++.*: (7f 37 01 a7|a7 01 37 7f) (mtvrwa v25,r23|mtvsrwa vs57,r23)
+++.*: (7f 5b 01 e6|e6 01 5b 7f) (mtfprwz f26,r27|mtvsrwz vs26,r27)
+++.*: (7f 5b 01 e6|e6 01 5b 7f) (mtfprwz f26,r27|mtvsrwz vs26,r27)
+++.*: (7f 7c 01 e7|e7 01 7c 7f) (mtvrwz v27,r28|mtvsrwz vs59,r28)
+++.*: (7f 7c 01 e7|e7 01 7c 7f) (mtvrwz v27,r28|mtvsrwz vs59,r28)
+++.*: (7d b3 6c 18|18 6c b3 7d) lxsspx vs13,r19,r13
+++.*: (7e 40 6c 18|18 6c 40 7e) lxsspx vs18,0,r13
+++.*: (7d 62 25 19|19 25 62 7d) stxsspx vs43,r2,r4
+++.*: (7e e0 5d 19|19 5d e0 7e) stxsspx vs55,0,r11
+++.*: (f2 d0 c8 05|05 c8 d0 f2) xsaddsp vs54,vs48,vs25
+++.*: (f1 d2 08 0c|0c 08 d2 f1) xsmaddasp vs14,vs50,vs1
+++.*: (f3 56 50 42|42 50 56 f3) xssubsp vs26,vs22,vs42
+++.*: (f3 75 a0 4e|4e a0 75 f3) xsmaddmsp vs27,vs53,vs52
+++.*: (f1 00 d8 2a|2a d8 00 f1) xsrsqrtesp vs8,vs59
+++.*: (f1 80 48 2e|2e 48 80 f1) xssqrtsp vs12,vs41
+++.*: (f3 2b 00 83|83 00 2b f3) xsmulsp vs57,vs11,vs32
+++.*: (f0 d4 d0 89|89 d0 d4 f0) xsmsubasp vs38,vs20,vs26
+++.*: (f3 53 30 c0|c0 30 53 f3) xsdivsp vs26,vs19,vs6
+++.*: (f0 65 b8 cf|cf b8 65 f0) xsmsubmsp vs35,vs37,vs55
+++.*: (f3 60 40 69|69 40 60 f3) xsresp vs59,vs8
+++.*: (f1 81 0c 0f|0f 0c 81 f1) xsnmaddasp vs44,vs33,vs33
+++.*: (f2 3e f4 4c|4c f4 3e f2) xsnmaddmsp vs17,vs62,vs30
+++.*: (f2 d4 fc 8d|8d fc d4 f2) xsnmsubasp vs54,vs52,vs31
+++.*: (f0 a5 d4 cb|cb d4 a5 f0) xsnmsubmsp vs37,vs5,vs58
+++.*: (f3 d6 65 56|56 65 d6 f3) xxlorc vs30,vs54,vs44
+++.*: (f2 2e ed 91|91 ed 2e f2) xxlnand vs49,vs14,vs29
+++.*: (f3 d6 f5 d1|d1 f5 d6 f3) xxleqv vs62,vs22,vs30
+++.*: (f3 80 b4 2f|2f b4 80 f3) xscvdpspn vs60,vs54
+++.*: (f2 c0 6c 66|66 6c c0 f2) xsrsp vs22,vs45
+++.*: (f3 40 dc a2|a2 dc 40 f3) xscvuxdsp vs26,vs59
+++.*: (f0 c0 8c e3|e3 8c c0 f0) xscvsxdsp vs38,vs49
+++.*: (f3 60 d5 2d|2d d5 60 f3) xscvspdpn vs59,vs26
+++.*: (ff 0e 16 8c|8c 16 0e ff) fmrgow f24,f14,f2
+++.*: (fe c7 2f 8c|8c 2f c7 fe) fmrgew f22,f7,f5
++ #pass
++diff --git a/gas/testsuite/gas/ppc/xvtlsbb.d b/gas/testsuite/gas/ppc/xvtlsbb.d
++index 1627d7afc6..8aa83dd62c 100644
++--- a/gas/testsuite/gas/ppc/xvtlsbb.d
+++++ b/gas/testsuite/gas/ppc/xvtlsbb.d
++@@ -7,7 +7,7 @@
++ Disassembly of section \.text:
++
++ 0+0 <_start>:
++-.*: (f0 02 ff 6e|6e ff 02 f0) xvtlsbb vs63
+++.*: (f0 02 ff 6e|6e ff 02 f0) xvtlsbb cr0,vs63
++ .*: (f0 82 07 6c|6c 07 82 f0) xvtlsbb cr1,vs0
++ .*: (f1 02 f7 6e|6e f7 02 f1) xvtlsbb cr2,vs62
++ .*: (f1 82 0f 6c|6c 0f 82 f1) xvtlsbb cr3,vs1
++diff --git a/gold/ChangeLog b/gold/ChangeLog
++index 85fefa989f..03d99a52fe 100644
++--- a/gold/ChangeLog
+++++ b/gold/ChangeLog
++@@ -1,3 +1,84 @@
+++2020-10-09 Alan Modra <amodra@gmail.com>
+++
+++ * 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.
+++
+++2020-10-09 Alan Modra <amodra@gmail.com>
+++
+++ * powerpc.cc (is_got_reloc): New function.
+++ (Target_powerpc::Relocate::relocate): Use it here, exclude GOT
+++ relocs when looking for stubs.
+++
+++2020-10-08 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ * testsuite/split_i386.sh: Updated for --split-stack-adjust-size
+++ default change.
+++ * testsuite/split_x86_64.sh: Likewise.
+++
+++2020-10-08 Alan Modra <amodra@gmail.com>
+++
+++ * options.h (split_stack_adjust_size): Default to 0x100000.
+++
+++2020-09-26 Alan Modra <amodra@gmail.com>
+++
+++ * 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_.
+++
+++2020-09-24 Alan Modra <amodra@gmail.com>
+++
+++ * powerpc.cc (Target_powerpc::Relocate::relocate): Don't skip
+++ first insn of __tls_get_addr_opt stub.
+++
+++2020-09-24 Alan Modra <amodra@gmail.com>
+++
+++ Apply from master
+++ 2020-07-27 Alan Modra <amodra@gmail.com>
+++ * options.h (DEFINE_enum): Add optional_arg__ param, adjust
+++ all uses.
+++ (General_options): Add --power10-stubs and --no-power10-stubs.
+++ * options.cc (General_options::parse_no_power10_stubs): New.
+++ (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.
+++
++ 2020-09-19 Nick Clifton <nickc@redhat.com>
++
++ This is the 2.35.1 point release.
++diff --git a/gold/options.cc b/gold/options.cc
++index b13ae71ce1..6b194374c8 100644
++--- a/gold/options.cc
+++++ b/gold/options.cc
++@@ -464,6 +464,14 @@ General_options::parse_plugin_opt(const char*, const char* arg,
++ this->add_plugin_option(arg);
++ }
++
+++void
+++General_options::parse_no_power10_stubs(const char*, const char*,
+++ Command_line*)
+++{
+++ this->set_power10_stubs("no");
+++ this->set_user_set_power10_stubs();
+++}
+++
++ void
++ General_options::parse_R(const char* option, const char* arg,
++ Command_line* cmdline)
++@@ -1183,6 +1191,27 @@ General_options::finalize()
++ this->set_start_stop_visibility_enum(elfcpp::STV_PROTECTED);
++ }
++
+++ // Parse the --power10-stubs argument.
+++ if (!this->user_set_power10_stubs())
+++ {
+++ // --power10-stubs without an arg is equivalent to --power10-stubs=yes
+++ // but not specifying --power10-stubs at all should be equivalent to
+++ // --power10-stubs=auto. This doesn't fit into the notion of
+++ // "default_value", used both as a static initializer and to provide
+++ // a missing optional arg. Fix it here.
+++ this->set_power10_stubs("auto");
+++ this->set_power10_stubs_enum(POWER10_STUBS_AUTO);
+++ }
+++ else
+++ {
+++ if (strcmp(this->power10_stubs(), "auto") == 0)
+++ this->set_power10_stubs_enum(POWER10_STUBS_AUTO);
+++ else if (strcmp(this->power10_stubs(), "no") == 0)
+++ this->set_power10_stubs_enum(POWER10_STUBS_NO);
+++ else if (strcmp(this->power10_stubs(), "yes") == 0)
+++ this->set_power10_stubs_enum(POWER10_STUBS_YES);
+++ }
+++
++ // -M is equivalent to "-Map -".
++ if (this->print_map() && !this->user_set_Map())
++ {
++diff --git a/gold/options.h b/gold/options.h
++index 3c8d25a662..51d3614e6b 100644
++--- a/gold/options.h
+++++ b/gold/options.h
++@@ -481,9 +481,9 @@ struct Struct_special : public Struct_var
++ // After helparg__ should come an initializer list, like
++ // {"foo", "bar", "baz"}
++ #define DEFINE_enum(varname__, dashes__, shortname__, default_value__, \
++- helpstring__, helparg__, ...) \
+++ helpstring__, helparg__, optional_arg__, ...) \
++ DEFINE_var(varname__, dashes__, shortname__, default_value__, \
++- default_value__, helpstring__, helparg__, false, \
+++ default_value__, helpstring__, helparg__, optional_arg__, \
++ const char*, const char*, parse_choices_##varname__, false) \
++ private: \
++ static void parse_choices_##varname__(const char* option_name, \
++@@ -703,7 +703,7 @@ class General_options
++ N_("Use DT_NEEDED for all shared libraries"));
++
++ DEFINE_enum(assert, options::ONE_DASH, '\0', NULL,
++- N_("Ignored"), N_("[ignored]"),
+++ N_("Ignored"), N_("[ignored]"), false,
++ {"definitions", "nodefinitions", "nosymbolic", "pure-text"});
++
++ // b
++@@ -761,7 +761,7 @@ class General_options
++
++ DEFINE_enum(compress_debug_sections, options::TWO_DASHES, '\0', "none",
++ N_("Compress .debug_* sections in the output file"),
++- ("[none,zlib,zlib-gnu,zlib-gabi]"),
+++ ("[none,zlib,zlib-gnu,zlib-gabi]"), false,
++ {"none", "zlib", "zlib-gnu", "zlib-gabi"});
++
++ DEFINE_bool(copy_dt_needed_entries, options::TWO_DASHES, '\0', false,
++@@ -934,7 +934,7 @@ class General_options
++ N_("FRACTION"));
++
++ DEFINE_enum(hash_style, options::TWO_DASHES, '\0', DEFAULT_HASH_STYLE,
++- N_("Dynamic hash style"), N_("[sysv,gnu,both]"),
+++ N_("Dynamic hash style"), N_("[sysv,gnu,both]"), false,
++ {"sysv", "gnu", "both"});
++
++ // i
++@@ -946,7 +946,7 @@ class General_options
++ N_("Identical Code Folding. "
++ "\'--icf=safe\' Folds ctors, dtors and functions whose"
++ " pointers are definitely not taken"),
++- ("[none,all,safe]"),
+++ ("[none,all,safe]"), false,
++ {"none", "all", "safe"});
++
++ DEFINE_uint(icf_iterations, options::TWO_DASHES , '\0', 0,
++@@ -1086,7 +1086,7 @@ class General_options
++
++ DEFINE_enum(orphan_handling, options::TWO_DASHES, '\0', "place",
++ N_("Orphan section handling"), N_("[place,discard,warn,error]"),
++- {"place", "discard", "warn", "error"});
+++ false, {"place", "discard", "warn", "error"});
++
++ // p
++
++@@ -1141,6 +1141,12 @@ class General_options
++ N_("Use posix_fallocate to reserve space in the output file"),
++ N_("Use fallocate or ftruncate to reserve space"));
++
+++ DEFINE_enum(power10_stubs, options::TWO_DASHES, '\0', "yes",
+++ N_("(PowerPC64 only) stubs use power10 insns"),
+++ N_("[=auto,no,yes]"), true, {"auto", "no", "yes"});
+++ DEFINE_special(no_power10_stubs, options::TWO_DASHES, '\0',
+++ N_("(PowerPC64 only) stubs do not use power10 insns"), NULL);
+++
++ DEFINE_bool(preread_archive_symbols, options::TWO_DASHES, '\0', false,
++ N_("Preread archive symbols when multi-threaded"), NULL);
++
++@@ -1236,7 +1242,7 @@ class General_options
++ DEFINE_enum(sort_section, options::TWO_DASHES, '\0', "none",
++ N_("Sort sections by name. \'--no-text-reorder\'"
++ " will override \'--sort-section=name\' for .text"),
++- N_("[none,name]"),
+++ N_("[none,name]"), false,
++ {"none", "name"});
++
++ DEFINE_uint(spare_dynamic_tags, options::TWO_DASHES, '\0', 5,
++@@ -1254,7 +1260,7 @@ class General_options
++ "output sections"),
++ N_("(PowerPC only) Each output section has its own stubs"));
++
++- DEFINE_uint(split_stack_adjust_size, options::TWO_DASHES, '\0', 0x4000,
+++ DEFINE_uint(split_stack_adjust_size, options::TWO_DASHES, '\0', 0x100000,
++ N_("Stack size when -fsplit-stack function calls non-split"),
++ N_("SIZE"));
++
++@@ -1287,7 +1293,7 @@ class General_options
++ NULL);
++ DEFINE_enum(target2, options::TWO_DASHES, '\0', NULL,
++ N_("(ARM only) Set R_ARM_TARGET2 relocation type"),
++- N_("[rel, abs, got-rel"),
+++ N_("[rel, abs, got-rel"), false,
++ {"rel", "abs", "got-rel"});
++
++ DEFINE_bool(text_reorder, options::TWO_DASHES, '\0', true,
++@@ -1344,7 +1350,7 @@ class General_options
++ DEFINE_enum(unresolved_symbols, options::TWO_DASHES, '\0', NULL,
++ N_("How to handle unresolved symbols"),
++ ("ignore-all,report-all,ignore-in-object-files,"
++- "ignore-in-shared-libs"),
+++ "ignore-in-shared-libs"), false,
++ {"ignore-all", "report-all", "ignore-in-object-files",
++ "ignore-in-shared-libs"});
++
++@@ -1507,7 +1513,7 @@ class General_options
++ DEFINE_enum(start_stop_visibility, options::DASH_Z, '\0', "protected",
++ N_("ELF symbol visibility for synthesized "
++ "__start_* and __stop_* symbols"),
++- ("[default,internal,hidden,protected]"),
+++ ("[default,internal,hidden,protected]"), false,
++ {"default", "internal", "hidden", "protected"});
++ DEFINE_bool(text, options::DASH_Z, '\0', false,
++ N_("Do not permit relocations in read-only segments"),
++@@ -1763,6 +1769,20 @@ class General_options
++ start_stop_visibility_enum() const
++ { return this->start_stop_visibility_enum_; }
++
+++ enum Power10_stubs
+++ {
+++ // Use Power10 insns on @notoc calls/branches, non-Power10 elsewhere.
+++ POWER10_STUBS_AUTO,
+++ // Don't use Power10 insns
+++ POWER10_STUBS_NO,
+++ // Always use Power10 insns
+++ POWER10_STUBS_YES
+++ };
+++
+++ Power10_stubs
+++ power10_stubs_enum() const
+++ { return this->power10_stubs_enum_; }
+++
++ private:
++ // Don't copy this structure.
++ General_options(const General_options&);
++@@ -1826,6 +1846,10 @@ class General_options
++ set_start_stop_visibility_enum(elfcpp::STV value)
++ { this->start_stop_visibility_enum_ = value; }
++
+++ void
+++ set_power10_stubs_enum(Power10_stubs value)
+++ { this->power10_stubs_enum_ = value; }
+++
++ // These are called by finalize() to set up the search-path correctly.
++ void
++ add_to_library_path_with_sysroot(const std::string& arg)
++@@ -1895,6 +1919,8 @@ class General_options
++ Orphan_handling orphan_handling_enum_;
++ // Symbol visibility for __start_* / __stop_* magic symbols.
++ elfcpp::STV start_stop_visibility_enum_;
+++ // Power10 stubs option
+++ Power10_stubs power10_stubs_enum_;
++ };
++
++ // The position-dependent options. We use this to store the state of
++diff --git a/gold/powerpc.cc b/gold/powerpc.cc
++index 59ba40dc3f..476fb4e588 100644
++--- a/gold/powerpc.cc
+++++ b/gold/powerpc.cc
++@@ -647,7 +647,7 @@ class Target_powerpc : public Sized_target<size, big_endian>
++ glink_(NULL), rela_dyn_(NULL), copy_relocs_(),
++ tlsld_got_offset_(-1U),
++ stub_tables_(), branch_lookup_table_(), branch_info_(), tocsave_loc_(),
++- power10_stubs_(false), plt_thread_safe_(false), plt_localentry0_(false),
+++ power10_relocs_(false), plt_thread_safe_(false), plt_localentry0_(false),
++ plt_localentry0_init_(false), has_localentry0_(false),
++ has_tls_get_addr_opt_(false),
++ tprel_opt_(parameters->options().tls_optimize()),
++@@ -1079,14 +1079,25 @@ class Target_powerpc : public Sized_target<size, big_endian>
++ sym->set_dynsym_index(-1U);
++ }
++
+++ void
+++ set_power10_relocs()
+++ {
+++ this->power10_relocs_ = true;
+++ }
+++
++ bool
++ power10_stubs() const
++- { return this->power10_stubs_; }
+++ {
+++ return (this->power10_relocs_
+++ && (parameters->options().power10_stubs_enum()
+++ != General_options::POWER10_STUBS_NO));
+++ }
++
++- void
++- set_power10_stubs()
+++ bool
+++ power10_stubs_auto() const
++ {
++- this->power10_stubs_ = true;
+++ return (parameters->options().power10_stubs_enum()
+++ == General_options::POWER10_STUBS_AUTO);
++ }
++
++ bool
++@@ -1097,6 +1108,10 @@ class Target_powerpc : public Sized_target<size, big_endian>
++ plt_localentry0() const
++ { return this->plt_localentry0_; }
++
+++ bool
+++ has_localentry0() const
+++ { return this->has_localentry0_; }
+++
++ void
++ set_has_localentry0()
++ {
++@@ -1696,7 +1711,7 @@ class Target_powerpc : public Sized_target<size, big_endian>
++ Branches branch_info_;
++ Tocsave_loc tocsave_loc_;
++
++- bool power10_stubs_;
+++ bool power10_relocs_;
++ bool plt_thread_safe_;
++ bool plt_localentry0_;
++ bool plt_localentry0_init_;
++@@ -1869,6 +1884,19 @@ is_plt16_reloc(unsigned int r_type)
++ || (size == 64 && r_type == elfcpp::R_PPC64_PLT16_LO_DS));
++ }
++
+++// GOT_TYPE_STANDARD (ie. not TLS) GOT relocs
+++inline bool
+++is_got_reloc(unsigned int r_type)
+++{
+++ return (r_type == elfcpp::R_POWERPC_GOT16
+++ || r_type == elfcpp::R_POWERPC_GOT16_LO
+++ || r_type == elfcpp::R_POWERPC_GOT16_HI
+++ || r_type == elfcpp::R_POWERPC_GOT16_HA
+++ || r_type == elfcpp::R_PPC64_GOT16_DS
+++ || r_type == elfcpp::R_PPC64_GOT16_LO_DS
+++ || r_type == elfcpp::R_PPC64_GOT_PCREL34);
+++}
+++
++ // If INSN is an opcode that may be used with an @tls operand, return
++ // the transformed insn for TLS optimisation, otherwise return 0. If
++ // REG is non-zero only match an insn with RB or RA equal to REG.
++@@ -2739,8 +2767,6 @@ Powerpc_relobj<size, big_endian>::do_relocate_sections(
++ if (this->local_has_plt_offset(i))
++ {
++ Address value = this->local_symbol_value(i, 0);
++- if (size == 64)
++- value += ppc64_local_entry_offset(i);
++ size_t off = this->local_plt_offset(i);
++ elfcpp::Swap<size, big_endian>::writeval(oview + off, value);
++ modified = true;
++@@ -3511,6 +3537,7 @@ Target_powerpc<size, big_endian>::Branch_info::make_stub(
++ from += (this->object_->output_section(this->shndx_)->address()
++ + this->offset_);
++ Address to;
+++ unsigned int other;
++ if (gsym != NULL)
++ {
++ switch (gsym->source())
++@@ -3538,8 +3565,7 @@ Target_powerpc<size, big_endian>::Branch_info::make_stub(
++ to = symtab->compute_final_value<size>(gsym, &status);
++ if (status != Symbol_table::CFVS_OK)
++ return true;
++- if (size == 64)
++- to += this->object_->ppc64_local_entry_offset(gsym);
+++ other = gsym->nonvis() >> 3;
++ }
++ else
++ {
++@@ -3556,8 +3582,7 @@ Target_powerpc<size, big_endian>::Branch_info::make_stub(
++ || !symval.has_output_value())
++ return true;
++ to = symval.value(this->object_, 0);
++- if (size == 64)
++- to += this->object_->ppc64_local_entry_offset(this->r_sym_);
+++ other = this->object_->st_other(this->r_sym_) >> 5;
++ }
++ if (!(size == 32 && this->r_type_ == elfcpp::R_PPC_PLTREL24))
++ to += this->addend_;
++@@ -3570,7 +3595,11 @@ Target_powerpc<size, big_endian>::Branch_info::make_stub(
++ &to, &dest_shndx))
++ return true;
++ }
++- Address delta = to - from;
+++ unsigned int local_ent = 0;
+++ if (size == 64
+++ && this->r_type_ != elfcpp::R_PPC64_REL24_NOTOC)
+++ local_ent = elfcpp::ppc64_decode_local_entry(other);
+++ Address delta = to + local_ent - from;
++ if (delta + max_branch_offset >= 2 * max_branch_offset
++ || (size == 64
++ && this->r_type_ == elfcpp::R_PPC64_REL24_NOTOC
++@@ -3592,7 +3621,7 @@ Target_powerpc<size, big_endian>::Branch_info::make_stub(
++ && gsym->output_data() == target->savres_section());
++ ok = stub_table->add_long_branch_entry(this->object_,
++ this->r_type_,
++- from, to, save_res);
+++ from, to, other, save_res);
++ }
++ }
++ if (!ok)
++@@ -4181,6 +4210,7 @@ static const uint32_t cmpwi_11_0 = 0x2c0b0000;
++ static const uint32_t cror_15_15_15 = 0x4def7b82;
++ static const uint32_t cror_31_31_31 = 0x4ffffb82;
++ static const uint32_t ld_0_1 = 0xe8010000;
+++static const uint32_t ld_0_11 = 0xe80b0000;
++ static const uint32_t ld_0_12 = 0xe80c0000;
++ static const uint32_t ld_2_1 = 0xe8410000;
++ static const uint32_t ld_2_2 = 0xe8420000;
++@@ -4563,9 +4593,9 @@ static const unsigned char glink_eh_frame_fde_64v1[] =
++ 0, 0, 0, 0, // Replaced with offset to .glink.
++ 0, 0, 0, 0, // Replaced with size of .glink.
++ 0, // Augmentation size.
++- elfcpp::DW_CFA_advance_loc + 1,
+++ elfcpp::DW_CFA_advance_loc + 2,
++ elfcpp::DW_CFA_register, 65, 12,
++- elfcpp::DW_CFA_advance_loc + 5,
+++ elfcpp::DW_CFA_advance_loc + 4,
++ elfcpp::DW_CFA_restore_extended, 65
++ };
++
++@@ -4575,9 +4605,20 @@ static const unsigned char glink_eh_frame_fde_64v2[] =
++ 0, 0, 0, 0, // Replaced with offset to .glink.
++ 0, 0, 0, 0, // Replaced with size of .glink.
++ 0, // Augmentation size.
++- elfcpp::DW_CFA_advance_loc + 1,
+++ elfcpp::DW_CFA_advance_loc + 2,
+++ elfcpp::DW_CFA_register, 65, 0,
+++ elfcpp::DW_CFA_advance_loc + 2,
+++ elfcpp::DW_CFA_restore_extended, 65
+++};
+++
+++static const unsigned char glink_eh_frame_fde_64v2_localentry0[] =
+++{
+++ 0, 0, 0, 0, // Replaced with offset to .glink.
+++ 0, 0, 0, 0, // Replaced with size of .glink.
+++ 0, // Augmentation size.
+++ elfcpp::DW_CFA_advance_loc + 3,
++ elfcpp::DW_CFA_register, 65, 0,
++- elfcpp::DW_CFA_advance_loc + 7,
+++ elfcpp::DW_CFA_advance_loc + 2,
++ elfcpp::DW_CFA_restore_extended, 65
++ };
++
++@@ -4631,26 +4672,33 @@ class Stub_table : public Output_relaxed_input_section
++ struct Plt_stub_ent
++ {
++ Plt_stub_ent(unsigned int off, unsigned int indx)
++- : off_(off), indx_(indx), iter_(0), notoc_(0), r2save_(0), localentry0_(0)
+++ : off_(off), indx_(indx), iter_(0), notoc_(0), toc_(0),
+++ r2save_(0), localentry0_(0), tocoff_(0)
++ { }
++
++ unsigned int off_;
++- unsigned int indx_ : 28;
+++ unsigned int indx_;
++ unsigned int iter_ : 1;
++ unsigned int notoc_ : 1;
+++ unsigned int toc_ : 1;
++ unsigned int r2save_ : 1;
++ unsigned int localentry0_ : 1;
+++ unsigned int tocoff_ : 8;
++ };
++ struct Branch_stub_ent
++ {
++ Branch_stub_ent(unsigned int off, bool notoc, bool save_res)
++- : off_(off), iter_(false), notoc_(notoc), save_res_(save_res)
+++ : off_(off), iter_(0), notoc_(notoc), toc_(0), save_res_(save_res),
+++ other_(0), tocoff_(0)
++ { }
++
++ unsigned int off_;
++- bool iter_;
++- bool notoc_;
++- bool save_res_;
+++ unsigned int iter_ : 1;
+++ unsigned int notoc_ : 1;
+++ unsigned int toc_ : 1;
+++ unsigned int save_res_ : 1;
+++ unsigned int other_ : 3;
+++ unsigned int tocoff_ : 8;
++ };
++ typedef typename elfcpp::Elf_types<size>::Elf_Addr Address;
++ static const Address invalid_address = static_cast<Address>(0) - 1;
++@@ -4716,7 +4764,7 @@ class Stub_table : public Output_relaxed_input_section
++ // Add a long branch stub.
++ bool
++ add_long_branch_entry(const Powerpc_relobj<size, big_endian>*,
++- unsigned int, Address, Address, bool);
+++ unsigned int, Address, Address, unsigned int, bool);
++
++ const Branch_stub_ent*
++ find_long_branch_entry(const Powerpc_relobj<size, big_endian>*,
++@@ -4898,7 +4946,7 @@ class Stub_table : public Output_relaxed_input_section
++
++ // Size of a given plt call stub.
++ unsigned int
++- plt_call_size(typename Plt_stub_entries::const_iterator p) const;
+++ plt_call_size(typename Plt_stub_entries::iterator p) const;
++
++ unsigned int
++ plt_call_align(unsigned int bytes) const
++@@ -4909,16 +4957,14 @@ class Stub_table : public Output_relaxed_input_section
++
++ // Return long branch stub size.
++ unsigned int
++- branch_stub_size(typename Branch_stub_entries::const_iterator p,
+++ branch_stub_size(typename Branch_stub_entries::iterator p,
++ bool* need_lt);
++
++- bool
++- build_tls_opt_head(unsigned char** pp,
++- typename Plt_stub_entries::const_iterator cs);
+++ void
+++ build_tls_opt_head(unsigned char** pp, bool save_lr);
++
++- bool
++- build_tls_opt_tail(unsigned char* p,
++- typename Plt_stub_entries::const_iterator cs);
+++ void
+++ build_tls_opt_tail(unsigned char* p);
++
++ void
++ plt_error(const Plt_stub_key& p);
++@@ -5083,15 +5129,22 @@ Stub_table<size, big_endian>::add_plt_call_entry(
++ if (r_type == elfcpp::R_PPC64_REL24_NOTOC)
++ {
++ if (!p.second && !p.first->second.notoc_
++- && !this->targ_->power10_stubs())
+++ && (!this->targ_->power10_stubs()
+++ || this->targ_->power10_stubs_auto()))
++ this->need_resize_ = true;
++ p.first->second.notoc_ = 1;
++ }
++- else if (!tocsave && !p.first->second.localentry0_)
+++ else
++ {
++- if (!p.second && !p.first->second.r2save_)
+++ if (!p.second && !p.first->second.toc_)
++ this->need_resize_ = true;
++- p.first->second.r2save_ = 1;
+++ p.first->second.toc_ = 1;
+++ if (!tocsave && !p.first->second.localentry0_)
+++ {
+++ if (!p.second && !p.first->second.r2save_)
+++ this->need_resize_ = true;
+++ p.first->second.r2save_ = 1;
+++ }
++ }
++ }
++ if (p.second || (this->resizing_ && !p.first->second.iter_))
++@@ -5134,15 +5187,22 @@ Stub_table<size, big_endian>::add_plt_call_entry(
++ if (r_type == elfcpp::R_PPC64_REL24_NOTOC)
++ {
++ if (!p.second && !p.first->second.notoc_
++- && !this->targ_->power10_stubs())
+++ && (!this->targ_->power10_stubs()
+++ || this->targ_->power10_stubs_auto()))
++ this->need_resize_ = true;
++ p.first->second.notoc_ = 1;
++ }
++- else if (!tocsave && !p.first->second.localentry0_)
+++ else
++ {
++- if (!p.second && !p.first->second.r2save_)
+++ if (!p.second && !p.first->second.toc_)
++ this->need_resize_ = true;
++- p.first->second.r2save_ = 1;
+++ p.first->second.toc_ = 1;
+++ if (!tocsave && !p.first->second.localentry0_)
+++ {
+++ if (!p.second && !p.first->second.r2save_)
+++ this->need_resize_ = true;
+++ p.first->second.r2save_ = 1;
+++ }
++ }
++ }
++ if (p.second || (this->resizing_ && !p.first->second.iter_))
++@@ -5224,6 +5284,7 @@ Stub_table<size, big_endian>::add_long_branch_entry(
++ unsigned int r_type,
++ Address from,
++ Address to,
+++ unsigned int other,
++ bool save_res)
++ {
++ Branch_stub_key key(object, to);
++@@ -5231,11 +5292,20 @@ Stub_table<size, big_endian>::add_long_branch_entry(
++ Branch_stub_ent ent(this->branch_size_, notoc, save_res);
++ std::pair<typename Branch_stub_entries::iterator, bool> p
++ = this->long_branch_stubs_.insert(std::make_pair(key, ent));
++- if (notoc && !p.first->second.notoc_)
+++ if (notoc)
++ {
++- this->need_resize_ = true;
+++ if (!p.second && !p.first->second.notoc_)
+++ this->need_resize_ = true;
++ p.first->second.notoc_ = true;
++ }
+++ else
+++ {
+++ if (!p.second && !p.first->second.toc_)
+++ this->need_resize_ = true;
+++ p.first->second.toc_ = true;
+++ }
+++ if (p.first->second.other_ == 0)
+++ p.first->second.other_ = other;
++ gold_assert(save_res == p.first->second.save_res_);
++ if (p.second || (this->resizing_ && !p.first->second.iter_))
++ {
++@@ -5330,7 +5400,7 @@ Stub_table<size, big_endian>::add_eh_frame(Layout* layout)
++ if (!this->targ_->has_glink())
++ return;
++
++- typedef typename Plt_stub_entries::const_iterator plt_iter;
+++ typedef typename Plt_stub_entries::iterator plt_iter;
++ std::vector<plt_iter> calls;
++ if (!this->plt_call_stubs_.empty())
++ for (plt_iter cs = this->plt_call_stubs_.begin();
++@@ -5491,7 +5561,8 @@ class Output_data_glink : public Output_section_data
++ {
++ if (size == 64)
++ return (8
++- + (this->targ_->abiversion() < 2 ? 11 * 4 : 14 * 4));
+++ + (this->targ_->abiversion() < 2 ? 11 * 4
+++ : this->targ_->has_localentry0() ? 14 * 4 : 13 * 4));
++ return 16 * 4;
++ }
++
++@@ -5534,6 +5605,12 @@ Output_data_glink<size, big_endian>::add_eh_frame(Layout* layout)
++ sizeof (Eh_cie<64>::eh_frame_cie),
++ glink_eh_frame_fde_64v1,
++ sizeof (glink_eh_frame_fde_64v1));
+++ else if (this->targ_->has_localentry0())
+++ layout->add_eh_frame_for_plt(this,
+++ Eh_cie<64>::eh_frame_cie,
+++ sizeof (Eh_cie<64>::eh_frame_cie),
+++ glink_eh_frame_fde_64v2_localentry0,
+++ sizeof (glink_eh_frame_fde_64v2));
++ else
++ layout->add_eh_frame_for_plt(this,
++ Eh_cie<64>::eh_frame_cie,
++@@ -5632,7 +5709,7 @@ Stub_table<size, big_endian>::define_stub_syms(Symbol_table* symtab)
++ // output .symtab ordering depends on the order in which symbols
++ // are added to the linker symtab. We want reproducible output
++ // so must sort the call stub symbols.
++- typedef typename Plt_stub_entries::const_iterator plt_iter;
+++ typedef typename Plt_stub_entries::iterator plt_iter;
++ std::vector<plt_iter> sorted;
++ sorted.resize(this->plt_call_stubs_.size());
++
++@@ -5676,7 +5753,7 @@ Stub_table<size, big_endian>::define_stub_syms(Symbol_table* symtab)
++ }
++ }
++
++- typedef typename Branch_stub_entries::const_iterator branch_iter;
+++ typedef typename Branch_stub_entries::iterator branch_iter;
++ for (branch_iter bs = this->long_branch_stubs_.begin();
++ bs != this->long_branch_stubs_.end();
++ ++bs)
++@@ -5698,88 +5775,72 @@ Stub_table<size, big_endian>::define_stub_syms(Symbol_table* symtab)
++ // Emit the start of a __tls_get_addr_opt plt call stub.
++
++ template<int size, bool big_endian>
++-bool
++-Stub_table<size, big_endian>::build_tls_opt_head(
++- unsigned char** pp,
++- typename Plt_stub_entries::const_iterator cs)
+++void
+++Stub_table<size, big_endian>::build_tls_opt_head(unsigned char** pp,
+++ bool save_lr)
++ {
++- if (this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ unsigned char* p = *pp;
+++ if (size == 64)
++ {
++- unsigned char* p = *pp;
++- if (size == 64)
++- {
++- write_insn<big_endian>(p, ld_11_3 + 0);
++- p += 4;
++- write_insn<big_endian>(p, ld_12_3 + 8);
++- p += 4;
++- write_insn<big_endian>(p, mr_0_3);
++- p += 4;
++- write_insn<big_endian>(p, cmpdi_11_0);
++- p += 4;
++- write_insn<big_endian>(p, add_3_12_13);
++- p += 4;
++- write_insn<big_endian>(p, beqlr);
++- p += 4;
++- write_insn<big_endian>(p, mr_3_0);
++- p += 4;
++- if (cs->second.r2save_ && !cs->second.localentry0_)
++- {
++- write_insn<big_endian>(p, mflr_11);
++- p += 4;
++- write_insn<big_endian>(p, (std_11_1 + this->targ_->stk_linker()));
++- p += 4;
++- }
++- }
++- else
+++ write_insn<big_endian>(p, ld_11_3 + 0);
+++ p += 4;
+++ write_insn<big_endian>(p, ld_12_3 + 8);
+++ p += 4;
+++ write_insn<big_endian>(p, mr_0_3);
+++ p += 4;
+++ write_insn<big_endian>(p, cmpdi_11_0);
+++ p += 4;
+++ write_insn<big_endian>(p, add_3_12_13);
+++ p += 4;
+++ write_insn<big_endian>(p, beqlr);
+++ p += 4;
+++ write_insn<big_endian>(p, mr_3_0);
+++ p += 4;
+++ if (save_lr)
++ {
++- write_insn<big_endian>(p, lwz_11_3 + 0);
++- p += 4;
++- write_insn<big_endian>(p, lwz_12_3 + 4);
++- p += 4;
++- write_insn<big_endian>(p, mr_0_3);
++- p += 4;
++- write_insn<big_endian>(p, cmpwi_11_0);
++- p += 4;
++- write_insn<big_endian>(p, add_3_12_2);
++- p += 4;
++- write_insn<big_endian>(p, beqlr);
++- p += 4;
++- write_insn<big_endian>(p, mr_3_0);
+++ write_insn<big_endian>(p, mflr_11);
++ p += 4;
++- write_insn<big_endian>(p, nop);
+++ write_insn<big_endian>(p, (std_11_1 + this->targ_->stk_linker()));
++ p += 4;
++ }
++- *pp = p;
++- return true;
++ }
++- return false;
++-}
++-
++-// Emit the tail of a __tls_get_addr_opt plt call stub.
++-
++-template<int size, bool big_endian>
++-bool
++-Stub_table<size, big_endian>::build_tls_opt_tail(
++- unsigned char* p,
++- typename Plt_stub_entries::const_iterator cs)
++-{
++- if (size == 64
++- && cs->second.r2save_
++- && !cs->second.localentry0_
++- && this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ else
++ {
++- write_insn<big_endian>(p, bctrl);
+++ write_insn<big_endian>(p, lwz_11_3 + 0);
++ p += 4;
++- write_insn<big_endian>(p, ld_2_1 + this->targ_->stk_toc());
+++ write_insn<big_endian>(p, lwz_12_3 + 4);
++ p += 4;
++- write_insn<big_endian>(p, ld_11_1 + this->targ_->stk_linker());
+++ write_insn<big_endian>(p, mr_0_3);
++ p += 4;
++- write_insn<big_endian>(p, mtlr_11);
+++ write_insn<big_endian>(p, cmpwi_11_0);
+++ p += 4;
+++ write_insn<big_endian>(p, add_3_12_2);
+++ p += 4;
+++ write_insn<big_endian>(p, beqlr);
+++ p += 4;
+++ write_insn<big_endian>(p, mr_3_0);
+++ p += 4;
+++ write_insn<big_endian>(p, nop);
++ p += 4;
++- write_insn<big_endian>(p, blr);
++- return true;
++ }
++- return false;
+++ *pp = p;
+++}
+++
+++// Emit the tail of a __tls_get_addr_opt plt call stub.
+++
+++template<int size, bool big_endian>
+++void
+++Stub_table<size, big_endian>::build_tls_opt_tail(unsigned char* p)
+++{
+++ write_insn<big_endian>(p, bctrl);
+++ p += 4;
+++ write_insn<big_endian>(p, ld_2_1 + this->targ_->stk_toc());
+++ p += 4;
+++ write_insn<big_endian>(p, ld_11_1 + this->targ_->stk_linker());
+++ p += 4;
+++ write_insn<big_endian>(p, mtlr_11);
+++ p += 4;
+++ write_insn<big_endian>(p, blr);
++ }
++
++ // Emit pc-relative plt call stub code.
++@@ -5949,7 +6010,7 @@ build_notoc_offset(unsigned char* p, uint64_t off, bool load)
++ template<int size, bool big_endian>
++ unsigned int
++ Stub_table<size, big_endian>::plt_call_size(
++- typename Plt_stub_entries::const_iterator p) const
+++ typename Plt_stub_entries::iterator p) const
++ {
++ if (size == 32)
++ {
++@@ -5961,77 +6022,122 @@ Stub_table<size, big_endian>::plt_call_size(
++ const Output_data_plt_powerpc<size, big_endian>* plt;
++ uint64_t plt_addr = this->plt_off(p, &plt);
++ plt_addr += plt->address();
++- unsigned int bytes = 0;
++- const Symbol* gsym = p->first.sym_;
++- if (this->targ_->is_tls_get_addr_opt(gsym))
+++ if (this->targ_->power10_stubs()
+++ && this->targ_->power10_stubs_auto())
++ {
++- if (p->second.r2save_ && !p->second.localentry0_)
++- bytes = 13 * 4;
++- else
++- bytes = 7 * 4;
+++ unsigned int bytes = 0;
+++ if (p->second.notoc_)
+++ {
+++ if (this->targ_->is_tls_get_addr_opt(p->first.sym_))
+++ bytes = 7 * 4;
+++ uint64_t from = this->stub_address() + p->second.off_ + bytes;
+++ uint64_t odd = from & 4;
+++ uint64_t off = plt_addr - from;
+++ if (off - odd + (1ULL << 33) < 1ULL << 34)
+++ bytes += odd + 4 * 4;
+++ else if (off - (8 - odd) + (0x20002ULL << 32) < 0x40004ULL << 32)
+++ bytes += 7 * 4;
+++ else
+++ bytes += 8 * 4;
+++ bytes = this->plt_call_align(bytes);
+++ }
+++ unsigned int tail = 0;
+++ if (p->second.toc_)
+++ {
+++ p->second.tocoff_ = bytes;
+++ if (this->targ_->is_tls_get_addr_opt(p->first.sym_))
+++ {
+++ bytes += 7 * 4;
+++ if (p->second.r2save_ && !p->second.localentry0_)
+++ {
+++ bytes += 2 * 4;
+++ tail = 4 * 4;
+++ }
+++ }
+++ if (p->second.r2save_)
+++ bytes += 4;
+++ uint64_t got_addr
+++ = this->targ_->got_section()->output_section()->address();
+++ const Powerpc_relobj<size, big_endian>* ppcobj = static_cast
+++ <const Powerpc_relobj<size, big_endian>*>(p->first.object_);
+++ got_addr += ppcobj->toc_base_offset();
+++ uint64_t off = plt_addr - got_addr;
+++ bytes += 3 * 4 + 4 * (ha(off) != 0);
+++ }
+++ return bytes + tail;
++ }
++-
++- if (p->second.r2save_)
++- bytes += 4;
++-
++- if (this->targ_->power10_stubs())
+++ else
++ {
++- uint64_t from = this->stub_address() + p->second.off_ + bytes;
++- if (bytes > 8 * 4)
++- from -= 4 * 4;
++- uint64_t odd = from & 4;
++- uint64_t off = plt_addr - from;
++- if (off - odd + (1ULL << 33) < 1ULL << 34)
++- bytes += odd + 4 * 4;
++- else if (off - (8 - odd) + (0x20002ULL << 32) < 0x40004ULL << 32)
++- bytes += 7 * 4;
++- else
++- bytes += 8 * 4;
++- return bytes;
++- }
+++ unsigned int bytes = 0;
+++ unsigned int tail = 0;
+++ if (this->targ_->is_tls_get_addr_opt(p->first.sym_))
+++ {
+++ bytes = 7 * 4;
+++ if (p->second.r2save_ && !p->second.localentry0_)
+++ {
+++ bytes = 9 * 4;
+++ tail = 4 * 4;
+++ }
+++ }
++
++- if (p->second.notoc_)
++- {
++- uint64_t from = this->stub_address() + p->second.off_ + bytes + 2 * 4;
++- if (bytes > 32)
++- from -= 4 * 4;
++- uint64_t off = plt_addr - from;
++- if (off + 0x8000 < 0x10000)
++- bytes += 7 * 4;
++- else if (off + 0x80008000ULL < 0x100000000ULL)
++- bytes += 8 * 4;
++- else
+++ if (p->second.r2save_)
+++ bytes += 4;
+++
+++ if (this->targ_->power10_stubs())
++ {
++- bytes += 8 * 4;
++- if (off + 0x800000000000ULL >= 0x1000000000000ULL
++- && ((off >> 32) & 0xffff) != 0)
++- bytes += 4;
++- if (((off >> 32) & 0xffffffffULL) != 0)
++- bytes += 4;
++- if (hi(off) != 0)
++- bytes += 4;
++- if (l(off) != 0)
++- bytes += 4;
+++ uint64_t from = this->stub_address() + p->second.off_ + bytes;
+++ uint64_t odd = from & 4;
+++ uint64_t off = plt_addr - from;
+++ if (off - odd + (1ULL << 33) < 1ULL << 34)
+++ bytes += odd + 4 * 4;
+++ else if (off - (8 - odd) + (0x20002ULL << 32) < 0x40004ULL << 32)
+++ bytes += 7 * 4;
+++ else
+++ bytes += 8 * 4;
+++ return bytes + tail;
++ }
++- return bytes;
++- }
++
++- uint64_t got_addr = this->targ_->got_section()->output_section()->address();
++- const Powerpc_relobj<size, big_endian>* ppcobj = static_cast
++- <const Powerpc_relobj<size, big_endian>*>(p->first.object_);
++- got_addr += ppcobj->toc_base_offset();
++- uint64_t off = plt_addr - got_addr;
++- bytes += 3 * 4 + 4 * (ha(off) != 0);
++- if (this->targ_->abiversion() < 2)
++- {
++- bool static_chain = parameters->options().plt_static_chain();
++- bool thread_safe = this->targ_->plt_thread_safe();
++- bytes += (4
++- + 4 * static_chain
++- + 8 * thread_safe
++- + 4 * (ha(off + 8 + 8 * static_chain) != ha(off)));
+++ if (p->second.notoc_)
+++ {
+++ uint64_t from = this->stub_address() + p->second.off_ + bytes + 2 * 4;
+++ uint64_t off = plt_addr - from;
+++ if (off + 0x8000 < 0x10000)
+++ bytes += 7 * 4;
+++ else if (off + 0x80008000ULL < 0x100000000ULL)
+++ bytes += 8 * 4;
+++ else
+++ {
+++ bytes += 8 * 4;
+++ if (off + 0x800000000000ULL >= 0x1000000000000ULL
+++ && ((off >> 32) & 0xffff) != 0)
+++ bytes += 4;
+++ if (((off >> 32) & 0xffffffffULL) != 0)
+++ bytes += 4;
+++ if (hi(off) != 0)
+++ bytes += 4;
+++ if (l(off) != 0)
+++ bytes += 4;
+++ }
+++ return bytes + tail;
+++ }
+++
+++ uint64_t got_addr = this->targ_->got_section()->output_section()->address();
+++ const Powerpc_relobj<size, big_endian>* ppcobj = static_cast
+++ <const Powerpc_relobj<size, big_endian>*>(p->first.object_);
+++ got_addr += ppcobj->toc_base_offset();
+++ uint64_t off = plt_addr - got_addr;
+++ bytes += 3 * 4 + 4 * (ha(off) != 0);
+++ if (this->targ_->abiversion() < 2)
+++ {
+++ bool static_chain = parameters->options().plt_static_chain();
+++ bool thread_safe = this->targ_->plt_thread_safe();
+++ bytes += (4
+++ + 4 * static_chain
+++ + 8 * thread_safe
+++ + 4 * (ha(off + 8 + 8 * static_chain) != ha(off)));
+++ }
+++ return bytes + tail;
++ }
++- return bytes;
++ }
++
++ // Return long branch stub size.
++@@ -6039,7 +6145,7 @@ Stub_table<size, big_endian>::plt_call_size(
++ template<int size, bool big_endian>
++ unsigned int
++ Stub_table<size, big_endian>::branch_stub_size(
++- typename Branch_stub_entries::const_iterator p,
+++ typename Branch_stub_entries::iterator p,
++ bool* need_lt)
++ {
++ Address loc = this->stub_address() + this->last_plt_size_ + p->second.off_;
++@@ -6053,46 +6159,57 @@ Stub_table<size, big_endian>::branch_stub_size(
++ }
++
++ uint64_t off = p->first.dest_ - loc;
+++ unsigned int bytes = 0;
++ if (p->second.notoc_)
++ {
++ if (this->targ_->power10_stubs())
++ {
++ Address odd = loc & 4;
++ if (off + (1 << 25) < 2 << 25)
++- return odd + 12;
++- if (off - odd + (1ULL << 33) < 1ULL << 34)
++- return odd + 16;
++- if (off - (8 - odd) + (0x20002ULL << 32) < 0x40004ULL << 32)
++- return 28;
++- return 32;
++- }
++- off -= 8;
++- if (off + 0x8000 < 0x10000)
++- return 24;
++- if (off + 0x80008000ULL < 0x100000000ULL)
++- {
++- if (off + 24 + (1 << 25) < 2 << 25)
++- return 28;
++- return 32;
++- }
++- unsigned int bytes = 32;
++- if (off + 0x800000000000ULL >= 0x1000000000000ULL
++- && ((off >> 32) & 0xffff) != 0)
++- bytes += 4;
++- if (((off >> 32) & 0xffffffffULL) != 0)
++- bytes += 4;
++- if (hi(off) != 0)
++- bytes += 4;
++- if (l(off) != 0)
++- bytes += 4;
++- return bytes;
+++ bytes = odd + 12;
+++ else if (off - odd + (1ULL << 33) < 1ULL << 34)
+++ bytes = odd + 16;
+++ else if (off - (8 - odd) + (0x20002ULL << 32) < 0x40004ULL << 32)
+++ bytes = 28;
+++ else
+++ bytes = 32;
+++ if (!(p->second.toc_ && this->targ_->power10_stubs_auto()))
+++ return bytes;
+++ p->second.tocoff_ = bytes;
+++ }
+++ else
+++ {
+++ off -= 8;
+++ if (off + 0x8000 < 0x10000)
+++ return 24;
+++ if (off + 0x80008000ULL < 0x100000000ULL)
+++ {
+++ if (off + 24 + (1 << 25) < 2 << 25)
+++ return 28;
+++ return 32;
+++ }
+++
+++ bytes = 32;
+++ if (off + 0x800000000000ULL >= 0x1000000000000ULL
+++ && ((off >> 32) & 0xffff) != 0)
+++ bytes += 4;
+++ if (((off >> 32) & 0xffffffffULL) != 0)
+++ bytes += 4;
+++ if (hi(off) != 0)
+++ bytes += 4;
+++ if (l(off) != 0)
+++ bytes += 4;
+++ return bytes;
+++ }
++ }
++
+++ off += elfcpp::ppc64_decode_local_entry(p->second.other_);
++ if (off + (1 << 25) < 2 << 25)
++- return 4;
++- if (!this->targ_->power10_stubs())
+++ return bytes + 4;
+++ if (!this->targ_->power10_stubs()
+++ || (p->second.toc_ && this->targ_->power10_stubs_auto()))
++ *need_lt = true;
++- return 16;
+++ return bytes + 16;
++ }
++
++ template<int size, bool big_endian>
++@@ -6128,6 +6245,10 @@ Stub_table<size, big_endian>::do_write(Output_file* of)
++ if (size == 64
++ && this->targ_->power10_stubs())
++ {
+++ const Output_data_got_powerpc<size, big_endian>* got
+++ = this->targ_->got_section();
+++ Address got_os_addr = got->output_section()->address();
+++
++ if (!this->plt_call_stubs_.empty())
++ {
++ // Write out plt call stubs.
++@@ -6137,22 +6258,94 @@ Stub_table<size, big_endian>::do_write(Output_file* of)
++ ++cs)
++ {
++ p = oview + cs->second.off_;
++- this->build_tls_opt_head(&p, cs);
++- if (cs->second.r2save_)
++- {
++- write_insn<big_endian>(p, std_2_1 + this->targ_->stk_toc());
++- p += 4;
++- }
++ const Output_data_plt_powerpc<size, big_endian>* plt;
++ Address pltoff = this->plt_off(cs, &plt);
++ Address plt_addr = pltoff + plt->address();
++- Address from = this->stub_address() + (p - oview);
++- Address delta = plt_addr - from;
++- p = build_power10_offset<big_endian>(p, delta, from & 4, true);
++- write_insn<big_endian>(p, mtctr_12);
++- p += 4;
++- if (!this->build_tls_opt_tail(p, cs))
++- write_insn<big_endian>(p, bctr);
+++ if (this->targ_->power10_stubs_auto())
+++ {
+++ if (cs->second.notoc_)
+++ {
+++ if (this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ this->build_tls_opt_head(&p, false);
+++ Address from = this->stub_address() + (p - oview);
+++ Address delta = plt_addr - from;
+++ p = build_power10_offset<big_endian>(p, delta, from & 4,
+++ true);
+++ write_insn<big_endian>(p, mtctr_12);
+++ p += 4;
+++ write_insn<big_endian>(p, bctr);
+++ p += 4;
+++ p = oview + this->plt_call_align(p - oview);
+++ }
+++ if (cs->second.toc_)
+++ {
+++ if (this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ {
+++ bool save_lr
+++ = cs->second.r2save_ && !cs->second.localentry0_;
+++ this->build_tls_opt_head(&p, save_lr);
+++ }
+++ const Powerpc_relobj<size, big_endian>* ppcobj
+++ = static_cast<const Powerpc_relobj<size, big_endian>*>(
+++ cs->first.object_);
+++ Address got_addr = got_os_addr + ppcobj->toc_base_offset();
+++ Address off = plt_addr - got_addr;
+++
+++ if (off + 0x80008000 > 0xffffffff || (off & 7) != 0)
+++ this->plt_error(cs->first);
+++
+++ if (cs->second.r2save_)
+++ {
+++ write_insn<big_endian>(p, std_2_1 + this->targ_->stk_toc());
+++ p += 4;
+++ }
+++ if (ha(off) != 0)
+++ {
+++ write_insn<big_endian>(p, addis_12_2 + ha(off));
+++ p += 4;
+++ write_insn<big_endian>(p, ld_12_12 + l(off));
+++ p += 4;
+++ }
+++ else
+++ {
+++ write_insn<big_endian>(p, ld_12_2 + l(off));
+++ p += 4;
+++ }
+++ write_insn<big_endian>(p, mtctr_12);
+++ p += 4;
+++ if (cs->second.r2save_
+++ && !cs->second.localentry0_
+++ && this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ this->build_tls_opt_tail(p);
+++ else
+++ write_insn<big_endian>(p, bctr);
+++ }
+++ }
+++ else
+++ {
+++ if (this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ {
+++ bool save_lr
+++ = cs->second.r2save_ && !cs->second.localentry0_;
+++ this->build_tls_opt_head(&p, save_lr);
+++ }
+++ if (cs->second.r2save_)
+++ {
+++ write_insn<big_endian>(p, std_2_1 + this->targ_->stk_toc());
+++ p += 4;
+++ }
+++ Address from = this->stub_address() + (p - oview);
+++ Address delta = plt_addr - from;
+++ p = build_power10_offset<big_endian>(p, delta, from & 4, true);
+++ write_insn<big_endian>(p, mtctr_12);
+++ p += 4;
+++ if (cs->second.r2save_
+++ && !cs->second.localentry0_
+++ && this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ this->build_tls_opt_tail(p);
+++ else
+++ write_insn<big_endian>(p, bctr);
+++ }
++ }
++ }
++
++@@ -6168,19 +6361,79 @@ Stub_table<size, big_endian>::do_write(Output_file* of)
++ p = oview + off;
++ Address loc = this->stub_address() + off;
++ Address delta = bs->first.dest_ - loc;
++- if (bs->second.notoc_ || delta + (1 << 25) >= 2 << 25)
+++ if (this->targ_->power10_stubs_auto())
++ {
++- unsigned char* startp = p;
++- p = build_power10_offset<big_endian>(p, delta, loc & 4, false);
++- delta -= p - startp;
+++ if (bs->second.notoc_)
+++ {
+++ unsigned char* startp = p;
+++ p = build_power10_offset<big_endian>(p, delta,
+++ loc & 4, false);
+++ delta -= p - startp;
+++ startp = p;
+++ if (delta + (1 << 25) < 2 << 25)
+++ write_insn<big_endian>(p, b | (delta & 0x3fffffc));
+++ else
+++ {
+++ write_insn<big_endian>(p, mtctr_12);
+++ p += 4;
+++ write_insn<big_endian>(p, bctr);
+++ }
+++ p += 4;
+++ delta -= p - startp;
+++ }
+++ if (bs->second.toc_)
+++ {
+++ delta += elfcpp::ppc64_decode_local_entry(bs->second.other_);
+++ if (delta + (1 << 25) >= 2 << 25)
+++ {
+++ Address brlt_addr
+++ = this->targ_->find_branch_lookup_table(bs->first.dest_);
+++ gold_assert(brlt_addr != invalid_address);
+++ brlt_addr += this->targ_->brlt_section()->address();
+++ Address got_addr = got_os_addr + bs->first.toc_base_off_;
+++ Address brltoff = brlt_addr - got_addr;
+++ if (ha(brltoff) == 0)
+++ {
+++ write_insn<big_endian>(p, ld_12_2 + l(brltoff));
+++ p += 4;
+++ }
+++ else
+++ {
+++ write_insn<big_endian>(p, addis_12_2 + ha(brltoff));
+++ p += 4;
+++ write_insn<big_endian>(p, ld_12_12 + l(brltoff));
+++ p += 4;
+++ }
+++ }
+++ if (delta + (1 << 25) < 2 << 25)
+++ write_insn<big_endian>(p, b | (delta & 0x3fffffc));
+++ else
+++ {
+++ write_insn<big_endian>(p, mtctr_12);
+++ p += 4;
+++ write_insn<big_endian>(p, bctr);
+++ }
+++ }
++ }
++- if (delta + (1 << 25) < 2 << 25)
++- write_insn<big_endian>(p, b | (delta & 0x3fffffc));
++ else
++ {
++- write_insn<big_endian>(p, mtctr_12);
++- p += 4;
++- write_insn<big_endian>(p, bctr);
+++ if (!bs->second.notoc_)
+++ delta += elfcpp::ppc64_decode_local_entry(bs->second.other_);
+++ if (bs->second.notoc_ || delta + (1 << 25) >= 2 << 25)
+++ {
+++ unsigned char* startp = p;
+++ p = build_power10_offset<big_endian>(p, delta,
+++ loc & 4, false);
+++ delta -= p - startp;
+++ }
+++ if (delta + (1 << 25) < 2 << 25)
+++ write_insn<big_endian>(p, b | (delta & 0x3fffffc));
+++ else
+++ {
+++ write_insn<big_endian>(p, mtctr_12);
+++ p += 4;
+++ write_insn<big_endian>(p, bctr);
+++ }
++ }
++ }
++ }
++@@ -6204,7 +6457,11 @@ Stub_table<size, big_endian>::do_write(Output_file* of)
++ Address plt_addr = pltoff + plt->address();
++
++ p = oview + cs->second.off_;
++- this->build_tls_opt_head(&p, cs);
+++ if (this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ {
+++ bool save_lr = cs->second.r2save_ && !cs->second.localentry0_;
+++ this->build_tls_opt_head(&p, save_lr);
+++ }
++ if (cs->second.r2save_)
++ {
++ write_insn<big_endian>(p, std_2_1 + this->targ_->stk_toc());
++@@ -6241,7 +6498,11 @@ Stub_table<size, big_endian>::do_write(Output_file* of)
++ }
++ write_insn<big_endian>(p, mtctr_12);
++ p += 4;
++- if (!this->build_tls_opt_tail(p, cs))
+++ if (cs->second.r2save_
+++ && !cs->second.localentry0_
+++ && this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ this->build_tls_opt_tail(p);
+++ else
++ write_insn<big_endian>(p, bctr);
++ }
++ }
++@@ -6292,8 +6553,12 @@ Stub_table<size, big_endian>::do_write(Output_file* of)
++ }
++
++ p = oview + cs->second.off_;
++- if (this->build_tls_opt_head(&p, cs))
++- use_fake_dep = thread_safe;
+++ if (this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ {
+++ bool save_lr = cs->second.r2save_ && !cs->second.localentry0_;
+++ this->build_tls_opt_head(&p, save_lr);
+++ use_fake_dep = thread_safe;
+++ }
++ if (cs->second.r2save_)
++ {
++ write_insn<big_endian>(p, std_2_1 + this->targ_->stk_toc());
++@@ -6355,8 +6620,10 @@ Stub_table<size, big_endian>::do_write(Output_file* of)
++ write_insn<big_endian>(p, ld_2_2 + l(off + 8));
++ p += 4;
++ }
++- if (this->build_tls_opt_tail(p, cs))
++- ;
+++ if (cs->second.r2save_
+++ && !cs->second.localentry0_
+++ && this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ this->build_tls_opt_tail(p);
++ else if (thread_safe && !use_fake_dep)
++ {
++ write_insn<big_endian>(p, cmpldi_2_0);
++@@ -6382,6 +6649,8 @@ Stub_table<size, big_endian>::do_write(Output_file* of)
++ p = oview + off;
++ Address loc = this->stub_address() + off;
++ Address delta = bs->first.dest_ - loc;
+++ if (!bs->second.notoc_)
+++ delta += elfcpp::ppc64_decode_local_entry(bs->second.other_);
++ if (bs->second.notoc_)
++ {
++ unsigned char* startp = p;
++@@ -6437,7 +6706,8 @@ Stub_table<size, big_endian>::do_write(Output_file* of)
++ plt_addr += plt->address();
++
++ p = oview + cs->second.off_;
++- this->build_tls_opt_head(&p, cs);
+++ if (this->targ_->is_tls_get_addr_opt(cs->first.sym_))
+++ this->build_tls_opt_head(&p, false);
++ if (parameters->options().output_is_position_independent())
++ {
++ Address got_addr;
++@@ -6577,15 +6847,25 @@ Output_data_glink<size, big_endian>::do_write(Output_file* of)
++ }
++ else
++ {
+++ if (this->targ_->has_localentry0())
+++ {
+++ write_insn<big_endian>(p, std_2_1 + 24), p += 4;
+++ }
++ write_insn<big_endian>(p, mflr_0), p += 4;
++ write_insn<big_endian>(p, bcl_20_31), p += 4;
++ write_insn<big_endian>(p, mflr_11), p += 4;
++- write_insn<big_endian>(p, std_2_1 + 24), p += 4;
++- write_insn<big_endian>(p, ld_2_11 + l(-16)), p += 4;
++ write_insn<big_endian>(p, mtlr_0), p += 4;
+++ if (this->targ_->has_localentry0())
+++ {
+++ write_insn<big_endian>(p, ld_0_11 + l(-20)), p += 4;
+++ }
+++ else
+++ {
+++ write_insn<big_endian>(p, ld_0_11 + l(-16)), p += 4;
+++ }
++ write_insn<big_endian>(p, sub_12_12_11), p += 4;
++- write_insn<big_endian>(p, add_11_2_11), p += 4;
++- write_insn<big_endian>(p, addi_0_12 + l(-48)), p += 4;
+++ write_insn<big_endian>(p, add_11_0_11), p += 4;
+++ write_insn<big_endian>(p, addi_0_12 + l(-44)), p += 4;
++ write_insn<big_endian>(p, ld_12_11 + 0), p += 4;
++ write_insn<big_endian>(p, srdi_0_0_2), p += 4;
++ write_insn<big_endian>(p, mtctr_12), p += 4;
++@@ -8230,7 +8510,7 @@ Target_powerpc<size, big_endian>::Scan::local(
++ case elfcpp::R_PPC64_GOT_TLSLD_PCREL34:
++ case elfcpp::R_PPC64_GOT_DTPREL_PCREL34:
++ case elfcpp::R_PPC64_GOT_TPREL_PCREL34:
++- target->set_power10_stubs();
+++ target->set_power10_relocs();
++ break;
++ default:
++ break;
++@@ -9027,7 +9307,7 @@ Target_powerpc<size, big_endian>::Scan::global(
++ case elfcpp::R_PPC64_GOT_TLSLD_PCREL34:
++ case elfcpp::R_PPC64_GOT_DTPREL_PCREL34:
++ case elfcpp::R_PPC64_GOT_TPREL_PCREL34:
++- target->set_power10_stubs();
+++ target->set_power10_relocs();
++ break;
++ default:
++ break;
++@@ -9369,6 +9649,13 @@ Target_powerpc<size, big_endian>::scan_relocs(
++ needs_special_offset_handling,
++ local_symbol_count,
++ plocal_symbols);
+++
+++ if (this->plt_localentry0_ && this->power10_relocs_)
+++ {
+++ gold_warning(_("--plt-localentry is incompatible with "
+++ "power10 pc-relative code"));
+++ this->plt_localentry0_ = false;
+++ }
++ }
++
++ // Functor class for processing the global symbol table.
++@@ -10118,6 +10405,7 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
++ ? gsym->use_plt_offset(Scan::get_reference_flags(r_type, target))
++ : object->local_has_plt_offset(r_sym));
++ if (has_plt_offset
+++ && !is_got_reloc(r_type)
++ && !is_plt16_reloc<size>(r_type)
++ && r_type != elfcpp::R_PPC64_PLT_PCREL34
++ && r_type != elfcpp::R_PPC64_PLT_PCREL34_NOTOC
++@@ -10175,19 +10463,29 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
++ const int reloc_size = elfcpp::Elf_sizes<size>::rela_size;
++ elfcpp::Shdr<size, big_endian> shdr(relinfo->reloc_shdr);
++ size_t reloc_count = shdr.get_sh_size() / reloc_size;
+++ if (size == 64
+++ && r_type != elfcpp::R_PPC64_REL24_NOTOC)
+++ value += ent->tocoff_;
++ if (size == 64
++ && ent->r2save_
++- && r_type == elfcpp::R_PPC64_REL24_NOTOC)
++- value += 4;
++- else if (size == 64
++- && ent->r2save_
++- && relnum < reloc_count - 1)
+++ && !(gsym != NULL
+++ && target->is_tls_get_addr_opt(gsym)))
++ {
++- Reltype next_rela(preloc + reloc_size);
++- if (elfcpp::elf_r_type<size>(next_rela.get_r_info())
++- == elfcpp::R_PPC64_TOCSAVE
++- && next_rela.get_r_offset() == rela.get_r_offset() + 4)
++- value += 4;
+++ if (r_type == elfcpp::R_PPC64_REL24_NOTOC)
+++ {
+++ if (!(target->power10_stubs()
+++ && target->power10_stubs_auto()))
+++ value += 4;
+++ }
+++ else if (relnum < reloc_count - 1)
+++ {
+++ Reltype next_rela(preloc + reloc_size);
+++ if (elfcpp::elf_r_type<size>(next_rela.get_r_info())
+++ == elfcpp::R_PPC64_TOCSAVE
+++ && (next_rela.get_r_offset()
+++ == rela.get_r_offset() + 4))
+++ value += 4;
+++ }
++ }
++ localentry0 = ent->localentry0_;
++ has_stub_value = true;
++@@ -10250,13 +10548,7 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
++ elfcpp::Swap<32, big_endian>::writeval(iview + 1, pnop & 0xffffffff);
++ r_type = elfcpp::R_POWERPC_NONE;
++ }
++- else if (r_type == elfcpp::R_POWERPC_GOT16
++- || r_type == elfcpp::R_POWERPC_GOT16_LO
++- || r_type == elfcpp::R_POWERPC_GOT16_HI
++- || r_type == elfcpp::R_POWERPC_GOT16_HA
++- || r_type == elfcpp::R_PPC64_GOT16_DS
++- || r_type == elfcpp::R_PPC64_GOT16_LO_DS
++- || r_type == elfcpp::R_PPC64_GOT_PCREL34)
+++ else if (is_got_reloc(r_type))
++ {
++ if (gsym != NULL)
++ {
++@@ -10758,14 +11050,15 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
++ || r_type == elfcpp::R_POWERPC_PLT16_HA)))
++ addend = rela.get_r_addend();
++ value = psymval->value(object, addend);
+++ unsigned int local_ent = 0;
++ if (size == 64 && is_branch_reloc<size>(r_type))
++ {
++ if (target->abiversion() >= 2)
++ {
++ if (gsym != NULL)
++- value += object->ppc64_local_entry_offset(gsym);
+++ local_ent = object->ppc64_local_entry_offset(gsym);
++ else
++- value += object->ppc64_local_entry_offset(r_sym);
+++ local_ent = object->ppc64_local_entry_offset(r_sym);
++ }
++ else
++ {
++@@ -10774,9 +11067,9 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
++ &value, &dest_shndx);
++ }
++ }
++- Address max_branch_offset = max_branch_delta<size>(r_type);
++- if (max_branch_offset != 0
++- && (value - address + max_branch_offset >= 2 * max_branch_offset
+++ Address max_branch = max_branch_delta<size>(r_type);
+++ if (max_branch != 0
+++ && (value + local_ent - address + max_branch >= 2 * max_branch
++ || (size == 64
++ && r_type == elfcpp::R_PPC64_REL24_NOTOC
++ && (gsym != NULL
++@@ -10795,12 +11088,21 @@ Target_powerpc<size, big_endian>::Relocate::relocate(
++ value = (value - target->savres_section()->address()
++ + stub_table->branch_size());
++ else
++- value = (stub_table->stub_address() + stub_table->plt_size()
++- + ent->off_);
+++ {
+++ value = (stub_table->stub_address()
+++ + stub_table->plt_size()
+++ + ent->off_);
+++ if (size == 64
+++ && r_type != elfcpp::R_PPC64_REL24_NOTOC)
+++ value += (elfcpp::ppc64_decode_local_entry(ent->other_)
+++ + ent->tocoff_);
+++ }
++ has_stub_value = true;
++ }
++ }
++ }
+++ if (!has_stub_value)
+++ value += local_ent;
++ }
++
++ switch (r_type)
++diff --git a/gold/testsuite/split_i386.sh b/gold/testsuite/split_i386.sh
++index 67e2b1bb80..611c892b23 100755
++--- a/gold/testsuite/split_i386.sh
+++++ b/gold/testsuite/split_i386.sh
++@@ -45,7 +45,7 @@ match 'lea.*-0x200\(%esp\),' split_i386_1.stdout
++ match 'stc' split_i386_2.stdout
++ match 'call.*__morestack_non_split>?$' split_i386_2.stdout
++ nomatch 'call.*__morestack>?$' split_i386_2.stdout
++-match 'lea.*-0x4200\(%esp\),' split_i386_2.stdout
+++match 'lea.*-0x100200\(%esp\),' split_i386_2.stdout
++
++ match 'failed to match' split_i386_3.stdout
++
++diff --git a/gold/testsuite/split_x32.sh b/gold/testsuite/split_x32.sh
++index aefdda5647..bf395c9731 100755
++--- a/gold/testsuite/split_x32.sh
+++++ b/gold/testsuite/split_x32.sh
++@@ -44,9 +44,9 @@ match 'callq.*__morestack>?$' split_x32_1.stdout
++ match 'lea.*-0x200\(%rsp\),' split_x32_1.stdout
++
++ match 'stc' split_x32_2.stdout
++-match 'callq.*__morestack_non_split>?$' split_x32_2.stdout
++-nomatch 'callq.*__morestack>?$' split_x32_2.stdout
++-match 'lea.*-0x4200\(%rsp\),' split_x32_2.stdout
+++match 'call.*__morestack_non_split>?$' split_x32_2.stdout
+++nomatch 'call.*__morestack>?$' split_x32_2.stdout
+++match 'lea.*-0x100200\(%rsp\),' split_x32_2.stdout
++
++ match 'failed to match' split_x32_3.stdout
++
++diff --git a/gold/testsuite/split_x86_64.sh b/gold/testsuite/split_x86_64.sh
++index 33bb4892ed..a91009b45a 100755
++--- a/gold/testsuite/split_x86_64.sh
+++++ b/gold/testsuite/split_x86_64.sh
++@@ -43,9 +43,9 @@ match 'callq.*__morestack>?$' split_x86_64_1.stdout
++ match 'lea.*-0x200\(%rsp\),' split_x86_64_1.stdout
++
++ match 'stc' split_x86_64_2.stdout
++-match 'callq.*__morestack_non_split>?$' split_x86_64_2.stdout
++-nomatch 'callq.*__morestack>?$' split_x86_64_2.stdout
++-match 'lea.*-0x4200\(%rsp\),' split_x86_64_2.stdout
+++match 'call.*__morestack_non_split>?$' split_x86_64_2.stdout
+++nomatch 'call.*__morestack>?$' split_x86_64_2.stdout
+++match 'lea.*-0x100200\(%rsp\),' split_x86_64_2.stdout
++
++ match 'failed to match' split_x86_64_3.stdout
++
++diff --git a/include/ChangeLog b/include/ChangeLog
++index acdd85fc4d..5997c26899 100644
++--- a/include/ChangeLog
+++++ b/include/ChangeLog
++@@ -1,3 +1,15 @@
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-09-23 Mark Wielaard <mark@klomp.org>
+++
+++ Sync with GCC
+++ * dwarf2.def: Add DWARF5 Unit type header encoding macros
+++ DW_UT_FIRST, DW_UT and DW_UT_END.
+++ * dwarf2.h (enum dwarf_unit_type): Removed and define using
+++ DW_UT_FIRST, DW_UT and DW_UT_END macros.
+++ (get_DW_UT_name): New function declaration.
+++
++ 2020-07-22 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR ld/26262
++diff --git a/include/dwarf2.def b/include/dwarf2.def
++index d8a8cce794..13825a3eef 100644
++--- a/include/dwarf2.def
+++++ b/include/dwarf2.def
++@@ -805,3 +805,14 @@ DW_IDX (DW_IDX_hi_user, 0x3fff)
++ DW_IDX (DW_IDX_GNU_internal, 0x2000)
++ DW_IDX (DW_IDX_GNU_external, 0x2001)
++ DW_END_IDX
+++
+++/* DWARF5 Unit type header encodings */
+++DW_FIRST_UT (DW_UT_compile, 0x01)
+++DW_UT (DW_UT_type, 0x02)
+++DW_UT (DW_UT_partial, 0x03)
+++DW_UT (DW_UT_skeleton, 0x04)
+++DW_UT (DW_UT_split_compile, 0x05)
+++DW_UT (DW_UT_split_type, 0x06)
+++DW_UT (DW_UT_lo_user, 0x80)
+++DW_UT (DW_UT_hi_user, 0xff)
+++DW_END_UT
++diff --git a/include/dwarf2.h b/include/dwarf2.h
++index 882453dce0..3f271fb0f7 100644
++--- a/include/dwarf2.h
+++++ b/include/dwarf2.h
++@@ -55,6 +55,7 @@
++ #define DW_CFA_DUP(name, value) , name = value
++ #define DW_IDX(name, value) , name = value
++ #define DW_IDX_DUP(name, value) , name = value
+++#define DW_UT(name, value) , name = value
++
++ #define DW_FIRST_TAG(name, value) enum dwarf_tag { \
++ name = value
++@@ -77,6 +78,9 @@
++ #define DW_FIRST_IDX(name, value) enum dwarf_name_index_attribute { \
++ name = value
++ #define DW_END_IDX };
+++#define DW_FIRST_UT(name, value) enum dwarf_unit_type { \
+++ name = value
+++#define DW_END_UT };
++
++ #include "dwarf2.def"
++
++@@ -94,6 +98,8 @@
++ #undef DW_END_CFA
++ #undef DW_FIRST_IDX
++ #undef DW_END_IDX
+++#undef DW_FIRST_UT
+++#undef DW_END_UT
++
++ #undef DW_TAG
++ #undef DW_TAG_DUP
++@@ -108,6 +114,7 @@
++ #undef DW_CFA_DUP
++ #undef DW_IDX
++ #undef DW_IDX_DUP
+++#undef DW_UT
++
++ /* Flag that tells whether entry has a child or not. */
++ #define DW_children_no 0
++@@ -450,19 +457,6 @@ enum dwarf_range_list_entry
++ DW_RLE_start_end = 0x06,
++ DW_RLE_start_length = 0x07
++ };
++-
++-/* Unit types in unit_type unit header field. */
++-enum dwarf_unit_type
++- {
++- DW_UT_compile = 0x01,
++- DW_UT_type = 0x02,
++- DW_UT_partial = 0x03,
++- DW_UT_skeleton = 0x04,
++- DW_UT_split_compile = 0x05,
++- DW_UT_split_type = 0x06,
++- DW_UT_lo_user = 0x80,
++- DW_UT_hi_user = 0xff
++- };
++ \f
++ /* @@@ For use with GNU frame unwind information. */
++
++@@ -534,6 +528,10 @@ extern const char *get_DW_CFA_name (unsigned int opc);
++ recognized. */
++ extern const char *get_DW_IDX_name (unsigned int idx);
++
+++/* Return the name of a DW_UT_ constant, or NULL if the value is not
+++ recognized. */
+++extern const char *get_DW_UT_name (unsigned int ut);
+++
++ #ifdef __cplusplus
++ }
++ #endif /* __cplusplus */
++diff --git a/ld/ChangeLog b/ld/ChangeLog
++index 4eec7d2977..66f6e28110 100644
++--- a/ld/ChangeLog
+++++ b/ld/ChangeLog
++@@ -1,3 +1,66 @@
+++2020-11-16 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ PR ld/26869
+++ * ldelf.c (ldelf_before_allocation): Set rel_from_abs to 1 for
+++ __ehdr_start.
+++ * testsuite/ld-i386/i386.exp: Run pr26869.
+++ * testsuite/ld-i386/pr26869.d: New file.
+++ * testsuite/ld-i386/pr26869.s: Likewise.
+++
+++2020-10-07 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ * 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.
+++
+++2020-10-07 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ 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.
+++
+++2020-09-26 Alan Modra <amodra@gmail.com>
+++
+++ * 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.
+++
+++2020-09-24 Alan Modra <amodra@gmail.com>
+++
+++ PR 26655
+++ * emultempl/ppc64elf.em (params): Add ppc_edit.
+++ (ppc_before_allocation): Split off some edit functions to..
+++ (ppc_edit): ..this, new function.
+++
+++2020-09-24 Alan Modra <amodra@gmail.com>
+++
+++ Apply from master
+++ 2020-08-13 Alan Modra <amodra@gmail.com>
+++ * 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.
+++
++ 2020-09-19 Nick Clifton <nickc@redhat.com>
++
++ This is the 2.35.1 point release.
++diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
++index 1331d03113..2df5a218e6 100644
++--- a/ld/emultempl/ppc64elf.em
+++++ b/ld/emultempl/ppc64elf.em
++@@ -32,13 +32,15 @@ fragment <<EOF
++
++ static asection *ppc_add_stub_section (const char *, asection *);
++ static void ppc_layout_sections_again (void);
+++static void ppc_edit (void);
++
++ static struct ppc64_elf_params params = { NULL,
++ &ppc_add_stub_section,
++ &ppc_layout_sections_again,
+++ &ppc_edit,
++ 1, -1, -1, 0,
++ ${DEFAULT_PLT_STATIC_CHAIN-0}, -1, 5,
++- -1, -1, 0, -1, -1, 0};
+++ -1, -1, 0, 0, -1, -1, 0};
++
++ /* Fake input file for stubs. */
++ static lang_input_statement_type *stub_file;
++@@ -294,7 +296,19 @@ ppc_before_allocation (void)
++ einfo (_("%X%P: inline PLT: %E\n"));
++ }
++
++- if (ppc64_elf_tls_setup (&link_info)
+++ if (!ppc64_elf_tls_setup (&link_info))
+++ einfo (_("%X%P: TLS problem %E\n"));
+++ }
+++
+++ gld${EMULATION_NAME}_before_allocation ();
+++}
+++
+++static void
+++ppc_edit (void)
+++{
+++ if (stub_file != NULL)
+++ {
+++ if (elf_hash_table (&link_info)->tls_sec != NULL
++ && !no_tls_opt)
++ {
++ /* Size the sections. This is premature, but we want to know the
++@@ -323,8 +337,6 @@ ppc_before_allocation (void)
++ sort_toc_sections (&toc_os->children, NULL, NULL);
++ }
++ }
++-
++- gld${EMULATION_NAME}_before_allocation ();
++ }
++
++ struct hook_stub_info
++@@ -686,6 +698,7 @@ enum ppc64_opt
++ OPTION_NO_PLT_LOCALENTRY,
++ OPTION_POWER10_STUBS,
++ OPTION_NO_POWER10_STUBS,
+++ OPTION_NO_PCREL_OPT,
++ OPTION_STUBSYMS,
++ OPTION_NO_STUBSYMS,
++ OPTION_SAVRES,
++@@ -717,6 +730,7 @@ PARSE_AND_LIST_LONGOPTS=${PARSE_AND_LIST_LONGOPTS}'
++ { "plt-localentry", optional_argument, NULL, OPTION_PLT_LOCALENTRY },
++ { "no-plt-localentry", no_argument, NULL, OPTION_NO_PLT_LOCALENTRY },
++ { "power10-stubs", optional_argument, NULL, OPTION_POWER10_STUBS },
+++ { "no-pcrel-optimize", no_argument, NULL, OPTION_NO_PCREL_OPT },
++ { "no-power10-stubs", no_argument, NULL, OPTION_NO_POWER10_STUBS },
++ { "emit-stub-syms", no_argument, NULL, OPTION_STUBSYMS },
++ { "no-emit-stub-syms", no_argument, NULL, OPTION_NO_STUBSYMS },
++@@ -776,6 +790,9 @@ PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'
++ --power10-stubs [=auto] Use Power10 PLT call stubs (default auto)\n"
++ ));
++ fprintf (file, _("\
+++ --no-pcrel-optimize Don'\''t perform R_PPC64_PCREL_OPT optimization\n"
+++ ));
+++ fprintf (file, _("\
++ --no-power10-stubs Don'\''t use Power10 PLT call stubs\n"
++ ));
++ fprintf (file, _("\
++@@ -909,6 +926,10 @@ PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
++ params.power10_stubs = 0;
++ break;
++
+++ case OPTION_NO_PCREL_OPT:
+++ params.no_pcrel_opt = 1;
+++ break;
+++
++ case OPTION_STUBSYMS:
++ params.emit_stub_syms = 1;
++ break;
++@@ -985,6 +1006,7 @@ PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
++ params.no_multi_toc = 1;
++ no_toc_sort = 1;
++ params.plt_static_chain = 1;
+++ params.no_pcrel_opt = 1;
++ return FALSE;
++ '
++
++diff --git a/ld/ldelf.c b/ld/ldelf.c
++index bada3ade2d..831d032fe5 100644
++--- a/ld/ldelf.c
+++++ b/ld/ldelf.c
++@@ -1589,6 +1589,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
++ (char *) &ehdr_start->u + sizeof ehdr_start->u.def.next,
++ sizeof ehdr_start_save_u);
++ ehdr_start->type = bfd_link_hash_defined;
+++ /* It will be converted to section-relative later. */
+++ ehdr_start->rel_from_abs = 1;
++ ehdr_start->u.def.section = bfd_abs_section_ptr;
++ ehdr_start->u.def.value = 0;
++ }
++diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
++index 164c099cbb..f031b01ffe 100644
++--- a/ld/testsuite/ld-i386/i386.exp
+++++ b/ld/testsuite/ld-i386/i386.exp
++@@ -470,6 +470,10 @@ run_dump_test "pr24322b"
++ run_dump_test "align-branch-1"
++ run_dump_test "pr26018"
++ run_dump_test "pr26263"
+++run_dump_test "pr26711-1"
+++run_dump_test "pr26711-2"
+++run_dump_test "pr26711-3"
+++run_dump_test "pr26869"
++
++ if { !([istarget "i?86-*-linux*"]
++ || [istarget "i?86-*-gnu*"]
++diff --git a/ld/testsuite/ld-i386/pr26711-1.d b/ld/testsuite/ld-i386/pr26711-1.d
++new file mode 100644
++index 0000000000..24a8429fbc
++--- /dev/null
+++++ b/ld/testsuite/ld-i386/pr26711-1.d
++@@ -0,0 +1,10 @@
+++#source: ../ld-x86-64/pr26711.s
+++#source: ../ld-x86-64/start.s
+++#as: --32 -mx86-used-note=no
+++#ld: -m elf_i386 -z ibt
+++#readelf: -n
+++
+++Displaying notes found in: .note.gnu.property
+++[ ]+Owner[ ]+Data size[ ]+Description
+++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+++ Properties: x86 feature: IBT
++diff --git a/ld/testsuite/ld-i386/pr26711-2.d b/ld/testsuite/ld-i386/pr26711-2.d
++new file mode 100644
++index 0000000000..e92559fa70
++--- /dev/null
+++++ b/ld/testsuite/ld-i386/pr26711-2.d
++@@ -0,0 +1,10 @@
+++#source: ../ld-x86-64/pr26711.s
+++#source: ../ld-x86-64/start.s
+++#as: --32 -mx86-used-note=no
+++#ld: -m elf_i386 -z shstk
+++#readelf: -n
+++
+++Displaying notes found in: .note.gnu.property
+++[ ]+Owner[ ]+Data size[ ]+Description
+++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+++ Properties: x86 feature: SHSTK
++diff --git a/ld/testsuite/ld-i386/pr26711-3.d b/ld/testsuite/ld-i386/pr26711-3.d
++new file mode 100644
++index 0000000000..df9bfced54
++--- /dev/null
+++++ b/ld/testsuite/ld-i386/pr26711-3.d
++@@ -0,0 +1,10 @@
+++#source: ../ld-x86-64/pr26711.s
+++#source: ../ld-x86-64/start.s
+++#as: --32 -mx86-used-note=no
+++#ld: -m elf_i386 -z ibt -z shstk
+++#readelf: -n
+++
+++Displaying notes found in: .note.gnu.property
+++[ ]+Owner[ ]+Data size[ ]+Description
+++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+++ Properties: x86 feature: IBT, SHSTK
++diff --git a/ld/testsuite/ld-i386/pr26869.d b/ld/testsuite/ld-i386/pr26869.d
++new file mode 100644
++index 0000000000..bfd00a70e9
++--- /dev/null
+++++ b/ld/testsuite/ld-i386/pr26869.d
++@@ -0,0 +1,14 @@
+++#as: --32
+++#ld: -shared -melf_i386
+++#readelf: -r -s --wide
+++
+++Relocation section '.rel.dyn' at offset 0x[a-f0-9]+ contains 1 entry:
+++ Offset Info Type Sym. Value Symbol's Name
+++0+[a-f0-9]+ 00000008 R_386_RELATIVE
+++
+++#...
+++Symbol table '.symtab' contains [0-9]+ entries:
+++ Num: Value Size Type Bind Vis Ndx Name
+++#...
+++ +[a-f0-9]+: 00000000 0 NOTYPE LOCAL DEFAULT 1 __ehdr_start
+++#pass
++diff --git a/ld/testsuite/ld-i386/pr26869.s b/ld/testsuite/ld-i386/pr26869.s
++new file mode 100644
++index 0000000000..e492b98e86
++--- /dev/null
+++++ b/ld/testsuite/ld-i386/pr26869.s
++@@ -0,0 +1,3 @@
+++ .text
+++foo:
+++ pushl __ehdr_start@GOT(%ebx)
++diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r
++index 1abb90b3a2..e95d47ae8d 100644
++--- a/ld/testsuite/ld-i386/property-3.r
+++++ b/ld/testsuite/ld-i386/property-3.r
++@@ -3,5 +3,6 @@ Displaying notes found in: .note.gnu.property
++ [ ]+Owner[ ]+Data size[ ]+Description
++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
++ Properties: stack size: 0x800000
+++#...
++ x86 ISA needed: CMOV, SSE
++ #pass
++diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r
++index e94846e88e..a4b7bb71ad 100644
++--- a/ld/testsuite/ld-i386/property-4.r
+++++ b/ld/testsuite/ld-i386/property-4.r
++@@ -3,5 +3,6 @@ Displaying notes found in: .note.gnu.property
++ [ ]+Owner[ ]+Data size[ ]+Description
++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
++ Properties: stack size: 0x800000
+++#...
++ x86 ISA needed: CMOV, SSE, SSE3
++ #pass
++diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r
++index bd87a9317e..5ff95648c2 100644
++--- a/ld/testsuite/ld-i386/property-5.r
+++++ b/ld/testsuite/ld-i386/property-5.r
++@@ -3,5 +3,6 @@ Displaying notes found in: .note.gnu.property
++ [ ]+Owner[ ]+Data size[ ]+Description
++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
++ Properties: stack size: 0x900000
+++#...
++ x86 ISA needed: CMOV, SSE, SSE3
++ #pass
++diff --git a/ld/testsuite/ld-powerpc/elfv2so.d b/ld/testsuite/ld-powerpc/elfv2so.d
++index 0162bd0880..4018f0536c 100644
++--- a/ld/testsuite/ld-powerpc/elfv2so.d
+++++ b/ld/testsuite/ld-powerpc/elfv2so.d
++@@ -74,12 +74,11 @@ Disassembly of section \.text:
++ .*: (7c 08 02 a6|a6 02 08 7c) mflr r0
++ .*: (42 9f 00 05|05 00 9f 42) bcl .*
++ .*: (7d 68 02 a6|a6 02 68 7d) mflr r11
++-.*: (18 00 41 f8|f8 41 00 18) std r2,24\(r1\)
++-.*: (e8 4b ff f0|f0 ff 4b e8) ld r2,-16\(r11\)
++ .*: (7c 08 03 a6|a6 03 08 7c) mtlr r0
+++.*: (e8 0b ff f0|f0 ff 0b e8) ld r0,-16\(r11\)
++ .*: (7d 8b 60 50|50 60 8b 7d) subf r12,r11,r12
++-.*: (7d 62 5a 14|14 5a 62 7d) add r11,r2,r11
++-.*: (38 0c ff d0|d0 ff 0c 38) addi r0,r12,-48
+++.*: (7d 60 5a 14|14 5a 60 7d) add r11,r0,r11
+++.*: (38 0c ff d4|d4 ff 0c 38) addi r0,r12,-44
++ .*: (e9 8b 00 00|00 00 8b e9) ld r12,0\(r11\)
++ .*: (78 00 f0 82|82 f0 00 78) rldicl r0,r0,62,2
++ .*: (7d 89 03 a6|a6 03 89 7d) mtctr r12
++@@ -87,16 +86,16 @@ Disassembly of section \.text:
++ .*: (4e 80 04 20|20 04 80 4e) bctr
++
++ .* <f5@plt>:
++-.*: (4b ff ff c8|c8 ff ff 4b) b .* <__glink_PLTresolve>
+++.*: (4b ff ff cc|cc ff ff 4b) b .* <__glink_PLTresolve>
++
++ .* <f3@plt>:
++-.*: (4b ff ff c4|c4 ff ff 4b) b .* <__glink_PLTresolve>
+++.*: (4b ff ff c8|c8 ff ff 4b) b .* <__glink_PLTresolve>
++
++ .* <f2@plt>:
++-.*: (4b ff ff c0|c0 ff ff 4b) b .* <__glink_PLTresolve>
+++.*: (4b ff ff c4|c4 ff ff 4b) b .* <__glink_PLTresolve>
++
++ .* <f4@plt>:
++-.*: (4b ff ff bc|bc ff ff 4b) b .* <__glink_PLTresolve>
+++.*: (4b ff ff c0|c0 ff ff 4b) b .* <__glink_PLTresolve>
++
++ .* <f1@plt>:
++-.*: (4b ff ff b8|b8 ff ff 4b) b .* <__glink_PLTresolve>
+++.*: (4b ff ff bc|bc ff ff 4b) b .* <__glink_PLTresolve>
++diff --git a/ld/testsuite/ld-powerpc/notoc2.d b/ld/testsuite/ld-powerpc/notoc2.d
++index 1e519c0d1b..3448f8b37e 100644
++--- a/ld/testsuite/ld-powerpc/notoc2.d
+++++ b/ld/testsuite/ld-powerpc/notoc2.d
++@@ -22,8 +22,8 @@ Disassembly of section \.text:
++ .*: (39 80 ff ff|ff ff 80 39)
++ .*: (06 10 00 00|00 00 10 06) pla r12,0
++ .*: (39 80 00 00|00 00 80 39)
++-.*: (06 10 00 00|00 00 10 06) pla r3,92
++-.*: (38 60 00 5c|5c 00 60 38)
+++.*: (06 10 00 00|00 00 10 06) pla r3,88
+++.*: (38 60 00 58|58 00 60 38)
++ .*: (4b ff ff 99|99 ff ff 4b) bl .* <.*\.plt_call\.puts>
++ .*: (60 00 00 00|00 00 00 60) nop
++ #pass
++diff --git a/ld/testsuite/ld-powerpc/tlsdesc.wf b/ld/testsuite/ld-powerpc/tlsdesc.wf
++index 09503fa005..e7d4522b50 100644
++--- a/ld/testsuite/ld-powerpc/tlsdesc.wf
+++++ b/ld/testsuite/ld-powerpc/tlsdesc.wf
++@@ -38,9 +38,9 @@ Contents of the \.eh_frame section:
++ DW_CFA_nop
++
++ 0+4c 0+14 0+50 FDE cie=0+ pc=0+2f8\.\.0+32c
++- DW_CFA_advance_loc: 4 to 0+2fc
+++ DW_CFA_advance_loc: 8 to 0+300
++ DW_CFA_register: r65 in r12
++- DW_CFA_advance_loc: 20 to 0+310
+++ DW_CFA_advance_loc: 16 to 0+310
++ DW_CFA_restore_extended: r65
++
++ 0+64 0+10 0+68 FDE cie=0+ pc=0+2e0\.\.0+2ec
++diff --git a/ld/testsuite/ld-powerpc/tlsdesc2.d b/ld/testsuite/ld-powerpc/tlsdesc2.d
++index 47aedbecb8..c271c949b0 100644
++--- a/ld/testsuite/ld-powerpc/tlsdesc2.d
+++++ b/ld/testsuite/ld-powerpc/tlsdesc2.d
++@@ -53,12 +53,11 @@ Disassembly of section \.text:
++ .*: (7c 08 02 a6|a6 02 08 7c) mflr r0
++ .*: (42 9f 00 05|05 00 9f 42) bcl .*
++ .*: (7d 68 02 a6|a6 02 68 7d) mflr r11
++-.*: (f8 41 00 18|18 00 41 f8) std r2,24\(r1\)
++-.*: (e8 4b ff f0|f0 ff 4b e8) ld r2,-16\(r11\)
++ .*: (7c 08 03 a6|a6 03 08 7c) mtlr r0
+++.*: (e8 0b ff f0|f0 ff 0b e8) ld r0,-16\(r11\)
++ .*: (7d 8b 60 50|50 60 8b 7d) subf r12,r11,r12
++-.*: (7d 62 5a 14|14 5a 62 7d) add r11,r2,r11
++-.*: (38 0c ff d0|d0 ff 0c 38) addi r0,r12,-48
+++.*: (7d 60 5a 14|14 5a 60 7d) add r11,r0,r11
+++.*: (38 0c ff d4|d4 ff 0c 38) addi r0,r12,-44
++ .*: (e9 8b 00 00|00 00 8b e9) ld r12,0\(r11\)
++ .*: (78 00 f0 82|82 f0 00 78) rldicl r0,r0,62,2
++ .*: (7d 89 03 a6|a6 03 89 7d) mtctr r12
++@@ -66,4 +65,4 @@ Disassembly of section \.text:
++ .*: (4e 80 04 20|20 04 80 4e) bctr
++
++ .* <__tls_get_addr_opt@plt>:
++-.*: (4b ff ff c8|c8 ff ff 4b) b .* <__glink_PLTresolve>
+++.*: (4b ff ff cc|cc ff ff 4b) b .* <__glink_PLTresolve>
++diff --git a/ld/testsuite/ld-powerpc/tlsdesc2.wf b/ld/testsuite/ld-powerpc/tlsdesc2.wf
++index cb92c294b1..79a417ba06 100644
++--- a/ld/testsuite/ld-powerpc/tlsdesc2.wf
+++++ b/ld/testsuite/ld-powerpc/tlsdesc2.wf
++@@ -37,10 +37,10 @@ Contents of the \.eh_frame section:
++ DW_CFA_nop
++ DW_CFA_nop
++
++-0+4c 0+14 0+50 FDE cie=0+ pc=0+318\.\.0+354
++- DW_CFA_advance_loc: 4 to 0+31c
+++0+4c 0+14 0+50 FDE cie=0+ pc=0+318\.\.0+350
+++ DW_CFA_advance_loc: 8 to 0+320
++ DW_CFA_register: r65 in r0
++- DW_CFA_advance_loc: 28 to 0+338
+++ DW_CFA_advance_loc: 8 to 0+328
++ DW_CFA_restore_extended: r65
++
++ 0+64 0+10 0+68 FDE cie=0+ pc=0+300\.\.0+30c
++diff --git a/ld/testsuite/ld-powerpc/tlsopt5.d b/ld/testsuite/ld-powerpc/tlsopt5.d
++index 0fcb79821b..efd6debc55 100644
++--- a/ld/testsuite/ld-powerpc/tlsopt5.d
+++++ b/ld/testsuite/ld-powerpc/tlsopt5.d
++@@ -49,12 +49,11 @@ Disassembly of section \.text:
++ .*: (a6 02 08 7c|7c 08 02 a6) mflr r0
++ .*: (05 00 9f 42|42 9f 00 05) bcl .*
++ .*: (a6 02 68 7d|7d 68 02 a6) mflr r11
++-.*: (18 00 41 f8|f8 41 00 18) std r2,24\(r1\)
++-.*: (f0 ff 4b e8|e8 4b ff f0) ld r2,-16\(r11\)
++ .*: (a6 03 08 7c|7c 08 03 a6) mtlr r0
+++.*: (f0 ff 0b e8|e8 0b ff f0) ld r0,-16\(r11\)
++ .*: (50 60 8b 7d|7d 8b 60 50) subf r12,r11,r12
++-.*: (14 5a 62 7d|7d 62 5a 14) add r11,r2,r11
++-.*: (d0 ff 0c 38|38 0c ff d0) addi r0,r12,-48
+++.*: (14 5a 60 7d|7d 60 5a 14) add r11,r0,r11
+++.*: (d4 ff 0c 38|38 0c ff d4) addi r0,r12,-44
++ .*: (00 00 8b e9|e9 8b 00 00) ld r12,0\(r11\)
++ .*: (82 f0 00 78|78 00 f0 82) rldicl r0,r0,62,2
++ .*: (a6 03 89 7d|7d 89 03 a6) mtctr r12
++@@ -62,7 +61,7 @@ Disassembly of section \.text:
++ .*: (20 04 80 4e|4e 80 04 20) bctr
++
++ .* <__tls_get_addr_opt@plt>:
++-.* (c8 ff ff 4b|4b ff ff c8) b .*
+++.* (cc ff ff 4b|4b ff ff cc) b .*
++
++ .* <aaaaa@plt>:
++-.*: (c4 ff ff 4b|4b ff ff c4) b .*
+++.*: (c8 ff ff 4b|4b ff ff c8) b .*
++diff --git a/ld/testsuite/ld-powerpc/tlsopt5.wf b/ld/testsuite/ld-powerpc/tlsopt5.wf
++index f0453610e0..84bd94ed72 100644
++--- a/ld/testsuite/ld-powerpc/tlsopt5.wf
+++++ b/ld/testsuite/ld-powerpc/tlsopt5.wf
++@@ -16,9 +16,9 @@ Contents of the \.eh_frame section:
++ DW_CFA_restore_extended: r65
++
++ 0+2c 0+14 0+30 FDE cie=0+ pc=.*
++- DW_CFA_advance_loc: 4 to .*
+++ DW_CFA_advance_loc: 8 to .*
++ DW_CFA_register: r65 in r0
++- DW_CFA_advance_loc: 28 to .*
+++ DW_CFA_advance_loc: 8 to .*
++ DW_CFA_restore_extended: r65
++
++ 0+44 0+10 0+48 FDE cie=0+ pc=.*
++diff --git a/ld/testsuite/ld-powerpc/tlsopt6.d b/ld/testsuite/ld-powerpc/tlsopt6.d
++index 4ca64092c1..15def719cb 100644
++--- a/ld/testsuite/ld-powerpc/tlsopt6.d
+++++ b/ld/testsuite/ld-powerpc/tlsopt6.d
++@@ -67,12 +67,11 @@ Disassembly of section \.text:
++ .*: (a6 02 08 7c|7c 08 02 a6) mflr r0
++ .*: (05 00 9f 42|42 9f 00 05) bcl .*
++ .*: (a6 02 68 7d|7d 68 02 a6) mflr r11
++-.*: (18 00 41 f8|f8 41 00 18) std r2,24\(r1\)
++-.*: (f0 ff 4b e8|e8 4b ff f0) ld r2,-16\(r11\)
++ .*: (a6 03 08 7c|7c 08 03 a6) mtlr r0
+++.*: (f0 ff 0b e8|e8 0b ff f0) ld r0,-16\(r11\)
++ .*: (50 60 8b 7d|7d 8b 60 50) subf r12,r11,r12
++-.*: (14 5a 62 7d|7d 62 5a 14) add r11,r2,r11
++-.*: (d0 ff 0c 38|38 0c ff d0) addi r0,r12,-48
+++.*: (14 5a 60 7d|7d 60 5a 14) add r11,r0,r11
+++.*: (d4 ff 0c 38|38 0c ff d4) addi r0,r12,-44
++ .*: (00 00 8b e9|e9 8b 00 00) ld r12,0\(r11\)
++ .*: (82 f0 00 78|78 00 f0 82) rldicl r0,r0,62,2
++ .*: (a6 03 89 7d|7d 89 03 a6) mtctr r12
++@@ -80,7 +79,7 @@ Disassembly of section \.text:
++ .*: (20 04 80 4e|4e 80 04 20) bctr
++
++ .* <__tls_get_addr_opt@plt>:
++-.* (c8 ff ff 4b|4b ff ff c8) b .*
+++.* (cc ff ff 4b|4b ff ff cc) b .*
++
++ .* <aaaaa@plt>:
++-.*: (c4 ff ff 4b|4b ff ff c4) b .*
+++.*: (c8 ff ff 4b|4b ff ff c8) b .*
++diff --git a/ld/testsuite/ld-powerpc/tlsopt6.wf b/ld/testsuite/ld-powerpc/tlsopt6.wf
++index abb414a633..c2b9616352 100644
++--- a/ld/testsuite/ld-powerpc/tlsopt6.wf
+++++ b/ld/testsuite/ld-powerpc/tlsopt6.wf
++@@ -38,9 +38,9 @@ Contents of the \.eh_frame section:
++ DW_CFA_nop
++
++ 0+4c 0+14 0+50 FDE cie=0+ pc=.*
++- DW_CFA_advance_loc: 4 to .*
+++ DW_CFA_advance_loc: 8 to .*
++ DW_CFA_register: r65 in r0
++- DW_CFA_advance_loc: 28 to .*
+++ DW_CFA_advance_loc: 8 to .*
++ DW_CFA_restore_extended: r65
++
++ 0+64 0+10 0+68 FDE cie=0+ pc=.*
++diff --git a/ld/testsuite/ld-x86-64/pr26711-1-x32.d b/ld/testsuite/ld-x86-64/pr26711-1-x32.d
++new file mode 100644
++index 0000000000..67013195b2
++--- /dev/null
+++++ b/ld/testsuite/ld-x86-64/pr26711-1-x32.d
++@@ -0,0 +1,10 @@
+++#source: pr26711.s
+++#source: start.s
+++#as: --x32 -mx86-used-note=no
+++#ld: -m elf32_x86_64 -z ibt
+++#readelf: -n
+++
+++Displaying notes found in: .note.gnu.property
+++[ ]+Owner[ ]+Data size[ ]+Description
+++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+++ Properties: x86 feature: IBT
++diff --git a/ld/testsuite/ld-x86-64/pr26711-1.d b/ld/testsuite/ld-x86-64/pr26711-1.d
++new file mode 100644
++index 0000000000..d8e3cbf19b
++--- /dev/null
+++++ b/ld/testsuite/ld-x86-64/pr26711-1.d
++@@ -0,0 +1,10 @@
+++#source: pr26711.s
+++#source: start.s
+++#as: --64 -defsym __64_bit__=1 -mx86-used-note=no
+++#ld: -m elf_x86_64 -z ibt
+++#readelf: -n
+++
+++Displaying notes found in: .note.gnu.property
+++[ ]+Owner[ ]+Data size[ ]+Description
+++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+++ Properties: x86 feature: IBT
++diff --git a/ld/testsuite/ld-x86-64/pr26711-2-x32.d b/ld/testsuite/ld-x86-64/pr26711-2-x32.d
++new file mode 100644
++index 0000000000..9822f8df4d
++--- /dev/null
+++++ b/ld/testsuite/ld-x86-64/pr26711-2-x32.d
++@@ -0,0 +1,10 @@
+++#source: pr26711.s
+++#source: start.s
+++#as: --x32 -mx86-used-note=no
+++#ld: -m elf32_x86_64 -z shstk
+++#readelf: -n
+++
+++Displaying notes found in: .note.gnu.property
+++[ ]+Owner[ ]+Data size[ ]+Description
+++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+++ Properties: x86 feature: SHSTK
++diff --git a/ld/testsuite/ld-x86-64/pr26711-2.d b/ld/testsuite/ld-x86-64/pr26711-2.d
++new file mode 100644
++index 0000000000..e24cfbfc0b
++--- /dev/null
+++++ b/ld/testsuite/ld-x86-64/pr26711-2.d
++@@ -0,0 +1,10 @@
+++#source: pr26711.s
+++#source: start.s
+++#as: --64 -defsym __64_bit__=1 -mx86-used-note=no
+++#ld: -m elf_x86_64 -z shstk
+++#readelf: -n
+++
+++Displaying notes found in: .note.gnu.property
+++[ ]+Owner[ ]+Data size[ ]+Description
+++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+++ Properties: x86 feature: SHSTK
++diff --git a/ld/testsuite/ld-x86-64/pr26711-3-x32.d b/ld/testsuite/ld-x86-64/pr26711-3-x32.d
++new file mode 100644
++index 0000000000..0661c7d523
++--- /dev/null
+++++ b/ld/testsuite/ld-x86-64/pr26711-3-x32.d
++@@ -0,0 +1,10 @@
+++#source: pr26711.s
+++#source: start.s
+++#as: --x32 -mx86-used-note=no
+++#ld: -m elf32_x86_64 -z ibt -z shstk
+++#readelf: -n
+++
+++Displaying notes found in: .note.gnu.property
+++[ ]+Owner[ ]+Data size[ ]+Description
+++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+++ Properties: x86 feature: IBT, SHSTK
++diff --git a/ld/testsuite/ld-x86-64/pr26711-3.d b/ld/testsuite/ld-x86-64/pr26711-3.d
++new file mode 100644
++index 0000000000..87bc3ccfb0
++--- /dev/null
+++++ b/ld/testsuite/ld-x86-64/pr26711-3.d
++@@ -0,0 +1,10 @@
+++#source: pr26711.s
+++#source: start.s
+++#as: --64 -defsym __64_bit__=1 -mx86-used-note=no
+++#ld: -m elf_x86_64 -z ibt -z shstk
+++#readelf: -n
+++
+++Displaying notes found in: .note.gnu.property
+++[ ]+Owner[ ]+Data size[ ]+Description
+++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+++ Properties: x86 feature: IBT, SHSTK
++diff --git a/ld/testsuite/ld-x86-64/pr26711.s b/ld/testsuite/ld-x86-64/pr26711.s
++new file mode 100644
++index 0000000000..8fa185d42a
++--- /dev/null
+++++ b/ld/testsuite/ld-x86-64/pr26711.s
++@@ -0,0 +1,33 @@
+++ .section ".note.gnu.property", "a"
+++.ifdef __64_bit__
+++ .p2align 3
+++.else
+++ .p2align 2
+++.endif
+++ .long 1f - 0f /* name length */
+++ .long 5f - 2f /* data length */
+++ .long 5 /* note type */
+++0: .asciz "GNU" /* vendor name */
+++1:
+++.ifdef __64_bit__
+++ .p2align 3
+++.else
+++ .p2align 2
+++.endif
+++2: .long 0xc0001002 /* pr_type. */
+++ .long 4f - 3f /* pr_datasz. */
+++3:
+++ .long 0x30
+++4:
+++.ifdef __64_bit__
+++ .p2align 3
+++.else
+++ .p2align 2
+++.endif
+++5:
+++
+++ .text
+++ .globl foo
+++ .type foo, @function
+++foo:
+++ ret
++diff --git a/ld/testsuite/ld-x86-64/property-3.r b/ld/testsuite/ld-x86-64/property-3.r
++index 1abb90b3a2..e95d47ae8d 100644
++--- a/ld/testsuite/ld-x86-64/property-3.r
+++++ b/ld/testsuite/ld-x86-64/property-3.r
++@@ -3,5 +3,6 @@ Displaying notes found in: .note.gnu.property
++ [ ]+Owner[ ]+Data size[ ]+Description
++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
++ Properties: stack size: 0x800000
+++#...
++ x86 ISA needed: CMOV, SSE
++ #pass
++diff --git a/ld/testsuite/ld-x86-64/property-4.r b/ld/testsuite/ld-x86-64/property-4.r
++index e94846e88e..a4b7bb71ad 100644
++--- a/ld/testsuite/ld-x86-64/property-4.r
+++++ b/ld/testsuite/ld-x86-64/property-4.r
++@@ -3,5 +3,6 @@ Displaying notes found in: .note.gnu.property
++ [ ]+Owner[ ]+Data size[ ]+Description
++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
++ Properties: stack size: 0x800000
+++#...
++ x86 ISA needed: CMOV, SSE, SSE3
++ #pass
++diff --git a/ld/testsuite/ld-x86-64/property-5.r b/ld/testsuite/ld-x86-64/property-5.r
++index bd87a9317e..5ff95648c2 100644
++--- a/ld/testsuite/ld-x86-64/property-5.r
+++++ b/ld/testsuite/ld-x86-64/property-5.r
++@@ -3,5 +3,6 @@ Displaying notes found in: .note.gnu.property
++ [ ]+Owner[ ]+Data size[ ]+Description
++ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
++ Properties: stack size: 0x900000
+++#...
++ x86 ISA needed: CMOV, SSE, SSE3
++ #pass
++diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
++index d836f33496..3d48f860a3 100644
++--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++++ b/ld/testsuite/ld-x86-64/x86-64.exp
++@@ -432,6 +432,12 @@ run_dump_test "pr25416-3"
++ run_dump_test "pr25416-4"
++ run_dump_test "pr26018"
++ run_dump_test "pr26263"
+++run_dump_test "pr26711-1"
+++run_dump_test "pr26711-1-x32"
+++run_dump_test "pr26711-2"
+++run_dump_test "pr26711-2-x32"
+++run_dump_test "pr26711-3"
+++run_dump_test "pr26711-3-x32"
++
++ if ![istarget "x86_64-*-linux*"] {
++ return
++diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
++index 19d2b702d6..42daff1594 100644
++--- a/libiberty/ChangeLog
+++++ b/libiberty/ChangeLog
++@@ -1,3 +1,12 @@
+++2020-11-15 Mark Wielaard <mark@klomp.org>
+++
+++ Backport from the mainline:
+++ 2020-09-23 Mark Wielaard <mark@klomp.org>
+++
+++ Sync with GCC
+++ * dwarfnames.c (get_DW_UT_name): Define using DW_UT_FIRST, DW_UT
+++ and DW_UT_END.
+++
++ 2020-06-23 Nick Alcock <nick.alcock@oracle.com>
++
++ * bsearch_r.c: New file.
++diff --git a/libiberty/dwarfnames.c b/libiberty/dwarfnames.c
++index 968d191753..af11668b43 100644
++--- a/libiberty/dwarfnames.c
+++++ b/libiberty/dwarfnames.c
++@@ -64,6 +64,11 @@ Boston, MA 02110-1301, USA. */
++ switch (idx) { \
++ DW_IDX (name, value)
++ #define DW_END_IDX } return 0; }
+++#define DW_FIRST_UT(name, value) \
+++ const char *get_DW_UT_name (unsigned int ut) { \
+++ switch (ut) { \
+++ DW_UT (name, value)
+++#define DW_END_UT } return 0; }
++
++ #define DW_TAG(name, value) case name: return # name ;
++ #define DW_TAG_DUP(name, value)
++@@ -78,6 +83,7 @@ Boston, MA 02110-1301, USA. */
++ #define DW_CFA_DUP(name, value)
++ #define DW_IDX(name, value) case name: return # name ;
++ #define DW_IDX_DUP(name, value)
+++#define DW_UT(name, value) case name: return # name ;
++
++ #include "dwarf2.def"
++
++@@ -95,6 +101,7 @@ Boston, MA 02110-1301, USA. */
++ #undef DW_END_CFA
++ #undef DW_FIRST_IDX
++ #undef DW_END_IDX
+++#undef DW_END_UT
++
++ #undef DW_TAG
++ #undef DW_TAG_DUP
++diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
++index b53a2bba98..fada4f8c94 100644
++--- a/opcodes/ChangeLog
+++++ b/opcodes/ChangeLog
++@@ -1,3 +1,31 @@
+++2020-10-07 H.J. Lu <hongjiu.lu@intel.com>
+++
+++ PR gas/26685
+++ * i386-dis.c (mod_table): Replace Gv with Gdq on movdiri.
+++
+++2020-10-07 Jan Beulich <jbeulich@suse.com>
+++
+++ * i386-dis.c (OP_E_memory): Revert previous change.
+++
+++2020-09-24 Alan Modra <amodra@gmail.com>
+++
+++ Apply from master
+++ 2020-08-19 Alan Modra <amodra@gmail.com>
+++ * ppc-opc.c (powerpc_opcodes): Replace OBF with BF for vcmpsq,
+++ vcmpuq and xvtlsbb.
+++
+++ 2020-08-10 Alan Modra <amodra@gmail.com>
+++ * ppc-opc.c (powerpc_opcodes): Add many mtspr and mfspr extended
+++ instructions.
+++
+++ 2020-08-10 Alan Modra <amodra@gmail.com>
+++ * ppc-opc.c (powerpc_opcodes): Add exser, msgsndu, msgclru.
+++ Enable icbt for power5, miso for power8.
+++
+++ 2020-08-10 Alan Modra <amodra@gmail.com>
+++ * ppc-opc.c (powerpc_opcodes): Prioritise mtfprd and mtvrd over
+++ mtvsrd, and similarly for mfvsrd.
+++
++ 2020-09-19 Nick Clifton <nickc@redhat.com>
++
++ This is the 2.35.1 point release.
++diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
++index 8e0b4a1c2b..ea2ca1bb88 100644
++--- a/opcodes/i386-dis.c
+++++ b/opcodes/i386-dis.c
++@@ -10496,7 +10496,7 @@ static const struct dis386 mod_table[][2] = {
++ },
++ {
++ /* MOD_0F38F9_PREFIX_0 */
++- { "movdiri", { Ev, Gv }, PREFIX_OPCODE },
+++ { "movdiri", { Ev, Gdq }, PREFIX_OPCODE },
++ },
++ {
++ /* MOD_62_32BIT */
++@@ -14190,7 +14190,7 @@ OP_E_memory (int bytemode, int sizeflag)
++ /* Without base nor index registers, zero-extend the
++ lower 32-bit displacement to 64 bits. */
++ disp = (unsigned int) disp;
++- needindex = scale;
+++ needindex = 1;
++ }
++ needaddr32 = 1;
++ }
++diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
++index 6932e4e820..d15bde1326 100644
++--- a/opcodes/ppc-opc.c
+++++ b/opcodes/ppc-opc.c
++@@ -4441,7 +4441,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"nmachhws", XO (4, 110,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
++ {"nmachhws.", XO (4, 110,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
++ {"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
++-{"vcmpuq", VX (4, 257), VXBF_MASK, POWER10, 0, {OBF, VA, VB}},
+++{"vcmpuq", VX (4, 257), VXBF_MASK, POWER10, 0, {BF, VA, VB}},
++ {"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
++ {"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
++ {"vslq", VX (4, 261), VX_MASK, POWER10, 0, {VD, VA, VB}},
++@@ -4459,7 +4459,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"macchwu", XO (4, 140,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
++ {"macchwu.", XO (4, 140,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
++ {"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
++-{"vcmpsq", VX (4, 321), VXBF_MASK, POWER10, 0, {OBF, VA, VB}},
+++{"vcmpsq", VX (4, 321), VXBF_MASK, POWER10, 0, {BF, VA, VB}},
++ {"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
++ {"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
++ {"vrlqnm", VX (4, 325), VX_MASK, POWER10, 0, {VD, VA, VB}},
++@@ -6114,6 +6114,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"rlnm.", M(23,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
++
++ {"nop", OP(24), 0xffffffff, PPCCOM, PPCVLE, {0}},
+++{"exser", 0x63ff0000, 0xffffffff, POWER9, PPCVLE, {0}},
++ {"ori", OP(24), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
++ {"oril", OP(24), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
++
++@@ -6236,7 +6237,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++
++ {"ldx", X(31,21), X_MASK, PPC64, 0, {RT, RA0, RB}},
++
++-{"icbt", X(31,22), X_MASK, BOOKE|PPCE300|PPCA2|PPC476, 0, {CT, RA0, RB}},
+++{"icbt", X(31,22), X_MASK, POWER5|BOOKE|PPCE300, 0, {CT, RA0, RB}},
++
++ {"lwzx", X(31,23), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
++ {"lx", X(31,23), X_MASK, PWRCOM, 0, {RT, RA, RB}},
++@@ -6302,9 +6303,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"subf.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
++ {"sub.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RB, RA}},
++
++-{"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
++ {"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
++ {"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
+++{"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
++ {"eratilx", X(31,51), X_MASK, PPCA2, 0, {ERAT_T, RA, RB}},
++
++ {"lbarx", X(31,52), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
++@@ -6354,6 +6355,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mulhw", XO(31,75,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
++ {"mulhw.", XO(31,75,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
++
+++{"msgsndu", XRTRA(31,78,0,0), XRTRA_MASK, POWER9, 0, {RB}},
++ {"dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
++ {"dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}},
++
++@@ -6387,6 +6389,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++
++ {"lxvrdx", X(31,109), XX1_MASK, POWER10, 0, {XT6, RA0, RB}},
++
+++{"msgclru", XRTRA(31,110,0,0), XRTRA_MASK, POWER9, 0, {RB}},
++ {"mvidsplt", X(31,110), X_MASK, E6500, 0, {VD, RA, RB}},
++
++ {"mtsrdin", X(31,114), XRA_MASK, PPC64, 0, {RS, RB}},
++@@ -6489,9 +6492,9 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++
++ {"mtmsrd", X(31,178), XRLARB_MASK, PPC64, 0, {RS, A_L}},
++
++-{"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
++ {"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
++ {"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
+++{"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
++ {"eratre", X(31,179), X_MASK, PPCA2, 0, {RT, RA, WS}},
++
++ {"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}},
++@@ -6738,11 +6741,13 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++
++ {"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, 0, {RT}},
++ {"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, 0, {RT}},
+++{"mfudscr", XSPR(31,339, 3), XSPR_MASK, POWER9, 0, {RS}},
++ {"mfrtcu", XSPR(31,339, 4), XSPR_MASK, COM, TITAN, {RT}},
++ {"mfrtcl", XSPR(31,339, 5), XSPR_MASK, COM, TITAN, {RT}},
++ {"mfdec", XSPR(31,339, 6), XSPR_MASK, MFDEC1, 0, {RT}},
++ {"mflr", XSPR(31,339, 8), XSPR_MASK, COM, 0, {RT}},
++ {"mfctr", XSPR(31,339, 9), XSPR_MASK, COM, 0, {RT}},
+++{"mfuamr", XSPR(31,339, 13), XSPR_MASK, POWER9, 0, {RS}},
++ {"mfdscr", XSPR(31,339, 17), XSPR_MASK, POWER6, 0, {RT}},
++ {"mftid", XSPR(31,339, 17), XSPR_MASK, POWER, 0, {RT}},
++ {"mfdsisr", XSPR(31,339, 18), XSPR_MASK, COM, TITAN, {RT}},
++@@ -6753,9 +6758,12 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mfsrr0", XSPR(31,339, 26), XSPR_MASK, COM, 0, {RT}},
++ {"mfsrr1", XSPR(31,339, 27), XSPR_MASK, COM, 0, {RT}},
++ {"mfcfar", XSPR(31,339, 28), XSPR_MASK, POWER6, 0, {RT}},
+++{"mfamr", XSPR(31,339, 29), XSPR_MASK, POWER7, 0, {RS}},
+++{"mfpidr", XSPR(31,339, 48), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfpid", XSPR(31,339, 48), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfcsrr0", XSPR(31,339, 58), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfcsrr1", XSPR(31,339, 59), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfiamr", XSPR(31,339, 61), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfdear", XSPR(31,339, 61), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfesr", XSPR(31,339, 62), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfivpr", XSPR(31,339, 63), XSPR_MASK, BOOKE, 0, {RT}},
++@@ -6769,16 +6777,28 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, 0, {RT}},
+++{"mffscr", XSPR(31,339,153), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, 0, {RT}},
++ {"mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, 0, {RT}},
+++{"mfuamor", XSPR(31,339,157), XSPR_MASK, POWER7, 0, {RS}},
++ {"mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, 0, {RT}},
+++{"mfpspb", XSPR(31,339,159), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, 0, {RT}},
+++{"mfdpdes", XSPR(31,339,176), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfdawr0", XSPR(31,339,180), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfdawr1", XSPR(31,339,181), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfrpr", XSPR(31,339,186), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfciabr", XSPR(31,339,187), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfdawrx0", XSPR(31,339,188), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfdawrx1", XSPR(31,339,189), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfhfscr", XSPR(31,339,190), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, 0, {RT}},
++ {"mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, 0, {RT, SPRG}},
+++{"mfusprg3", XSPR(31,339,259), XSPR_MASK, POWER10, 0, {RT}},
++ {"mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
++ {"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
++ {"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
++@@ -6794,20 +6814,37 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mfear", XSPR(31,339,282), XSPR_MASK, PPC, TITAN, {RT}},
++ {"mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, 0, {RT}},
+++{"mfhsprg0", XSPR(31,339,304), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfhsprg1", XSPR(31,339,305), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfhdisr", XSPR(31,339,306), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfhdar", XSPR(31,339,307), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfspurr", XSPR(31,339,308), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfpurr", XSPR(31,339,309), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfhdec", XSPR(31,339,310), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfhrmor", XSPR(31,339,313), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfhsrr0", XSPR(31,339,314), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfhsrr1", XSPR(31,339,315), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mflpcr", XSPR(31,339,318), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mflpidr", XSPR(31,339,319), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfhmer", XSPR(31,339,336), XSPR_MASK, POWER7, 0, {RS}},
++ {"mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfhmeer", XSPR(31,339,337), XSPR_MASK, POWER7, 0, {RS}},
+++{"mfpcr", XSPR(31,339,338), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfheir", XSPR(31,339,339), XSPR_MASK, POWER10, 0, {RS}},
++ {"mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mfamor", XSPR(31,339,349), XSPR_MASK, POWER7, 0, {RS}},
++ {"mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, 0, {RT}},
++@@ -6824,6 +6861,14 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, 0, {RT}},
++ {"mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, 0, {RT}},
+++{"mftir", XSPR(31,339,446), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfptcr", XSPR(31,339,464), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfuspgr0", XSPR(31,339,496), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfuspgr1", XSPR(31,339,497), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfurmor", XSPR(31,339,505), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfusrr0", XSPR(31,339,506), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfusrr1", XSPR(31,339,507), XSPR_MASK, POWER10, 0, {RS}},
+++{"mfsmfctrl", XSPR(31,339,511), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, 0, {RT}},
++ {"mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, 0, {RT}},
++ {"mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, 0, {RT}},
++@@ -6848,18 +6893,36 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, 0, {RT}},
+++{"mfusier2", XSPR(31,339,736), XSPR_MASK, POWER10, 0, {RT}},
+++{"mfsier2", XSPR(31,339,736), XSPR_MASK, POWER10, 0, {RT}},
+++{"mfusier3", XSPR(31,339,737), XSPR_MASK, POWER10, 0, {RT}},
+++{"mfsier3", XSPR(31,339,737), XSPR_MASK, POWER10, 0, {RT}},
+++{"mfummcr3", XSPR(31,339,738), XSPR_MASK, POWER10, 0, {RT}},
+++{"mfmmcr3", XSPR(31,339,738), XSPR_MASK, POWER10, 0, {RT}},
+++{"mfusier", XSPR(31,339,768), XSPR_MASK, POWER10, 0, {RT}},
+++{"mfsier", XSPR(31,339,768), XSPR_MASK, POWER10, 0, {RT}},
+++{"mfummcra", XSPR(31,339,770), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfmmcra", XSPR(31,339,770), XSPR_MASK, POWER7, 0, {RS}},
++ {"mfupmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}},
++-{"mfpmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}},
+++{"mfpmc1", XSPR(31,339,771), XSPR_MASK, POWER7, 0, {RT}},
++ {"mfupmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}},
++-{"mfpmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}},
+++{"mfpmc2", XSPR(31,339,772), XSPR_MASK, POWER7, 0, {RT}},
++ {"mfupmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}},
++-{"mfpmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}},
+++{"mfpmc3", XSPR(31,339,773), XSPR_MASK, POWER7, 0, {RT}},
++ {"mfupmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}},
++-{"mfpmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}},
+++{"mfpmc4", XSPR(31,339,774), XSPR_MASK, POWER7, 0, {RT}},
++ {"mfupmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}},
++-{"mfpmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}},
+++{"mfpmc5", XSPR(31,339,775), XSPR_MASK, POWER7, 0, {RT}},
++ {"mfupmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}},
++-{"mfpmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}},
+++{"mfpmc6", XSPR(31,339,776), XSPR_MASK, POWER7, 0, {RT}},
+++{"mfummcr0", XSPR(31,339,779), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfmmcr0", XSPR(31,339,779), XSPR_MASK, POWER7, 0, {RS}},
+++{"mfusiar", XSPR(31,339,780), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfsiar", XSPR(31,339,780), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfusdar", XSPR(31,339,781), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfsdar", XSPR(31,339,781), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfummcr1", XSPR(31,339,782), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfmmcr1", XSPR(31,339,782), XSPR_MASK, POWER7, 0, {RS}},
++ {"mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, 0, {RT}},
++@@ -6873,12 +6936,25 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, 0, {RT}},
+++{"mfbescrs", XSPR(31,339,800), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfbescrsu", XSPR(31,339,801), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfbescrr", XSPR(31,339,802), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfbescrru", XSPR(31,339,803), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfebbhr", XSPR(31,339,804), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfebbrr", XSPR(31,339,805), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfbescr", XSPR(31,339,806), XSPR_MASK, POWER9, 0, {RS}},
+++{"mftar", XSPR(31,339,815), XSPR_MASK, POWER9, 0, {RS}},
+++{"mfasdr", XSPR(31,339,816), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfmi_dbram0", XSPR(31,339,817), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfmi_dbram1", XSPR(31,339,818), XSPR_MASK, PPC860, 0, {RT}},
+++{"mfpsscr", XSPR(31,339,823), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfmd_dbram0", XSPR(31,339,825), XSPR_MASK, PPC860, 0, {RT}},
++ {"mfmd_dbram1", XSPR(31,339,826), XSPR_MASK, PPC860, 0, {RT}},
+++{"mfic", XSPR(31,339,848), XSPR_MASK, POWER8, 0, {RS}},
+++{"mfvtb", XSPR(31,339,849), XSPR_MASK, POWER8, 0, {RS}},
+++{"mfhpsscr", XSPR(31,339,855), XSPR_MASK, POWER10, 0, {RS}},
++ {"mfivndx", XSPR(31,339,880), XSPR_MASK, TITAN, 0, {RT}},
++ {"mfdvndx", XSPR(31,339,881), XSPR_MASK, TITAN, 0, {RT}},
++ {"mfivlim", XSPR(31,339,882), XSPR_MASK, TITAN, 0, {RT}},
++@@ -7051,14 +7127,15 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++
++ {"sthux", X(31,439), X_MASK, COM, 0, {RS, RAS, RB}},
++
++-{"mdors", 0x7f9ce378, 0xffffffff, E500MC, 0, {0}},
++-
++-{"miso", 0x7f5ad378, 0xffffffff, E6500, 0, {0}},
++-
++-/* The "yield", "mdoio" and "mdoom" instructions are extended mnemonics for
++- "or rX,rX,rX", with rX being r27, r29 and r30 respectively. */
+++/* or 26,26,26 */
+++{"miso", 0x7f5ad378, 0xffffffff, POWER8|E6500, 0, {0}},
+++/* or 27,27,27 */
++ {"yield", 0x7f7bdb78, 0xffffffff, POWER7, 0, {0}},
+++/* or 28,28,28 */
+++{"mdors", 0x7f9ce378, 0xffffffff, E500MC, 0, {0}},
+++/* or 29,29,29 */
++ {"mdoio", 0x7fbdeb78, 0xffffffff, POWER7, 0, {0}},
+++/* or 30,30,30 */
++ {"mdoom", 0x7fdef378, 0xffffffff, POWER7, 0, {0}},
++ {"mr", XRC(31,444,0), X_MASK, COM, 0, {RA, RSB}},
++ {"or", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RB}},
++@@ -7124,8 +7201,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++
++ {"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, 0, {RS}},
++ {"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, 0, {RS}},
+++{"mtudscr", XSPR(31,467, 3), XSPR_MASK, POWER9, 0, {RS}},
++ {"mtlr", XSPR(31,467, 8), XSPR_MASK, COM, 0, {RS}},
++ {"mtctr", XSPR(31,467, 9), XSPR_MASK, COM, 0, {RS}},
+++{"mtuamr", XSPR(31,467, 13), XSPR_MASK, POWER9, 0, {RS}},
++ {"mtdscr", XSPR(31,467, 17), XSPR_MASK, POWER6, 0, {RS}},
++ {"mttid", XSPR(31,467, 17), XSPR_MASK, POWER, 0, {RS}},
++ {"mtdsisr", XSPR(31,467, 18), XSPR_MASK, COM, TITAN, {RS}},
++@@ -7138,13 +7217,20 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mtsrr0", XSPR(31,467, 26), XSPR_MASK, COM, 0, {RS}},
++ {"mtsrr1", XSPR(31,467, 27), XSPR_MASK, COM, 0, {RS}},
++ {"mtcfar", XSPR(31,467, 28), XSPR_MASK, POWER6, 0, {RS}},
+++{"mtamr", XSPR(31,467, 29), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtpidr", XSPR(31,467, 48), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtpid", XSPR(31,467, 48), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtdecar", XSPR(31,467, 54), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtcsrr0", XSPR(31,467, 58), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtcsrr1", XSPR(31,467, 59), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mtiamr", XSPR(31,467, 61), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtdear", XSPR(31,467, 61), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtesr", XSPR(31,467, 62), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtivpr", XSPR(31,467, 63), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mttfhar", XSPR(31,467,128), XSPR_MASK, POWER9, 0, {RS}},
+++{"mttfiar", XSPR(31,467,129), XSPR_MASK, POWER9, 0, {RS}},
+++{"mttexasr", XSPR(31,467,130), XSPR_MASK, POWER9, 0, {RS}},
+++{"mttexasru", XSPR(31,467,131), XSPR_MASK, POWER9, 0, {RS}},
++ {"mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, 0, {RS}},
++ {"mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, 0, {RS}},
++ {"mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, 0, {RS}},
++@@ -7155,13 +7241,24 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, 0, {RS}},
++ {"mtctrl", XSPR(31,467,152), XSPR_MASK, POWER4, 0, {RS}},
++ {"mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, 0, {RS}},
+++{"mtfscr", XSPR(31,467,153), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, 0, {RS}},
++ {"mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, 0, {RS}},
++ {"mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, 0, {RS}},
++ {"mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, 0, {RS}},
+++{"mtuamor", XSPR(31,467,157), XSPR_MASK, POWER7, 0, {RS}},
++ {"mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, 0, {RS}},
++ {"mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, 0, {RS}},
+++{"mtpspb", XSPR(31,467,159), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, 0, {RS}},
+++{"mtdpdes", XSPR(31,467,176), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtdawr0", XSPR(31,467,180), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtdawr1", XSPR(31,467,181), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtrpr", XSPR(31,467,186), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtciabr", XSPR(31,467,187), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtdawrx0", XSPR(31,467,188), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtdawrx1", XSPR(31,467,189), XSPR_MASK, POWER10, 0, {RS}},
+++{"mthfscr", XSPR(31,467,190), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, 0, {RS}},
++ {"mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtsprg", XSPR(31,467,256), XSPRG_MASK, PPC, 0, {SPRG, RS}},
++@@ -7177,20 +7274,38 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mtear", XSPR(31,467,282), XSPR_MASK, PPC, TITAN, {RS}},
++ {"mttbl", XSPR(31,467,284), XSPR_MASK, PPC, 0, {RS}},
++ {"mttbu", XSPR(31,467,285), XSPR_MASK, PPC, 0, {RS}},
+++{"mttbu40", XSPR(31,467,286), XSPR_MASK, POWER10, 0, {RS}},
+++{"mthsprg0", XSPR(31,467,304), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mthsprg1", XSPR(31,467,305), XSPR_MASK, POWER10, 0, {RS}},
+++{"mthdisr", XSPR(31,467,306), XSPR_MASK, POWER10, 0, {RS}},
+++{"mthdar", XSPR(31,467,307), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtspurr", XSPR(31,467,308), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mtpurr", XSPR(31,467,309), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mthdec", XSPR(31,467,310), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mthrmor", XSPR(31,467,313), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mthsrr0", XSPR(31,467,314), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mthsrr1", XSPR(31,467,315), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mtlpcr", XSPR(31,467,318), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mtlpidr", XSPR(31,467,319), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mthmer", XSPR(31,467,336), XSPR_MASK, POWER7, 0, {RS}},
++ {"mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mthmeer", XSPR(31,467,337), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtpcr", XSPR(31,467,338), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtheir", XSPR(31,467,339), XSPR_MASK, POWER10, 0, {RS}},
++ {"mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mtamor", XSPR(31,467,349), XSPR_MASK, POWER7, 0, {RS}},
++ {"mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, 0, {RS}},
++@@ -7207,6 +7322,13 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, 0, {RS}},
++ {"mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, 0, {RS}},
+++{"mtptcr", XSPR(31,467,464), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtuspgr0", XSPR(31,467,496), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtuspgr1", XSPR(31,467,497), XSPR_MASK, POWER10, 0, {RS}},
+++{"mturmor", XSPR(31,467,505), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtusrr0", XSPR(31,467,506), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtusrr1", XSPR(31,467,507), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtsmfctrl", XSPR(31,467,511), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, 0, {RS}},
++ {"mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, 0, {RS}},
++ {"mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, 0, {RS}},
++@@ -7221,12 +7343,44 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, 0, {RS}},
++ {"mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, 0, {RS}},
++ {"mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, 0, {RS}},
+++{"mtsier2", XSPR(31,467,752), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtsier3", XSPR(31,467,753), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtmmcr3", XSPR(31,467,754), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtummcr2", XSPR(31,467,769), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtmmcr2", XSPR(31,467,769), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtummcra", XSPR(31,467,770), XSPR_MASK, POWER9, 0, {RS}},
++ {"mtupmc1", XSPR(31,467,771), XSPR_MASK, POWER9, 0, {RS}},
++ {"mtupmc2", XSPR(31,467,772), XSPR_MASK, POWER9, 0, {RS}},
++ {"mtupmc3", XSPR(31,467,773), XSPR_MASK, POWER9, 0, {RS}},
++ {"mtupmc4", XSPR(31,467,774), XSPR_MASK, POWER9, 0, {RS}},
++ {"mtupmc5", XSPR(31,467,775), XSPR_MASK, POWER9, 0, {RS}},
++ {"mtupmc6", XSPR(31,467,776), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtummcr0", XSPR(31,467,779), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtsier", XSPR(31,467,784), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtmmcra", XSPR(31,467,786), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtpmc1", XSPR(31,467,787), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtpmc2", XSPR(31,467,788), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtpmc3", XSPR(31,467,789), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtpmc4", XSPR(31,467,790), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtpmc5", XSPR(31,467,791), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtpmc6", XSPR(31,467,792), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtmmcr0", XSPR(31,467,795), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtsiar", XSPR(31,467,796), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtsdar", XSPR(31,467,797), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtmmcr1", XSPR(31,467,798), XSPR_MASK, POWER7, 0, {RS}},
+++{"mtbescrs", XSPR(31,467,800), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtbescrsu", XSPR(31,467,801), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtbescrr", XSPR(31,467,802), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtbescrru", XSPR(31,467,803), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtebbhr", XSPR(31,467,804), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtebbrr", XSPR(31,467,805), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtbescr", XSPR(31,467,806), XSPR_MASK, POWER9, 0, {RS}},
+++{"mttar", XSPR(31,467,815), XSPR_MASK, POWER9, 0, {RS}},
+++{"mtasdr", XSPR(31,467,816), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtpsscr", XSPR(31,467,823), XSPR_MASK, POWER10, 0, {RS}},
+++{"mtic", XSPR(31,467,848), XSPR_MASK, POWER8, 0, {RS}},
+++{"mtvtb", XSPR(31,467,849), XSPR_MASK, POWER8, 0, {RS}},
+++{"mthpsscr", XSPR(31,467,855), XSPR_MASK, POWER10, 0, {RS}},
++ {"mtivndx", XSPR(31,467,880), XSPR_MASK, TITAN, 0, {RS}},
++ {"mtdvndx", XSPR(31,467,881), XSPR_MASK, TITAN, 0, {RS}},
++ {"mtivlim", XSPR(31,467,882), XSPR_MASK, TITAN, 0, {RS}},
++@@ -8301,7 +8455,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
++ {"xxgenpcvdm", X(60,949), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
++ {"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
++ {"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
++-{"xvtlsbb", XX2VA(60,475,2),XX2BF_MASK, POWER10, PPCVLE, {OBF, XB6}},
+++{"xvtlsbb", XX2VA(60,475,2),XX2BF_MASK, POWER10, PPCVLE, {BF, XB6}},
++ {"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
++ {"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
++ {"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},