--- /dev/null
+binutils (2.35.1-4) unstable; urgency=medium
+
+ * Update from the binutils 2.35 branch:
+ - Fix PR ld/27016.
+ - Fix PR binutils/26929, readelf: stack buffer overflow.
+ - Fix PR gas/26858 Fix availability of single precision vmul/vmla
+ in arm mode.
+ - gold: Fix powerpc incremental-dump assertion failure.
+ * Bump standards version.
+
+ -- Matthias Klose <doko@debian.org> Sun, 06 Dec 2020 12:18:40 +0100
+
+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
+# DP: updates from the binutils-2.35 branch
+
+# git diff 7e46a74aa3713c563940960e361e08defda019c2 28193e11686698fe41133bbdae49f128de87bbb3
+
+diff --git a/bfd/ChangeLog b/bfd/ChangeLog
+index 9fac12538a..6114b73a05 100644
+--- a/bfd/ChangeLog
++++ b/bfd/ChangeLog
+@@ -1,3 +1,88 @@
++2020-12-04 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR ld/27016
++ * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Convert load
++ to mov only for GOTPCRELX relocations.
++
++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/elf64-x86-64.c b/bfd/elf64-x86-64.c
+index 311fb28a90..7eb1afe614 100644
+--- a/bfd/elf64-x86-64.c
++++ b/bfd/elf64-x86-64.c
+@@ -1731,7 +1731,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
+
+ if (opcode == 0x8b)
+ {
+- if (abs_symbol && local_ref)
++ if (abs_symbol && local_ref && relocx)
+ to_reloc_pc32 = FALSE;
+
+ if (to_reloc_pc32)
+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..3537290a99 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 20201206
+ #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..9dc7136863 100644
+--- a/binutils/ChangeLog
++++ b/binutils/ChangeLog
+@@ -1,3 +1,117 @@
++2020-11-22 Alan Modra <amodra@gmail.com>
++
++ PR 26929
++ Apply from mainline
++ 2020-07-06 Alan Modra <amodra@gmail.com>
++ * readelf.c (print_dynamic_symbol): Don't sprintf to buffer to
++ find string length.
++
++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/readelf.c b/binutils/readelf.c
+index 6057515a89..41547a2594 100644
+--- a/binutils/readelf.c
++++ b/binutils/readelf.c
+@@ -12091,9 +12091,9 @@ print_dynamic_symbol (Filedata *filedata, unsigned long si,
+ int len_avail = 21;
+ if (! do_wide && version_string != NULL)
+ {
+- char buffer[256];
++ char buffer[16];
+
+- len_avail -= sprintf (buffer, "@%s", version_string);
++ len_avail -= 1 + strlen (version_string);
+
+ if (sym_info == symbol_undefined)
+ len_avail -= sprintf (buffer," (%d)", vna_other);
+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..b02e9fb1c8 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;
+@@ -26506,14 +26514,14 @@ static const struct asm_opcode insns[] =
+ #define ARM_VARIANT & fpu_vfp_ext_v1
+ #undef THUMB_VARIANT
+ #define THUMB_VARIANT & arm_ext_v6t2
+- mnCEF(vmla, _vmla, 3, (RNSDQMQ, oRNSDQMQ, RNSDQ_RNSC_MQ_RR), neon_mac_maybe_scalar),
+- mnCEF(vmul, _vmul, 3, (RNSDQMQ, oRNSDQMQ, RNSDQ_RNSC_MQ_RR), neon_mul),
+
+ mcCE(fcpyd, eb00b40, 2, (RVD, RVD), vfp_dp_rd_rm),
+
+ #undef ARM_VARIANT
+ #define ARM_VARIANT & fpu_vfp_ext_v1xd
+
++ mnCEF(vmla, _vmla, 3, (RNSDQMQ, oRNSDQMQ, RNSDQ_RNSC_MQ_RR), neon_mac_maybe_scalar),
++ mnCEF(vmul, _vmul, 3, (RNSDQMQ, oRNSDQMQ, RNSDQ_RNSC_MQ_RR), neon_mul),
+ MNCE(vmov, 0, 1, (VMOV), neon_mov),
+ mcCE(fmrs, e100a10, 2, (RR, RVS), vfp_reg_from_sp),
+ mcCE(fmsr, e000a10, 2, (RVS, RR), vfp_sp_from_reg),
+@@ -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/arm/pr26858.d b/gas/testsuite/gas/arm/pr26858.d
+new file mode 100644
+index 0000000000..dbe4d7122e
+--- /dev/null
++++ b/gas/testsuite/gas/arm/pr26858.d
+@@ -0,0 +1,8 @@
++# name: PR26858
++# objdump: -dr --prefix-addresses --show-raw-insn
++
++.*: +file format .*arm.*
++
++Disassembly of section .text:
++[^>]*> ee266a87 vmul.f32 s12, s13, s14
++[^>]*> ee000a81 vmla.f32 s0, s1, s2
+diff --git a/gas/testsuite/gas/arm/pr26858.s b/gas/testsuite/gas/arm/pr26858.s
+new file mode 100644
+index 0000000000..5a450e7bde
+--- /dev/null
++++ b/gas/testsuite/gas/arm/pr26858.s
+@@ -0,0 +1,6 @@
++.syntax unified
++.arch armv8-r
++.arm
++.fpu fpv5-sp-d16
++vmul.f32 s12, s13, s14
++vmla.f32 s0, s1, s2
+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..8b274ddd04 100644
+--- a/gold/ChangeLog
++++ b/gold/ChangeLog
+@@ -1,3 +1,99 @@
++2020-11-17 Alan Modra <amodra@gmail.com>
++
++ * powerpc.cc (Target_powerpc::no_tprel_opt_): Rename from tprel_opt_.
++ Init to false.
++ (Target_powerpc::tprel_opt): Test parameters->options().tls_optimize().
++ (Target_powerpc::set_tprel_opt): Delete.
++ (Target_powerpc::set_no_tprel_opt): New function. Update all uses
++ of set_tprel_opt.
++
++2020-11-16 Michael Hudson-Doyle <michael.hudson@canonical.com>
++
++ PR 26902
++ * powerpc.cc (Relocate::relocate): Do not include local entry
++ offset of target function when computing the address of a stub.
++
++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..fd4371efa4 100644
+--- a/gold/powerpc.cc
++++ b/gold/powerpc.cc
+@@ -647,10 +647,9 @@ 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()),
++ has_tls_get_addr_opt_(false), no_tprel_opt_(false),
+ relax_failed_(false), relax_fail_count_(0),
+ stub_group_size_(0), savres_section_(0),
+ tls_get_addr_(NULL), tls_get_addr_opt_(NULL),
+@@ -1079,14 +1078,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 +1107,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()
+ {
+@@ -1139,11 +1153,11 @@ class Target_powerpc : public Sized_target<size, big_endian>
+
+ bool
+ tprel_opt() const
+- { return this->tprel_opt_; }
++ { return !this->no_tprel_opt_ && parameters->options().tls_optimize(); }
+
+ void
+- set_tprel_opt(bool val)
+- { this->tprel_opt_ = val; }
++ set_no_tprel_opt()
++ { this->no_tprel_opt_ = true; }
+
+ // Remember any symbols seen with non-zero localentry, even those
+ // not providing a definition
+@@ -1696,13 +1710,13 @@ 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_;
+ bool has_localentry0_;
+ bool has_tls_get_addr_opt_;
+- bool tprel_opt_;
++ bool no_tprel_opt_;
+
+ bool relax_failed_;
+ int relax_fail_count_;
+@@ -1869,6 +1883,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 +2766,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 +3536,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 +3564,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 +3581,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 +3594,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 +3620,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 +4209,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 +4592,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 +4604,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 +4671,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 +4763,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 +4945,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 +4956,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 +5128,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 +5186,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 +5283,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 +5291,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 +5399,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 +5560,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 +5604,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 +5708,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 +5752,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 +5774,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 +6009,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 +6021,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 +6144,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 +6158,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 +6244,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 +6257,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 +6360,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 +6456,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 +6497,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 +6552,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 +6619,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 +6648,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 +6705,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 +6846,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;
+@@ -8191,7 +8470,7 @@ Target_powerpc<size, big_endian>::Scan::local(
+ uint32_t insn = elfcpp::Swap<32, big_endian>::readval(view + off);
+ if ((insn & ((0x3fu << 26) | 0x1f << 16))
+ != ((15u << 26) | ((size == 32 ? 2 : 13) << 16)))
+- target->set_tprel_opt(false);
++ target->set_no_tprel_opt();
+ }
+ }
+ break;
+@@ -8206,7 +8485,7 @@ Target_powerpc<size, big_endian>::Scan::local(
+ break;
+ // Fall through.
+ case elfcpp::R_POWERPC_TPREL16_HI:
+- target->set_tprel_opt(false);
++ target->set_no_tprel_opt();
+ break;
+ default:
+ break;
+@@ -8230,7 +8509,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;
+@@ -8988,7 +9267,7 @@ Target_powerpc<size, big_endian>::Scan::global(
+ uint32_t insn = elfcpp::Swap<32, big_endian>::readval(view + off);
+ if ((insn & ((0x3fu << 26) | 0x1f << 16))
+ != ((15u << 26) | ((size == 32 ? 2 : 13) << 16)))
+- target->set_tprel_opt(false);
++ target->set_no_tprel_opt();
+ }
+ }
+ break;
+@@ -9003,7 +9282,7 @@ Target_powerpc<size, big_endian>::Scan::global(
+ break;
+ // Fall through.
+ case elfcpp::R_POWERPC_TPREL16_HI:
+- target->set_tprel_opt(false);
++ target->set_no_tprel_opt();
+ break;
+ default:
+ break;
+@@ -9027,7 +9306,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 +9648,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 +10404,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 +10462,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 +10547,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 +11049,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 +11066,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 +11087,20 @@ 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 += 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..89ec0798db 100644
+--- a/ld/ChangeLog
++++ b/ld/ChangeLog
+@@ -1,3 +1,75 @@
++2020-12-04 H.J. Lu <hongjiu.lu@intel.com>
++
++ PR ld/27016
++ * testsuite/ld-x86-64/x86-64.exp: Run pr27016a and pr27016b.
++ * testsuite/ld-x86-64/pr27016a.d: New file.
++ * testsuite/ld-x86-64/pr27016a.s: Likewise.
++ * testsuite/ld-x86-64/pr27016b.d: Likewise.
++ * testsuite/ld-x86-64/pr27016b.s: Likewise.
++
++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/pr27016a.d b/ld/testsuite/ld-x86-64/pr27016a.d
+new file mode 100644
+index 0000000000..13200e3aed
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr27016a.d
+@@ -0,0 +1,23 @@
++#source: pr27016a.s
++#source: pr27016b.s
++#as: --64 -mx86-used-note=no -mrelax-relocations=no
++#ld: -m elf_x86_64 -z max-page-size=0x200000 -z noseparate-code -e main
++#objdump: -dw
++
++.*: +file format .*
++
++
++Disassembly of section .text:
++
++0+4000e8 <main>:
++ +[a-f0-9]+: 55 push %rbp
++ +[a-f0-9]+: 48 89 e5 mov %rsp,%rbp
++ +[a-f0-9]+: 4c 8d 1d 39 3f 00 00 lea 0x3f39\(%rip\),%r11 # 40402c <thesym>
++ +[a-f0-9]+: 41 8b 03 mov \(%r11\),%eax
++ +[a-f0-9]+: 8d 50 01 lea 0x1\(%rax\),%edx
++ +[a-f0-9]+: 4c 8d 1d 2c 3f 00 00 lea 0x3f2c\(%rip\),%r11 # 40402c <thesym>
++ +[a-f0-9]+: 41 89 13 mov %edx,\(%r11\)
++ +[a-f0-9]+: b8 00 00 00 00 mov \$0x0,%eax
++ +[a-f0-9]+: 5d pop %rbp
++ +[a-f0-9]+: c3 retq
++#pass
+diff --git a/ld/testsuite/ld-x86-64/pr27016a.s b/ld/testsuite/ld-x86-64/pr27016a.s
+new file mode 100644
+index 0000000000..b64851a5ff
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr27016a.s
+@@ -0,0 +1,23 @@
++ .text
++ .comm global_int,4,4
++ .globl main
++ .type main, @function
++main:
++ .cfi_startproc
++ pushq %rbp
++ .cfi_def_cfa_offset 16
++ .cfi_offset 6, -16
++ movq %rsp, %rbp
++ .cfi_def_cfa_register 6
++ movq thesym@GOTPCREL(%rip), %r11
++ movl (%r11), %eax
++ leal 1(%rax), %edx
++ movq thesym@GOTPCREL(%rip), %r11
++ movl %edx, (%r11)
++ movl $0, %eax
++ popq %rbp
++ .cfi_def_cfa 7, 8
++ ret
++ .cfi_endproc
++ .size main, .-main
++ .section .note.GNU-stack,"",@progbits
+diff --git a/ld/testsuite/ld-x86-64/pr27016b.d b/ld/testsuite/ld-x86-64/pr27016b.d
+new file mode 100644
+index 0000000000..d1b144bfaa
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr27016b.d
+@@ -0,0 +1,23 @@
++#source: pr27016a.s
++#source: pr27016b.s
++#as: --64 -mx86-used-note=no -mrelax-relocations=yes
++#ld: -m elf_x86_64 -z max-page-size=0x200000 -z noseparate-code -e main
++#objdump: -dw
++
++.*: +file format .*
++
++
++Disassembly of section .text:
++
++0+4000e8 <main>:
++ +[a-f0-9]+: 55 push %rbp
++ +[a-f0-9]+: 48 89 e5 mov %rsp,%rbp
++ +[a-f0-9]+: 49 c7 c3 2c 40 40 00 mov \$0x40402c,%r11
++ +[a-f0-9]+: 41 8b 03 mov \(%r11\),%eax
++ +[a-f0-9]+: 8d 50 01 lea 0x1\(%rax\),%edx
++ +[a-f0-9]+: 49 c7 c3 2c 40 40 00 mov \$0x40402c,%r11
++ +[a-f0-9]+: 41 89 13 mov %edx,\(%r11\)
++ +[a-f0-9]+: b8 00 00 00 00 mov \$0x0,%eax
++ +[a-f0-9]+: 5d pop %rbp
++ +[a-f0-9]+: c3 retq
++#pass
+diff --git a/ld/testsuite/ld-x86-64/pr27016b.s b/ld/testsuite/ld-x86-64/pr27016b.s
+new file mode 100644
+index 0000000000..ded8d7a826
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr27016b.s
+@@ -0,0 +1,4 @@
++ .globl thesym
++thesym = 0x40402c
++
++ .section .note.GNU-stack,"",@progbits
+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..91410304ea 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
+@@ -641,6 +647,8 @@ run_dump_test "pr20253-5b"
+ run_dump_test "tlsdesc2"
+ run_dump_test "pr22048"
+ run_dump_test "pr22929"
++run_dump_test "pr27016a"
++run_dump_test "pr27016b"
+
+ proc undefined_weak {cflags ldflags} {
+ set testname "Undefined weak symbol"
+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}},